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 Model Monitor.

May throw ResourceLimitExceeded. May throw ResourceInUse.

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 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 AWS 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 {
  ArgumentError.checkNotNull(
      dataQualityAppSpecification, 'dataQualityAppSpecification');
  ArgumentError.checkNotNull(dataQualityJobInput, 'dataQualityJobInput');
  ArgumentError.checkNotNull(
      dataQualityJobOutputConfig, 'dataQualityJobOutputConfig');
  ArgumentError.checkNotNull(jobDefinitionName, 'jobDefinitionName');
  _s.validateStringLength(
    'jobDefinitionName',
    jobDefinitionName,
    1,
    63,
    isRequired: true,
  );
  ArgumentError.checkNotNull(jobResources, 'jobResources');
  ArgumentError.checkNotNull(roleArn, 'roleArn');
  _s.validateStringLength(
    'roleArn',
    roleArn,
    20,
    2048,
    isRequired: true,
  );
  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);
}