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,
ContentBasedDeduplication
is set tofalse
. If you create a FIFO topic and this attribute isfalse
, you must specify a value for theMessageDeduplicationId
parameter for the Publish action. -
When you set
ContentBasedDeduplication
totrue
, Amazon SNS uses a SHA-256 hash to generate theMessageDeduplicationId
using 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
MessageDeduplicationId
parameter for thePublish
action.
-
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,
);
}