createDataQualityJobDefinition method

Future<CreateDataQualityJobDefinitionResponse> createDataQualityJobDefinition({
  1. required DataQualityAppSpecification dataQualityAppSpecification,
  2. required DataQualityJobInput dataQualityJobInput,
  3. required MonitoringOutputConfig dataQualityJobOutputConfig,
  4. required String jobDefinitionName,
  5. required MonitoringResources jobResources,
  6. required String roleArn,
  7. DataQualityBaselineConfig? dataQualityBaselineConfig,
  8. MonitoringNetworkConfig? networkConfig,
  9. MonitoringStoppingCondition? stoppingCondition,
  10. List<Tag>? tags,
})

Creates a definition for a job that monitors data quality and drift. For information about model monitor, see Amazon SageMaker AI Model Monitor.

May throw ResourceInUse. May throw ResourceLimitExceeded.

Parameter dataQualityAppSpecification : Specifies the container that runs the monitoring job.

Parameter dataQualityJobInput : A list of inputs for the monitoring job. Currently endpoints are supported as monitoring inputs.

Parameter jobDefinitionName : The name for the monitoring job definition.

Parameter roleArn : The Amazon Resource Name (ARN) of an IAM role that Amazon SageMaker AI can assume to perform tasks on your behalf.

Parameter dataQualityBaselineConfig : Configures the constraints and baselines for the monitoring job.

Parameter networkConfig : Specifies networking configuration for the monitoring job.

Parameter tags : (Optional) An array of key-value pairs. For more information, see Using Cost Allocation Tags in the Amazon Web Services Billing and Cost Management User Guide.

Implementation

Future<CreateDataQualityJobDefinitionResponse>
    createDataQualityJobDefinition({
  required DataQualityAppSpecification dataQualityAppSpecification,
  required DataQualityJobInput dataQualityJobInput,
  required MonitoringOutputConfig dataQualityJobOutputConfig,
  required String jobDefinitionName,
  required MonitoringResources jobResources,
  required String roleArn,
  DataQualityBaselineConfig? dataQualityBaselineConfig,
  MonitoringNetworkConfig? networkConfig,
  MonitoringStoppingCondition? stoppingCondition,
  List<Tag>? tags,
}) async {
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'SageMaker.CreateDataQualityJobDefinition'
  };
  final jsonResponse = await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'DataQualityAppSpecification': dataQualityAppSpecification,
      'DataQualityJobInput': dataQualityJobInput,
      'DataQualityJobOutputConfig': dataQualityJobOutputConfig,
      'JobDefinitionName': jobDefinitionName,
      'JobResources': jobResources,
      'RoleArn': roleArn,
      if (dataQualityBaselineConfig != null)
        'DataQualityBaselineConfig': dataQualityBaselineConfig,
      if (networkConfig != null) 'NetworkConfig': networkConfig,
      if (stoppingCondition != null) 'StoppingCondition': stoppingCondition,
      if (tags != null) 'Tags': tags,
    },
  );

  return CreateDataQualityJobDefinitionResponse.fromJson(jsonResponse.body);
}