createDestination method
Creates a new destination that maps a device message to an AWS IoT rule.
May throw AccessDeniedException.
May throw ConflictException.
May throw InternalServerException.
May throw ResourceNotFoundException.
May throw ThrottlingException.
May throw ValidationException.
Parameter expression :
The rule name or topic rule to send messages to.
Parameter expressionType :
The type of value in Expression.
Parameter name :
The name of the new resource.
Parameter roleArn :
The ARN of the IAM Role that authorizes the destination.
Parameter clientRequestToken :
Each resource must have a unique client request token. The client token is
used to implement idempotency. It ensures that the request completes no
more than one time. If you retry a request with the same token and the
same parameters, the request will complete successfully. However, if you
try to create a new resource using the same token but different
parameters, an HTTP 409 conflict occurs. If you omit this value, AWS SDKs
will automatically generate a unique client request. For more information
about idempotency, see Ensuring
idempotency in Amazon EC2 API requests.
Parameter description :
The description of the new resource.
Parameter tags :
The tags to attach to the new destination. Tags are metadata that you can
use to manage a resource.
Implementation
Future<CreateDestinationResponse> createDestination({
required String expression,
required ExpressionType expressionType,
required String name,
required String roleArn,
String? clientRequestToken,
String? description,
List<Tag>? tags,
}) async {
final $payload = <String, dynamic>{
'Expression': expression,
'ExpressionType': expressionType.value,
'Name': name,
'RoleArn': roleArn,
'ClientRequestToken': clientRequestToken ?? _s.generateIdempotencyToken(),
if (description != null) 'Description': description,
if (tags != null) 'Tags': tags,
};
final response = await _protocol.send(
payload: $payload,
method: 'POST',
requestUri: '/destinations',
exceptionFnMap: _exceptionFns,
);
return CreateDestinationResponse.fromJson(response);
}