associateTargetsWithJob method

Future<AssociateTargetsWithJobResponse> associateTargetsWithJob({
  1. required String jobId,
  2. required List<String> targets,
  3. String? comment,
  4. String? namespaceId,
})

Associates a group with a continuous job. The following criteria must be met:

  • The job must have been created with the targetSelection field set to "CONTINUOUS".
  • The job status must currently be "IN_PROGRESS".
  • The total number of targets associated with a job must not exceed 100.

May throw InvalidRequestException. May throw ResourceNotFoundException. May throw LimitExceededException. May throw ThrottlingException. May throw ServiceUnavailableException.

Parameter jobId : The unique identifier you assigned to this job when it was created.

Parameter targets : A list of thing group ARNs that define the targets of the job.

Parameter comment : An optional comment string describing why the job was associated with the targets.

Parameter namespaceId : The namespace used to indicate that a job is a customer-managed job.

When you specify a value for this parameter, AWS IoT Core sends jobs notifications to MQTT topics that contain the value in the following format.

$aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/

Implementation

Future<AssociateTargetsWithJobResponse> associateTargetsWithJob({
  required String jobId,
  required List<String> targets,
  String? comment,
  String? namespaceId,
}) async {
  ArgumentError.checkNotNull(jobId, 'jobId');
  _s.validateStringLength(
    'jobId',
    jobId,
    1,
    64,
    isRequired: true,
  );
  ArgumentError.checkNotNull(targets, 'targets');
  _s.validateStringLength(
    'comment',
    comment,
    0,
    2028,
  );
  _s.validateStringLength(
    'namespaceId',
    namespaceId,
    1,
    64,
  );
  final $query = <String, List<String>>{
    if (namespaceId != null) 'namespaceId': [namespaceId],
  };
  final $payload = <String, dynamic>{
    'targets': targets,
    if (comment != null) 'comment': comment,
  };
  final response = await _protocol.send(
    payload: $payload,
    method: 'POST',
    requestUri: '/jobs/${Uri.encodeComponent(jobId)}/targets',
    queryParams: $query,
    exceptionFnMap: _exceptionFns,
  );
  return AssociateTargetsWithJobResponse.fromJson(response);
}