updateMLTransform method

Future<UpdateMLTransformResponse> updateMLTransform({
  1. required String transformId,
  2. String? description,
  3. String? glueVersion,
  4. double? maxCapacity,
  5. int? maxRetries,
  6. String? name,
  7. int? numberOfWorkers,
  8. TransformParameters? parameters,
  9. String? role,
  10. int? timeout,
  11. WorkerType? workerType,
})

Updates an existing machine learning transform. Call this operation to tune the algorithm parameters to achieve better results.

After calling this operation, you can call the StartMLEvaluationTaskRun operation to assess how well your new parameters achieved your goals (such as improving the quality of your machine learning transform, or making it more cost-effective).

May throw EntityNotFoundException. May throw InvalidInputException. May throw OperationTimeoutException. May throw InternalServiceException. May throw AccessDeniedException.

Parameter transformId : A unique identifier that was generated when the transform was created.

Parameter description : A description of the transform. The default is an empty string.

Parameter glueVersion : This value determines which version of AWS Glue this machine learning transform is compatible with. Glue 1.0 is recommended for most customers. If the value is not set, the Glue compatibility defaults to Glue 0.9. For more information, see AWS Glue Versions in the developer guide.

Parameter maxCapacity : The number of AWS Glue data processing units (DPUs) that are allocated to task runs for this transform. You can allocate from 2 to 100 DPUs; the default is 10. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the AWS Glue pricing page.

When the WorkerType field is set to a value other than Standard, the MaxCapacity field is set automatically and becomes read-only.

Parameter maxRetries : The maximum number of times to retry a task for this transform after a task run fails.

Parameter name : The unique name that you gave the transform when you created it.

Parameter numberOfWorkers : The number of workers of a defined workerType that are allocated when this task runs.

Parameter parameters : The configuration parameters that are specific to the transform type (algorithm) used. Conditionally dependent on the transform type.

Parameter role : The name or Amazon Resource Name (ARN) of the IAM role with the required permissions.

Parameter timeout : The timeout for a task run for this transform in minutes. This is the maximum time that a task run for this transform can consume resources before it is terminated and enters TIMEOUT status. The default is 2,880 minutes (48 hours).

Parameter workerType : The type of predefined worker that is allocated when this task runs. Accepts a value of Standard, G.1X, or G.2X.

  • For the Standard worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker.
  • For the G.1X worker type, each worker provides 4 vCPU, 16 GB of memory and a 64GB disk, and 1 executor per worker.
  • For the G.2X worker type, each worker provides 8 vCPU, 32 GB of memory and a 128GB disk, and 1 executor per worker.

Implementation

Future<UpdateMLTransformResponse> updateMLTransform({
  required String transformId,
  String? description,
  String? glueVersion,
  double? maxCapacity,
  int? maxRetries,
  String? name,
  int? numberOfWorkers,
  TransformParameters? parameters,
  String? role,
  int? timeout,
  WorkerType? workerType,
}) async {
  ArgumentError.checkNotNull(transformId, 'transformId');
  _s.validateStringLength(
    'transformId',
    transformId,
    1,
    255,
    isRequired: true,
  );
  _s.validateStringLength(
    'description',
    description,
    0,
    2048,
  );
  _s.validateStringLength(
    'glueVersion',
    glueVersion,
    1,
    255,
  );
  _s.validateStringLength(
    'name',
    name,
    1,
    255,
  );
  _s.validateNumRange(
    'timeout',
    timeout,
    1,
    1152921504606846976,
  );
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'AWSGlue.UpdateMLTransform'
  };
  final jsonResponse = await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'TransformId': transformId,
      if (description != null) 'Description': description,
      if (glueVersion != null) 'GlueVersion': glueVersion,
      if (maxCapacity != null) 'MaxCapacity': maxCapacity,
      if (maxRetries != null) 'MaxRetries': maxRetries,
      if (name != null) 'Name': name,
      if (numberOfWorkers != null) 'NumberOfWorkers': numberOfWorkers,
      if (parameters != null) 'Parameters': parameters,
      if (role != null) 'Role': role,
      if (timeout != null) 'Timeout': timeout,
      if (workerType != null) 'WorkerType': workerType.toValue(),
    },
  );

  return UpdateMLTransformResponse.fromJson(jsonResponse.body);
}