addAssociation method

Future<AddAssociationResponse> addAssociation({
  1. required String destinationArn,
  2. required String sourceArn,
  3. AssociationEdgeType? associationType,
})

Creates an association between the source and the destination. A source can be associated with multiple destinations, and a destination can be associated with multiple sources. An association is a lineage tracking entity. For more information, see Amazon SageMaker ML Lineage Tracking.

May throw ResourceNotFound. May throw ResourceLimitExceeded.

Parameter destinationArn : The Amazon Resource Name (ARN) of the destination.

Parameter sourceArn : The ARN of the source.

Parameter associationType : The type of association. The following are suggested uses for each type. Amazon SageMaker places no restrictions on their use.

  • ContributedTo - The source contributed to the destination or had a part in enabling the destination. For example, the training data contributed to the training job.
  • AssociatedWith - The source is connected to the destination. For example, an approval workflow is associated with a model deployment.
  • DerivedFrom - The destination is a modification of the source. For example, a digest output of a channel input for a processing job is derived from the original inputs.
  • Produced - The source generated the destination. For example, a training job produced a model artifact.

Implementation

Future<AddAssociationResponse> addAssociation({
  required String destinationArn,
  required String sourceArn,
  AssociationEdgeType? associationType,
}) async {
  ArgumentError.checkNotNull(destinationArn, 'destinationArn');
  _s.validateStringLength(
    'destinationArn',
    destinationArn,
    0,
    256,
    isRequired: true,
  );
  ArgumentError.checkNotNull(sourceArn, 'sourceArn');
  _s.validateStringLength(
    'sourceArn',
    sourceArn,
    0,
    256,
    isRequired: true,
  );
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'SageMaker.AddAssociation'
  };
  final jsonResponse = await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'DestinationArn': destinationArn,
      'SourceArn': sourceArn,
      if (associationType != null)
        'AssociationType': associationType.toValue(),
    },
  );

  return AddAssociationResponse.fromJson(jsonResponse.body);
}