tagResource method
Associates the specified tags to a resource with the specified
resourceArn
. If existing tags on a resource are not specified
in the request parameters, they are not changed. When a resource is
deleted, the tags associated with that resource are also deleted.
May throw ResourceNotFoundException. May throw LimitExceededException. May throw InvalidInputException.
Parameter resourceArn
:
The Amazon Resource Name (ARN) that identifies the resource for which to
list the tags. Currently, the supported resources are Forecast dataset
groups, datasets, dataset import jobs, predictors, forecasts, and forecast
export jobs.
Parameter tags
:
The tags to add to the resource. A tag is an array of key-value pairs.
The following basic restrictions apply to tags:
- Maximum number of tags per resource - 50.
- For each resource, each tag key must be unique, and each tag key can have only one value.
- Maximum key length - 128 Unicode characters in UTF-8.
- Maximum value length - 256 Unicode characters in UTF-8.
- If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.
- Tag keys and values are case sensitive.
-
Do not use
aws:
,AWS:
, or any upper or lowercase combination of such as a prefix for keys as it is reserved for AWS use. You cannot edit or delete tag keys with this prefix. Values can have this prefix. If a tag value hasaws
as its prefix but the key does not, then Forecast considers it to be a user tag and will count against the limit of 50 tags. Tags with only the key prefix ofaws
do not count against your tags per resource limit.
Implementation
Future<void> tagResource({
required String resourceArn,
required List<Tag> tags,
}) async {
ArgumentError.checkNotNull(resourceArn, 'resourceArn');
_s.validateStringLength(
'resourceArn',
resourceArn,
0,
256,
isRequired: true,
);
ArgumentError.checkNotNull(tags, 'tags');
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'AmazonForecast.TagResource'
};
await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'ResourceArn': resourceArn,
'Tags': tags,
},
);
}