createAnomalySubscription method

Future<CreateAnomalySubscriptionResponse> createAnomalySubscription({
  1. required AnomalySubscription anomalySubscription,
  2. List<ResourceTag>? resourceTags,
})

Adds an alert subscription to a cost anomaly detection monitor. You can use each subscription to define subscribers with email or SNS notifications. Email subscribers can set an absolute or percentage threshold and a time frequency for receiving notifications.

May throw LimitExceededException. May throw UnknownMonitorException.

Parameter anomalySubscription : The cost anomaly subscription object that you want to create.

Parameter resourceTags : An optional list of tags to associate with the specified AnomalySubscription . You can use resource tags to control access to your subscription using IAM policies.

Each tag consists of a key and a value, and each key must be unique for the resource. The following restrictions apply to resource tags:

  • Although the maximum number of array members is 200, you can assign a maximum of 50 user-tags to one resource. The remaining are reserved for Amazon Web Services use
  • The maximum length of a key is 128 characters
  • The maximum length of a value is 256 characters
  • Keys and values can only contain alphanumeric characters, spaces, and any of the following: _.:/=+@-
  • Keys and values are case sensitive
  • Keys and values are trimmed for any leading or trailing whitespaces
  • Don’t use aws: as a prefix for your keys. This prefix is reserved for Amazon Web Services use

Implementation

Future<CreateAnomalySubscriptionResponse> createAnomalySubscription({
  required AnomalySubscription anomalySubscription,
  List<ResourceTag>? resourceTags,
}) async {
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'AWSInsightsIndexService.CreateAnomalySubscription'
  };
  final jsonResponse = await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'AnomalySubscription': anomalySubscription,
      if (resourceTags != null) 'ResourceTags': resourceTags,
    },
  );

  return CreateAnomalySubscriptionResponse.fromJson(jsonResponse.body);
}