github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/ec2/snapshotCreateVolumePermission.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 ec2 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 // Adds permission to create volumes off of a given EBS Snapshot. 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/ebs" 26 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" 27 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 28 // 29 // ) 30 // 31 // func main() { 32 // pulumi.Run(func(ctx *pulumi.Context) error { 33 // example, err := ebs.NewVolume(ctx, "example", &ebs.VolumeArgs{ 34 // AvailabilityZone: pulumi.String("us-west-2a"), 35 // Size: pulumi.Int(40), 36 // }) 37 // if err != nil { 38 // return err 39 // } 40 // exampleSnapshot, err := ebs.NewSnapshot(ctx, "example_snapshot", &ebs.SnapshotArgs{ 41 // VolumeId: example.ID(), 42 // }) 43 // if err != nil { 44 // return err 45 // } 46 // _, err = ec2.NewSnapshotCreateVolumePermission(ctx, "example_perm", &ec2.SnapshotCreateVolumePermissionArgs{ 47 // SnapshotId: exampleSnapshot.ID(), 48 // AccountId: pulumi.String("12345678"), 49 // }) 50 // if err != nil { 51 // return err 52 // } 53 // return nil 54 // }) 55 // } 56 // 57 // ``` 58 // <!--End PulumiCodeChooser --> 59 type SnapshotCreateVolumePermission struct { 60 pulumi.CustomResourceState 61 62 // An AWS Account ID to add create volume permissions. The AWS Account cannot be the snapshot's owner 63 AccountId pulumi.StringOutput `pulumi:"accountId"` 64 // A snapshot ID 65 SnapshotId pulumi.StringOutput `pulumi:"snapshotId"` 66 } 67 68 // NewSnapshotCreateVolumePermission registers a new resource with the given unique name, arguments, and options. 69 func NewSnapshotCreateVolumePermission(ctx *pulumi.Context, 70 name string, args *SnapshotCreateVolumePermissionArgs, opts ...pulumi.ResourceOption) (*SnapshotCreateVolumePermission, error) { 71 if args == nil { 72 return nil, errors.New("missing one or more required arguments") 73 } 74 75 if args.AccountId == nil { 76 return nil, errors.New("invalid value for required argument 'AccountId'") 77 } 78 if args.SnapshotId == nil { 79 return nil, errors.New("invalid value for required argument 'SnapshotId'") 80 } 81 opts = internal.PkgResourceDefaultOpts(opts) 82 var resource SnapshotCreateVolumePermission 83 err := ctx.RegisterResource("aws:ec2/snapshotCreateVolumePermission:SnapshotCreateVolumePermission", name, args, &resource, opts...) 84 if err != nil { 85 return nil, err 86 } 87 return &resource, nil 88 } 89 90 // GetSnapshotCreateVolumePermission gets an existing SnapshotCreateVolumePermission resource's state with the given name, ID, and optional 91 // state properties that are used to uniquely qualify the lookup (nil if not required). 92 func GetSnapshotCreateVolumePermission(ctx *pulumi.Context, 93 name string, id pulumi.IDInput, state *SnapshotCreateVolumePermissionState, opts ...pulumi.ResourceOption) (*SnapshotCreateVolumePermission, error) { 94 var resource SnapshotCreateVolumePermission 95 err := ctx.ReadResource("aws:ec2/snapshotCreateVolumePermission:SnapshotCreateVolumePermission", name, id, state, &resource, opts...) 96 if err != nil { 97 return nil, err 98 } 99 return &resource, nil 100 } 101 102 // Input properties used for looking up and filtering SnapshotCreateVolumePermission resources. 103 type snapshotCreateVolumePermissionState struct { 104 // An AWS Account ID to add create volume permissions. The AWS Account cannot be the snapshot's owner 105 AccountId *string `pulumi:"accountId"` 106 // A snapshot ID 107 SnapshotId *string `pulumi:"snapshotId"` 108 } 109 110 type SnapshotCreateVolumePermissionState struct { 111 // An AWS Account ID to add create volume permissions. The AWS Account cannot be the snapshot's owner 112 AccountId pulumi.StringPtrInput 113 // A snapshot ID 114 SnapshotId pulumi.StringPtrInput 115 } 116 117 func (SnapshotCreateVolumePermissionState) ElementType() reflect.Type { 118 return reflect.TypeOf((*snapshotCreateVolumePermissionState)(nil)).Elem() 119 } 120 121 type snapshotCreateVolumePermissionArgs struct { 122 // An AWS Account ID to add create volume permissions. The AWS Account cannot be the snapshot's owner 123 AccountId string `pulumi:"accountId"` 124 // A snapshot ID 125 SnapshotId string `pulumi:"snapshotId"` 126 } 127 128 // The set of arguments for constructing a SnapshotCreateVolumePermission resource. 129 type SnapshotCreateVolumePermissionArgs struct { 130 // An AWS Account ID to add create volume permissions. The AWS Account cannot be the snapshot's owner 131 AccountId pulumi.StringInput 132 // A snapshot ID 133 SnapshotId pulumi.StringInput 134 } 135 136 func (SnapshotCreateVolumePermissionArgs) ElementType() reflect.Type { 137 return reflect.TypeOf((*snapshotCreateVolumePermissionArgs)(nil)).Elem() 138 } 139 140 type SnapshotCreateVolumePermissionInput interface { 141 pulumi.Input 142 143 ToSnapshotCreateVolumePermissionOutput() SnapshotCreateVolumePermissionOutput 144 ToSnapshotCreateVolumePermissionOutputWithContext(ctx context.Context) SnapshotCreateVolumePermissionOutput 145 } 146 147 func (*SnapshotCreateVolumePermission) ElementType() reflect.Type { 148 return reflect.TypeOf((**SnapshotCreateVolumePermission)(nil)).Elem() 149 } 150 151 func (i *SnapshotCreateVolumePermission) ToSnapshotCreateVolumePermissionOutput() SnapshotCreateVolumePermissionOutput { 152 return i.ToSnapshotCreateVolumePermissionOutputWithContext(context.Background()) 153 } 154 155 func (i *SnapshotCreateVolumePermission) ToSnapshotCreateVolumePermissionOutputWithContext(ctx context.Context) SnapshotCreateVolumePermissionOutput { 156 return pulumi.ToOutputWithContext(ctx, i).(SnapshotCreateVolumePermissionOutput) 157 } 158 159 // SnapshotCreateVolumePermissionArrayInput is an input type that accepts SnapshotCreateVolumePermissionArray and SnapshotCreateVolumePermissionArrayOutput values. 160 // You can construct a concrete instance of `SnapshotCreateVolumePermissionArrayInput` via: 161 // 162 // SnapshotCreateVolumePermissionArray{ SnapshotCreateVolumePermissionArgs{...} } 163 type SnapshotCreateVolumePermissionArrayInput interface { 164 pulumi.Input 165 166 ToSnapshotCreateVolumePermissionArrayOutput() SnapshotCreateVolumePermissionArrayOutput 167 ToSnapshotCreateVolumePermissionArrayOutputWithContext(context.Context) SnapshotCreateVolumePermissionArrayOutput 168 } 169 170 type SnapshotCreateVolumePermissionArray []SnapshotCreateVolumePermissionInput 171 172 func (SnapshotCreateVolumePermissionArray) ElementType() reflect.Type { 173 return reflect.TypeOf((*[]*SnapshotCreateVolumePermission)(nil)).Elem() 174 } 175 176 func (i SnapshotCreateVolumePermissionArray) ToSnapshotCreateVolumePermissionArrayOutput() SnapshotCreateVolumePermissionArrayOutput { 177 return i.ToSnapshotCreateVolumePermissionArrayOutputWithContext(context.Background()) 178 } 179 180 func (i SnapshotCreateVolumePermissionArray) ToSnapshotCreateVolumePermissionArrayOutputWithContext(ctx context.Context) SnapshotCreateVolumePermissionArrayOutput { 181 return pulumi.ToOutputWithContext(ctx, i).(SnapshotCreateVolumePermissionArrayOutput) 182 } 183 184 // SnapshotCreateVolumePermissionMapInput is an input type that accepts SnapshotCreateVolumePermissionMap and SnapshotCreateVolumePermissionMapOutput values. 185 // You can construct a concrete instance of `SnapshotCreateVolumePermissionMapInput` via: 186 // 187 // SnapshotCreateVolumePermissionMap{ "key": SnapshotCreateVolumePermissionArgs{...} } 188 type SnapshotCreateVolumePermissionMapInput interface { 189 pulumi.Input 190 191 ToSnapshotCreateVolumePermissionMapOutput() SnapshotCreateVolumePermissionMapOutput 192 ToSnapshotCreateVolumePermissionMapOutputWithContext(context.Context) SnapshotCreateVolumePermissionMapOutput 193 } 194 195 type SnapshotCreateVolumePermissionMap map[string]SnapshotCreateVolumePermissionInput 196 197 func (SnapshotCreateVolumePermissionMap) ElementType() reflect.Type { 198 return reflect.TypeOf((*map[string]*SnapshotCreateVolumePermission)(nil)).Elem() 199 } 200 201 func (i SnapshotCreateVolumePermissionMap) ToSnapshotCreateVolumePermissionMapOutput() SnapshotCreateVolumePermissionMapOutput { 202 return i.ToSnapshotCreateVolumePermissionMapOutputWithContext(context.Background()) 203 } 204 205 func (i SnapshotCreateVolumePermissionMap) ToSnapshotCreateVolumePermissionMapOutputWithContext(ctx context.Context) SnapshotCreateVolumePermissionMapOutput { 206 return pulumi.ToOutputWithContext(ctx, i).(SnapshotCreateVolumePermissionMapOutput) 207 } 208 209 type SnapshotCreateVolumePermissionOutput struct{ *pulumi.OutputState } 210 211 func (SnapshotCreateVolumePermissionOutput) ElementType() reflect.Type { 212 return reflect.TypeOf((**SnapshotCreateVolumePermission)(nil)).Elem() 213 } 214 215 func (o SnapshotCreateVolumePermissionOutput) ToSnapshotCreateVolumePermissionOutput() SnapshotCreateVolumePermissionOutput { 216 return o 217 } 218 219 func (o SnapshotCreateVolumePermissionOutput) ToSnapshotCreateVolumePermissionOutputWithContext(ctx context.Context) SnapshotCreateVolumePermissionOutput { 220 return o 221 } 222 223 // An AWS Account ID to add create volume permissions. The AWS Account cannot be the snapshot's owner 224 func (o SnapshotCreateVolumePermissionOutput) AccountId() pulumi.StringOutput { 225 return o.ApplyT(func(v *SnapshotCreateVolumePermission) pulumi.StringOutput { return v.AccountId }).(pulumi.StringOutput) 226 } 227 228 // A snapshot ID 229 func (o SnapshotCreateVolumePermissionOutput) SnapshotId() pulumi.StringOutput { 230 return o.ApplyT(func(v *SnapshotCreateVolumePermission) pulumi.StringOutput { return v.SnapshotId }).(pulumi.StringOutput) 231 } 232 233 type SnapshotCreateVolumePermissionArrayOutput struct{ *pulumi.OutputState } 234 235 func (SnapshotCreateVolumePermissionArrayOutput) ElementType() reflect.Type { 236 return reflect.TypeOf((*[]*SnapshotCreateVolumePermission)(nil)).Elem() 237 } 238 239 func (o SnapshotCreateVolumePermissionArrayOutput) ToSnapshotCreateVolumePermissionArrayOutput() SnapshotCreateVolumePermissionArrayOutput { 240 return o 241 } 242 243 func (o SnapshotCreateVolumePermissionArrayOutput) ToSnapshotCreateVolumePermissionArrayOutputWithContext(ctx context.Context) SnapshotCreateVolumePermissionArrayOutput { 244 return o 245 } 246 247 func (o SnapshotCreateVolumePermissionArrayOutput) Index(i pulumi.IntInput) SnapshotCreateVolumePermissionOutput { 248 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *SnapshotCreateVolumePermission { 249 return vs[0].([]*SnapshotCreateVolumePermission)[vs[1].(int)] 250 }).(SnapshotCreateVolumePermissionOutput) 251 } 252 253 type SnapshotCreateVolumePermissionMapOutput struct{ *pulumi.OutputState } 254 255 func (SnapshotCreateVolumePermissionMapOutput) ElementType() reflect.Type { 256 return reflect.TypeOf((*map[string]*SnapshotCreateVolumePermission)(nil)).Elem() 257 } 258 259 func (o SnapshotCreateVolumePermissionMapOutput) ToSnapshotCreateVolumePermissionMapOutput() SnapshotCreateVolumePermissionMapOutput { 260 return o 261 } 262 263 func (o SnapshotCreateVolumePermissionMapOutput) ToSnapshotCreateVolumePermissionMapOutputWithContext(ctx context.Context) SnapshotCreateVolumePermissionMapOutput { 264 return o 265 } 266 267 func (o SnapshotCreateVolumePermissionMapOutput) MapIndex(k pulumi.StringInput) SnapshotCreateVolumePermissionOutput { 268 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *SnapshotCreateVolumePermission { 269 return vs[0].(map[string]*SnapshotCreateVolumePermission)[vs[1].(string)] 270 }).(SnapshotCreateVolumePermissionOutput) 271 } 272 273 func init() { 274 pulumi.RegisterInputType(reflect.TypeOf((*SnapshotCreateVolumePermissionInput)(nil)).Elem(), &SnapshotCreateVolumePermission{}) 275 pulumi.RegisterInputType(reflect.TypeOf((*SnapshotCreateVolumePermissionArrayInput)(nil)).Elem(), SnapshotCreateVolumePermissionArray{}) 276 pulumi.RegisterInputType(reflect.TypeOf((*SnapshotCreateVolumePermissionMapInput)(nil)).Elem(), SnapshotCreateVolumePermissionMap{}) 277 pulumi.RegisterOutputType(SnapshotCreateVolumePermissionOutput{}) 278 pulumi.RegisterOutputType(SnapshotCreateVolumePermissionArrayOutput{}) 279 pulumi.RegisterOutputType(SnapshotCreateVolumePermissionMapOutput{}) 280 }