1. Packages
  2. AWS
  3. API Docs
  4. costexplorer
  5. AnomalySubscription
AWS v6.63.0 published on Wednesday, Dec 4, 2024 by Pulumi

aws.costexplorer.AnomalySubscription

Explore with Pulumi AI

aws logo
AWS v6.63.0 published on Wednesday, Dec 4, 2024 by Pulumi

    Provides a CE Anomaly Subscription.

    Example Usage

    Basic Example

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const test = new aws.costexplorer.AnomalyMonitor("test", {
        name: "AWSServiceMonitor",
        monitorType: "DIMENSIONAL",
        monitorDimension: "SERVICE",
    });
    const testAnomalySubscription = new aws.costexplorer.AnomalySubscription("test", {
        name: "DAILYSUBSCRIPTION",
        frequency: "DAILY",
        monitorArnLists: [test.arn],
        subscribers: [{
            type: "EMAIL",
            address: "abc@example.com",
        }],
        thresholdExpression: {
            dimension: {
                key: "ANOMALY_TOTAL_IMPACT_ABSOLUTE",
                matchOptions: ["GREATER_THAN_OR_EQUAL"],
                values: ["100"],
            },
        },
    });
    
    import pulumi
    import pulumi_aws as aws
    
    test = aws.costexplorer.AnomalyMonitor("test",
        name="AWSServiceMonitor",
        monitor_type="DIMENSIONAL",
        monitor_dimension="SERVICE")
    test_anomaly_subscription = aws.costexplorer.AnomalySubscription("test",
        name="DAILYSUBSCRIPTION",
        frequency="DAILY",
        monitor_arn_lists=[test.arn],
        subscribers=[{
            "type": "EMAIL",
            "address": "abc@example.com",
        }],
        threshold_expression={
            "dimension": {
                "key": "ANOMALY_TOTAL_IMPACT_ABSOLUTE",
                "match_options": ["GREATER_THAN_OR_EQUAL"],
                "values": ["100"],
            },
        })
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/costexplorer"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		test, err := costexplorer.NewAnomalyMonitor(ctx, "test", &costexplorer.AnomalyMonitorArgs{
    			Name:             pulumi.String("AWSServiceMonitor"),
    			MonitorType:      pulumi.String("DIMENSIONAL"),
    			MonitorDimension: pulumi.String("SERVICE"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = costexplorer.NewAnomalySubscription(ctx, "test", &costexplorer.AnomalySubscriptionArgs{
    			Name:      pulumi.String("DAILYSUBSCRIPTION"),
    			Frequency: pulumi.String("DAILY"),
    			MonitorArnLists: pulumi.StringArray{
    				test.Arn,
    			},
    			Subscribers: costexplorer.AnomalySubscriptionSubscriberArray{
    				&costexplorer.AnomalySubscriptionSubscriberArgs{
    					Type:    pulumi.String("EMAIL"),
    					Address: pulumi.String("abc@example.com"),
    				},
    			},
    			ThresholdExpression: &costexplorer.AnomalySubscriptionThresholdExpressionArgs{
    				Dimension: &costexplorer.AnomalySubscriptionThresholdExpressionDimensionArgs{
    					Key: pulumi.String("ANOMALY_TOTAL_IMPACT_ABSOLUTE"),
    					MatchOptions: pulumi.StringArray{
    						pulumi.String("GREATER_THAN_OR_EQUAL"),
    					},
    					Values: pulumi.StringArray{
    						pulumi.String("100"),
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var test = new Aws.CostExplorer.AnomalyMonitor("test", new()
        {
            Name = "AWSServiceMonitor",
            MonitorType = "DIMENSIONAL",
            MonitorDimension = "SERVICE",
        });
    
        var testAnomalySubscription = new Aws.CostExplorer.AnomalySubscription("test", new()
        {
            Name = "DAILYSUBSCRIPTION",
            Frequency = "DAILY",
            MonitorArnLists = new[]
            {
                test.Arn,
            },
            Subscribers = new[]
            {
                new Aws.CostExplorer.Inputs.AnomalySubscriptionSubscriberArgs
                {
                    Type = "EMAIL",
                    Address = "abc@example.com",
                },
            },
            ThresholdExpression = new Aws.CostExplorer.Inputs.AnomalySubscriptionThresholdExpressionArgs
            {
                Dimension = new Aws.CostExplorer.Inputs.AnomalySubscriptionThresholdExpressionDimensionArgs
                {
                    Key = "ANOMALY_TOTAL_IMPACT_ABSOLUTE",
                    MatchOptions = new[]
                    {
                        "GREATER_THAN_OR_EQUAL",
                    },
                    Values = new[]
                    {
                        "100",
                    },
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.costexplorer.AnomalyMonitor;
    import com.pulumi.aws.costexplorer.AnomalyMonitorArgs;
    import com.pulumi.aws.costexplorer.AnomalySubscription;
    import com.pulumi.aws.costexplorer.AnomalySubscriptionArgs;
    import com.pulumi.aws.costexplorer.inputs.AnomalySubscriptionSubscriberArgs;
    import com.pulumi.aws.costexplorer.inputs.AnomalySubscriptionThresholdExpressionArgs;
    import com.pulumi.aws.costexplorer.inputs.AnomalySubscriptionThresholdExpressionDimensionArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var test = new AnomalyMonitor("test", AnomalyMonitorArgs.builder()
                .name("AWSServiceMonitor")
                .monitorType("DIMENSIONAL")
                .monitorDimension("SERVICE")
                .build());
    
            var testAnomalySubscription = new AnomalySubscription("testAnomalySubscription", AnomalySubscriptionArgs.builder()
                .name("DAILYSUBSCRIPTION")
                .frequency("DAILY")
                .monitorArnLists(test.arn())
                .subscribers(AnomalySubscriptionSubscriberArgs.builder()
                    .type("EMAIL")
                    .address("abc@example.com")
                    .build())
                .thresholdExpression(AnomalySubscriptionThresholdExpressionArgs.builder()
                    .dimension(AnomalySubscriptionThresholdExpressionDimensionArgs.builder()
                        .key("ANOMALY_TOTAL_IMPACT_ABSOLUTE")
                        .matchOptions("GREATER_THAN_OR_EQUAL")
                        .values("100")
                        .build())
                    .build())
                .build());
    
        }
    }
    
    resources:
      test:
        type: aws:costexplorer:AnomalyMonitor
        properties:
          name: AWSServiceMonitor
          monitorType: DIMENSIONAL
          monitorDimension: SERVICE
      testAnomalySubscription:
        type: aws:costexplorer:AnomalySubscription
        name: test
        properties:
          name: DAILYSUBSCRIPTION
          frequency: DAILY
          monitorArnLists:
            - ${test.arn}
          subscribers:
            - type: EMAIL
              address: abc@example.com
          thresholdExpression:
            dimension:
              key: ANOMALY_TOTAL_IMPACT_ABSOLUTE
              matchOptions:
                - GREATER_THAN_OR_EQUAL
              values:
                - '100'
    

    Threshold Expression Example

    Using a Percentage Threshold

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const test = new aws.costexplorer.AnomalySubscription("test", {
        name: "AWSServiceMonitor",
        frequency: "DAILY",
        monitorArnLists: [testAwsCeAnomalyMonitor.arn],
        subscribers: [{
            type: "EMAIL",
            address: "abc@example.com",
        }],
        thresholdExpression: {
            dimension: {
                key: "ANOMALY_TOTAL_IMPACT_PERCENTAGE",
                matchOptions: ["GREATER_THAN_OR_EQUAL"],
                values: ["100"],
            },
        },
    });
    
    import pulumi
    import pulumi_aws as aws
    
    test = aws.costexplorer.AnomalySubscription("test",
        name="AWSServiceMonitor",
        frequency="DAILY",
        monitor_arn_lists=[test_aws_ce_anomaly_monitor["arn"]],
        subscribers=[{
            "type": "EMAIL",
            "address": "abc@example.com",
        }],
        threshold_expression={
            "dimension": {
                "key": "ANOMALY_TOTAL_IMPACT_PERCENTAGE",
                "match_options": ["GREATER_THAN_OR_EQUAL"],
                "values": ["100"],
            },
        })
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/costexplorer"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := costexplorer.NewAnomalySubscription(ctx, "test", &costexplorer.AnomalySubscriptionArgs{
    			Name:      pulumi.String("AWSServiceMonitor"),
    			Frequency: pulumi.String("DAILY"),
    			MonitorArnLists: pulumi.StringArray{
    				testAwsCeAnomalyMonitor.Arn,
    			},
    			Subscribers: costexplorer.AnomalySubscriptionSubscriberArray{
    				&costexplorer.AnomalySubscriptionSubscriberArgs{
    					Type:    pulumi.String("EMAIL"),
    					Address: pulumi.String("abc@example.com"),
    				},
    			},
    			ThresholdExpression: &costexplorer.AnomalySubscriptionThresholdExpressionArgs{
    				Dimension: &costexplorer.AnomalySubscriptionThresholdExpressionDimensionArgs{
    					Key: pulumi.String("ANOMALY_TOTAL_IMPACT_PERCENTAGE"),
    					MatchOptions: pulumi.StringArray{
    						pulumi.String("GREATER_THAN_OR_EQUAL"),
    					},
    					Values: pulumi.StringArray{
    						pulumi.String("100"),
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var test = new Aws.CostExplorer.AnomalySubscription("test", new()
        {
            Name = "AWSServiceMonitor",
            Frequency = "DAILY",
            MonitorArnLists = new[]
            {
                testAwsCeAnomalyMonitor.Arn,
            },
            Subscribers = new[]
            {
                new Aws.CostExplorer.Inputs.AnomalySubscriptionSubscriberArgs
                {
                    Type = "EMAIL",
                    Address = "abc@example.com",
                },
            },
            ThresholdExpression = new Aws.CostExplorer.Inputs.AnomalySubscriptionThresholdExpressionArgs
            {
                Dimension = new Aws.CostExplorer.Inputs.AnomalySubscriptionThresholdExpressionDimensionArgs
                {
                    Key = "ANOMALY_TOTAL_IMPACT_PERCENTAGE",
                    MatchOptions = new[]
                    {
                        "GREATER_THAN_OR_EQUAL",
                    },
                    Values = new[]
                    {
                        "100",
                    },
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.costexplorer.AnomalySubscription;
    import com.pulumi.aws.costexplorer.AnomalySubscriptionArgs;
    import com.pulumi.aws.costexplorer.inputs.AnomalySubscriptionSubscriberArgs;
    import com.pulumi.aws.costexplorer.inputs.AnomalySubscriptionThresholdExpressionArgs;
    import com.pulumi.aws.costexplorer.inputs.AnomalySubscriptionThresholdExpressionDimensionArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var test = new AnomalySubscription("test", AnomalySubscriptionArgs.builder()
                .name("AWSServiceMonitor")
                .frequency("DAILY")
                .monitorArnLists(testAwsCeAnomalyMonitor.arn())
                .subscribers(AnomalySubscriptionSubscriberArgs.builder()
                    .type("EMAIL")
                    .address("abc@example.com")
                    .build())
                .thresholdExpression(AnomalySubscriptionThresholdExpressionArgs.builder()
                    .dimension(AnomalySubscriptionThresholdExpressionDimensionArgs.builder()
                        .key("ANOMALY_TOTAL_IMPACT_PERCENTAGE")
                        .matchOptions("GREATER_THAN_OR_EQUAL")
                        .values("100")
                        .build())
                    .build())
                .build());
    
        }
    }
    
    resources:
      test:
        type: aws:costexplorer:AnomalySubscription
        properties:
          name: AWSServiceMonitor
          frequency: DAILY
          monitorArnLists:
            - ${testAwsCeAnomalyMonitor.arn}
          subscribers:
            - type: EMAIL
              address: abc@example.com
          thresholdExpression:
            dimension:
              key: ANOMALY_TOTAL_IMPACT_PERCENTAGE
              matchOptions:
                - GREATER_THAN_OR_EQUAL
              values:
                - '100'
    

    Using an and Expression

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const test = new aws.costexplorer.AnomalySubscription("test", {
        name: "AWSServiceMonitor",
        frequency: "DAILY",
        monitorArnLists: [testAwsCeAnomalyMonitor.arn],
        subscribers: [{
            type: "EMAIL",
            address: "abc@example.com",
        }],
        thresholdExpression: {
            ands: [
                {
                    dimension: {
                        key: "ANOMALY_TOTAL_IMPACT_ABSOLUTE",
                        matchOptions: ["GREATER_THAN_OR_EQUAL"],
                        values: ["100"],
                    },
                },
                {
                    dimension: {
                        key: "ANOMALY_TOTAL_IMPACT_PERCENTAGE",
                        matchOptions: ["GREATER_THAN_OR_EQUAL"],
                        values: ["50"],
                    },
                },
            ],
        },
    });
    
    import pulumi
    import pulumi_aws as aws
    
    test = aws.costexplorer.AnomalySubscription("test",
        name="AWSServiceMonitor",
        frequency="DAILY",
        monitor_arn_lists=[test_aws_ce_anomaly_monitor["arn"]],
        subscribers=[{
            "type": "EMAIL",
            "address": "abc@example.com",
        }],
        threshold_expression={
            "ands": [
                {
                    "dimension": {
                        "key": "ANOMALY_TOTAL_IMPACT_ABSOLUTE",
                        "match_options": ["GREATER_THAN_OR_EQUAL"],
                        "values": ["100"],
                    },
                },
                {
                    "dimension": {
                        "key": "ANOMALY_TOTAL_IMPACT_PERCENTAGE",
                        "match_options": ["GREATER_THAN_OR_EQUAL"],
                        "values": ["50"],
                    },
                },
            ],
        })
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/costexplorer"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := costexplorer.NewAnomalySubscription(ctx, "test", &costexplorer.AnomalySubscriptionArgs{
    			Name:      pulumi.String("AWSServiceMonitor"),
    			Frequency: pulumi.String("DAILY"),
    			MonitorArnLists: pulumi.StringArray{
    				testAwsCeAnomalyMonitor.Arn,
    			},
    			Subscribers: costexplorer.AnomalySubscriptionSubscriberArray{
    				&costexplorer.AnomalySubscriptionSubscriberArgs{
    					Type:    pulumi.String("EMAIL"),
    					Address: pulumi.String("abc@example.com"),
    				},
    			},
    			ThresholdExpression: &costexplorer.AnomalySubscriptionThresholdExpressionArgs{
    				Ands: costexplorer.AnomalySubscriptionThresholdExpressionAndArray{
    					&costexplorer.AnomalySubscriptionThresholdExpressionAndArgs{
    						Dimension: &costexplorer.AnomalySubscriptionThresholdExpressionAndDimensionArgs{
    							Key: pulumi.String("ANOMALY_TOTAL_IMPACT_ABSOLUTE"),
    							MatchOptions: pulumi.StringArray{
    								pulumi.String("GREATER_THAN_OR_EQUAL"),
    							},
    							Values: pulumi.StringArray{
    								pulumi.String("100"),
    							},
    						},
    					},
    					&costexplorer.AnomalySubscriptionThresholdExpressionAndArgs{
    						Dimension: &costexplorer.AnomalySubscriptionThresholdExpressionAndDimensionArgs{
    							Key: pulumi.String("ANOMALY_TOTAL_IMPACT_PERCENTAGE"),
    							MatchOptions: pulumi.StringArray{
    								pulumi.String("GREATER_THAN_OR_EQUAL"),
    							},
    							Values: pulumi.StringArray{
    								pulumi.String("50"),
    							},
    						},
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var test = new Aws.CostExplorer.AnomalySubscription("test", new()
        {
            Name = "AWSServiceMonitor",
            Frequency = "DAILY",
            MonitorArnLists = new[]
            {
                testAwsCeAnomalyMonitor.Arn,
            },
            Subscribers = new[]
            {
                new Aws.CostExplorer.Inputs.AnomalySubscriptionSubscriberArgs
                {
                    Type = "EMAIL",
                    Address = "abc@example.com",
                },
            },
            ThresholdExpression = new Aws.CostExplorer.Inputs.AnomalySubscriptionThresholdExpressionArgs
            {
                Ands = new[]
                {
                    new Aws.CostExplorer.Inputs.AnomalySubscriptionThresholdExpressionAndArgs
                    {
                        Dimension = new Aws.CostExplorer.Inputs.AnomalySubscriptionThresholdExpressionAndDimensionArgs
                        {
                            Key = "ANOMALY_TOTAL_IMPACT_ABSOLUTE",
                            MatchOptions = new[]
                            {
                                "GREATER_THAN_OR_EQUAL",
                            },
                            Values = new[]
                            {
                                "100",
                            },
                        },
                    },
                    new Aws.CostExplorer.Inputs.AnomalySubscriptionThresholdExpressionAndArgs
                    {
                        Dimension = new Aws.CostExplorer.Inputs.AnomalySubscriptionThresholdExpressionAndDimensionArgs
                        {
                            Key = "ANOMALY_TOTAL_IMPACT_PERCENTAGE",
                            MatchOptions = new[]
                            {
                                "GREATER_THAN_OR_EQUAL",
                            },
                            Values = new[]
                            {
                                "50",
                            },
                        },
                    },
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.costexplorer.AnomalySubscription;
    import com.pulumi.aws.costexplorer.AnomalySubscriptionArgs;
    import com.pulumi.aws.costexplorer.inputs.AnomalySubscriptionSubscriberArgs;
    import com.pulumi.aws.costexplorer.inputs.AnomalySubscriptionThresholdExpressionArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var test = new AnomalySubscription("test", AnomalySubscriptionArgs.builder()
                .name("AWSServiceMonitor")
                .frequency("DAILY")
                .monitorArnLists(testAwsCeAnomalyMonitor.arn())
                .subscribers(AnomalySubscriptionSubscriberArgs.builder()
                    .type("EMAIL")
                    .address("abc@example.com")
                    .build())
                .thresholdExpression(AnomalySubscriptionThresholdExpressionArgs.builder()
                    .ands(                
                        AnomalySubscriptionThresholdExpressionAndArgs.builder()
                            .dimension(AnomalySubscriptionThresholdExpressionAndDimensionArgs.builder()
                                .key("ANOMALY_TOTAL_IMPACT_ABSOLUTE")
                                .matchOptions("GREATER_THAN_OR_EQUAL")
                                .values("100")
                                .build())
                            .build(),
                        AnomalySubscriptionThresholdExpressionAndArgs.builder()
                            .dimension(AnomalySubscriptionThresholdExpressionAndDimensionArgs.builder()
                                .key("ANOMALY_TOTAL_IMPACT_PERCENTAGE")
                                .matchOptions("GREATER_THAN_OR_EQUAL")
                                .values("50")
                                .build())
                            .build())
                    .build())
                .build());
    
        }
    }
    
    resources:
      test:
        type: aws:costexplorer:AnomalySubscription
        properties:
          name: AWSServiceMonitor
          frequency: DAILY
          monitorArnLists:
            - ${testAwsCeAnomalyMonitor.arn}
          subscribers:
            - type: EMAIL
              address: abc@example.com
          thresholdExpression:
            ands:
              - dimension:
                  key: ANOMALY_TOTAL_IMPACT_ABSOLUTE
                  matchOptions:
                    - GREATER_THAN_OR_EQUAL
                  values:
                    - '100'
              - dimension:
                  key: ANOMALY_TOTAL_IMPACT_PERCENTAGE
                  matchOptions:
                    - GREATER_THAN_OR_EQUAL
                  values:
                    - '50'
    

    SNS Example

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const costAnomalyUpdates = new aws.sns.Topic("cost_anomaly_updates", {name: "CostAnomalyUpdates"});
    const snsTopicPolicy = pulumi.all([costAnomalyUpdates.arn, costAnomalyUpdates.arn]).apply(([costAnomalyUpdatesArn, costAnomalyUpdatesArn1]) => aws.iam.getPolicyDocumentOutput({
        policyId: "__default_policy_ID",
        statements: [
            {
                sid: "AWSAnomalyDetectionSNSPublishingPermissions",
                actions: ["SNS:Publish"],
                effect: "Allow",
                principals: [{
                    type: "Service",
                    identifiers: ["costalerts.amazonaws.com"],
                }],
                resources: [costAnomalyUpdatesArn],
            },
            {
                sid: "__default_statement_ID",
                actions: [
                    "SNS:Subscribe",
                    "SNS:SetTopicAttributes",
                    "SNS:RemovePermission",
                    "SNS:Receive",
                    "SNS:Publish",
                    "SNS:ListSubscriptionsByTopic",
                    "SNS:GetTopicAttributes",
                    "SNS:DeleteTopic",
                    "SNS:AddPermission",
                ],
                conditions: [{
                    test: "StringEquals",
                    variable: "AWS:SourceOwner",
                    values: [accountId],
                }],
                effect: "Allow",
                principals: [{
                    type: "AWS",
                    identifiers: ["*"],
                }],
                resources: [costAnomalyUpdatesArn1],
            },
        ],
    }));
    const _default = new aws.sns.TopicPolicy("default", {
        arn: costAnomalyUpdates.arn,
        policy: snsTopicPolicy.apply(snsTopicPolicy => snsTopicPolicy.json),
    });
    const anomalyMonitor = new aws.costexplorer.AnomalyMonitor("anomaly_monitor", {
        name: "AWSServiceMonitor",
        monitorType: "DIMENSIONAL",
        monitorDimension: "SERVICE",
    });
    const realtimeSubscription = new aws.costexplorer.AnomalySubscription("realtime_subscription", {
        name: "RealtimeAnomalySubscription",
        frequency: "IMMEDIATE",
        monitorArnLists: [anomalyMonitor.arn],
        subscribers: [{
            type: "SNS",
            address: costAnomalyUpdates.arn,
        }],
    }, {
        dependsOn: [_default],
    });
    
    import pulumi
    import pulumi_aws as aws
    
    cost_anomaly_updates = aws.sns.Topic("cost_anomaly_updates", name="CostAnomalyUpdates")
    sns_topic_policy = pulumi.Output.all(
        costAnomalyUpdatesArn=cost_anomaly_updates.arn,
        costAnomalyUpdatesArn1=cost_anomaly_updates.arn
    ).apply(lambda resolved_outputs: aws.iam.get_policy_document_output(policy_id="__default_policy_ID",
        statements=[
            {
                "sid": "AWSAnomalyDetectionSNSPublishingPermissions",
                "actions": ["SNS:Publish"],
                "effect": "Allow",
                "principals": [{
                    "type": "Service",
                    "identifiers": ["costalerts.amazonaws.com"],
                }],
                "resources": [%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference)],
            },
            {
                "sid": "__default_statement_ID",
                "actions": [
                    "SNS:Subscribe",
                    "SNS:SetTopicAttributes",
                    "SNS:RemovePermission",
                    "SNS:Receive",
                    "SNS:Publish",
                    "SNS:ListSubscriptionsByTopic",
                    "SNS:GetTopicAttributes",
                    "SNS:DeleteTopic",
                    "SNS:AddPermission",
                ],
                "conditions": [{
                    "test": "StringEquals",
                    "variable": "AWS:SourceOwner",
                    "values": [account_id],
                }],
                "effect": "Allow",
                "principals": [{
                    "type": "AWS",
                    "identifiers": ["*"],
                }],
                "resources": [%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference)],
            },
        ]))
    
    default = aws.sns.TopicPolicy("default",
        arn=cost_anomaly_updates.arn,
        policy=sns_topic_policy.json)
    anomaly_monitor = aws.costexplorer.AnomalyMonitor("anomaly_monitor",
        name="AWSServiceMonitor",
        monitor_type="DIMENSIONAL",
        monitor_dimension="SERVICE")
    realtime_subscription = aws.costexplorer.AnomalySubscription("realtime_subscription",
        name="RealtimeAnomalySubscription",
        frequency="IMMEDIATE",
        monitor_arn_lists=[anomaly_monitor.arn],
        subscribers=[{
            "type": "SNS",
            "address": cost_anomaly_updates.arn,
        }],
        opts = pulumi.ResourceOptions(depends_on=[default]))
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/costexplorer"
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam"
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sns"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    func main() {
    pulumi.Run(func(ctx *pulumi.Context) error {
    costAnomalyUpdates, err := sns.NewTopic(ctx, "cost_anomaly_updates", &sns.TopicArgs{
    Name: pulumi.String("CostAnomalyUpdates"),
    })
    if err != nil {
    return err
    }
    snsTopicPolicy := pulumi.All(costAnomalyUpdates.Arn,costAnomalyUpdates.Arn).ApplyT(func(_args []interface{}) (iam.GetPolicyDocumentResult, error) {
    costAnomalyUpdatesArn := _args[0].(string)
    costAnomalyUpdatesArn1 := _args[1].(string)
    return iam.GetPolicyDocumentResult(interface{}(iam.GetPolicyDocumentOutput(ctx, iam.GetPolicyDocumentOutputArgs{
    PolicyId: "__default_policy_ID",
    Statements: []iam.GetPolicyDocumentStatement{
    {
    Sid: "AWSAnomalyDetectionSNSPublishingPermissions",
    Actions: []string{
    "SNS:Publish",
    },
    Effect: "Allow",
    Principals: []iam.GetPolicyDocumentStatementPrincipal{
    {
    Type: "Service",
    Identifiers: []string{
    "costalerts.amazonaws.com",
    },
    },
    },
    Resources: interface{}{
    costAnomalyUpdatesArn,
    },
    },
    {
    Sid: "__default_statement_ID",
    Actions: []string{
    "SNS:Subscribe",
    "SNS:SetTopicAttributes",
    "SNS:RemovePermission",
    "SNS:Receive",
    "SNS:Publish",
    "SNS:ListSubscriptionsByTopic",
    "SNS:GetTopicAttributes",
    "SNS:DeleteTopic",
    "SNS:AddPermission",
    },
    Conditions: []iam.GetPolicyDocumentStatementCondition{
    {
    Test: "StringEquals",
    Variable: "AWS:SourceOwner",
    Values: interface{}{
    accountId,
    },
    },
    },
    Effect: "Allow",
    Principals: []iam.GetPolicyDocumentStatementPrincipal{
    {
    Type: "AWS",
    Identifiers: []string{
    "*",
    },
    },
    },
    Resources: interface{}{
    costAnomalyUpdatesArn1,
    },
    },
    },
    }, nil))), nil
    }).(iam.GetPolicyDocumentResultOutput)
    _, err = sns.NewTopicPolicy(ctx, "default", &sns.TopicPolicyArgs{
    Arn: costAnomalyUpdates.Arn,
    Policy: pulumi.String(snsTopicPolicy.ApplyT(func(snsTopicPolicy iam.GetPolicyDocumentResult) (*string, error) {
    return &snsTopicPolicy.Json, nil
    }).(pulumi.StringPtrOutput)),
    })
    if err != nil {
    return err
    }
    anomalyMonitor, err := costexplorer.NewAnomalyMonitor(ctx, "anomaly_monitor", &costexplorer.AnomalyMonitorArgs{
    Name: pulumi.String("AWSServiceMonitor"),
    MonitorType: pulumi.String("DIMENSIONAL"),
    MonitorDimension: pulumi.String("SERVICE"),
    })
    if err != nil {
    return err
    }
    _, err = costexplorer.NewAnomalySubscription(ctx, "realtime_subscription", &costexplorer.AnomalySubscriptionArgs{
    Name: pulumi.String("RealtimeAnomalySubscription"),
    Frequency: pulumi.String("IMMEDIATE"),
    MonitorArnLists: pulumi.StringArray{
    anomalyMonitor.Arn,
    },
    Subscribers: costexplorer.AnomalySubscriptionSubscriberArray{
    &costexplorer.AnomalySubscriptionSubscriberArgs{
    Type: pulumi.String("SNS"),
    Address: costAnomalyUpdates.Arn,
    },
    },
    }, pulumi.DependsOn([]pulumi.Resource{
    _default,
    }))
    if err != nil {
    return err
    }
    return nil
    })
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var costAnomalyUpdates = new Aws.Sns.Topic("cost_anomaly_updates", new()
        {
            Name = "CostAnomalyUpdates",
        });
    
        var snsTopicPolicy = Aws.Iam.GetPolicyDocument.Invoke(new()
        {
            PolicyId = "__default_policy_ID",
            Statements = new[]
            {
                new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs
                {
                    Sid = "AWSAnomalyDetectionSNSPublishingPermissions",
                    Actions = new[]
                    {
                        "SNS:Publish",
                    },
                    Effect = "Allow",
                    Principals = new[]
                    {
                        new Aws.Iam.Inputs.GetPolicyDocumentStatementPrincipalInputArgs
                        {
                            Type = "Service",
                            Identifiers = new[]
                            {
                                "costalerts.amazonaws.com",
                            },
                        },
                    },
                    Resources = new[]
                    {
                        costAnomalyUpdates.Arn,
                    },
                },
                new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs
                {
                    Sid = "__default_statement_ID",
                    Actions = new[]
                    {
                        "SNS:Subscribe",
                        "SNS:SetTopicAttributes",
                        "SNS:RemovePermission",
                        "SNS:Receive",
                        "SNS:Publish",
                        "SNS:ListSubscriptionsByTopic",
                        "SNS:GetTopicAttributes",
                        "SNS:DeleteTopic",
                        "SNS:AddPermission",
                    },
                    Conditions = new[]
                    {
                        new Aws.Iam.Inputs.GetPolicyDocumentStatementConditionInputArgs
                        {
                            Test = "StringEquals",
                            Variable = "AWS:SourceOwner",
                            Values = new[]
                            {
                                accountId,
                            },
                        },
                    },
                    Effect = "Allow",
                    Principals = new[]
                    {
                        new Aws.Iam.Inputs.GetPolicyDocumentStatementPrincipalInputArgs
                        {
                            Type = "AWS",
                            Identifiers = new[]
                            {
                                "*",
                            },
                        },
                    },
                    Resources = new[]
                    {
                        costAnomalyUpdates.Arn,
                    },
                },
            },
        });
    
        var @default = new Aws.Sns.TopicPolicy("default", new()
        {
            Arn = costAnomalyUpdates.Arn,
            Policy = snsTopicPolicy.Apply(getPolicyDocumentResult => getPolicyDocumentResult.Json),
        });
    
        var anomalyMonitor = new Aws.CostExplorer.AnomalyMonitor("anomaly_monitor", new()
        {
            Name = "AWSServiceMonitor",
            MonitorType = "DIMENSIONAL",
            MonitorDimension = "SERVICE",
        });
    
        var realtimeSubscription = new Aws.CostExplorer.AnomalySubscription("realtime_subscription", new()
        {
            Name = "RealtimeAnomalySubscription",
            Frequency = "IMMEDIATE",
            MonitorArnLists = new[]
            {
                anomalyMonitor.Arn,
            },
            Subscribers = new[]
            {
                new Aws.CostExplorer.Inputs.AnomalySubscriptionSubscriberArgs
                {
                    Type = "SNS",
                    Address = costAnomalyUpdates.Arn,
                },
            },
        }, new CustomResourceOptions
        {
            DependsOn =
            {
                @default,
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.sns.Topic;
    import com.pulumi.aws.sns.TopicArgs;
    import com.pulumi.aws.iam.IamFunctions;
    import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;
    import com.pulumi.aws.sns.TopicPolicy;
    import com.pulumi.aws.sns.TopicPolicyArgs;
    import com.pulumi.aws.costexplorer.AnomalyMonitor;
    import com.pulumi.aws.costexplorer.AnomalyMonitorArgs;
    import com.pulumi.aws.costexplorer.AnomalySubscription;
    import com.pulumi.aws.costexplorer.AnomalySubscriptionArgs;
    import com.pulumi.aws.costexplorer.inputs.AnomalySubscriptionSubscriberArgs;
    import com.pulumi.resources.CustomResourceOptions;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var costAnomalyUpdates = new Topic("costAnomalyUpdates", TopicArgs.builder()
                .name("CostAnomalyUpdates")
                .build());
    
            final var snsTopicPolicy = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
                .policyId("__default_policy_ID")
                .statements(            
                    GetPolicyDocumentStatementArgs.builder()
                        .sid("AWSAnomalyDetectionSNSPublishingPermissions")
                        .actions("SNS:Publish")
                        .effect("Allow")
                        .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                            .type("Service")
                            .identifiers("costalerts.amazonaws.com")
                            .build())
                        .resources(costAnomalyUpdates.arn())
                        .build(),
                    GetPolicyDocumentStatementArgs.builder()
                        .sid("__default_statement_ID")
                        .actions(                    
                            "SNS:Subscribe",
                            "SNS:SetTopicAttributes",
                            "SNS:RemovePermission",
                            "SNS:Receive",
                            "SNS:Publish",
                            "SNS:ListSubscriptionsByTopic",
                            "SNS:GetTopicAttributes",
                            "SNS:DeleteTopic",
                            "SNS:AddPermission")
                        .conditions(GetPolicyDocumentStatementConditionArgs.builder()
                            .test("StringEquals")
                            .variable("AWS:SourceOwner")
                            .values(accountId)
                            .build())
                        .effect("Allow")
                        .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                            .type("AWS")
                            .identifiers("*")
                            .build())
                        .resources(costAnomalyUpdates.arn())
                        .build())
                .build());
    
            var default_ = new TopicPolicy("default", TopicPolicyArgs.builder()
                .arn(costAnomalyUpdates.arn())
                .policy(snsTopicPolicy.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult).applyValue(snsTopicPolicy -> snsTopicPolicy.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult.json())))
                .build());
    
            var anomalyMonitor = new AnomalyMonitor("anomalyMonitor", AnomalyMonitorArgs.builder()
                .name("AWSServiceMonitor")
                .monitorType("DIMENSIONAL")
                .monitorDimension("SERVICE")
                .build());
    
            var realtimeSubscription = new AnomalySubscription("realtimeSubscription", AnomalySubscriptionArgs.builder()
                .name("RealtimeAnomalySubscription")
                .frequency("IMMEDIATE")
                .monitorArnLists(anomalyMonitor.arn())
                .subscribers(AnomalySubscriptionSubscriberArgs.builder()
                    .type("SNS")
                    .address(costAnomalyUpdates.arn())
                    .build())
                .build(), CustomResourceOptions.builder()
                    .dependsOn(default_)
                    .build());
    
        }
    }
    
    resources:
      costAnomalyUpdates:
        type: aws:sns:Topic
        name: cost_anomaly_updates
        properties:
          name: CostAnomalyUpdates
      default:
        type: aws:sns:TopicPolicy
        properties:
          arn: ${costAnomalyUpdates.arn}
          policy: ${snsTopicPolicy.json}
      anomalyMonitor:
        type: aws:costexplorer:AnomalyMonitor
        name: anomaly_monitor
        properties:
          name: AWSServiceMonitor
          monitorType: DIMENSIONAL
          monitorDimension: SERVICE
      realtimeSubscription:
        type: aws:costexplorer:AnomalySubscription
        name: realtime_subscription
        properties:
          name: RealtimeAnomalySubscription
          frequency: IMMEDIATE
          monitorArnLists:
            - ${anomalyMonitor.arn}
          subscribers:
            - type: SNS
              address: ${costAnomalyUpdates.arn}
        options:
          dependson:
            - ${default}
    variables:
      snsTopicPolicy:
        fn::invoke:
          Function: aws:iam:getPolicyDocument
          Arguments:
            policyId: __default_policy_ID
            statements:
              - sid: AWSAnomalyDetectionSNSPublishingPermissions
                actions:
                  - SNS:Publish
                effect: Allow
                principals:
                  - type: Service
                    identifiers:
                      - costalerts.amazonaws.com
                resources:
                  - ${costAnomalyUpdates.arn}
              - sid: __default_statement_ID
                actions:
                  - SNS:Subscribe
                  - SNS:SetTopicAttributes
                  - SNS:RemovePermission
                  - SNS:Receive
                  - SNS:Publish
                  - SNS:ListSubscriptionsByTopic
                  - SNS:GetTopicAttributes
                  - SNS:DeleteTopic
                  - SNS:AddPermission
                conditions:
                  - test: StringEquals
                    variable: AWS:SourceOwner
                    values:
                      - ${accountId}
                effect: Allow
                principals:
                  - type: AWS
                    identifiers:
                      - '*'
                resources:
                  - ${costAnomalyUpdates.arn}
    

    Create AnomalySubscription Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new AnomalySubscription(name: string, args: AnomalySubscriptionArgs, opts?: CustomResourceOptions);
    @overload
    def AnomalySubscription(resource_name: str,
                            args: AnomalySubscriptionArgs,
                            opts: Optional[ResourceOptions] = None)
    
    @overload
    def AnomalySubscription(resource_name: str,
                            opts: Optional[ResourceOptions] = None,
                            frequency: Optional[str] = None,
                            monitor_arn_lists: Optional[Sequence[str]] = None,
                            subscribers: Optional[Sequence[AnomalySubscriptionSubscriberArgs]] = None,
                            account_id: Optional[str] = None,
                            name: Optional[str] = None,
                            tags: Optional[Mapping[str, str]] = None,
                            threshold_expression: Optional[AnomalySubscriptionThresholdExpressionArgs] = None)
    func NewAnomalySubscription(ctx *Context, name string, args AnomalySubscriptionArgs, opts ...ResourceOption) (*AnomalySubscription, error)
    public AnomalySubscription(string name, AnomalySubscriptionArgs args, CustomResourceOptions? opts = null)
    public AnomalySubscription(String name, AnomalySubscriptionArgs args)
    public AnomalySubscription(String name, AnomalySubscriptionArgs args, CustomResourceOptions options)
    
    type: aws:costexplorer:AnomalySubscription
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    

    Parameters

    name string
    The unique name of the resource.
    args AnomalySubscriptionArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args AnomalySubscriptionArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args AnomalySubscriptionArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args AnomalySubscriptionArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args AnomalySubscriptionArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Constructor example

    The following reference example uses placeholder values for all input properties.

    var anomalySubscriptionResource = new Aws.CostExplorer.AnomalySubscription("anomalySubscriptionResource", new()
    {
        Frequency = "string",
        MonitorArnLists = new[]
        {
            "string",
        },
        Subscribers = new[]
        {
            new Aws.CostExplorer.Inputs.AnomalySubscriptionSubscriberArgs
            {
                Address = "string",
                Type = "string",
            },
        },
        AccountId = "string",
        Name = "string",
        Tags = 
        {
            { "string", "string" },
        },
        ThresholdExpression = new Aws.CostExplorer.Inputs.AnomalySubscriptionThresholdExpressionArgs
        {
            Ands = new[]
            {
                new Aws.CostExplorer.Inputs.AnomalySubscriptionThresholdExpressionAndArgs
                {
                    CostCategory = new Aws.CostExplorer.Inputs.AnomalySubscriptionThresholdExpressionAndCostCategoryArgs
                    {
                        Key = "string",
                        MatchOptions = new[]
                        {
                            "string",
                        },
                        Values = new[]
                        {
                            "string",
                        },
                    },
                    Dimension = new Aws.CostExplorer.Inputs.AnomalySubscriptionThresholdExpressionAndDimensionArgs
                    {
                        Key = "string",
                        MatchOptions = new[]
                        {
                            "string",
                        },
                        Values = new[]
                        {
                            "string",
                        },
                    },
                    Tags = new Aws.CostExplorer.Inputs.AnomalySubscriptionThresholdExpressionAndTagsArgs
                    {
                        Key = "string",
                        MatchOptions = new[]
                        {
                            "string",
                        },
                        Values = new[]
                        {
                            "string",
                        },
                    },
                },
            },
            CostCategory = new Aws.CostExplorer.Inputs.AnomalySubscriptionThresholdExpressionCostCategoryArgs
            {
                Key = "string",
                MatchOptions = new[]
                {
                    "string",
                },
                Values = new[]
                {
                    "string",
                },
            },
            Dimension = new Aws.CostExplorer.Inputs.AnomalySubscriptionThresholdExpressionDimensionArgs
            {
                Key = "string",
                MatchOptions = new[]
                {
                    "string",
                },
                Values = new[]
                {
                    "string",
                },
            },
            Not = new Aws.CostExplorer.Inputs.AnomalySubscriptionThresholdExpressionNotArgs
            {
                CostCategory = new Aws.CostExplorer.Inputs.AnomalySubscriptionThresholdExpressionNotCostCategoryArgs
                {
                    Key = "string",
                    MatchOptions = new[]
                    {
                        "string",
                    },
                    Values = new[]
                    {
                        "string",
                    },
                },
                Dimension = new Aws.CostExplorer.Inputs.AnomalySubscriptionThresholdExpressionNotDimensionArgs
                {
                    Key = "string",
                    MatchOptions = new[]
                    {
                        "string",
                    },
                    Values = new[]
                    {
                        "string",
                    },
                },
                Tags = new Aws.CostExplorer.Inputs.AnomalySubscriptionThresholdExpressionNotTagsArgs
                {
                    Key = "string",
                    MatchOptions = new[]
                    {
                        "string",
                    },
                    Values = new[]
                    {
                        "string",
                    },
                },
            },
            Ors = new[]
            {
                new Aws.CostExplorer.Inputs.AnomalySubscriptionThresholdExpressionOrArgs
                {
                    CostCategory = new Aws.CostExplorer.Inputs.AnomalySubscriptionThresholdExpressionOrCostCategoryArgs
                    {
                        Key = "string",
                        MatchOptions = new[]
                        {
                            "string",
                        },
                        Values = new[]
                        {
                            "string",
                        },
                    },
                    Dimension = new Aws.CostExplorer.Inputs.AnomalySubscriptionThresholdExpressionOrDimensionArgs
                    {
                        Key = "string",
                        MatchOptions = new[]
                        {
                            "string",
                        },
                        Values = new[]
                        {
                            "string",
                        },
                    },
                    Tags = new Aws.CostExplorer.Inputs.AnomalySubscriptionThresholdExpressionOrTagsArgs
                    {
                        Key = "string",
                        MatchOptions = new[]
                        {
                            "string",
                        },
                        Values = new[]
                        {
                            "string",
                        },
                    },
                },
            },
            Tags = new Aws.CostExplorer.Inputs.AnomalySubscriptionThresholdExpressionTagsArgs
            {
                Key = "string",
                MatchOptions = new[]
                {
                    "string",
                },
                Values = new[]
                {
                    "string",
                },
            },
        },
    });
    
    example, err := costexplorer.NewAnomalySubscription(ctx, "anomalySubscriptionResource", &costexplorer.AnomalySubscriptionArgs{
    	Frequency: pulumi.String("string"),
    	MonitorArnLists: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	Subscribers: costexplorer.AnomalySubscriptionSubscriberArray{
    		&costexplorer.AnomalySubscriptionSubscriberArgs{
    			Address: pulumi.String("string"),
    			Type:    pulumi.String("string"),
    		},
    	},
    	AccountId: pulumi.String("string"),
    	Name:      pulumi.String("string"),
    	Tags: pulumi.StringMap{
    		"string": pulumi.String("string"),
    	},
    	ThresholdExpression: &costexplorer.AnomalySubscriptionThresholdExpressionArgs{
    		Ands: costexplorer.AnomalySubscriptionThresholdExpressionAndArray{
    			&costexplorer.AnomalySubscriptionThresholdExpressionAndArgs{
    				CostCategory: &costexplorer.AnomalySubscriptionThresholdExpressionAndCostCategoryArgs{
    					Key: pulumi.String("string"),
    					MatchOptions: pulumi.StringArray{
    						pulumi.String("string"),
    					},
    					Values: pulumi.StringArray{
    						pulumi.String("string"),
    					},
    				},
    				Dimension: &costexplorer.AnomalySubscriptionThresholdExpressionAndDimensionArgs{
    					Key: pulumi.String("string"),
    					MatchOptions: pulumi.StringArray{
    						pulumi.String("string"),
    					},
    					Values: pulumi.StringArray{
    						pulumi.String("string"),
    					},
    				},
    				Tags: &costexplorer.AnomalySubscriptionThresholdExpressionAndTagsArgs{
    					Key: pulumi.String("string"),
    					MatchOptions: pulumi.StringArray{
    						pulumi.String("string"),
    					},
    					Values: pulumi.StringArray{
    						pulumi.String("string"),
    					},
    				},
    			},
    		},
    		CostCategory: &costexplorer.AnomalySubscriptionThresholdExpressionCostCategoryArgs{
    			Key: pulumi.String("string"),
    			MatchOptions: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    			Values: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    		},
    		Dimension: &costexplorer.AnomalySubscriptionThresholdExpressionDimensionArgs{
    			Key: pulumi.String("string"),
    			MatchOptions: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    			Values: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    		},
    		Not: &costexplorer.AnomalySubscriptionThresholdExpressionNotArgs{
    			CostCategory: &costexplorer.AnomalySubscriptionThresholdExpressionNotCostCategoryArgs{
    				Key: pulumi.String("string"),
    				MatchOptions: pulumi.StringArray{
    					pulumi.String("string"),
    				},
    				Values: pulumi.StringArray{
    					pulumi.String("string"),
    				},
    			},
    			Dimension: &costexplorer.AnomalySubscriptionThresholdExpressionNotDimensionArgs{
    				Key: pulumi.String("string"),
    				MatchOptions: pulumi.StringArray{
    					pulumi.String("string"),
    				},
    				Values: pulumi.StringArray{
    					pulumi.String("string"),
    				},
    			},
    			Tags: &costexplorer.AnomalySubscriptionThresholdExpressionNotTagsArgs{
    				Key: pulumi.String("string"),
    				MatchOptions: pulumi.StringArray{
    					pulumi.String("string"),
    				},
    				Values: pulumi.StringArray{
    					pulumi.String("string"),
    				},
    			},
    		},
    		Ors: costexplorer.AnomalySubscriptionThresholdExpressionOrArray{
    			&costexplorer.AnomalySubscriptionThresholdExpressionOrArgs{
    				CostCategory: &costexplorer.AnomalySubscriptionThresholdExpressionOrCostCategoryArgs{
    					Key: pulumi.String("string"),
    					MatchOptions: pulumi.StringArray{
    						pulumi.String("string"),
    					},
    					Values: pulumi.StringArray{
    						pulumi.String("string"),
    					},
    				},
    				Dimension: &costexplorer.AnomalySubscriptionThresholdExpressionOrDimensionArgs{
    					Key: pulumi.String("string"),
    					MatchOptions: pulumi.StringArray{
    						pulumi.String("string"),
    					},
    					Values: pulumi.StringArray{
    						pulumi.String("string"),
    					},
    				},
    				Tags: &costexplorer.AnomalySubscriptionThresholdExpressionOrTagsArgs{
    					Key: pulumi.String("string"),
    					MatchOptions: pulumi.StringArray{
    						pulumi.String("string"),
    					},
    					Values: pulumi.StringArray{
    						pulumi.String("string"),
    					},
    				},
    			},
    		},
    		Tags: &costexplorer.AnomalySubscriptionThresholdExpressionTagsArgs{
    			Key: pulumi.String("string"),
    			MatchOptions: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    			Values: pulumi.StringArray{
    				pulumi.String("string"),
    			},
    		},
    	},
    })
    
    var anomalySubscriptionResource = new AnomalySubscription("anomalySubscriptionResource", AnomalySubscriptionArgs.builder()
        .frequency("string")
        .monitorArnLists("string")
        .subscribers(AnomalySubscriptionSubscriberArgs.builder()
            .address("string")
            .type("string")
            .build())
        .accountId("string")
        .name("string")
        .tags(Map.of("string", "string"))
        .thresholdExpression(AnomalySubscriptionThresholdExpressionArgs.builder()
            .ands(AnomalySubscriptionThresholdExpressionAndArgs.builder()
                .costCategory(AnomalySubscriptionThresholdExpressionAndCostCategoryArgs.builder()
                    .key("string")
                    .matchOptions("string")
                    .values("string")
                    .build())
                .dimension(AnomalySubscriptionThresholdExpressionAndDimensionArgs.builder()
                    .key("string")
                    .matchOptions("string")
                    .values("string")
                    .build())
                .tags(AnomalySubscriptionThresholdExpressionAndTagsArgs.builder()
                    .key("string")
                    .matchOptions("string")
                    .values("string")
                    .build())
                .build())
            .costCategory(AnomalySubscriptionThresholdExpressionCostCategoryArgs.builder()
                .key("string")
                .matchOptions("string")
                .values("string")
                .build())
            .dimension(AnomalySubscriptionThresholdExpressionDimensionArgs.builder()
                .key("string")
                .matchOptions("string")
                .values("string")
                .build())
            .not(AnomalySubscriptionThresholdExpressionNotArgs.builder()
                .costCategory(AnomalySubscriptionThresholdExpressionNotCostCategoryArgs.builder()
                    .key("string")
                    .matchOptions("string")
                    .values("string")
                    .build())
                .dimension(AnomalySubscriptionThresholdExpressionNotDimensionArgs.builder()
                    .key("string")
                    .matchOptions("string")
                    .values("string")
                    .build())
                .tags(AnomalySubscriptionThresholdExpressionNotTagsArgs.builder()
                    .key("string")
                    .matchOptions("string")
                    .values("string")
                    .build())
                .build())
            .ors(AnomalySubscriptionThresholdExpressionOrArgs.builder()
                .costCategory(AnomalySubscriptionThresholdExpressionOrCostCategoryArgs.builder()
                    .key("string")
                    .matchOptions("string")
                    .values("string")
                    .build())
                .dimension(AnomalySubscriptionThresholdExpressionOrDimensionArgs.builder()
                    .key("string")
                    .matchOptions("string")
                    .values("string")
                    .build())
                .tags(AnomalySubscriptionThresholdExpressionOrTagsArgs.builder()
                    .key("string")
                    .matchOptions("string")
                    .values("string")
                    .build())
                .build())
            .tags(AnomalySubscriptionThresholdExpressionTagsArgs.builder()
                .key("string")
                .matchOptions("string")
                .values("string")
                .build())
            .build())
        .build());
    
    anomaly_subscription_resource = aws.costexplorer.AnomalySubscription("anomalySubscriptionResource",
        frequency="string",
        monitor_arn_lists=["string"],
        subscribers=[{
            "address": "string",
            "type": "string",
        }],
        account_id="string",
        name="string",
        tags={
            "string": "string",
        },
        threshold_expression={
            "ands": [{
                "cost_category": {
                    "key": "string",
                    "match_options": ["string"],
                    "values": ["string"],
                },
                "dimension": {
                    "key": "string",
                    "match_options": ["string"],
                    "values": ["string"],
                },
                "tags": {
                    "key": "string",
                    "match_options": ["string"],
                    "values": ["string"],
                },
            }],
            "cost_category": {
                "key": "string",
                "match_options": ["string"],
                "values": ["string"],
            },
            "dimension": {
                "key": "string",
                "match_options": ["string"],
                "values": ["string"],
            },
            "not_": {
                "cost_category": {
                    "key": "string",
                    "match_options": ["string"],
                    "values": ["string"],
                },
                "dimension": {
                    "key": "string",
                    "match_options": ["string"],
                    "values": ["string"],
                },
                "tags": {
                    "key": "string",
                    "match_options": ["string"],
                    "values": ["string"],
                },
            },
            "ors": [{
                "cost_category": {
                    "key": "string",
                    "match_options": ["string"],
                    "values": ["string"],
                },
                "dimension": {
                    "key": "string",
                    "match_options": ["string"],
                    "values": ["string"],
                },
                "tags": {
                    "key": "string",
                    "match_options": ["string"],
                    "values": ["string"],
                },
            }],
            "tags": {
                "key": "string",
                "match_options": ["string"],
                "values": ["string"],
            },
        })
    
    const anomalySubscriptionResource = new aws.costexplorer.AnomalySubscription("anomalySubscriptionResource", {
        frequency: "string",
        monitorArnLists: ["string"],
        subscribers: [{
            address: "string",
            type: "string",
        }],
        accountId: "string",
        name: "string",
        tags: {
            string: "string",
        },
        thresholdExpression: {
            ands: [{
                costCategory: {
                    key: "string",
                    matchOptions: ["string"],
                    values: ["string"],
                },
                dimension: {
                    key: "string",
                    matchOptions: ["string"],
                    values: ["string"],
                },
                tags: {
                    key: "string",
                    matchOptions: ["string"],
                    values: ["string"],
                },
            }],
            costCategory: {
                key: "string",
                matchOptions: ["string"],
                values: ["string"],
            },
            dimension: {
                key: "string",
                matchOptions: ["string"],
                values: ["string"],
            },
            not: {
                costCategory: {
                    key: "string",
                    matchOptions: ["string"],
                    values: ["string"],
                },
                dimension: {
                    key: "string",
                    matchOptions: ["string"],
                    values: ["string"],
                },
                tags: {
                    key: "string",
                    matchOptions: ["string"],
                    values: ["string"],
                },
            },
            ors: [{
                costCategory: {
                    key: "string",
                    matchOptions: ["string"],
                    values: ["string"],
                },
                dimension: {
                    key: "string",
                    matchOptions: ["string"],
                    values: ["string"],
                },
                tags: {
                    key: "string",
                    matchOptions: ["string"],
                    values: ["string"],
                },
            }],
            tags: {
                key: "string",
                matchOptions: ["string"],
                values: ["string"],
            },
        },
    });
    
    type: aws:costexplorer:AnomalySubscription
    properties:
        accountId: string
        frequency: string
        monitorArnLists:
            - string
        name: string
        subscribers:
            - address: string
              type: string
        tags:
            string: string
        thresholdExpression:
            ands:
                - costCategory:
                    key: string
                    matchOptions:
                        - string
                    values:
                        - string
                  dimension:
                    key: string
                    matchOptions:
                        - string
                    values:
                        - string
                  tags:
                    key: string
                    matchOptions:
                        - string
                    values:
                        - string
            costCategory:
                key: string
                matchOptions:
                    - string
                values:
                    - string
            dimension:
                key: string
                matchOptions:
                    - string
                values:
                    - string
            not:
                costCategory:
                    key: string
                    matchOptions:
                        - string
                    values:
                        - string
                dimension:
                    key: string
                    matchOptions:
                        - string
                    values:
                        - string
                tags:
                    key: string
                    matchOptions:
                        - string
                    values:
                        - string
            ors:
                - costCategory:
                    key: string
                    matchOptions:
                        - string
                    values:
                        - string
                  dimension:
                    key: string
                    matchOptions:
                        - string
                    values:
                        - string
                  tags:
                    key: string
                    matchOptions:
                        - string
                    values:
                        - string
            tags:
                key: string
                matchOptions:
                    - string
                values:
                    - string
    

    AnomalySubscription Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

    The AnomalySubscription resource accepts the following input properties:

    Frequency string
    The frequency that anomaly reports are sent. Valid Values: DAILY | IMMEDIATE | WEEKLY.
    MonitorArnLists List<string>
    A list of cost anomaly monitors.
    Subscribers List<AnomalySubscriptionSubscriber>
    A subscriber configuration. Multiple subscribers can be defined.
    AccountId string
    The unique identifier for the AWS account in which the anomaly subscription ought to be created.
    Name string
    The name for the subscription.
    Tags Dictionary<string, string>
    A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    ThresholdExpression AnomalySubscriptionThresholdExpression
    An Expression object used to specify the anomalies that you want to generate alerts for. See Threshold Expression.
    Frequency string
    The frequency that anomaly reports are sent. Valid Values: DAILY | IMMEDIATE | WEEKLY.
    MonitorArnLists []string
    A list of cost anomaly monitors.
    Subscribers []AnomalySubscriptionSubscriberArgs
    A subscriber configuration. Multiple subscribers can be defined.
    AccountId string
    The unique identifier for the AWS account in which the anomaly subscription ought to be created.
    Name string
    The name for the subscription.
    Tags map[string]string
    A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    ThresholdExpression AnomalySubscriptionThresholdExpressionArgs
    An Expression object used to specify the anomalies that you want to generate alerts for. See Threshold Expression.
    frequency String
    The frequency that anomaly reports are sent. Valid Values: DAILY | IMMEDIATE | WEEKLY.
    monitorArnLists List<String>
    A list of cost anomaly monitors.
    subscribers List<AnomalySubscriptionSubscriber>
    A subscriber configuration. Multiple subscribers can be defined.
    accountId String
    The unique identifier for the AWS account in which the anomaly subscription ought to be created.
    name String
    The name for the subscription.
    tags Map<String,String>
    A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    thresholdExpression AnomalySubscriptionThresholdExpression
    An Expression object used to specify the anomalies that you want to generate alerts for. See Threshold Expression.
    frequency string
    The frequency that anomaly reports are sent. Valid Values: DAILY | IMMEDIATE | WEEKLY.
    monitorArnLists string[]
    A list of cost anomaly monitors.
    subscribers AnomalySubscriptionSubscriber[]
    A subscriber configuration. Multiple subscribers can be defined.
    accountId string
    The unique identifier for the AWS account in which the anomaly subscription ought to be created.
    name string
    The name for the subscription.
    tags {[key: string]: string}
    A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    thresholdExpression AnomalySubscriptionThresholdExpression
    An Expression object used to specify the anomalies that you want to generate alerts for. See Threshold Expression.
    frequency str
    The frequency that anomaly reports are sent. Valid Values: DAILY | IMMEDIATE | WEEKLY.
    monitor_arn_lists Sequence[str]
    A list of cost anomaly monitors.
    subscribers Sequence[AnomalySubscriptionSubscriberArgs]
    A subscriber configuration. Multiple subscribers can be defined.
    account_id str
    The unique identifier for the AWS account in which the anomaly subscription ought to be created.
    name str
    The name for the subscription.
    tags Mapping[str, str]
    A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    threshold_expression AnomalySubscriptionThresholdExpressionArgs
    An Expression object used to specify the anomalies that you want to generate alerts for. See Threshold Expression.
    frequency String
    The frequency that anomaly reports are sent. Valid Values: DAILY | IMMEDIATE | WEEKLY.
    monitorArnLists List<String>
    A list of cost anomaly monitors.
    subscribers List<Property Map>
    A subscriber configuration. Multiple subscribers can be defined.
    accountId String
    The unique identifier for the AWS account in which the anomaly subscription ought to be created.
    name String
    The name for the subscription.
    tags Map<String>
    A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    thresholdExpression Property Map
    An Expression object used to specify the anomalies that you want to generate alerts for. See Threshold Expression.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the AnomalySubscription resource produces the following output properties:

    Arn string
    ARN of the anomaly subscription.
    Id string
    The provider-assigned unique ID for this managed resource.
    TagsAll Dictionary<string, string>
    A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated: Please use tags instead.

    Arn string
    ARN of the anomaly subscription.
    Id string
    The provider-assigned unique ID for this managed resource.
    TagsAll map[string]string
    A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated: Please use tags instead.

    arn String
    ARN of the anomaly subscription.
    id String
    The provider-assigned unique ID for this managed resource.
    tagsAll Map<String,String>
    A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated: Please use tags instead.

    arn string
    ARN of the anomaly subscription.
    id string
    The provider-assigned unique ID for this managed resource.
    tagsAll {[key: string]: string}
    A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated: Please use tags instead.

    arn str
    ARN of the anomaly subscription.
    id str
    The provider-assigned unique ID for this managed resource.
    tags_all Mapping[str, str]
    A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated: Please use tags instead.

    arn String
    ARN of the anomaly subscription.
    id String
    The provider-assigned unique ID for this managed resource.
    tagsAll Map<String>
    A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated: Please use tags instead.

    Look up Existing AnomalySubscription Resource

    Get an existing AnomalySubscription resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

    public static get(name: string, id: Input<ID>, state?: AnomalySubscriptionState, opts?: CustomResourceOptions): AnomalySubscription
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            account_id: Optional[str] = None,
            arn: Optional[str] = None,
            frequency: Optional[str] = None,
            monitor_arn_lists: Optional[Sequence[str]] = None,
            name: Optional[str] = None,
            subscribers: Optional[Sequence[AnomalySubscriptionSubscriberArgs]] = None,
            tags: Optional[Mapping[str, str]] = None,
            tags_all: Optional[Mapping[str, str]] = None,
            threshold_expression: Optional[AnomalySubscriptionThresholdExpressionArgs] = None) -> AnomalySubscription
    func GetAnomalySubscription(ctx *Context, name string, id IDInput, state *AnomalySubscriptionState, opts ...ResourceOption) (*AnomalySubscription, error)
    public static AnomalySubscription Get(string name, Input<string> id, AnomalySubscriptionState? state, CustomResourceOptions? opts = null)
    public static AnomalySubscription get(String name, Output<String> id, AnomalySubscriptionState state, CustomResourceOptions options)
    Resource lookup is not supported in YAML
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    AccountId string
    The unique identifier for the AWS account in which the anomaly subscription ought to be created.
    Arn string
    ARN of the anomaly subscription.
    Frequency string
    The frequency that anomaly reports are sent. Valid Values: DAILY | IMMEDIATE | WEEKLY.
    MonitorArnLists List<string>
    A list of cost anomaly monitors.
    Name string
    The name for the subscription.
    Subscribers List<AnomalySubscriptionSubscriber>
    A subscriber configuration. Multiple subscribers can be defined.
    Tags Dictionary<string, string>
    A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    TagsAll Dictionary<string, string>
    A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated: Please use tags instead.

    ThresholdExpression AnomalySubscriptionThresholdExpression
    An Expression object used to specify the anomalies that you want to generate alerts for. See Threshold Expression.
    AccountId string
    The unique identifier for the AWS account in which the anomaly subscription ought to be created.
    Arn string
    ARN of the anomaly subscription.
    Frequency string
    The frequency that anomaly reports are sent. Valid Values: DAILY | IMMEDIATE | WEEKLY.
    MonitorArnLists []string
    A list of cost anomaly monitors.
    Name string
    The name for the subscription.
    Subscribers []AnomalySubscriptionSubscriberArgs
    A subscriber configuration. Multiple subscribers can be defined.
    Tags map[string]string
    A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    TagsAll map[string]string
    A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated: Please use tags instead.

    ThresholdExpression AnomalySubscriptionThresholdExpressionArgs
    An Expression object used to specify the anomalies that you want to generate alerts for. See Threshold Expression.
    accountId String
    The unique identifier for the AWS account in which the anomaly subscription ought to be created.
    arn String
    ARN of the anomaly subscription.
    frequency String
    The frequency that anomaly reports are sent. Valid Values: DAILY | IMMEDIATE | WEEKLY.
    monitorArnLists List<String>
    A list of cost anomaly monitors.
    name String
    The name for the subscription.
    subscribers List<AnomalySubscriptionSubscriber>
    A subscriber configuration. Multiple subscribers can be defined.
    tags Map<String,String>
    A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    tagsAll Map<String,String>
    A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated: Please use tags instead.

    thresholdExpression AnomalySubscriptionThresholdExpression
    An Expression object used to specify the anomalies that you want to generate alerts for. See Threshold Expression.
    accountId string
    The unique identifier for the AWS account in which the anomaly subscription ought to be created.
    arn string
    ARN of the anomaly subscription.
    frequency string
    The frequency that anomaly reports are sent. Valid Values: DAILY | IMMEDIATE | WEEKLY.
    monitorArnLists string[]
    A list of cost anomaly monitors.
    name string
    The name for the subscription.
    subscribers AnomalySubscriptionSubscriber[]
    A subscriber configuration. Multiple subscribers can be defined.
    tags {[key: string]: string}
    A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    tagsAll {[key: string]: string}
    A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated: Please use tags instead.

    thresholdExpression AnomalySubscriptionThresholdExpression
    An Expression object used to specify the anomalies that you want to generate alerts for. See Threshold Expression.
    account_id str
    The unique identifier for the AWS account in which the anomaly subscription ought to be created.
    arn str
    ARN of the anomaly subscription.
    frequency str
    The frequency that anomaly reports are sent. Valid Values: DAILY | IMMEDIATE | WEEKLY.
    monitor_arn_lists Sequence[str]
    A list of cost anomaly monitors.
    name str
    The name for the subscription.
    subscribers Sequence[AnomalySubscriptionSubscriberArgs]
    A subscriber configuration. Multiple subscribers can be defined.
    tags Mapping[str, str]
    A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    tags_all Mapping[str, str]
    A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated: Please use tags instead.

    threshold_expression AnomalySubscriptionThresholdExpressionArgs
    An Expression object used to specify the anomalies that you want to generate alerts for. See Threshold Expression.
    accountId String
    The unique identifier for the AWS account in which the anomaly subscription ought to be created.
    arn String
    ARN of the anomaly subscription.
    frequency String
    The frequency that anomaly reports are sent. Valid Values: DAILY | IMMEDIATE | WEEKLY.
    monitorArnLists List<String>
    A list of cost anomaly monitors.
    name String
    The name for the subscription.
    subscribers List<Property Map>
    A subscriber configuration. Multiple subscribers can be defined.
    tags Map<String>
    A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    tagsAll Map<String>
    A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

    Deprecated: Please use tags instead.

    thresholdExpression Property Map
    An Expression object used to specify the anomalies that you want to generate alerts for. See Threshold Expression.

    Supporting Types

    AnomalySubscriptionSubscriber, AnomalySubscriptionSubscriberArgs

    Address string
    The address of the subscriber. If type is SNS, this will be the arn of the sns topic. If type is EMAIL, this will be the destination email address.
    Type string
    The type of subscription. Valid Values: SNS | EMAIL.
    Address string
    The address of the subscriber. If type is SNS, this will be the arn of the sns topic. If type is EMAIL, this will be the destination email address.
    Type string
    The type of subscription. Valid Values: SNS | EMAIL.
    address String
    The address of the subscriber. If type is SNS, this will be the arn of the sns topic. If type is EMAIL, this will be the destination email address.
    type String
    The type of subscription. Valid Values: SNS | EMAIL.
    address string
    The address of the subscriber. If type is SNS, this will be the arn of the sns topic. If type is EMAIL, this will be the destination email address.
    type string
    The type of subscription. Valid Values: SNS | EMAIL.
    address str
    The address of the subscriber. If type is SNS, this will be the arn of the sns topic. If type is EMAIL, this will be the destination email address.
    type str
    The type of subscription. Valid Values: SNS | EMAIL.
    address String
    The address of the subscriber. If type is SNS, this will be the arn of the sns topic. If type is EMAIL, this will be the destination email address.
    type String
    The type of subscription. Valid Values: SNS | EMAIL.

    AnomalySubscriptionThresholdExpression, AnomalySubscriptionThresholdExpressionArgs

    Ands List<AnomalySubscriptionThresholdExpressionAnd>
    Return results that match both Dimension objects.
    CostCategory AnomalySubscriptionThresholdExpressionCostCategory
    Configuration block for the filter that's based on values. See Cost Category below.
    Dimension AnomalySubscriptionThresholdExpressionDimension
    Configuration block for the specific Dimension to use for.
    Not AnomalySubscriptionThresholdExpressionNot
    Return results that do not match the Dimension object.
    Ors List<AnomalySubscriptionThresholdExpressionOr>
    Return results that match either Dimension object.
    Tags AnomalySubscriptionThresholdExpressionTags
    Configuration block for the specific Tag to use for. See Tags below.
    Ands []AnomalySubscriptionThresholdExpressionAnd
    Return results that match both Dimension objects.
    CostCategory AnomalySubscriptionThresholdExpressionCostCategory
    Configuration block for the filter that's based on values. See Cost Category below.
    Dimension AnomalySubscriptionThresholdExpressionDimension
    Configuration block for the specific Dimension to use for.
    Not AnomalySubscriptionThresholdExpressionNot
    Return results that do not match the Dimension object.
    Ors []AnomalySubscriptionThresholdExpressionOr
    Return results that match either Dimension object.
    Tags AnomalySubscriptionThresholdExpressionTags
    Configuration block for the specific Tag to use for. See Tags below.
    ands List<AnomalySubscriptionThresholdExpressionAnd>
    Return results that match both Dimension objects.
    costCategory AnomalySubscriptionThresholdExpressionCostCategory
    Configuration block for the filter that's based on values. See Cost Category below.
    dimension AnomalySubscriptionThresholdExpressionDimension
    Configuration block for the specific Dimension to use for.
    not AnomalySubscriptionThresholdExpressionNot
    Return results that do not match the Dimension object.
    ors List<AnomalySubscriptionThresholdExpressionOr>
    Return results that match either Dimension object.
    tags AnomalySubscriptionThresholdExpressionTags
    Configuration block for the specific Tag to use for. See Tags below.
    ands AnomalySubscriptionThresholdExpressionAnd[]
    Return results that match both Dimension objects.
    costCategory AnomalySubscriptionThresholdExpressionCostCategory
    Configuration block for the filter that's based on values. See Cost Category below.
    dimension AnomalySubscriptionThresholdExpressionDimension
    Configuration block for the specific Dimension to use for.
    not AnomalySubscriptionThresholdExpressionNot
    Return results that do not match the Dimension object.
    ors AnomalySubscriptionThresholdExpressionOr[]
    Return results that match either Dimension object.
    tags AnomalySubscriptionThresholdExpressionTags
    Configuration block for the specific Tag to use for. See Tags below.
    ands Sequence[AnomalySubscriptionThresholdExpressionAnd]
    Return results that match both Dimension objects.
    cost_category AnomalySubscriptionThresholdExpressionCostCategory
    Configuration block for the filter that's based on values. See Cost Category below.
    dimension AnomalySubscriptionThresholdExpressionDimension
    Configuration block for the specific Dimension to use for.
    not_ AnomalySubscriptionThresholdExpressionNot
    Return results that do not match the Dimension object.
    ors Sequence[AnomalySubscriptionThresholdExpressionOr]
    Return results that match either Dimension object.
    tags AnomalySubscriptionThresholdExpressionTags
    Configuration block for the specific Tag to use for. See Tags below.
    ands List<Property Map>
    Return results that match both Dimension objects.
    costCategory Property Map
    Configuration block for the filter that's based on values. See Cost Category below.
    dimension Property Map
    Configuration block for the specific Dimension to use for.
    not Property Map
    Return results that do not match the Dimension object.
    ors List<Property Map>
    Return results that match either Dimension object.
    tags Property Map
    Configuration block for the specific Tag to use for. See Tags below.

    AnomalySubscriptionThresholdExpressionAnd, AnomalySubscriptionThresholdExpressionAndArgs

    CostCategory AnomalySubscriptionThresholdExpressionAndCostCategory
    Configuration block for the filter that's based on values. See Cost Category below.
    Dimension AnomalySubscriptionThresholdExpressionAndDimension
    Configuration block for the specific Dimension to use for.
    Tags AnomalySubscriptionThresholdExpressionAndTags
    A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    CostCategory AnomalySubscriptionThresholdExpressionAndCostCategory
    Configuration block for the filter that's based on values. See Cost Category below.
    Dimension AnomalySubscriptionThresholdExpressionAndDimension
    Configuration block for the specific Dimension to use for.
    Tags AnomalySubscriptionThresholdExpressionAndTags
    A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    costCategory AnomalySubscriptionThresholdExpressionAndCostCategory
    Configuration block for the filter that's based on values. See Cost Category below.
    dimension AnomalySubscriptionThresholdExpressionAndDimension
    Configuration block for the specific Dimension to use for.
    tags AnomalySubscriptionThresholdExpressionAndTags
    A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    costCategory AnomalySubscriptionThresholdExpressionAndCostCategory
    Configuration block for the filter that's based on values. See Cost Category below.
    dimension AnomalySubscriptionThresholdExpressionAndDimension
    Configuration block for the specific Dimension to use for.
    tags AnomalySubscriptionThresholdExpressionAndTags
    A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    cost_category AnomalySubscriptionThresholdExpressionAndCostCategory
    Configuration block for the filter that's based on values. See Cost Category below.
    dimension AnomalySubscriptionThresholdExpressionAndDimension
    Configuration block for the specific Dimension to use for.
    tags AnomalySubscriptionThresholdExpressionAndTags
    A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    costCategory Property Map
    Configuration block for the filter that's based on values. See Cost Category below.
    dimension Property Map
    Configuration block for the specific Dimension to use for.
    tags Property Map
    A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

    AnomalySubscriptionThresholdExpressionAndCostCategory, AnomalySubscriptionThresholdExpressionAndCostCategoryArgs

    Key string
    Unique name of the Cost Category.
    MatchOptions List<string>
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    Values List<string>
    Specific value of the Cost Category.
    Key string
    Unique name of the Cost Category.
    MatchOptions []string
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    Values []string
    Specific value of the Cost Category.
    key String
    Unique name of the Cost Category.
    matchOptions List<String>
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values List<String>
    Specific value of the Cost Category.
    key string
    Unique name of the Cost Category.
    matchOptions string[]
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values string[]
    Specific value of the Cost Category.
    key str
    Unique name of the Cost Category.
    match_options Sequence[str]
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values Sequence[str]
    Specific value of the Cost Category.
    key String
    Unique name of the Cost Category.
    matchOptions List<String>
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values List<String>
    Specific value of the Cost Category.

    AnomalySubscriptionThresholdExpressionAndDimension, AnomalySubscriptionThresholdExpressionAndDimensionArgs

    Key string
    Unique name of the Cost Category.
    MatchOptions List<string>
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    Values List<string>
    Specific value of the Cost Category.
    Key string
    Unique name of the Cost Category.
    MatchOptions []string
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    Values []string
    Specific value of the Cost Category.
    key String
    Unique name of the Cost Category.
    matchOptions List<String>
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values List<String>
    Specific value of the Cost Category.
    key string
    Unique name of the Cost Category.
    matchOptions string[]
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values string[]
    Specific value of the Cost Category.
    key str
    Unique name of the Cost Category.
    match_options Sequence[str]
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values Sequence[str]
    Specific value of the Cost Category.
    key String
    Unique name of the Cost Category.
    matchOptions List<String>
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values List<String>
    Specific value of the Cost Category.

    AnomalySubscriptionThresholdExpressionAndTags, AnomalySubscriptionThresholdExpressionAndTagsArgs

    Key string
    Key for the tag.
    MatchOptions List<string>
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    Values List<string>
    Specific value of the Cost Category.
    Key string
    Key for the tag.
    MatchOptions []string
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    Values []string
    Specific value of the Cost Category.
    key String
    Key for the tag.
    matchOptions List<String>
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values List<String>
    Specific value of the Cost Category.
    key string
    Key for the tag.
    matchOptions string[]
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values string[]
    Specific value of the Cost Category.
    key str
    Key for the tag.
    match_options Sequence[str]
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values Sequence[str]
    Specific value of the Cost Category.
    key String
    Key for the tag.
    matchOptions List<String>
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values List<String>
    Specific value of the Cost Category.

    AnomalySubscriptionThresholdExpressionCostCategory, AnomalySubscriptionThresholdExpressionCostCategoryArgs

    Key string
    Unique name of the Cost Category.
    MatchOptions List<string>
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    Values List<string>
    Specific value of the Cost Category.
    Key string
    Unique name of the Cost Category.
    MatchOptions []string
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    Values []string
    Specific value of the Cost Category.
    key String
    Unique name of the Cost Category.
    matchOptions List<String>
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values List<String>
    Specific value of the Cost Category.
    key string
    Unique name of the Cost Category.
    matchOptions string[]
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values string[]
    Specific value of the Cost Category.
    key str
    Unique name of the Cost Category.
    match_options Sequence[str]
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values Sequence[str]
    Specific value of the Cost Category.
    key String
    Unique name of the Cost Category.
    matchOptions List<String>
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values List<String>
    Specific value of the Cost Category.

    AnomalySubscriptionThresholdExpressionDimension, AnomalySubscriptionThresholdExpressionDimensionArgs

    Key string
    Unique name of the Cost Category.
    MatchOptions List<string>
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    Values List<string>
    Specific value of the Cost Category.
    Key string
    Unique name of the Cost Category.
    MatchOptions []string
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    Values []string
    Specific value of the Cost Category.
    key String
    Unique name of the Cost Category.
    matchOptions List<String>
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values List<String>
    Specific value of the Cost Category.
    key string
    Unique name of the Cost Category.
    matchOptions string[]
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values string[]
    Specific value of the Cost Category.
    key str
    Unique name of the Cost Category.
    match_options Sequence[str]
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values Sequence[str]
    Specific value of the Cost Category.
    key String
    Unique name of the Cost Category.
    matchOptions List<String>
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values List<String>
    Specific value of the Cost Category.

    AnomalySubscriptionThresholdExpressionNot, AnomalySubscriptionThresholdExpressionNotArgs

    CostCategory AnomalySubscriptionThresholdExpressionNotCostCategory
    Configuration block for the filter that's based on values. See Cost Category below.
    Dimension AnomalySubscriptionThresholdExpressionNotDimension
    Configuration block for the specific Dimension to use for.
    Tags AnomalySubscriptionThresholdExpressionNotTags
    A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    CostCategory AnomalySubscriptionThresholdExpressionNotCostCategory
    Configuration block for the filter that's based on values. See Cost Category below.
    Dimension AnomalySubscriptionThresholdExpressionNotDimension
    Configuration block for the specific Dimension to use for.
    Tags AnomalySubscriptionThresholdExpressionNotTags
    A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    costCategory AnomalySubscriptionThresholdExpressionNotCostCategory
    Configuration block for the filter that's based on values. See Cost Category below.
    dimension AnomalySubscriptionThresholdExpressionNotDimension
    Configuration block for the specific Dimension to use for.
    tags AnomalySubscriptionThresholdExpressionNotTags
    A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    costCategory AnomalySubscriptionThresholdExpressionNotCostCategory
    Configuration block for the filter that's based on values. See Cost Category below.
    dimension AnomalySubscriptionThresholdExpressionNotDimension
    Configuration block for the specific Dimension to use for.
    tags AnomalySubscriptionThresholdExpressionNotTags
    A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    cost_category AnomalySubscriptionThresholdExpressionNotCostCategory
    Configuration block for the filter that's based on values. See Cost Category below.
    dimension AnomalySubscriptionThresholdExpressionNotDimension
    Configuration block for the specific Dimension to use for.
    tags AnomalySubscriptionThresholdExpressionNotTags
    A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    costCategory Property Map
    Configuration block for the filter that's based on values. See Cost Category below.
    dimension Property Map
    Configuration block for the specific Dimension to use for.
    tags Property Map
    A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

    AnomalySubscriptionThresholdExpressionNotCostCategory, AnomalySubscriptionThresholdExpressionNotCostCategoryArgs

    Key string
    Unique name of the Cost Category.
    MatchOptions List<string>
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    Values List<string>
    Specific value of the Cost Category.
    Key string
    Unique name of the Cost Category.
    MatchOptions []string
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    Values []string
    Specific value of the Cost Category.
    key String
    Unique name of the Cost Category.
    matchOptions List<String>
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values List<String>
    Specific value of the Cost Category.
    key string
    Unique name of the Cost Category.
    matchOptions string[]
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values string[]
    Specific value of the Cost Category.
    key str
    Unique name of the Cost Category.
    match_options Sequence[str]
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values Sequence[str]
    Specific value of the Cost Category.
    key String
    Unique name of the Cost Category.
    matchOptions List<String>
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values List<String>
    Specific value of the Cost Category.

    AnomalySubscriptionThresholdExpressionNotDimension, AnomalySubscriptionThresholdExpressionNotDimensionArgs

    Key string
    Unique name of the Cost Category.
    MatchOptions List<string>
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    Values List<string>
    Specific value of the Cost Category.
    Key string
    Unique name of the Cost Category.
    MatchOptions []string
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    Values []string
    Specific value of the Cost Category.
    key String
    Unique name of the Cost Category.
    matchOptions List<String>
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values List<String>
    Specific value of the Cost Category.
    key string
    Unique name of the Cost Category.
    matchOptions string[]
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values string[]
    Specific value of the Cost Category.
    key str
    Unique name of the Cost Category.
    match_options Sequence[str]
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values Sequence[str]
    Specific value of the Cost Category.
    key String
    Unique name of the Cost Category.
    matchOptions List<String>
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values List<String>
    Specific value of the Cost Category.

    AnomalySubscriptionThresholdExpressionNotTags, AnomalySubscriptionThresholdExpressionNotTagsArgs

    Key string
    Key for the tag.
    MatchOptions List<string>
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    Values List<string>
    Specific value of the Cost Category.
    Key string
    Key for the tag.
    MatchOptions []string
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    Values []string
    Specific value of the Cost Category.
    key String
    Key for the tag.
    matchOptions List<String>
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values List<String>
    Specific value of the Cost Category.
    key string
    Key for the tag.
    matchOptions string[]
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values string[]
    Specific value of the Cost Category.
    key str
    Key for the tag.
    match_options Sequence[str]
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values Sequence[str]
    Specific value of the Cost Category.
    key String
    Key for the tag.
    matchOptions List<String>
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values List<String>
    Specific value of the Cost Category.

    AnomalySubscriptionThresholdExpressionOr, AnomalySubscriptionThresholdExpressionOrArgs

    CostCategory AnomalySubscriptionThresholdExpressionOrCostCategory
    Configuration block for the filter that's based on values. See Cost Category below.
    Dimension AnomalySubscriptionThresholdExpressionOrDimension
    Configuration block for the specific Dimension to use for.
    Tags AnomalySubscriptionThresholdExpressionOrTags
    A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    CostCategory AnomalySubscriptionThresholdExpressionOrCostCategory
    Configuration block for the filter that's based on values. See Cost Category below.
    Dimension AnomalySubscriptionThresholdExpressionOrDimension
    Configuration block for the specific Dimension to use for.
    Tags AnomalySubscriptionThresholdExpressionOrTags
    A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    costCategory AnomalySubscriptionThresholdExpressionOrCostCategory
    Configuration block for the filter that's based on values. See Cost Category below.
    dimension AnomalySubscriptionThresholdExpressionOrDimension
    Configuration block for the specific Dimension to use for.
    tags AnomalySubscriptionThresholdExpressionOrTags
    A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    costCategory AnomalySubscriptionThresholdExpressionOrCostCategory
    Configuration block for the filter that's based on values. See Cost Category below.
    dimension AnomalySubscriptionThresholdExpressionOrDimension
    Configuration block for the specific Dimension to use for.
    tags AnomalySubscriptionThresholdExpressionOrTags
    A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    cost_category AnomalySubscriptionThresholdExpressionOrCostCategory
    Configuration block for the filter that's based on values. See Cost Category below.
    dimension AnomalySubscriptionThresholdExpressionOrDimension
    Configuration block for the specific Dimension to use for.
    tags AnomalySubscriptionThresholdExpressionOrTags
    A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    costCategory Property Map
    Configuration block for the filter that's based on values. See Cost Category below.
    dimension Property Map
    Configuration block for the specific Dimension to use for.
    tags Property Map
    A map of tags to assign to the resource. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

    AnomalySubscriptionThresholdExpressionOrCostCategory, AnomalySubscriptionThresholdExpressionOrCostCategoryArgs

    Key string
    Unique name of the Cost Category.
    MatchOptions List<string>
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    Values List<string>
    Specific value of the Cost Category.
    Key string
    Unique name of the Cost Category.
    MatchOptions []string
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    Values []string
    Specific value of the Cost Category.
    key String
    Unique name of the Cost Category.
    matchOptions List<String>
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values List<String>
    Specific value of the Cost Category.
    key string
    Unique name of the Cost Category.
    matchOptions string[]
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values string[]
    Specific value of the Cost Category.
    key str
    Unique name of the Cost Category.
    match_options Sequence[str]
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values Sequence[str]
    Specific value of the Cost Category.
    key String
    Unique name of the Cost Category.
    matchOptions List<String>
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values List<String>
    Specific value of the Cost Category.

    AnomalySubscriptionThresholdExpressionOrDimension, AnomalySubscriptionThresholdExpressionOrDimensionArgs

    Key string
    Unique name of the Cost Category.
    MatchOptions List<string>
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    Values List<string>
    Specific value of the Cost Category.
    Key string
    Unique name of the Cost Category.
    MatchOptions []string
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    Values []string
    Specific value of the Cost Category.
    key String
    Unique name of the Cost Category.
    matchOptions List<String>
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values List<String>
    Specific value of the Cost Category.
    key string
    Unique name of the Cost Category.
    matchOptions string[]
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values string[]
    Specific value of the Cost Category.
    key str
    Unique name of the Cost Category.
    match_options Sequence[str]
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values Sequence[str]
    Specific value of the Cost Category.
    key String
    Unique name of the Cost Category.
    matchOptions List<String>
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values List<String>
    Specific value of the Cost Category.

    AnomalySubscriptionThresholdExpressionOrTags, AnomalySubscriptionThresholdExpressionOrTagsArgs

    Key string
    Key for the tag.
    MatchOptions List<string>
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    Values List<string>
    Specific value of the Cost Category.
    Key string
    Key for the tag.
    MatchOptions []string
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    Values []string
    Specific value of the Cost Category.
    key String
    Key for the tag.
    matchOptions List<String>
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values List<String>
    Specific value of the Cost Category.
    key string
    Key for the tag.
    matchOptions string[]
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values string[]
    Specific value of the Cost Category.
    key str
    Key for the tag.
    match_options Sequence[str]
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values Sequence[str]
    Specific value of the Cost Category.
    key String
    Key for the tag.
    matchOptions List<String>
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values List<String>
    Specific value of the Cost Category.

    AnomalySubscriptionThresholdExpressionTags, AnomalySubscriptionThresholdExpressionTagsArgs

    Key string
    Key for the tag.
    MatchOptions List<string>
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    Values List<string>
    Specific value of the Cost Category.
    Key string
    Key for the tag.
    MatchOptions []string
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    Values []string
    Specific value of the Cost Category.
    key String
    Key for the tag.
    matchOptions List<String>
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values List<String>
    Specific value of the Cost Category.
    key string
    Key for the tag.
    matchOptions string[]
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values string[]
    Specific value of the Cost Category.
    key str
    Key for the tag.
    match_options Sequence[str]
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values Sequence[str]
    Specific value of the Cost Category.
    key String
    Key for the tag.
    matchOptions List<String>
    Match options that you can use to filter your results. MatchOptions is only applicable for actions related to cost category. The default values for MatchOptions is EQUALS and CASE_SENSITIVE. Valid values are: EQUALS, ABSENT, STARTS_WITH, ENDS_WITH, CONTAINS, CASE_SENSITIVE, CASE_INSENSITIVE.
    values List<String>
    Specific value of the Cost Category.

    Import

    Using pulumi import, import aws_ce_anomaly_subscription using the id. For example:

    $ pulumi import aws:costexplorer/anomalySubscription:AnomalySubscription example AnomalySubscriptionARN
    

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    AWS Classic pulumi/pulumi-aws
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the aws Terraform Provider.
    aws logo
    AWS v6.63.0 published on Wednesday, Dec 4, 2024 by Pulumi