aws.backup.VaultNotifications
Explore with Pulumi AI
Provides an AWS Backup vault notifications resource.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const testTopic = new aws.sns.Topic("test", {name: "backup-vault-events"});
const test = testTopic.arn.apply(arn => aws.iam.getPolicyDocumentOutput({
    policyId: "__default_policy_ID",
    statements: [{
        actions: ["SNS:Publish"],
        effect: "Allow",
        principals: [{
            type: "Service",
            identifiers: ["backup.amazonaws.com"],
        }],
        resources: [arn],
        sid: "__default_statement_ID",
    }],
}));
const testTopicPolicy = new aws.sns.TopicPolicy("test", {
    arn: testTopic.arn,
    policy: test.apply(test => test.json),
});
const testVaultNotifications = new aws.backup.VaultNotifications("test", {
    backupVaultName: "example_backup_vault",
    snsTopicArn: testTopic.arn,
    backupVaultEvents: [
        "BACKUP_JOB_STARTED",
        "RESTORE_JOB_COMPLETED",
    ],
});
import pulumi
import pulumi_aws as aws
test_topic = aws.sns.Topic("test", name="backup-vault-events")
test = test_topic.arn.apply(lambda arn: aws.iam.get_policy_document_output(policy_id="__default_policy_ID",
    statements=[{
        "actions": ["SNS:Publish"],
        "effect": "Allow",
        "principals": [{
            "type": "Service",
            "identifiers": ["backup.amazonaws.com"],
        }],
        "resources": [arn],
        "sid": "__default_statement_ID",
    }]))
test_topic_policy = aws.sns.TopicPolicy("test",
    arn=test_topic.arn,
    policy=test.json)
test_vault_notifications = aws.backup.VaultNotifications("test",
    backup_vault_name="example_backup_vault",
    sns_topic_arn=test_topic.arn,
    backup_vault_events=[
        "BACKUP_JOB_STARTED",
        "RESTORE_JOB_COMPLETED",
    ])
