setTopicAttributes method
Allows a topic owner to set an attribute of the topic to a new value.
May throw InvalidParameterException. May throw InternalErrorException. May throw NotFoundException. May throw AuthorizationErrorException. May throw InvalidSecurityException.
Parameter attributeName :
A map of attributes with their corresponding values.
The following lists the names, descriptions, and values of the special
request parameters that the SetTopicAttributes action uses:
-
DeliveryPolicy– The policy that defines how Amazon SNS retries failed deliveries to HTTP/S endpoints. -
DisplayName– The display name to use for a topic with SMS subscriptions. -
Policy– The policy that defines who can access your topic. By default, only the topic owner can publish or subscribe to the topic.
-
KmsMasterKeyId– The ID of an AWS-managed customer master key (CMK) for Amazon SNS or a custom CMK. For more information, see Key Terms. For more examples, see KeyId in the AWS Key Management Service API Reference.
-
ContentBasedDeduplication– Enables content-based deduplication for FIFO topics.-
By default,
ContentBasedDeduplicationis set tofalse. If you create a FIFO topic and this attribute isfalse, you must specify a value for theMessageDeduplicationIdparameter for the Publish action. -
When you set
ContentBasedDeduplicationtotrue, Amazon SNS uses a SHA-256 hash to generate theMessageDeduplicationIdusing the body of the message (but not the attributes of the message).(Optional) To override the generated value, you can specify a value for the the
MessageDeduplicationIdparameter for thePublishaction.
-
By default,
Parameter topicArn :
The ARN of the topic to modify.
Parameter attributeValue :
The new value for the attribute.
Implementation
Future<void> setTopicAttributes({
required String attributeName,
required String topicArn,
String? attributeValue,
}) async {
ArgumentError.checkNotNull(attributeName, 'attributeName');
ArgumentError.checkNotNull(topicArn, 'topicArn');
final $request = <String, dynamic>{};
$request['AttributeName'] = attributeName;
$request['TopicArn'] = topicArn;
attributeValue?.also((arg) => $request['AttributeValue'] = arg);
await _protocol.send(
$request,
action: 'SetTopicAttributes',
version: '2010-03-31',
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
shape: shapes['SetTopicAttributesInput'],
shapes: shapes,
);
}