Package com.pulumi.aws.budgets
Class BudgetAction
- java.lang.Object
-
- com.pulumi.resources.Resource
-
- com.pulumi.resources.CustomResource
-
- com.pulumi.aws.budgets.BudgetAction
-
public class BudgetAction extends com.pulumi.resources.CustomResourceProvides 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 Using `pulumi import`, import budget actions using `AccountID:ActionID:BudgetName`. For example: ```sh $ pulumi import aws:budgets/budgetAction:BudgetAction myBudget 123456789012:some-id:myBudget ```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.inputs.GetPolicyDocumentStatementArgs; 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.inputs.GetPolicyDocumentStatementPrincipalArgs; 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.ArrayList; import java.util.Arrays; 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.json()) .build()); final var current = AwsFunctions.getPartition(GetPartitionArgs.builder() .build()); final var assumeRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder() .statements(GetPolicyDocumentStatementArgs.builder() .principals(GetPolicyDocumentStatementPrincipalArgs.builder() .type("Service") .identifiers(String.format("budgets.%s", current.dnsSuffix())) .build()) .effect("Allow") .actions("sts:AssumeRole") .build()) .build()); var exampleRole = new Role("exampleRole", RoleArgs.builder() .name("example") .assumeRolePolicy(assumeRole.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() .actionThreshold(BudgetActionActionThresholdArgs.builder() .actionThresholdType("ABSOLUTE_VALUE") .actionThresholdValue(100.0) .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()) .budgetName(exampleBudget.name()) .actionType("APPLY_IAM_POLICY") .approvalModel("AUTOMATIC") .notificationType("ACTUAL") .executionRoleArn(exampleRole.arn()) .tags(Map.ofEntries( Map.entry("Tag1", "Value1"), Map.entry("Tag2", "Value2") )) .build());}}
-
-
Constructor Summary
Constructors Constructor Description BudgetAction(java.lang.String name)BudgetAction(java.lang.String name, BudgetActionArgs args)BudgetAction(java.lang.String name, BudgetActionArgs args, com.pulumi.resources.CustomResourceOptions options)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description com.pulumi.core.Output<java.lang.String>accountId()com.pulumi.core.Output<java.lang.String>actionId()com.pulumi.core.Output<BudgetActionActionThreshold>actionThreshold()com.pulumi.core.Output<java.lang.String>actionType()com.pulumi.core.Output<java.lang.String>approvalModel()com.pulumi.core.Output<java.lang.String>arn()com.pulumi.core.Output<java.lang.String>budgetName()com.pulumi.core.Output<BudgetActionDefinition>definition()com.pulumi.core.Output<java.lang.String>executionRoleArn()static BudgetActionget(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, BudgetActionState state, com.pulumi.resources.CustomResourceOptions options)Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.com.pulumi.core.Output<java.lang.String>notificationType()com.pulumi.core.Output<java.lang.String>status()com.pulumi.core.Output<java.util.List<BudgetActionSubscriber>>subscribers()com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>>tags()com.pulumi.core.Output<java.util.Map<java.lang.String,java.lang.String>>tagsAll()
-
-
-
Constructor Detail
-
BudgetAction
public BudgetAction(java.lang.String name)
- Parameters:
name- The _unique_ name of the resulting resource.
-
BudgetAction
public BudgetAction(java.lang.String name, BudgetActionArgs args)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.
-
BudgetAction
public BudgetAction(java.lang.String name, BudgetActionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.options- A bag of options that control this resource's behavior.
-
-
Method Detail
-
accountId
public com.pulumi.core.Output<java.lang.String> accountId()
- Returns:
- ID of the target account for the budget. Uses the current user's account ID by default if omitted.
-
actionId
public com.pulumi.core.Output<java.lang.String> actionId()
- Returns:
- ID of the budget action.
-
actionThreshold
public com.pulumi.core.Output<BudgetActionActionThreshold> actionThreshold()
- Returns:
- Trigger threshold of the action. See `actionThreshold` Block.
-
actionType
public com.pulumi.core.Output<java.lang.String> actionType()
- Returns:
- 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
public com.pulumi.core.Output<java.lang.String> approvalModel()
- Returns:
- Whether the action needs manual or automatic approval. Valid values are `AUTOMATIC` and `MANUAL`.
-
arn
public com.pulumi.core.Output<java.lang.String> arn()
- Returns:
- ARN of the budget action.
-
budgetName
public com.pulumi.core.Output<java.lang.String> budgetName()
- Returns:
- Name of a budget.
-
definition
public com.pulumi.core.Output<BudgetActionDefinition> definition()
- Returns:
- Type-specific parameters. See `definition` Block.
-
executionRoleArn
public com.pulumi.core.Output<java.lang.String> executionRoleArn()
- Returns:
- Role passed for action execution and reversion. Roles and actions must be in the same account.
-
notificationType
public com.pulumi.core.Output<java.lang.String> notificationType()
- Returns:
- Type of a notification. Valid values are `ACTUAL` or `FORECASTED`.
-
status
public com.pulumi.core.Output<java.lang.String> status()
- Returns:
- Status of the budget action.
-
subscribers
public com.pulumi.core.Output<java.util.List<BudgetActionSubscriber>> subscribers()
- Returns:
- Set of subscribers. See `subscriber` Block.
-
tags
public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>> tags()
- Returns:
- Map of tags assigned to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
-
tagsAll
public com.pulumi.core.Output<java.util.Map<java.lang.String,java.lang.String>> tagsAll()
- Returns:
- Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
-
get
public static BudgetAction get(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, @Nullable BudgetActionState state, @Nullable com.pulumi.resources.CustomResourceOptions options)
Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.- Parameters:
name- The _unique_ name of the resulting resource.id- The _unique_ provider ID of the resource to lookup.state-options- Optional settings to control the behavior of the CustomResource.
-
-