package main
import (
	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/backup"
	"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 {
testTopic, err := sns.NewTopic(ctx, "test", &sns.TopicArgs{
Name: pulumi.String("backup-vault-events"),
})
if err != nil {
return err
}
test := testTopic.Arn.ApplyT(func(arn string) (iam.GetPolicyDocumentResult, error) {
return iam.GetPolicyDocumentResult(interface{}(iam.GetPolicyDocumentOutput(ctx, iam.GetPolicyDocumentOutputArgs{
PolicyId: "__default_policy_ID",
Statements: []iam.GetPolicyDocumentStatement{
{
Actions: []string{
"SNS:Publish",
},
Effect: "Allow",
Principals: []iam.GetPolicyDocumentStatementPrincipal{
{
Type: "Service",
Identifiers: []string{
"backup.amazonaws.com",
},
},
},
Resources: interface{}{
arn,
},
Sid: "__default_statement_ID",
},
},
}, nil))), nil
}).(iam.GetPolicyDocumentResultOutput)
_, err = sns.NewTopicPolicy(ctx, "test", &sns.TopicPolicyArgs{
Arn: testTopic.Arn,
Policy: pulumi.String(test.ApplyT(func(test iam.GetPolicyDocumentResult) (*string, error) {
return &test.Json, nil
}).(pulumi.StringPtrOutput)),
})
if err != nil {
return err
}
_, err = backup.NewVaultNotifications(ctx, "test", &backup.VaultNotificationsArgs{
BackupVaultName: pulumi.String("example_backup_vault"),
SnsTopicArn: testTopic.Arn,
BackupVaultEvents: pulumi.StringArray{
pulumi.String("BACKUP_JOB_STARTED"),
pulumi.String("RESTORE_JOB_COMPLETED"),
},
})
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 testTopic = new Aws.Sns.Topic("test", new()
    {
        Name = "backup-vault-events",
    });
    var test = Aws.Iam.GetPolicyDocument.Invoke(new()
    {
        PolicyId = "__default_policy_ID",
        Statements = new[]
        {
            new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs
            {
                Actions = new[]
                {
                    "SNS:Publish",
                },
                Effect = "Allow",
                Principals = new[]
                {
                    new Aws.Iam.Inputs.GetPolicyDocumentStatementPrincipalInputArgs
                    {
                        Type = "Service",
                        Identifiers = new[]
                        {
                            "backup.amazonaws.com",
                        },
                    },
                },
                Resources = new[]
                {
                    testTopic.Arn,
                },
                Sid = "__default_statement_ID",
            },
        },
    });
    var testTopicPolicy = new Aws.Sns.TopicPolicy("test", new()
    {
        Arn = testTopic.Arn,
        Policy = test.Apply(getPolicyDocumentResult => getPolicyDocumentResult.Json),
    });
    var testVaultNotifications = new Aws.Backup.VaultNotifications("test", new()
    {
        BackupVaultName = "example_backup_vault",
        SnsTopicArn = testTopic.Arn,
        BackupVaultEvents = new[]
        {
            "BACKUP_JOB_STARTED",
            "RESTORE_JOB_COMPLETED",
        },
    });
});
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.backup.VaultNotifications;
import com.pulumi.aws.backup.VaultNotificationsArgs;
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 testTopic = new Topic("testTopic", TopicArgs.builder()
            .name("backup-vault-events")
            .build());
        final var test = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()
            .policyId("__default_policy_ID")
            .statements(GetPolicyDocumentStatementArgs.builder()
                .actions("SNS:Publish")
                .effect("Allow")
                .principals(GetPolicyDocumentStatementPrincipalArgs.builder()
                    .type("Service")
                    .identifiers("backup.amazonaws.com")
                    .build())
                .resources(testTopic.arn())
                .sid("__default_statement_ID")
                .build())
            .build());
        var testTopicPolicy = new TopicPolicy("testTopicPolicy", TopicPolicyArgs.builder()
            .arn(testTopic.arn())
            .policy(test.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult).applyValue(test -> test.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult.json())))
            .build());
        var testVaultNotifications = new VaultNotifications("testVaultNotifications", VaultNotificationsArgs.builder()
            .backupVaultName("example_backup_vault")
            .snsTopicArn(testTopic.arn())
            .backupVaultEvents(            
                "BACKUP_JOB_STARTED",
                "RESTORE_JOB_COMPLETED")
            .build());
    }
}
resources:
  testTopic:
    type: aws:sns:Topic
    name: test
    properties:
      name: backup-vault-events
  testTopicPolicy:
    type: aws:sns:TopicPolicy
    name: test
    properties:
      arn: ${testTopic.arn}
      policy: ${test.json}
  testVaultNotifications:
    type: aws:backup:VaultNotifications
    name: test
    properties:
      backupVaultName: example_backup_vault
      snsTopicArn: ${testTopic.arn}
      backupVaultEvents:
        - BACKUP_JOB_STARTED
        - RESTORE_JOB_COMPLETED
variables:
  test:
    fn::invoke:
      function: aws:iam:getPolicyDocument
      arguments:
        policyId: __default_policy_ID
        statements:
          - actions:
              - SNS:Publish
            effect: Allow
            principals:
              - type: Service
                identifiers:
                  - backup.amazonaws.com
            resources:
              - ${testTopic.arn}
            sid: __default_statement_ID
Create VaultNotifications Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new VaultNotifications(name: string, args: VaultNotificationsArgs, opts?: CustomResourceOptions);@overload
def VaultNotifications(resource_name: str,
                       args: VaultNotificationsArgs,
                       opts: Optional[ResourceOptions] = None)
@overload
def VaultNotifications(resource_name: str,
                       opts: Optional[ResourceOptions] = None,
                       backup_vault_events: Optional[Sequence[str]] = None,
                       backup_vault_name: Optional[str] = None,
                       sns_topic_arn: Optional[str] = None)func NewVaultNotifications(ctx *Context, name string, args VaultNotificationsArgs, opts ...ResourceOption) (*VaultNotifications, error)public VaultNotifications(string name, VaultNotificationsArgs args, CustomResourceOptions? opts = null)
