github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/ec2/amiLaunchPermission.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 a launch permission to an Amazon Machine Image (AMI). 16 // 17 // ## Example Usage 18 // 19 // ### AWS Account ID 20 // 21 // <!--Start PulumiCodeChooser --> 22 // ```go 23 // package main 24 // 25 // import ( 26 // 27 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" 28 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 29 // 30 // ) 31 // 32 // func main() { 33 // pulumi.Run(func(ctx *pulumi.Context) error { 34 // _, err := ec2.NewAmiLaunchPermission(ctx, "example", &ec2.AmiLaunchPermissionArgs{ 35 // ImageId: pulumi.String("ami-12345678"), 36 // AccountId: pulumi.String("123456789012"), 37 // }) 38 // if err != nil { 39 // return err 40 // } 41 // return nil 42 // }) 43 // } 44 // 45 // ``` 46 // <!--End PulumiCodeChooser --> 47 // 48 // ### Public Access 49 // 50 // <!--Start PulumiCodeChooser --> 51 // ```go 52 // package main 53 // 54 // import ( 55 // 56 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" 57 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 58 // 59 // ) 60 // 61 // func main() { 62 // pulumi.Run(func(ctx *pulumi.Context) error { 63 // _, err := ec2.NewAmiLaunchPermission(ctx, "example", &ec2.AmiLaunchPermissionArgs{ 64 // ImageId: pulumi.String("ami-12345678"), 65 // Group: pulumi.String("all"), 66 // }) 67 // if err != nil { 68 // return err 69 // } 70 // return nil 71 // }) 72 // } 73 // 74 // ``` 75 // <!--End PulumiCodeChooser --> 76 // 77 // ### Organization Access 78 // 79 // <!--Start PulumiCodeChooser --> 80 // ```go 81 // package main 82 // 83 // import ( 84 // 85 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" 86 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/organizations" 87 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 88 // 89 // ) 90 // 91 // func main() { 92 // pulumi.Run(func(ctx *pulumi.Context) error { 93 // current, err := organizations.LookupOrganization(ctx, nil, nil) 94 // if err != nil { 95 // return err 96 // } 97 // _, err = ec2.NewAmiLaunchPermission(ctx, "example", &ec2.AmiLaunchPermissionArgs{ 98 // ImageId: pulumi.String("ami-12345678"), 99 // OrganizationArn: pulumi.String(current.Arn), 100 // }) 101 // if err != nil { 102 // return err 103 // } 104 // return nil 105 // }) 106 // } 107 // 108 // ``` 109 // <!--End PulumiCodeChooser --> 110 // 111 // ## Import 112 // 113 // Using `pulumi import`, import AMI Launch Permissions using `[ACCOUNT-ID|GROUP-NAME|ORGANIZATION-ARN|ORGANIZATIONAL-UNIT-ARN]/IMAGE-ID`. For example: 114 // 115 // ```sh 116 // $ pulumi import aws:ec2/amiLaunchPermission:AmiLaunchPermission example 123456789012/ami-12345678 117 // ``` 118 type AmiLaunchPermission struct { 119 pulumi.CustomResourceState 120 121 // AWS account ID for the launch permission. 122 AccountId pulumi.StringPtrOutput `pulumi:"accountId"` 123 // Name of the group for the launch permission. Valid values: `"all"`. 124 Group pulumi.StringPtrOutput `pulumi:"group"` 125 // ID of the AMI. 126 ImageId pulumi.StringOutput `pulumi:"imageId"` 127 // ARN of an organization for the launch permission. 128 OrganizationArn pulumi.StringPtrOutput `pulumi:"organizationArn"` 129 // ARN of an organizational unit for the launch permission. 130 OrganizationalUnitArn pulumi.StringPtrOutput `pulumi:"organizationalUnitArn"` 131 } 132 133 // NewAmiLaunchPermission registers a new resource with the given unique name, arguments, and options. 134 func NewAmiLaunchPermission(ctx *pulumi.Context, 135 name string, args *AmiLaunchPermissionArgs, opts ...pulumi.ResourceOption) (*AmiLaunchPermission, error) { 136 if args == nil { 137 return nil, errors.New("missing one or more required arguments") 138 } 139 140 if args.ImageId == nil { 141 return nil, errors.New("invalid value for required argument 'ImageId'") 142 } 143 opts = internal.PkgResourceDefaultOpts(opts) 144 var resource AmiLaunchPermission 145 err := ctx.RegisterResource("aws:ec2/amiLaunchPermission:AmiLaunchPermission", name, args, &resource, opts...) 146 if err != nil { 147 return nil, err 148 } 149 return &resource, nil 150 } 151 152 // GetAmiLaunchPermission gets an existing AmiLaunchPermission resource's state with the given name, ID, and optional 153 // state properties that are used to uniquely qualify the lookup (nil if not required). 154 func GetAmiLaunchPermission(ctx *pulumi.Context, 155 name string, id pulumi.IDInput, state *AmiLaunchPermissionState, opts ...pulumi.ResourceOption) (*AmiLaunchPermission, error) { 156 var resource AmiLaunchPermission 157 err := ctx.ReadResource("aws:ec2/amiLaunchPermission:AmiLaunchPermission", name, id, state, &resource, opts...) 158 if err != nil { 159 return nil, err 160 } 161 return &resource, nil 162 } 163 164 // Input properties used for looking up and filtering AmiLaunchPermission resources. 165 type amiLaunchPermissionState struct { 166 // AWS account ID for the launch permission. 167 AccountId *string `pulumi:"accountId"` 168 // Name of the group for the launch permission. Valid values: `"all"`. 169 Group *string `pulumi:"group"` 170 // ID of the AMI. 171 ImageId *string `pulumi:"imageId"` 172 // ARN of an organization for the launch permission. 173 OrganizationArn *string `pulumi:"organizationArn"` 174 // ARN of an organizational unit for the launch permission. 175 OrganizationalUnitArn *string `pulumi:"organizationalUnitArn"` 176 } 177 178 type AmiLaunchPermissionState struct { 179 // AWS account ID for the launch permission. 180 AccountId pulumi.StringPtrInput 181 // Name of the group for the launch permission. Valid values: `"all"`. 182 Group pulumi.StringPtrInput 183 // ID of the AMI. 184 ImageId pulumi.StringPtrInput 185 // ARN of an organization for the launch permission. 186 OrganizationArn pulumi.StringPtrInput 187 // ARN of an organizational unit for the launch permission. 188 OrganizationalUnitArn pulumi.StringPtrInput 189 } 190 191 func (AmiLaunchPermissionState) ElementType() reflect.Type { 192 return reflect.TypeOf((*amiLaunchPermissionState)(nil)).Elem() 193 } 194 195 type amiLaunchPermissionArgs struct { 196 // AWS account ID for the launch permission. 197 AccountId *string `pulumi:"accountId"` 198 // Name of the group for the launch permission. Valid values: `"all"`. 199 Group *string `pulumi:"group"` 200 // ID of the AMI. 201 ImageId string `pulumi:"imageId"` 202 // ARN of an organization for the launch permission. 203 OrganizationArn *string `pulumi:"organizationArn"` 204 // ARN of an organizational unit for the launch permission. 205 OrganizationalUnitArn *string `pulumi:"organizationalUnitArn"` 206 } 207 208 // The set of arguments for constructing a AmiLaunchPermission resource. 209 type AmiLaunchPermissionArgs struct { 210 // AWS account ID for the launch permission. 211 AccountId pulumi.StringPtrInput 212 // Name of the group for the launch permission. Valid values: `"all"`. 213 Group pulumi.StringPtrInput 214 // ID of the AMI. 215 ImageId pulumi.StringInput 216 // ARN of an organization for the launch permission. 217 OrganizationArn pulumi.StringPtrInput 218 // ARN of an organizational unit for the launch permission. 219 OrganizationalUnitArn pulumi.StringPtrInput 220 } 221 222 func (AmiLaunchPermissionArgs) ElementType() reflect.Type { 223 return reflect.TypeOf((*amiLaunchPermissionArgs)(nil)).Elem() 224 } 225 226 type AmiLaunchPermissionInput interface { 227 pulumi.Input 228 229 ToAmiLaunchPermissionOutput() AmiLaunchPermissionOutput 230 ToAmiLaunchPermissionOutputWithContext(ctx context.Context) AmiLaunchPermissionOutput 231 } 232 233 func (*AmiLaunchPermission) ElementType() reflect.Type { 234 return reflect.TypeOf((**AmiLaunchPermission)(nil)).Elem() 235 } 236 237 func (i *AmiLaunchPermission) ToAmiLaunchPermissionOutput() AmiLaunchPermissionOutput { 238 return i.ToAmiLaunchPermissionOutputWithContext(context.Background()) 239 } 240 241 func (i *AmiLaunchPermission) ToAmiLaunchPermissionOutputWithContext(ctx context.Context) AmiLaunchPermissionOutput { 242 return pulumi.ToOutputWithContext(ctx, i).(AmiLaunchPermissionOutput) 243 } 244 245 // AmiLaunchPermissionArrayInput is an input type that accepts AmiLaunchPermissionArray and AmiLaunchPermissionArrayOutput values. 246 // You can construct a concrete instance of `AmiLaunchPermissionArrayInput` via: 247 // 248 // AmiLaunchPermissionArray{ AmiLaunchPermissionArgs{...} } 249 type AmiLaunchPermissionArrayInput interface { 250 pulumi.Input 251 252 ToAmiLaunchPermissionArrayOutput() AmiLaunchPermissionArrayOutput 253 ToAmiLaunchPermissionArrayOutputWithContext(context.Context) AmiLaunchPermissionArrayOutput 254 } 255 256 type AmiLaunchPermissionArray []AmiLaunchPermissionInput 257 258 func (AmiLaunchPermissionArray) ElementType() reflect.Type { 259 return reflect.TypeOf((*[]*AmiLaunchPermission)(nil)).Elem() 260 } 261 262 func (i AmiLaunchPermissionArray) ToAmiLaunchPermissionArrayOutput() AmiLaunchPermissionArrayOutput { 263 return i.ToAmiLaunchPermissionArrayOutputWithContext(context.Background()) 264 } 265 266 func (i AmiLaunchPermissionArray) ToAmiLaunchPermissionArrayOutputWithContext(ctx context.Context) AmiLaunchPermissionArrayOutput { 267 return pulumi.ToOutputWithContext(ctx, i).(AmiLaunchPermissionArrayOutput) 268 } 269 270 // AmiLaunchPermissionMapInput is an input type that accepts AmiLaunchPermissionMap and AmiLaunchPermissionMapOutput values. 271 // You can construct a concrete instance of `AmiLaunchPermissionMapInput` via: 272 // 273 // AmiLaunchPermissionMap{ "key": AmiLaunchPermissionArgs{...} } 274 type AmiLaunchPermissionMapInput interface { 275 pulumi.Input 276 277 ToAmiLaunchPermissionMapOutput() AmiLaunchPermissionMapOutput 278 ToAmiLaunchPermissionMapOutputWithContext(context.Context) AmiLaunchPermissionMapOutput 279 } 280 281 type AmiLaunchPermissionMap map[string]AmiLaunchPermissionInput 282 283 func (AmiLaunchPermissionMap) ElementType() reflect.Type { 284 return reflect.TypeOf((*map[string]*AmiLaunchPermission)(nil)).Elem() 285 } 286 287 func (i AmiLaunchPermissionMap) ToAmiLaunchPermissionMapOutput() AmiLaunchPermissionMapOutput { 288 return i.ToAmiLaunchPermissionMapOutputWithContext(context.Background()) 289 } 290 291 func (i AmiLaunchPermissionMap) ToAmiLaunchPermissionMapOutputWithContext(ctx context.Context) AmiLaunchPermissionMapOutput { 292 return pulumi.ToOutputWithContext(ctx, i).(AmiLaunchPermissionMapOutput) 293 } 294 295 type AmiLaunchPermissionOutput struct{ *pulumi.OutputState } 296 297 func (AmiLaunchPermissionOutput) ElementType() reflect.Type { 298 return reflect.TypeOf((**AmiLaunchPermission)(nil)).Elem() 299 } 300 301 func (o AmiLaunchPermissionOutput) ToAmiLaunchPermissionOutput() AmiLaunchPermissionOutput { 302 return o 303 } 304 305 func (o AmiLaunchPermissionOutput) ToAmiLaunchPermissionOutputWithContext(ctx context.Context) AmiLaunchPermissionOutput { 306 return o 307 } 308 309 // AWS account ID for the launch permission. 310 func (o AmiLaunchPermissionOutput) AccountId() pulumi.StringPtrOutput { 311 return o.ApplyT(func(v *AmiLaunchPermission) pulumi.StringPtrOutput { return v.AccountId }).(pulumi.StringPtrOutput) 312 } 313 314 // Name of the group for the launch permission. Valid values: `"all"`. 315 func (o AmiLaunchPermissionOutput) Group() pulumi.StringPtrOutput { 316 return o.ApplyT(func(v *AmiLaunchPermission) pulumi.StringPtrOutput { return v.Group }).(pulumi.StringPtrOutput) 317 } 318 319 // ID of the AMI. 320 func (o AmiLaunchPermissionOutput) ImageId() pulumi.StringOutput { 321 return o.ApplyT(func(v *AmiLaunchPermission) pulumi.StringOutput { return v.ImageId }).(pulumi.StringOutput) 322 } 323 324 // ARN of an organization for the launch permission. 325 func (o AmiLaunchPermissionOutput) OrganizationArn() pulumi.StringPtrOutput { 326 return o.ApplyT(func(v *AmiLaunchPermission) pulumi.StringPtrOutput { return v.OrganizationArn }).(pulumi.StringPtrOutput) 327 } 328 329 // ARN of an organizational unit for the launch permission. 330 func (o AmiLaunchPermissionOutput) OrganizationalUnitArn() pulumi.StringPtrOutput { 331 return o.ApplyT(func(v *AmiLaunchPermission) pulumi.StringPtrOutput { return v.OrganizationalUnitArn }).(pulumi.StringPtrOutput) 332 } 333 334 type AmiLaunchPermissionArrayOutput struct{ *pulumi.OutputState } 335 336 func (AmiLaunchPermissionArrayOutput) ElementType() reflect.Type { 337 return reflect.TypeOf((*[]*AmiLaunchPermission)(nil)).Elem() 338 } 339 340 func (o AmiLaunchPermissionArrayOutput) ToAmiLaunchPermissionArrayOutput() AmiLaunchPermissionArrayOutput { 341 return o 342 } 343 344 func (o AmiLaunchPermissionArrayOutput) ToAmiLaunchPermissionArrayOutputWithContext(ctx context.Context) AmiLaunchPermissionArrayOutput { 345 return o 346 } 347 348 func (o AmiLaunchPermissionArrayOutput) Index(i pulumi.IntInput) AmiLaunchPermissionOutput { 349 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *AmiLaunchPermission { 350 return vs[0].([]*AmiLaunchPermission)[vs[1].(int)] 351 }).(AmiLaunchPermissionOutput) 352 } 353 354 type AmiLaunchPermissionMapOutput struct{ *pulumi.OutputState } 355 356 func (AmiLaunchPermissionMapOutput) ElementType() reflect.Type { 357 return reflect.TypeOf((*map[string]*AmiLaunchPermission)(nil)).Elem() 358 } 359 360 func (o AmiLaunchPermissionMapOutput) ToAmiLaunchPermissionMapOutput() AmiLaunchPermissionMapOutput { 361 return o 362 } 363 364 func (o AmiLaunchPermissionMapOutput) ToAmiLaunchPermissionMapOutputWithContext(ctx context.Context) AmiLaunchPermissionMapOutput { 365 return o 366 } 367 368 func (o AmiLaunchPermissionMapOutput) MapIndex(k pulumi.StringInput) AmiLaunchPermissionOutput { 369 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *AmiLaunchPermission { 370 return vs[0].(map[string]*AmiLaunchPermission)[vs[1].(string)] 371 }).(AmiLaunchPermissionOutput) 372 } 373 374 func init() { 375 pulumi.RegisterInputType(reflect.TypeOf((*AmiLaunchPermissionInput)(nil)).Elem(), &AmiLaunchPermission{}) 376 pulumi.RegisterInputType(reflect.TypeOf((*AmiLaunchPermissionArrayInput)(nil)).Elem(), AmiLaunchPermissionArray{}) 377 pulumi.RegisterInputType(reflect.TypeOf((*AmiLaunchPermissionMapInput)(nil)).Elem(), AmiLaunchPermissionMap{}) 378 pulumi.RegisterOutputType(AmiLaunchPermissionOutput{}) 379 pulumi.RegisterOutputType(AmiLaunchPermissionArrayOutput{}) 380 pulumi.RegisterOutputType(AmiLaunchPermissionMapOutput{}) 381 }