1. Packages
  2. AWS Classic
  3. API Docs
  4. budgets
  5. BudgetAction

Try AWS Native preview for resources not in the classic version.

AWS Classic v6.28.1 published on Thursday, Mar 28, 2024 by Pulumi

aws.budgets.BudgetAction

Explore with Pulumi AI

aws logo

Try AWS Native preview for resources not in the classic version.

AWS Classic v6.28.1 published on Thursday, Mar 28, 2024 by Pulumi

    Provides a budget action resource. Budget actions are cost savings controls that run either automatically on your behalf or by using a workflow approval process.

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const example = aws.iam.getPolicyDocument({
        statements: [{
            effect: "Allow",
            actions: ["ec2:Describe*"],
            resources: ["*"],
        }],
    });
    const examplePolicy = new aws.iam.Policy("example", {
        name: "example",
        description: "My example policy",
        policy: example.then(example => example.json),
    });
    const current = aws.getPartition({});
    const assumeRole = current.then(current => aws.iam.getPolicyDocument({
        statements: [{
            effect: "Allow",
            principals: [{
                type: "Service",
                identifiers: [`budgets.${current.dnsSuffix}`],
            }],
            actions: ["sts:AssumeRole"],
        }],
    }));
    const exampleRole = new aws.iam.Role("example", {
        name: "example",
        assumeRolePolicy: assumeRole.then(assumeRole => assumeRole.json),
    });
    const exampleBudget = new aws.budgets.Budget("example", {
        name: "example",
        budgetType: "USAGE",
        limitAmount: "10.0",
        limitUnit: "dollars",
        timePeriodStart: "2006-01-02_15:04",
        timeUnit: "MONTHLY",
    });
    const exampleBudgetAction = new aws.budgets.BudgetAction("example", {
        budgetName: exampleBudget.name,
        actionType: "APPLY_IAM_POLICY",
        approvalModel: "AUTOMATIC",
        notificationType: "ACTUAL",
        executionRoleArn: exampleRole.arn,
        actionThreshold: {
            actionThresholdType: "ABSOLUTE_VALUE",
            actionThresholdValue: 100,
        },
        definition: {
            iamActionDefinition: {
                policyArn: examplePolicy.arn,
                roles: [exampleRole.name],
            },
        },
        subscribers: [{
            address: "example@example.example",
            subscriptionType: "EMAIL",
        }],
    });
    
    import pulumi
    import pulumi_aws as aws
    
    example = aws.iam.get_policy_document(statements=[aws.iam.GetPolicyDocumentStatementArgs(
        effect="Allow",
        actions=["ec2:Describe*"],
        resources=["*"],
    )])
    example_policy = aws.iam.Policy("example",
        name="example",
        description="My example policy",
        policy=example.json)
    current = aws.get_partition()
    assume_role = aws.iam.get_policy_document(statements=[aws.iam.GetPolicyDocumentStatementArgs(
        effect="Allow",
        principals=[aws.iam.GetPolicyDocumentStatementPrincipalArgs(
            type="Service",
            identifiers=[f"budgets.{current.dns_suffix}"],
        )],
        actions=["sts:AssumeRole"],
    )])
    example_role = aws.iam.Role("example",
        name="example",
        assume_role_policy=assume_role.json)
    example_budget = aws.budgets.Budget("example",
        name="example",
        budget_type="USAGE",
        limit_amount="10.0",
        limit_unit="dollars",
        time_period_start="2006-01-02_15:04",
        time_unit="MONTHLY")
    example_budget_action = aws.budgets.BudgetAction("example",
        budget_name=example_budget.name,
        action_type="APPLY_IAM_POLICY",
        approval_model="AUTOMATIC",
        notification_type="ACTUAL",
        execution_role_arn=example_role.arn,
        action_threshold=aws.budgets.BudgetActionActionThresholdArgs(
            action_threshold_type="ABSOLUTE_VALUE",
            action_threshold_value=100,
        ),
        definition=aws.budgets.BudgetActionDefinitionArgs(
            iam_action_definition=aws.budgets.BudgetActionDefinitionIamActionDefinitionArgs(
                policy_arn=example_policy.arn,
                roles=[example_role.name],
            ),
        ),
        subscribers=[aws.budgets.BudgetActionSubscriberArgs(
            address="example@example.example",
            subscription_type="EMAIL",
        )])
    
    package main
    
    import (
    	"fmt"
    
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws"
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/budgets"
    	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		example, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{
    			Statements: []iam.GetPolicyDocumentStatement{
    				{
    					Effect: pulumi.StringRef("Allow"),
    					Actions: []string{
    						"ec2:Describe*",
    					},
    					Resources: []string{
    						"*",
    					},
    				},
    			},
    		}, nil)
    		if err != nil {
    			return err
    		}
    		examplePolicy, err := iam.NewPolicy(ctx, "example", &iam.PolicyArgs{
    			Name:        pulumi.String("example"),
    			Description: pulumi.String("My example policy"),
    			Policy:      pulumi.String(example.Json),
    		})
    		if err != nil {
    			return err
    		}
    		current, err := aws.GetPartition(ctx, nil, nil)
    		if err != nil {
    			return err
    		}
    		assumeRole, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{
    			Statements: []iam.GetPolicyDocumentStatement{
    				{
    					Effect: pulumi.StringRef("Allow"),
    					Principals: []iam.GetPolicyDocumentStatementPrincipal{
    						{
    							Type: "Service",
    							Identifiers: []string{
    								fmt.Sprintf("budgets.%v", current.DnsSuffix),
    							},
    						},
    					},
    					Actions: []string{
    						"sts:AssumeRole",
    					},
    				},
    			},
    		}, nil)
    		if err != nil {
    			return err
    		}
    		exampleRole, err := iam.NewRole(ctx, "example", &iam.RoleArgs{
    			Name:             pulumi.String("example"),
    			AssumeRolePolicy: pulumi.String(assumeRole.Json),
    		})
    		if err != nil {
    			return err
    		}
    		exampleBudget, err := budgets.NewBudget(ctx, "example", &budgets.BudgetArgs{
    			Name:            pulumi.String("example"),
    			BudgetType:      pulumi.String("USAGE"),
    			LimitAmount:     pulumi.String("10.0"),
    			LimitUnit:       pulumi.String("dollars"),
    			TimePeriodStart: pulumi.String("2006-01-02_15:04"),
    			TimeUnit:        pulumi.String("MONTHLY"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = budgets.NewBudgetAction(ctx, "example", &budgets.BudgetActionArgs{
    			BudgetName:       exampleBudget.Name,
    			ActionType:       pulumi.String("APPLY_IAM_POLICY"),
    			ApprovalModel:    pulumi.String("AUTOMATIC"),
    			NotificationType: pulumi.String("ACTUAL"),
    			ExecutionRoleArn: exampleRole.Arn,
    			ActionThreshold: &budgets.BudgetActionActionThresholdArgs{
    				ActionThresholdType:  pulumi.String("ABSOLUTE_VALUE"),
    				ActionThresholdValue: pulumi.Float64(100),
    			},
    			Definition: &budgets.BudgetActionDefinitionArgs{
    				IamActionDefinition: &budgets.BudgetActionDefinitionIamActionDefinitionArgs{
    					PolicyArn: examplePolicy.Arn,
    					Roles: pulumi.StringArray{
    						exampleRole.Name,
    					},
    				},
    			},
    			Subscribers: budgets.BudgetActionSubscriberArray{
    				&budgets.BudgetActionSubscriberArgs{
    					Address:          pulumi.String("example@example.example"),
    					SubscriptionType: pulumi.String("EMAIL"),
    				},
    			},
    		})
    		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 example = Aws.Iam.GetPolicyDocument.Invoke(new()
        {
            Statements = new[]
            {
                new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs
                {
                    Effect = "Allow",
                    Actions = new[]
                    {
                        "ec2:Describe*",
                    },
                    Resources = new[]
                    {
                        "*",
                    },
                },
            },
        });
    
        var examplePolicy = new Aws.Iam.Policy("example", new()
        {
            Name = "example",
            Description = "My example policy",
            PolicyDocument = example.Apply(getPolicyDocumentResult => getPolicyDocumentResult.Json),
        });
    
        var current = Aws.GetPartition.Invoke();
    
        var assumeRole = Aws.Iam.GetPolicyDocument.Invoke(new()
        {
            Statements = new[]
            {
                new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs
                {
                    Effect = "Allow",
                    Principals = new[]
                    {
                        new Aws.Iam.Inputs.GetPolicyDocumentStatementPrincipalInputArgs
                        {
                            Type = "Service",
                            Identifiers = new[]
                            {
                                $"budgets.{current.Apply(getPartitionResult => getPartitionResult.DnsSuffix)}",
                            },
                        },
                    },
                    Actions = new[]
                    {
                        "sts:AssumeRole",
                    },
                },
            },
        });
    
        var exampleRole = new Aws.Iam.Role("example", new()
        {
            Name = "example",
            AssumeRolePolicy = assumeRole.Apply(getPolicyDocumentResult => getPolicyDocumentResult.Json),
        });
    
        var exampleBudget = new Aws.Budgets.Budget("example", new()
        {
            Name = "example",
            BudgetType = "USAGE",
            LimitAmount = "10.0",
            LimitUnit = "dollars",
            TimePeriodStart = "2006-01-02_15:04",
            TimeUnit = "MONTHLY",
        });
    
        var exampleBudgetAction = new Aws.Budgets.BudgetAction("example", new()
        {
            BudgetName = exampleBudget.Name,
            ActionType = "APPLY_IAM_POLICY",
            ApprovalModel = "AUTOMATIC",
            NotificationType = "ACTUAL",
            ExecutionRoleArn = exampleRole.Arn,
            ActionThreshold = new Aws.Budgets.Inputs.BudgetActionActionThresholdArgs
            {
                ActionThresholdType = "ABSOLUTE_VALUE",
                ActionThresholdValue = 100,
            },
            Definition = new Aws.Budgets.Inputs.BudgetActionDefinitionArgs
            {
                IamActionDefinition = new Aws.Budgets.Inputs.BudgetActionDefinitionIamActionDefinitionArgs
                {
                    PolicyArn = examplePolicy.Arn,
                    Roles = new[]
                    {
                        exampleRole.Name,
                    },
                },
            },
            Subscribers = new[]
            {
                new Aws.Budgets.Inputs.BudgetActionSubscriberArgs
                {
                    Address = "example@example.example",
                    SubscriptionType = "EMAIL",
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.iam.IamFunctions;
    import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;
    import com.pulumi.aws.iam.Policy;
    import com.pulumi.aws.iam.PolicyArgs;
    import com.pulumi.aws.AwsFunctions;
    import com.pulumi.aws.inputs.GetPartitionArgs;
    import com.pulumi.aws.iam.Role;
    import com.pulumi.aws.iam.RoleArgs;
    import com.pulumi.aws.budgets.Budget;
    import com.pulumi.aws.budgets.BudgetArgs;
    import com.pulumi.aws.budgets.BudgetAction;
    import com.pulumi.aws.budgets.BudgetActionArgs;
    import com.pulumi.aws.budgets.inputs.BudgetActionActionThresholdArgs;
    import com.pulumi.aws.budgets.inputs.BudgetActionDefinitionArgs;
    import com.pulumi.aws.budgets.inputs.BudgetActionDefinitionIamActionDefinitionArgs;
    import com.pulumi.aws.budgets.inputs.BudgetActionSubscriberArgs;
    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) {
            final var example = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
                .statements(GetPolicyDocumentStatementArgs.builder()
                    .effect("Allow")
                    .actions("ec2:Describe*")
                    .resources("*")
                    .build())
                .build());
    
            var examplePolicy = new Policy("examplePolicy", PolicyArgs.builder()        
                .name("example")
                .description("My example policy")
                .policy(example.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult.json()))
                .build());
    
            final var current = AwsFunctions.getPartition();
    
            final var assumeRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
                .statements(GetPolicyDocumentStatementArgs.builder()
                    .effect("Allow")
                    .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                        .type("Service")
                        .identifiers(String.format("budgets.%s", current.applyValue(getPartitionResult -> getPartitionResult.dnsSuffix())))
                        .build())
                    .actions("sts:AssumeRole")
                    .build())
                .build());
    
            var exampleRole = new Role("exampleRole", RoleArgs.builder()        
                .name("example")
                .assumeRolePolicy(assumeRole.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult.json()))
                .build());
    
            var exampleBudget = new Budget("exampleBudget", BudgetArgs.builder()        
                .name("example")
                .budgetType("USAGE")
                .limitAmount("10.0")
                .limitUnit("dollars")
                .timePeriodStart("2006-01-02_15:04")
                .timeUnit("MONTHLY")
                .build());
    
            var exampleBudgetAction = new BudgetAction("exampleBudgetAction", BudgetActionArgs.builder()        
                .budgetName(exampleBudget.name())
                .actionType("APPLY_IAM_POLICY")
                .approvalModel("AUTOMATIC")
                .notificationType("ACTUAL")
                .executionRoleArn(exampleRole.arn())
                .actionThreshold(BudgetActionActionThresholdArgs.builder()
                    .actionThresholdType("ABSOLUTE_VALUE")
                    .actionThresholdValue(100)
                    .build())
                .definition(BudgetActionDefinitionArgs.builder()
                    .iamActionDefinition(BudgetActionDefinitionIamActionDefinitionArgs.builder()
                        .policyArn(examplePolicy.arn())
                        .roles(exampleRole.name())
                        .build())
                    .build())
                .subscribers(BudgetActionSubscriberArgs.builder()
                    .address("example@example.example")
                    .subscriptionType("EMAIL")
                    .build())
                .build());
    
        }
    }
    
    resources:
      exampleBudgetAction:
        type: aws:budgets:BudgetAction
        name: example
        properties:
          budgetName: ${exampleBudget.name}
          actionType: APPLY_IAM_POLICY
          approvalModel: AUTOMATIC
          notificationType: ACTUAL
          executionRoleArn: ${exampleRole.arn}
          actionThreshold:
            actionThresholdType: ABSOLUTE_VALUE
            actionThresholdValue: 100
          definition:
            iamActionDefinition:
              policyArn: ${examplePolicy.arn}
              roles:
                - ${exampleRole.name}
          subscribers:
            - address: example@example.example
              subscriptionType: EMAIL
      examplePolicy:
        type: aws:iam:Policy
        name: example
        properties:
          name: example
          description: My example policy
          policy: ${example.json}
      exampleRole:
        type: aws:iam:Role
        name: example
        properties:
          name: example
          assumeRolePolicy: ${assumeRole.json}
      exampleBudget:
        type: aws:budgets:Budget
        name: example
        properties:
          name: example
          budgetType: USAGE
          limitAmount: '10.0'
          limitUnit: dollars
          timePeriodStart: 2006-01-02_15:04
          timeUnit: MONTHLY
    variables:
      example:
        fn::invoke:
          Function: aws:iam:getPolicyDocument
          Arguments:
            statements:
              - effect: Allow
                actions:
                  - ec2:Describe*
                resources:
                  - '*'
      current:
        fn::invoke:
          Function: aws:getPartition
          Arguments: {}
      assumeRole:
        fn::invoke:
          Function: aws:iam:getPolicyDocument
          Arguments:
            statements:
              - effect: Allow
                principals:
                  - type: Service
                    identifiers:
                      - budgets.${current.dnsSuffix}
                actions:
                  - sts:AssumeRole
    

    Create BudgetAction Resource

    new BudgetAction(name: string, args: BudgetActionArgs, opts?: CustomResourceOptions);
    @overload
    def BudgetAction(resource_name: str,
                     opts: Optional[ResourceOptions] = None,
                     account_id: Optional[str] = None,
                     action_threshold: Optional[BudgetActionActionThresholdArgs] = None,
                     action_type: Optional[str] = None,
                     approval_model: Optional[str] = None,
                     budget_name: Optional[str] = None,
                     definition: Optional[BudgetActionDefinitionArgs] = None,
                     execution_role_arn: Optional[str] = None,
                     notification_type: Optional[str] = None,
                     subscribers: Optional[Sequence[BudgetActionSubscriberArgs]] = None)
    @overload
    def BudgetAction(resource_name: str,
                     args: BudgetActionArgs,
                     opts: Optional[ResourceOptions] = None)
    func NewBudgetAction(ctx *Context, name string, args BudgetActionArgs, opts ...ResourceOption) (*BudgetAction, error)
    public BudgetAction(string name, BudgetActionArgs args, CustomResourceOptions? opts = null)
    public BudgetAction(String name, BudgetActionArgs args)
    public BudgetAction(String name, BudgetActionArgs args, CustomResourceOptions options)
    
    type: aws:budgets:BudgetAction
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    
    name string
    The unique name of the resource.
    args BudgetActionArgs
    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 BudgetActionArgs
    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 BudgetActionArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args BudgetActionArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args BudgetActionArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    BudgetAction Resource Properties

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

    Inputs

    The BudgetAction resource accepts the following input properties:

    ActionThreshold BudgetActionActionThreshold
    The trigger threshold of the action. See Action Threshold.
    ActionType string
    The type of action. This defines the type of tasks that can be carried out by this action. This field also determines the format for definition. Valid values are APPLY_IAM_POLICY, APPLY_SCP_POLICY, and RUN_SSM_DOCUMENTS.
    ApprovalModel string
    This specifies if the action needs manual or automatic approval. Valid values are AUTOMATIC and MANUAL.
    BudgetName string
    The name of a budget.
    Definition BudgetActionDefinition
    Specifies all of the type-specific parameters. See Definition.
    ExecutionRoleArn string
    The role passed for action execution and reversion. Roles and actions must be in the same account.
    NotificationType string
    The type of a notification. Valid values are ACTUAL or FORECASTED.
    Subscribers List<BudgetActionSubscriber>
    A list of subscribers. See Subscriber.
    AccountId string
    The ID of the target account for budget. Will use current user's account_id by default if omitted.
    ActionThreshold BudgetActionActionThresholdArgs
    The trigger threshold of the action. See Action Threshold.
    ActionType string
    The type of action. This defines the type of tasks that can be carried out by this action. This field also determines the format for definition. Valid values are APPLY_IAM_POLICY, APPLY_SCP_POLICY, and RUN_SSM_DOCUMENTS.
    ApprovalModel string
    This specifies if the action needs manual or automatic approval. Valid values are AUTOMATIC and MANUAL.
    BudgetName string
    The name of a budget.
    Definition BudgetActionDefinitionArgs
    Specifies all of the type-specific parameters. See Definition.
    ExecutionRoleArn string
    The role passed for action execution and reversion. Roles and actions must be in the same account.
    NotificationType string
    The type of a notification. Valid values are ACTUAL or FORECASTED.
    Subscribers []BudgetActionSubscriberArgs
    A list of subscribers. See Subscriber.
    AccountId string
    The ID of the target account for budget. Will use current user's account_id by default if omitted.
    actionThreshold BudgetActionActionThreshold
    The trigger threshold of the action. See Action Threshold.
    actionType String
    The type of action. This defines the type of tasks that can be carried out by this action. This field also determines the format for definition. Valid values are APPLY_IAM_POLICY, APPLY_SCP_POLICY, and RUN_SSM_DOCUMENTS.
    approvalModel String
    This specifies if the action needs manual or automatic approval. Valid values are AUTOMATIC and MANUAL.
    budgetName String
    The name of a budget.
    definition BudgetActionDefinition
    Specifies all of the type-specific parameters. See Definition.
    executionRoleArn String
    The role passed for action execution and reversion. Roles and actions must be in the same account.
    notificationType String
    The type of a notification. Valid values are ACTUAL or FORECASTED.
    subscribers List<BudgetActionSubscriber>
    A list of subscribers. See Subscriber.
    accountId String
    The ID of the target account for budget. Will use current user's account_id by default if omitted.
    actionThreshold BudgetActionActionThreshold
    The trigger threshold of the action. See Action Threshold.
    actionType string
    The type of action. This defines the type of tasks that can be carried out by this action. This field also determines the format for definition. Valid values are APPLY_IAM_POLICY, APPLY_SCP_POLICY, and RUN_SSM_DOCUMENTS.
    approvalModel string
    This specifies if the action needs manual or automatic approval. Valid values are AUTOMATIC and MANUAL.
    budgetName string
    The name of a budget.
    definition BudgetActionDefinition
    Specifies all of the type-specific parameters. See Definition.
    executionRoleArn string
    The role passed for action execution and reversion. Roles and actions must be in the same account.
    notificationType string
    The type of a notification. Valid values are ACTUAL or FORECASTED.
    subscribers BudgetActionSubscriber[]
    A list of subscribers. See Subscriber.
    accountId string
    The ID of the target account for budget. Will use current user's account_id by default if omitted.
    action_threshold BudgetActionActionThresholdArgs
    The trigger threshold of the action. See Action Threshold.
    action_type str
    The type of action. This defines the type of tasks that can be carried out by this action. This field also determines the format for definition. Valid values are APPLY_IAM_POLICY, APPLY_SCP_POLICY, and RUN_SSM_DOCUMENTS.
    approval_model str
    This specifies if the action needs manual or automatic approval. Valid values are AUTOMATIC and MANUAL.
    budget_name str
    The name of a budget.
    definition BudgetActionDefinitionArgs
    Specifies all of the type-specific parameters. See Definition.
    execution_role_arn str
    The role passed for action execution and reversion. Roles and actions must be in the same account.
    notification_type str
    The type of a notification. Valid values are ACTUAL or FORECASTED.
    subscribers Sequence[BudgetActionSubscriberArgs]
    A list of subscribers. See Subscriber.
    account_id str
    The ID of the target account for budget. Will use current user's account_id by default if omitted.
    actionThreshold Property Map
    The trigger threshold of the action. See Action Threshold.
    actionType String
    The type of action. This defines the type of tasks that can be carried out by this action. This field also determines the format for definition. Valid values are APPLY_IAM_POLICY, APPLY_SCP_POLICY, and RUN_SSM_DOCUMENTS.
    approvalModel String
    This specifies if the action needs manual or automatic approval. Valid values are AUTOMATIC and MANUAL.
    budgetName String
    The name of a budget.
    definition Property Map
    Specifies all of the type-specific parameters. See Definition.
    executionRoleArn String
    The role passed for action execution and reversion. Roles and actions must be in the same account.
    notificationType String
    The type of a notification. Valid values are ACTUAL or FORECASTED.
    subscribers List<Property Map>
    A list of subscribers. See Subscriber.
    accountId String
    The ID of the target account for budget. Will use current user's account_id by default if omitted.

    Outputs

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

    ActionId string
    The id of the budget action.
    Arn string
    The ARN of the budget action.
    Id string
    The provider-assigned unique ID for this managed resource.
    Status string
    The status of the budget action.
    ActionId string
    The id of the budget action.
    Arn string
    The ARN of the budget action.
    Id string
    The provider-assigned unique ID for this managed resource.
    Status string
    The status of the budget action.
    actionId String
    The id of the budget action.
    arn String
    The ARN of the budget action.
    id String
    The provider-assigned unique ID for this managed resource.
    status String
    The status of the budget action.
    actionId string
    The id of the budget action.
    arn string
    The ARN of the budget action.
    id string
    The provider-assigned unique ID for this managed resource.
    status string
    The status of the budget action.
    action_id str
    The id of the budget action.
    arn str
    The ARN of the budget action.
    id str
    The provider-assigned unique ID for this managed resource.
    status str
    The status of the budget action.
    actionId String
    The id of the budget action.
    arn String
    The ARN of the budget action.
    id String
    The provider-assigned unique ID for this managed resource.
    status String
    The status of the budget action.

    Look up Existing BudgetAction Resource

    Get an existing BudgetAction 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?: BudgetActionState, opts?: CustomResourceOptions): BudgetAction
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            account_id: Optional[str] = None,
            action_id: Optional[str] = None,
            action_threshold: Optional[BudgetActionActionThresholdArgs] = None,
            action_type: Optional[str] = None,
            approval_model: Optional[str] = None,
            arn: Optional[str] = None,
            budget_name: Optional[str] = None,
            definition: Optional[BudgetActionDefinitionArgs] = None,
            execution_role_arn: Optional[str] = None,
            notification_type: Optional[str] = None,
            status: Optional[str] = None,
            subscribers: Optional[Sequence[BudgetActionSubscriberArgs]] = None) -> BudgetAction
    func GetBudgetAction(ctx *Context, name string, id IDInput, state *BudgetActionState, opts ...ResourceOption) (*BudgetAction, error)
    public static BudgetAction Get(string name, Input<string> id, BudgetActionState? state, CustomResourceOptions? opts = null)
    public static BudgetAction get(String name, Output<String> id, BudgetActionState 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 ID of the target account for budget. Will use current user's account_id by default if omitted.
    ActionId string
    The id of the budget action.
    ActionThreshold BudgetActionActionThreshold
    The trigger threshold of the action. See Action Threshold.
    ActionType string
    The type of action. This defines the type of tasks that can be carried out by this action. This field also determines the format for definition. Valid values are APPLY_IAM_POLICY, APPLY_SCP_POLICY, and RUN_SSM_DOCUMENTS.
    ApprovalModel string
    This specifies if the action needs manual or automatic approval. Valid values are AUTOMATIC and MANUAL.
    Arn string
    The ARN of the budget action.
    BudgetName string
    The name of a budget.
    Definition BudgetActionDefinition
    Specifies all of the type-specific parameters. See Definition.
    ExecutionRoleArn string
    The role passed for action execution and reversion. Roles and actions must be in the same account.
    NotificationType string
    The type of a notification. Valid values are ACTUAL or FORECASTED.
    Status string
    The status of the budget action.
    Subscribers List<BudgetActionSubscriber>
    A list of subscribers. See Subscriber.
    AccountId string
    The ID of the target account for budget. Will use current user's account_id by default if omitted.
    ActionId string
    The id of the budget action.
    ActionThreshold BudgetActionActionThresholdArgs
    The trigger threshold of the action. See Action Threshold.
    ActionType string
    The type of action. This defines the type of tasks that can be carried out by this action. This field also determines the format for definition. Valid values are APPLY_IAM_POLICY, APPLY_SCP_POLICY, and RUN_SSM_DOCUMENTS.
    ApprovalModel string
    This specifies if the action needs manual or automatic approval. Valid values are AUTOMATIC and MANUAL.
    Arn string
    The ARN of the budget action.
    BudgetName string
    The name of a budget.
    Definition BudgetActionDefinitionArgs
    Specifies all of the type-specific parameters. See Definition.
    ExecutionRoleArn string
    The role passed for action execution and reversion. Roles and actions must be in the same account.
    NotificationType string
    The type of a notification. Valid values are ACTUAL or FORECASTED.
    Status string
    The status of the budget action.
    Subscribers []BudgetActionSubscriberArgs
    A list of subscribers. See Subscriber.
    accountId String
    The ID of the target account for budget. Will use current user's account_id by default if omitted.
    actionId String
    The id of the budget action.
    actionThreshold BudgetActionActionThreshold
    The trigger threshold of the action. See Action Threshold.
    actionType String
    The type of action. This defines the type of tasks that can be carried out by this action. This field also determines the format for definition. Valid values are APPLY_IAM_POLICY, APPLY_SCP_POLICY, and RUN_SSM_DOCUMENTS.
    approvalModel String
    This specifies if the action needs manual or automatic approval. Valid values are AUTOMATIC and MANUAL.
    arn String
    The ARN of the budget action.
    budgetName String
    The name of a budget.
    definition BudgetActionDefinition
    Specifies all of the type-specific parameters. See Definition.
    executionRoleArn String
    The role passed for action execution and reversion. Roles and actions must be in the same account.
    notificationType String
    The type of a notification. Valid values are ACTUAL or FORECASTED.
    status String
    The status of the budget action.
    subscribers List<BudgetActionSubscriber>
    A list of subscribers. See Subscriber.
    accountId string
    The ID of the target account for budget. Will use current user's account_id by default if omitted.
    actionId string
    The id of the budget action.
    actionThreshold BudgetActionActionThreshold
    The trigger threshold of the action. See Action Threshold.
    actionType string
    The type of action. This defines the type of tasks that can be carried out by this action. This field also determines the format for definition. Valid values are APPLY_IAM_POLICY, APPLY_SCP_POLICY, and RUN_SSM_DOCUMENTS.
    approvalModel string
    This specifies if the action needs manual or automatic approval. Valid values are AUTOMATIC and MANUAL.
    arn string
    The ARN of the budget action.
    budgetName string
    The name of a budget.
    definition BudgetActionDefinition
    Specifies all of the type-specific parameters. See Definition.
    executionRoleArn string
    The role passed for action execution and reversion. Roles and actions must be in the same account.
    notificationType string
    The type of a notification. Valid values are ACTUAL or FORECASTED.
    status string
    The status of the budget action.
    subscribers BudgetActionSubscriber[]
    A list of subscribers. See Subscriber.
    account_id str
    The ID of the target account for budget. Will use current user's account_id by default if omitted.
    action_id str
    The id of the budget action.
    action_threshold BudgetActionActionThresholdArgs
    The trigger threshold of the action. See Action Threshold.
    action_type str
    The type of action. This defines the type of tasks that can be carried out by this action. This field also determines the format for definition. Valid values are APPLY_IAM_POLICY, APPLY_SCP_POLICY, and RUN_SSM_DOCUMENTS.
    approval_model str
    This specifies if the action needs manual or automatic approval. Valid values are AUTOMATIC and MANUAL.
    arn str
    The ARN of the budget action.
    budget_name str
    The name of a budget.
    definition BudgetActionDefinitionArgs
    Specifies all of the type-specific parameters. See Definition.
    execution_role_arn str
    The role passed for action execution and reversion. Roles and actions must be in the same account.
    notification_type str
    The type of a notification. Valid values are ACTUAL or FORECASTED.
    status str
    The status of the budget action.
    subscribers Sequence[BudgetActionSubscriberArgs]
    A list of subscribers. See Subscriber.
    accountId String
    The ID of the target account for budget. Will use current user's account_id by default if omitted.
    actionId String
    The id of the budget action.
    actionThreshold Property Map
    The trigger threshold of the action. See Action Threshold.
    actionType String
    The type of action. This defines the type of tasks that can be carried out by this action. This field also determines the format for definition. Valid values are APPLY_IAM_POLICY, APPLY_SCP_POLICY, and RUN_SSM_DOCUMENTS.
    approvalModel String
    This specifies if the action needs manual or automatic approval. Valid values are AUTOMATIC and MANUAL.
    arn String
    The ARN of the budget action.
    budgetName String
    The name of a budget.
    definition Property Map
    Specifies all of the type-specific parameters. See Definition.
    executionRoleArn String
    The role passed for action execution and reversion. Roles and actions must be in the same account.
    notificationType String
    The type of a notification. Valid values are ACTUAL or FORECASTED.
    status String
    The status of the budget action.
    subscribers List<Property Map>
    A list of subscribers. See Subscriber.

    Supporting Types

    BudgetActionActionThreshold, BudgetActionActionThresholdArgs

    ActionThresholdType string
    The type of threshold for a notification. Valid values are PERCENTAGE or ABSOLUTE_VALUE.
    ActionThresholdValue double
    The threshold of a notification.
    ActionThresholdType string
    The type of threshold for a notification. Valid values are PERCENTAGE or ABSOLUTE_VALUE.
    ActionThresholdValue float64
    The threshold of a notification.
    actionThresholdType String
    The type of threshold for a notification. Valid values are PERCENTAGE or ABSOLUTE_VALUE.
    actionThresholdValue Double
    The threshold of a notification.
    actionThresholdType string
    The type of threshold for a notification. Valid values are PERCENTAGE or ABSOLUTE_VALUE.
    actionThresholdValue number
    The threshold of a notification.
    action_threshold_type str
    The type of threshold for a notification. Valid values are PERCENTAGE or ABSOLUTE_VALUE.
    action_threshold_value float
    The threshold of a notification.
    actionThresholdType String
    The type of threshold for a notification. Valid values are PERCENTAGE or ABSOLUTE_VALUE.
    actionThresholdValue Number
    The threshold of a notification.

    BudgetActionDefinition, BudgetActionDefinitionArgs

    IamActionDefinition BudgetActionDefinitionIamActionDefinition
    The AWS Identity and Access Management (IAM) action definition details. See IAM Action Definition.
    ScpActionDefinition BudgetActionDefinitionScpActionDefinition
    The service control policies (SCPs) action definition details. See SCP Action Definition.
    SsmActionDefinition BudgetActionDefinitionSsmActionDefinition
    The AWS Systems Manager (SSM) action definition details. See SSM Action Definition.
    IamActionDefinition BudgetActionDefinitionIamActionDefinition
    The AWS Identity and Access Management (IAM) action definition details. See IAM Action Definition.
    ScpActionDefinition BudgetActionDefinitionScpActionDefinition
    The service control policies (SCPs) action definition details. See SCP Action Definition.
    SsmActionDefinition BudgetActionDefinitionSsmActionDefinition
    The AWS Systems Manager (SSM) action definition details. See SSM Action Definition.
    iamActionDefinition BudgetActionDefinitionIamActionDefinition
    The AWS Identity and Access Management (IAM) action definition details. See IAM Action Definition.
    scpActionDefinition BudgetActionDefinitionScpActionDefinition
    The service control policies (SCPs) action definition details. See SCP Action Definition.
    ssmActionDefinition BudgetActionDefinitionSsmActionDefinition
    The AWS Systems Manager (SSM) action definition details. See SSM Action Definition.
    iamActionDefinition BudgetActionDefinitionIamActionDefinition
    The AWS Identity and Access Management (IAM) action definition details. See IAM Action Definition.
    scpActionDefinition BudgetActionDefinitionScpActionDefinition
    The service control policies (SCPs) action definition details. See SCP Action Definition.
    ssmActionDefinition BudgetActionDefinitionSsmActionDefinition
    The AWS Systems Manager (SSM) action definition details. See SSM Action Definition.
    iam_action_definition BudgetActionDefinitionIamActionDefinition
    The AWS Identity and Access Management (IAM) action definition details. See IAM Action Definition.
    scp_action_definition BudgetActionDefinitionScpActionDefinition
    The service control policies (SCPs) action definition details. See SCP Action Definition.
    ssm_action_definition BudgetActionDefinitionSsmActionDefinition
    The AWS Systems Manager (SSM) action definition details. See SSM Action Definition.
    iamActionDefinition Property Map
    The AWS Identity and Access Management (IAM) action definition details. See IAM Action Definition.
    scpActionDefinition Property Map
    The service control policies (SCPs) action definition details. See SCP Action Definition.
    ssmActionDefinition Property Map
    The AWS Systems Manager (SSM) action definition details. See SSM Action Definition.

    BudgetActionDefinitionIamActionDefinition, BudgetActionDefinitionIamActionDefinitionArgs

    PolicyArn string
    The Amazon Resource Name (ARN) of the policy to be attached.
    Groups List<string>
    A list of groups to be attached. There must be at least one group.
    Roles List<string>
    A list of roles to be attached. There must be at least one role.
    Users List<string>
    A list of users to be attached. There must be at least one user.
    PolicyArn string
    The Amazon Resource Name (ARN) of the policy to be attached.
    Groups []string
    A list of groups to be attached. There must be at least one group.
    Roles []string
    A list of roles to be attached. There must be at least one role.
    Users []string
    A list of users to be attached. There must be at least one user.
    policyArn String
    The Amazon Resource Name (ARN) of the policy to be attached.
    groups List<String>
    A list of groups to be attached. There must be at least one group.
    roles List<String>
    A list of roles to be attached. There must be at least one role.
    users List<String>
    A list of users to be attached. There must be at least one user.
    policyArn string
    The Amazon Resource Name (ARN) of the policy to be attached.
    groups string[]
    A list of groups to be attached. There must be at least one group.
    roles string[]
    A list of roles to be attached. There must be at least one role.
    users string[]
    A list of users to be attached. There must be at least one user.
    policy_arn str
    The Amazon Resource Name (ARN) of the policy to be attached.
    groups Sequence[str]
    A list of groups to be attached. There must be at least one group.
    roles Sequence[str]
    A list of roles to be attached. There must be at least one role.
    users Sequence[str]
    A list of users to be attached. There must be at least one user.
    policyArn String
    The Amazon Resource Name (ARN) of the policy to be attached.
    groups List<String>
    A list of groups to be attached. There must be at least one group.
    roles List<String>
    A list of roles to be attached. There must be at least one role.
    users List<String>
    A list of users to be attached. There must be at least one user.

    BudgetActionDefinitionScpActionDefinition, BudgetActionDefinitionScpActionDefinitionArgs

    PolicyId string
    The policy ID attached.
    TargetIds List<string>
    A list of target IDs.
    PolicyId string
    The policy ID attached.
    TargetIds []string
    A list of target IDs.
    policyId String
    The policy ID attached.
    targetIds List<String>
    A list of target IDs.
    policyId string
    The policy ID attached.
    targetIds string[]
    A list of target IDs.
    policy_id str
    The policy ID attached.
    target_ids Sequence[str]
    A list of target IDs.
    policyId String
    The policy ID attached.
    targetIds List<String>
    A list of target IDs.

    BudgetActionDefinitionSsmActionDefinition, BudgetActionDefinitionSsmActionDefinitionArgs

    ActionSubType string
    The action subType. Valid values are STOP_EC2_INSTANCES or STOP_RDS_INSTANCES.
    InstanceIds List<string>
    The EC2 and RDS instance IDs.
    Region string
    The Region to run the SSM document.
    ActionSubType string
    The action subType. Valid values are STOP_EC2_INSTANCES or STOP_RDS_INSTANCES.
    InstanceIds []string
    The EC2 and RDS instance IDs.
    Region string
    The Region to run the SSM document.
    actionSubType String
    The action subType. Valid values are STOP_EC2_INSTANCES or STOP_RDS_INSTANCES.
    instanceIds List<String>
    The EC2 and RDS instance IDs.
    region String
    The Region to run the SSM document.
    actionSubType string
    The action subType. Valid values are STOP_EC2_INSTANCES or STOP_RDS_INSTANCES.
    instanceIds string[]
    The EC2 and RDS instance IDs.
    region string
    The Region to run the SSM document.
    action_sub_type str
    The action subType. Valid values are STOP_EC2_INSTANCES or STOP_RDS_INSTANCES.
    instance_ids Sequence[str]
    The EC2 and RDS instance IDs.
    region str
    The Region to run the SSM document.
    actionSubType String
    The action subType. Valid values are STOP_EC2_INSTANCES or STOP_RDS_INSTANCES.
    instanceIds List<String>
    The EC2 and RDS instance IDs.
    region String
    The Region to run the SSM document.

    BudgetActionSubscriber, BudgetActionSubscriberArgs

    Address string
    The address that AWS sends budget notifications to, either an SNS topic or an email.
    SubscriptionType string
    The type of notification that AWS sends to a subscriber. Valid values are SNS or EMAIL.
    Address string
    The address that AWS sends budget notifications to, either an SNS topic or an email.
    SubscriptionType string
    The type of notification that AWS sends to a subscriber. Valid values are SNS or EMAIL.
    address String
    The address that AWS sends budget notifications to, either an SNS topic or an email.
    subscriptionType String
    The type of notification that AWS sends to a subscriber. Valid values are SNS or EMAIL.
    address string
    The address that AWS sends budget notifications to, either an SNS topic or an email.
    subscriptionType string
    The type of notification that AWS sends to a subscriber. Valid values are SNS or EMAIL.
    address str
    The address that AWS sends budget notifications to, either an SNS topic or an email.
    subscription_type str
    The type of notification that AWS sends to a subscriber. Valid values are SNS or EMAIL.
    address String
    The address that AWS sends budget notifications to, either an SNS topic or an email.
    subscriptionType String
    The type of notification that AWS sends to a subscriber. Valid values are SNS or EMAIL.

    Import

    Using pulumi import, import budget actions using AccountID:ActionID:BudgetName. For example:

    $ pulumi import aws:budgets/budgetAction:BudgetAction myBudget 123456789012:some-id:myBudget
    

    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

    Try AWS Native preview for resources not in the classic version.

    AWS Classic v6.28.1 published on Thursday, Mar 28, 2024 by Pulumi