public VaultNotifications(String name, VaultNotificationsArgs args)
public VaultNotifications(String name, VaultNotificationsArgs args, CustomResourceOptions options)
type: aws:backup:VaultNotifications
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 VaultNotificationsArgs
- 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 VaultNotificationsArgs
- 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 VaultNotificationsArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args VaultNotificationsArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args VaultNotificationsArgs
- 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 vaultNotificationsResource = new Aws.Backup.VaultNotifications("vaultNotificationsResource", new()
{
    BackupVaultEvents = new[]
    {
        "string",
    },
    BackupVaultName = "string",
    SnsTopicArn = "string",
});
example, err := backup.NewVaultNotifications(ctx, "vaultNotificationsResource", &backup.VaultNotificationsArgs{
	BackupVaultEvents: pulumi.StringArray{
		pulumi.String("string"),
	},
	BackupVaultName: pulumi.String("string"),
	SnsTopicArn:     pulumi.String("string"),
})
var vaultNotificationsResource = new VaultNotifications("vaultNotificationsResource", VaultNotificationsArgs.builder()
    .backupVaultEvents("string")
    .backupVaultName("string")
    .snsTopicArn("string")
    .build());
vault_notifications_resource = aws.backup.VaultNotifications("vaultNotificationsResource",
    backup_vault_events=["string"],
    backup_vault_name="string",
    sns_topic_arn="string")
const vaultNotificationsResource = new aws.backup.VaultNotifications("vaultNotificationsResource", {
    backupVaultEvents: ["string"],
    backupVaultName: "string",
    snsTopicArn: "string",
});
type: aws:backup:VaultNotifications
properties:
    backupVaultEvents:
        - string
    backupVaultName: string
    snsTopicArn: string
VaultNotifications 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 VaultNotifications resource accepts the following input properties:
- BackupVault List<string>Events 
- An array of events that indicate the status of jobs to back up resources to the backup vault.
- BackupVault stringName 
- Name of the backup vault to add notifications for.
- SnsTopic stringArn 
- The Amazon Resource Name (ARN) that specifies the topic for a backup vault’s events
- BackupVault []stringEvents 
- An array of events that indicate the status of jobs to back up resources to the backup vault.
- BackupVault stringName 
- Name of the backup vault to add notifications for.
- SnsTopic stringArn 
- The Amazon Resource Name (ARN) that specifies the topic for a backup vault’s events
- backupVault List<String>Events 
- An array of events that indicate the status of jobs to back up resources to the backup vault.
- backupVault StringName 
- Name of the backup vault to add notifications for.
- snsTopic StringArn 
- The Amazon Resource Name (ARN) that specifies the topic for a backup vault’s events
- backupVault string[]Events 
- An array of events that indicate the status of jobs to back up resources to the backup vault.
- backupVault stringName 
- Name of the backup vault to add notifications for.
- snsTopic stringArn 
- The Amazon Resource Name (ARN) that specifies the topic for a backup vault’s events
- backup_vault_ Sequence[str]events 
- An array of events that indicate the status of jobs to back up resources to the backup vault.
- backup_vault_ strname 
- Name of the backup vault to add notifications for.
- sns_topic_ strarn 
- The Amazon Resource Name (ARN) that specifies the topic for a backup vault’s events
- backupVault List<String>Events 
- An array of events that indicate the status of jobs to back up resources to the backup vault.
- backupVault StringName 
- Name of the backup vault to add notifications for.
- snsTopic StringArn 
- The Amazon Resource Name (ARN) that specifies the topic for a backup vault’s events
Outputs
All input properties are implicitly available as output properties. Additionally, the VaultNotifications resource produces the following output properties:
- BackupVault stringArn 
- The ARN of the vault.
- Id string
- The provider-assigned unique ID for this managed resource.
- BackupVault stringArn 
- The ARN of the vault.
- Id string
- The provider-assigned unique ID for this managed resource.
- backupVault StringArn 
- The ARN of the vault.
- id String
- The provider-assigned unique ID for this managed resource.
- backupVault stringArn 
- The ARN of the vault.
- id string
- The provider-assigned unique ID for this managed resource.
- backup_vault_ strarn 
- The ARN of the vault.
- id str
- The provider-assigned unique ID for this managed resource.
- backupVault StringArn 
- The ARN of the vault.
- id String
- The provider-assigned unique ID for this managed resource.
Look up Existing VaultNotifications Resource
Get an existing VaultNotifications 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?: VaultNotificationsState, opts?: CustomResourceOptions): VaultNotifications@staticmethod
def get(resource_name: str,
        id: str,
        opts: Optional[ResourceOptions] = None,
        backup_vault_arn: Optional[str] = None,
        backup_vault_events: Optional[Sequence[str]] = None,
        backup_vault_name: Optional[str] = None,
        sns_topic_arn: Optional[str] = None) -> VaultNotificationsfunc GetVaultNotifications(ctx *Context, name string, id IDInput, state *VaultNotificationsState, opts ...ResourceOption) (*VaultNotifications, error)public static VaultNotifications Get(string name, Input<string> id, VaultNotificationsState? state, CustomResourceOptions? opts = null)public static VaultNotifications get(String name, Output<String> id, VaultNotificationsState state, CustomResourceOptions options)resources:  _:    type: aws:backup:VaultNotifications    get:      id: ${id}- 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.
