github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/backup/vaultPolicy.go (about) 1 // Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. 2 // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** 3 4 package backup 5 6 import ( 7 "context" 8 "reflect" 9 10 "errors" 11 "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" 12 "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 13 ) 14 15 // Provides an AWS Backup vault policy resource. 16 // 17 // ## Example Usage 18 // 19 // <!--Start PulumiCodeChooser --> 20 // ```go 21 // package main 22 // 23 // import ( 24 // 25 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/backup" 26 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" 27 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 28 // 29 // ) 30 // 31 // func main() { 32 // pulumi.Run(func(ctx *pulumi.Context) error { 33 // exampleVault, err := backup.NewVault(ctx, "example", &backup.VaultArgs{ 34 // Name: pulumi.String("example"), 35 // }) 36 // if err != nil { 37 // return err 38 // } 39 // example := iam.GetPolicyDocumentOutput(ctx, iam.GetPolicyDocumentOutputArgs{ 40 // Statements: iam.GetPolicyDocumentStatementArray{ 41 // &iam.GetPolicyDocumentStatementArgs{ 42 // Effect: pulumi.String("Allow"), 43 // Principals: iam.GetPolicyDocumentStatementPrincipalArray{ 44 // &iam.GetPolicyDocumentStatementPrincipalArgs{ 45 // Type: pulumi.String("AWS"), 46 // Identifiers: pulumi.StringArray{ 47 // pulumi.String("*"), 48 // }, 49 // }, 50 // }, 51 // Actions: pulumi.StringArray{ 52 // pulumi.String("backup:DescribeBackupVault"), 53 // pulumi.String("backup:DeleteBackupVault"), 54 // pulumi.String("backup:PutBackupVaultAccessPolicy"), 55 // pulumi.String("backup:DeleteBackupVaultAccessPolicy"), 56 // pulumi.String("backup:GetBackupVaultAccessPolicy"), 57 // pulumi.String("backup:StartBackupJob"), 58 // pulumi.String("backup:GetBackupVaultNotifications"), 59 // pulumi.String("backup:PutBackupVaultNotifications"), 60 // }, 61 // Resources: pulumi.StringArray{ 62 // exampleVault.Arn, 63 // }, 64 // }, 65 // }, 66 // }, nil) 67 // _, err = backup.NewVaultPolicy(ctx, "example", &backup.VaultPolicyArgs{ 68 // BackupVaultName: exampleVault.Name, 69 // Policy: example.ApplyT(func(example iam.GetPolicyDocumentResult) (*string, error) { 70 // return &example.Json, nil 71 // }).(pulumi.StringPtrOutput), 72 // }) 73 // if err != nil { 74 // return err 75 // } 76 // return nil 77 // }) 78 // } 79 // 80 // ``` 81 // <!--End PulumiCodeChooser --> 82 // 83 // ## Import 84 // 85 // Using `pulumi import`, import Backup vault policy using the `name`. For example: 86 // 87 // ```sh 88 // $ pulumi import aws:backup/vaultPolicy:VaultPolicy test TestVault 89 // ``` 90 type VaultPolicy struct { 91 pulumi.CustomResourceState 92 93 // The ARN of the vault. 94 BackupVaultArn pulumi.StringOutput `pulumi:"backupVaultArn"` 95 // Name of the backup vault to add policy for. 96 BackupVaultName pulumi.StringOutput `pulumi:"backupVaultName"` 97 // The backup vault access policy document in JSON format. 98 Policy pulumi.StringOutput `pulumi:"policy"` 99 } 100 101 // NewVaultPolicy registers a new resource with the given unique name, arguments, and options. 102 func NewVaultPolicy(ctx *pulumi.Context, 103 name string, args *VaultPolicyArgs, opts ...pulumi.ResourceOption) (*VaultPolicy, error) { 104 if args == nil { 105 return nil, errors.New("missing one or more required arguments") 106 } 107 108 if args.BackupVaultName == nil { 109 return nil, errors.New("invalid value for required argument 'BackupVaultName'") 110 } 111 if args.Policy == nil { 112 return nil, errors.New("invalid value for required argument 'Policy'") 113 } 114 opts = internal.PkgResourceDefaultOpts(opts) 115 var resource VaultPolicy 116 err := ctx.RegisterResource("aws:backup/vaultPolicy:VaultPolicy", name, args, &resource, opts...) 117 if err != nil { 118 return nil, err 119 } 120 return &resource, nil 121 } 122 123 // GetVaultPolicy gets an existing VaultPolicy resource's state with the given name, ID, and optional 124 // state properties that are used to uniquely qualify the lookup (nil if not required). 125 func GetVaultPolicy(ctx *pulumi.Context, 126 name string, id pulumi.IDInput, state *VaultPolicyState, opts ...pulumi.ResourceOption) (*VaultPolicy, error) { 127 var resource VaultPolicy 128 err := ctx.ReadResource("aws:backup/vaultPolicy:VaultPolicy", name, id, state, &resource, opts...) 129 if err != nil { 130 return nil, err 131 } 132 return &resource, nil 133 } 134 135 // Input properties used for looking up and filtering VaultPolicy resources. 136 type vaultPolicyState struct { 137 // The ARN of the vault. 138 BackupVaultArn *string `pulumi:"backupVaultArn"` 139 // Name of the backup vault to add policy for. 140 BackupVaultName *string `pulumi:"backupVaultName"` 141 // The backup vault access policy document in JSON format. 142 Policy *string `pulumi:"policy"` 143 } 144 145 type VaultPolicyState struct { 146 // The ARN of the vault. 147 BackupVaultArn pulumi.StringPtrInput 148 // Name of the backup vault to add policy for. 149 BackupVaultName pulumi.StringPtrInput 150 // The backup vault access policy document in JSON format. 151 Policy pulumi.StringPtrInput 152 } 153 154 func (VaultPolicyState) ElementType() reflect.Type { 155 return reflect.TypeOf((*vaultPolicyState)(nil)).Elem() 156 } 157 158 type vaultPolicyArgs struct { 159 // Name of the backup vault to add policy for. 160 BackupVaultName string `pulumi:"backupVaultName"` 161 // The backup vault access policy document in JSON format. 162 Policy string `pulumi:"policy"` 163 } 164 165 // The set of arguments for constructing a VaultPolicy resource. 166 type VaultPolicyArgs struct { 167 // Name of the backup vault to add policy for. 168 BackupVaultName pulumi.StringInput 169 // The backup vault access policy document in JSON format. 170 Policy pulumi.StringInput 171 } 172 173 func (VaultPolicyArgs) ElementType() reflect.Type { 174 return reflect.TypeOf((*vaultPolicyArgs)(nil)).Elem() 175 } 176 177 type VaultPolicyInput interface { 178 pulumi.Input 179 180 ToVaultPolicyOutput() VaultPolicyOutput 181 ToVaultPolicyOutputWithContext(ctx context.Context) VaultPolicyOutput 182 } 183 184 func (*VaultPolicy) ElementType() reflect.Type { 185 return reflect.TypeOf((**VaultPolicy)(nil)).Elem() 186 } 187 188 func (i *VaultPolicy) ToVaultPolicyOutput() VaultPolicyOutput { 189 return i.ToVaultPolicyOutputWithContext(context.Background()) 190 } 191 192 func (i *VaultPolicy) ToVaultPolicyOutputWithContext(ctx context.Context) VaultPolicyOutput { 193 return pulumi.ToOutputWithContext(ctx, i).(VaultPolicyOutput) 194 } 195 196 // VaultPolicyArrayInput is an input type that accepts VaultPolicyArray and VaultPolicyArrayOutput values. 197 // You can construct a concrete instance of `VaultPolicyArrayInput` via: 198 // 199 // VaultPolicyArray{ VaultPolicyArgs{...} } 200 type VaultPolicyArrayInput interface { 201 pulumi.Input 202 203 ToVaultPolicyArrayOutput() VaultPolicyArrayOutput 204 ToVaultPolicyArrayOutputWithContext(context.Context) VaultPolicyArrayOutput 205 } 206 207 type VaultPolicyArray []VaultPolicyInput 208 209 func (VaultPolicyArray) ElementType() reflect.Type { 210 return reflect.TypeOf((*[]*VaultPolicy)(nil)).Elem() 211 } 212 213 func (i VaultPolicyArray) ToVaultPolicyArrayOutput() VaultPolicyArrayOutput { 214 return i.ToVaultPolicyArrayOutputWithContext(context.Background()) 215 } 216 217 func (i VaultPolicyArray) ToVaultPolicyArrayOutputWithContext(ctx context.Context) VaultPolicyArrayOutput { 218 return pulumi.ToOutputWithContext(ctx, i).(VaultPolicyArrayOutput) 219 } 220 221 // VaultPolicyMapInput is an input type that accepts VaultPolicyMap and VaultPolicyMapOutput values. 222 // You can construct a concrete instance of `VaultPolicyMapInput` via: 223 // 224 // VaultPolicyMap{ "key": VaultPolicyArgs{...} } 225 type VaultPolicyMapInput interface { 226 pulumi.Input 227 228 ToVaultPolicyMapOutput() VaultPolicyMapOutput 229 ToVaultPolicyMapOutputWithContext(context.Context) VaultPolicyMapOutput 230 } 231 232 type VaultPolicyMap map[string]VaultPolicyInput 233 234 func (VaultPolicyMap) ElementType() reflect.Type { 235 return reflect.TypeOf((*map[string]*VaultPolicy)(nil)).Elem() 236 } 237 238 func (i VaultPolicyMap) ToVaultPolicyMapOutput() VaultPolicyMapOutput { 239 return i.ToVaultPolicyMapOutputWithContext(context.Background()) 240 } 241 242 func (i VaultPolicyMap) ToVaultPolicyMapOutputWithContext(ctx context.Context) VaultPolicyMapOutput { 243 return pulumi.ToOutputWithContext(ctx, i).(VaultPolicyMapOutput) 244 } 245 246 type VaultPolicyOutput struct{ *pulumi.OutputState } 247 248 func (VaultPolicyOutput) ElementType() reflect.Type { 249 return reflect.TypeOf((**VaultPolicy)(nil)).Elem() 250 } 251 252 func (o VaultPolicyOutput) ToVaultPolicyOutput() VaultPolicyOutput { 253 return o 254 } 255 256 func (o VaultPolicyOutput) ToVaultPolicyOutputWithContext(ctx context.Context) VaultPolicyOutput { 257 return o 258 } 259 260 // The ARN of the vault. 261 func (o VaultPolicyOutput) BackupVaultArn() pulumi.StringOutput { 262 return o.ApplyT(func(v *VaultPolicy) pulumi.StringOutput { return v.BackupVaultArn }).(pulumi.StringOutput) 263 } 264 265 // Name of the backup vault to add policy for. 266 func (o VaultPolicyOutput) BackupVaultName() pulumi.StringOutput { 267 return o.ApplyT(func(v *VaultPolicy) pulumi.StringOutput { return v.BackupVaultName }).(pulumi.StringOutput) 268 } 269 270 // The backup vault access policy document in JSON format. 271 func (o VaultPolicyOutput) Policy() pulumi.StringOutput { 272 return o.ApplyT(func(v *VaultPolicy) pulumi.StringOutput { return v.Policy }).(pulumi.StringOutput) 273 } 274 275 type VaultPolicyArrayOutput struct{ *pulumi.OutputState } 276 277 func (VaultPolicyArrayOutput) ElementType() reflect.Type { 278 return reflect.TypeOf((*[]*VaultPolicy)(nil)).Elem() 279 } 280 281 func (o VaultPolicyArrayOutput) ToVaultPolicyArrayOutput() VaultPolicyArrayOutput { 282 return o 283 } 284 285 func (o VaultPolicyArrayOutput) ToVaultPolicyArrayOutputWithContext(ctx context.Context) VaultPolicyArrayOutput { 286 return o 287 } 288 289 func (o VaultPolicyArrayOutput) Index(i pulumi.IntInput) VaultPolicyOutput { 290 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *VaultPolicy { 291 return vs[0].([]*VaultPolicy)[vs[1].(int)] 292 }).(VaultPolicyOutput) 293 } 294 295 type VaultPolicyMapOutput struct{ *pulumi.OutputState } 296 297 func (VaultPolicyMapOutput) ElementType() reflect.Type { 298 return reflect.TypeOf((*map[string]*VaultPolicy)(nil)).Elem() 299 } 300 301 func (o VaultPolicyMapOutput) ToVaultPolicyMapOutput() VaultPolicyMapOutput { 302 return o 303 } 304 305 func (o VaultPolicyMapOutput) ToVaultPolicyMapOutputWithContext(ctx context.Context) VaultPolicyMapOutput { 306 return o 307 } 308 309 func (o VaultPolicyMapOutput) MapIndex(k pulumi.StringInput) VaultPolicyOutput { 310 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *VaultPolicy { 311 return vs[0].(map[string]*VaultPolicy)[vs[1].(string)] 312 }).(VaultPolicyOutput) 313 } 314 315 func init() { 316 pulumi.RegisterInputType(reflect.TypeOf((*VaultPolicyInput)(nil)).Elem(), &VaultPolicy{}) 317 pulumi.RegisterInputType(reflect.TypeOf((*VaultPolicyArrayInput)(nil)).Elem(), VaultPolicyArray{}) 318 pulumi.RegisterInputType(reflect.TypeOf((*VaultPolicyMapInput)(nil)).Elem(), VaultPolicyMap{}) 319 pulumi.RegisterOutputType(VaultPolicyOutput{}) 320 pulumi.RegisterOutputType(VaultPolicyArrayOutput{}) 321 pulumi.RegisterOutputType(VaultPolicyMapOutput{}) 322 }