- BackupVault stringArn 
- The ARN of the vault.
- BackupVault List<string>Events 
- An array of events that indicate the status of jobs to back up resources to the backup vault.
- BackupVault stringName 
- Name of the backup vault to add notifications for.
- SnsTopic stringArn 
- The Amazon Resource Name (ARN) that specifies the topic for a backup vault’s events
- BackupVault stringArn 
- The ARN of the vault.
- BackupVault []stringEvents 
- An array of events that indicate the status of jobs to back up resources to the backup vault.
- BackupVault stringName 
- Name of the backup vault to add notifications for.
- SnsTopic stringArn 
- The Amazon Resource Name (ARN) that specifies the topic for a backup vault’s events
- backupVault StringArn 
- The ARN of the vault.
- backupVault List<String>Events 
- An array of events that indicate the status of jobs to back up resources to the backup vault.
- backupVault StringName 
- Name of the backup vault to add notifications for.
- snsTopic StringArn 
- The Amazon Resource Name (ARN) that specifies the topic for a backup vault’s events
- backupVault stringArn 
- The ARN of the vault.
- backupVault string[]Events 
- An array of events that indicate the status of jobs to back up resources to the backup vault.
- backupVault stringName 
- Name of the backup vault to add notifications for.
- snsTopic stringArn 
- The Amazon Resource Name (ARN) that specifies the topic for a backup vault’s events
- backup_vault_ strarn 
- The ARN of the vault.
- backup_vault_ Sequence[str]events 
- An array of events that indicate the status of jobs to back up resources to the backup vault.
- backup_vault_ strname 
- Name of the backup vault to add notifications for.
- sns_topic_ strarn 
- The Amazon Resource Name (ARN) that specifies the topic for a backup vault’s events
- backupVault StringArn 
- The ARN of the vault.
- backupVault List<String>Events 
- An array of events that indicate the status of jobs to back up resources to the backup vault.
- backupVault StringName 
- Name of the backup vault to add notifications for.
- snsTopic StringArn 
- The Amazon Resource Name (ARN) that specifies the topic for a backup vault’s events
Import
Using pulumi import, import Backup vault notifications using the name. For example:
$ pulumi import aws:backup/vaultNotifications:VaultNotifications test TestVault
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 awsTerraform Provider.