github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/ec2/vpcIpamPoolCidrAllocation.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 // Allocates (reserves) a CIDR from an IPAM address pool, preventing usage by IPAM. Only works for private IPv4. 16 // 17 // ## Example Usage 18 // 19 // Basic usage: 20 // 21 // <!--Start PulumiCodeChooser --> 22 // ```go 23 // package main 24 // 25 // import ( 26 // 27 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws" 28 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" 29 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 30 // 31 // ) 32 // 33 // func main() { 34 // pulumi.Run(func(ctx *pulumi.Context) error { 35 // current, err := aws.GetRegion(ctx, nil, nil) 36 // if err != nil { 37 // return err 38 // } 39 // exampleVpcIpam, err := ec2.NewVpcIpam(ctx, "example", &ec2.VpcIpamArgs{ 40 // OperatingRegions: ec2.VpcIpamOperatingRegionArray{ 41 // &ec2.VpcIpamOperatingRegionArgs{ 42 // RegionName: pulumi.String(current.Name), 43 // }, 44 // }, 45 // }) 46 // if err != nil { 47 // return err 48 // } 49 // exampleVpcIpamPool, err := ec2.NewVpcIpamPool(ctx, "example", &ec2.VpcIpamPoolArgs{ 50 // AddressFamily: pulumi.String("ipv4"), 51 // IpamScopeId: exampleVpcIpam.PrivateDefaultScopeId, 52 // Locale: pulumi.String(current.Name), 53 // }) 54 // if err != nil { 55 // return err 56 // } 57 // exampleVpcIpamPoolCidr, err := ec2.NewVpcIpamPoolCidr(ctx, "example", &ec2.VpcIpamPoolCidrArgs{ 58 // IpamPoolId: exampleVpcIpamPool.ID(), 59 // Cidr: pulumi.String("172.20.0.0/16"), 60 // }) 61 // if err != nil { 62 // return err 63 // } 64 // _, err = ec2.NewVpcIpamPoolCidrAllocation(ctx, "example", &ec2.VpcIpamPoolCidrAllocationArgs{ 65 // IpamPoolId: exampleVpcIpamPool.ID(), 66 // Cidr: pulumi.String("172.20.0.0/24"), 67 // }, pulumi.DependsOn([]pulumi.Resource{ 68 // exampleVpcIpamPoolCidr, 69 // })) 70 // if err != nil { 71 // return err 72 // } 73 // return nil 74 // }) 75 // } 76 // 77 // ``` 78 // <!--End PulumiCodeChooser --> 79 // 80 // With the `disallowedCidrs` attribute: 81 // 82 // <!--Start PulumiCodeChooser --> 83 // ```go 84 // package main 85 // 86 // import ( 87 // 88 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws" 89 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" 90 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 91 // 92 // ) 93 // 94 // func main() { 95 // pulumi.Run(func(ctx *pulumi.Context) error { 96 // current, err := aws.GetRegion(ctx, nil, nil) 97 // if err != nil { 98 // return err 99 // } 100 // exampleVpcIpam, err := ec2.NewVpcIpam(ctx, "example", &ec2.VpcIpamArgs{ 101 // OperatingRegions: ec2.VpcIpamOperatingRegionArray{ 102 // &ec2.VpcIpamOperatingRegionArgs{ 103 // RegionName: pulumi.String(current.Name), 104 // }, 105 // }, 106 // }) 107 // if err != nil { 108 // return err 109 // } 110 // exampleVpcIpamPool, err := ec2.NewVpcIpamPool(ctx, "example", &ec2.VpcIpamPoolArgs{ 111 // AddressFamily: pulumi.String("ipv4"), 112 // IpamScopeId: exampleVpcIpam.PrivateDefaultScopeId, 113 // Locale: pulumi.String(current.Name), 114 // }) 115 // if err != nil { 116 // return err 117 // } 118 // exampleVpcIpamPoolCidr, err := ec2.NewVpcIpamPoolCidr(ctx, "example", &ec2.VpcIpamPoolCidrArgs{ 119 // IpamPoolId: exampleVpcIpamPool.ID(), 120 // Cidr: pulumi.String("172.20.0.0/16"), 121 // }) 122 // if err != nil { 123 // return err 124 // } 125 // _, err = ec2.NewVpcIpamPoolCidrAllocation(ctx, "example", &ec2.VpcIpamPoolCidrAllocationArgs{ 126 // IpamPoolId: exampleVpcIpamPool.ID(), 127 // NetmaskLength: pulumi.Int(28), 128 // DisallowedCidrs: pulumi.StringArray{ 129 // pulumi.String("172.20.0.0/28"), 130 // }, 131 // }, pulumi.DependsOn([]pulumi.Resource{ 132 // exampleVpcIpamPoolCidr, 133 // })) 134 // if err != nil { 135 // return err 136 // } 137 // return nil 138 // }) 139 // } 140 // 141 // ``` 142 // <!--End PulumiCodeChooser --> 143 // 144 // ## Import 145 // 146 // Using `pulumi import`, import IPAM allocations using the allocation `id` and `pool id`, separated by `_`. For example: 147 // 148 // ```sh 149 // $ pulumi import aws:ec2/vpcIpamPoolCidrAllocation:VpcIpamPoolCidrAllocation example ipam-pool-alloc-0dc6d196509c049ba8b549ff99f639736_ipam-pool-07cfb559e0921fcbe 150 // ``` 151 type VpcIpamPoolCidrAllocation struct { 152 pulumi.CustomResourceState 153 154 // The CIDR you want to assign to the pool. 155 Cidr pulumi.StringOutput `pulumi:"cidr"` 156 // The description for the allocation. 157 Description pulumi.StringPtrOutput `pulumi:"description"` 158 // Exclude a particular CIDR range from being returned by the pool. 159 DisallowedCidrs pulumi.StringArrayOutput `pulumi:"disallowedCidrs"` 160 IpamPoolAllocationId pulumi.StringOutput `pulumi:"ipamPoolAllocationId"` 161 // The ID of the pool to which you want to assign a CIDR. 162 IpamPoolId pulumi.StringOutput `pulumi:"ipamPoolId"` 163 // The netmask length of the CIDR you would like to allocate to the IPAM pool. Valid Values: `0-128`. 164 NetmaskLength pulumi.IntPtrOutput `pulumi:"netmaskLength"` 165 // The ID of the resource. 166 ResourceId pulumi.StringOutput `pulumi:"resourceId"` 167 // The owner of the resource. 168 ResourceOwner pulumi.StringOutput `pulumi:"resourceOwner"` 169 // The type of the resource. 170 ResourceType pulumi.StringOutput `pulumi:"resourceType"` 171 } 172 173 // NewVpcIpamPoolCidrAllocation registers a new resource with the given unique name, arguments, and options. 174 func NewVpcIpamPoolCidrAllocation(ctx *pulumi.Context, 175 name string, args *VpcIpamPoolCidrAllocationArgs, opts ...pulumi.ResourceOption) (*VpcIpamPoolCidrAllocation, error) { 176 if args == nil { 177 return nil, errors.New("missing one or more required arguments") 178 } 179 180 if args.IpamPoolId == nil { 181 return nil, errors.New("invalid value for required argument 'IpamPoolId'") 182 } 183 opts = internal.PkgResourceDefaultOpts(opts) 184 var resource VpcIpamPoolCidrAllocation 185 err := ctx.RegisterResource("aws:ec2/vpcIpamPoolCidrAllocation:VpcIpamPoolCidrAllocation", name, args, &resource, opts...) 186 if err != nil { 187 return nil, err 188 } 189 return &resource, nil 190 } 191 192 // GetVpcIpamPoolCidrAllocation gets an existing VpcIpamPoolCidrAllocation resource's state with the given name, ID, and optional 193 // state properties that are used to uniquely qualify the lookup (nil if not required). 194 func GetVpcIpamPoolCidrAllocation(ctx *pulumi.Context, 195 name string, id pulumi.IDInput, state *VpcIpamPoolCidrAllocationState, opts ...pulumi.ResourceOption) (*VpcIpamPoolCidrAllocation, error) { 196 var resource VpcIpamPoolCidrAllocation 197 err := ctx.ReadResource("aws:ec2/vpcIpamPoolCidrAllocation:VpcIpamPoolCidrAllocation", name, id, state, &resource, opts...) 198 if err != nil { 199 return nil, err 200 } 201 return &resource, nil 202 } 203 204 // Input properties used for looking up and filtering VpcIpamPoolCidrAllocation resources. 205 type vpcIpamPoolCidrAllocationState struct { 206 // The CIDR you want to assign to the pool. 207 Cidr *string `pulumi:"cidr"` 208 // The description for the allocation. 209 Description *string `pulumi:"description"` 210 // Exclude a particular CIDR range from being returned by the pool. 211 DisallowedCidrs []string `pulumi:"disallowedCidrs"` 212 IpamPoolAllocationId *string `pulumi:"ipamPoolAllocationId"` 213 // The ID of the pool to which you want to assign a CIDR. 214 IpamPoolId *string `pulumi:"ipamPoolId"` 215 // The netmask length of the CIDR you would like to allocate to the IPAM pool. Valid Values: `0-128`. 216 NetmaskLength *int `pulumi:"netmaskLength"` 217 // The ID of the resource. 218 ResourceId *string `pulumi:"resourceId"` 219 // The owner of the resource. 220 ResourceOwner *string `pulumi:"resourceOwner"` 221 // The type of the resource. 222 ResourceType *string `pulumi:"resourceType"` 223 } 224 225 type VpcIpamPoolCidrAllocationState struct { 226 // The CIDR you want to assign to the pool. 227 Cidr pulumi.StringPtrInput 228 // The description for the allocation. 229 Description pulumi.StringPtrInput 230 // Exclude a particular CIDR range from being returned by the pool. 231 DisallowedCidrs pulumi.StringArrayInput 232 IpamPoolAllocationId pulumi.StringPtrInput 233 // The ID of the pool to which you want to assign a CIDR. 234 IpamPoolId pulumi.StringPtrInput 235 // The netmask length of the CIDR you would like to allocate to the IPAM pool. Valid Values: `0-128`. 236 NetmaskLength pulumi.IntPtrInput 237 // The ID of the resource. 238 ResourceId pulumi.StringPtrInput 239 // The owner of the resource. 240 ResourceOwner pulumi.StringPtrInput 241 // The type of the resource. 242 ResourceType pulumi.StringPtrInput 243 } 244 245 func (VpcIpamPoolCidrAllocationState) ElementType() reflect.Type { 246 return reflect.TypeOf((*vpcIpamPoolCidrAllocationState)(nil)).Elem() 247 } 248 249 type vpcIpamPoolCidrAllocationArgs struct { 250 // The CIDR you want to assign to the pool. 251 Cidr *string `pulumi:"cidr"` 252 // The description for the allocation. 253 Description *string `pulumi:"description"` 254 // Exclude a particular CIDR range from being returned by the pool. 255 DisallowedCidrs []string `pulumi:"disallowedCidrs"` 256 // The ID of the pool to which you want to assign a CIDR. 257 IpamPoolId string `pulumi:"ipamPoolId"` 258 // The netmask length of the CIDR you would like to allocate to the IPAM pool. Valid Values: `0-128`. 259 NetmaskLength *int `pulumi:"netmaskLength"` 260 } 261 262 // The set of arguments for constructing a VpcIpamPoolCidrAllocation resource. 263 type VpcIpamPoolCidrAllocationArgs struct { 264 // The CIDR you want to assign to the pool. 265 Cidr pulumi.StringPtrInput 266 // The description for the allocation. 267 Description pulumi.StringPtrInput 268 // Exclude a particular CIDR range from being returned by the pool. 269 DisallowedCidrs pulumi.StringArrayInput 270 // The ID of the pool to which you want to assign a CIDR. 271 IpamPoolId pulumi.StringInput 272 // The netmask length of the CIDR you would like to allocate to the IPAM pool. Valid Values: `0-128`. 273 NetmaskLength pulumi.IntPtrInput 274 } 275 276 func (VpcIpamPoolCidrAllocationArgs) ElementType() reflect.Type { 277 return reflect.TypeOf((*vpcIpamPoolCidrAllocationArgs)(nil)).Elem() 278 } 279 280 type VpcIpamPoolCidrAllocationInput interface { 281 pulumi.Input 282 283 ToVpcIpamPoolCidrAllocationOutput() VpcIpamPoolCidrAllocationOutput 284 ToVpcIpamPoolCidrAllocationOutputWithContext(ctx context.Context) VpcIpamPoolCidrAllocationOutput 285 } 286 287 func (*VpcIpamPoolCidrAllocation) ElementType() reflect.Type { 288 return reflect.TypeOf((**VpcIpamPoolCidrAllocation)(nil)).Elem() 289 } 290 291 func (i *VpcIpamPoolCidrAllocation) ToVpcIpamPoolCidrAllocationOutput() VpcIpamPoolCidrAllocationOutput { 292 return i.ToVpcIpamPoolCidrAllocationOutputWithContext(context.Background()) 293 } 294 295 func (i *VpcIpamPoolCidrAllocation) ToVpcIpamPoolCidrAllocationOutputWithContext(ctx context.Context) VpcIpamPoolCidrAllocationOutput { 296 return pulumi.ToOutputWithContext(ctx, i).(VpcIpamPoolCidrAllocationOutput) 297 } 298 299 // VpcIpamPoolCidrAllocationArrayInput is an input type that accepts VpcIpamPoolCidrAllocationArray and VpcIpamPoolCidrAllocationArrayOutput values. 300 // You can construct a concrete instance of `VpcIpamPoolCidrAllocationArrayInput` via: 301 // 302 // VpcIpamPoolCidrAllocationArray{ VpcIpamPoolCidrAllocationArgs{...} } 303 type VpcIpamPoolCidrAllocationArrayInput interface { 304 pulumi.Input 305 306 ToVpcIpamPoolCidrAllocationArrayOutput() VpcIpamPoolCidrAllocationArrayOutput 307 ToVpcIpamPoolCidrAllocationArrayOutputWithContext(context.Context) VpcIpamPoolCidrAllocationArrayOutput 308 } 309 310 type VpcIpamPoolCidrAllocationArray []VpcIpamPoolCidrAllocationInput 311 312 func (VpcIpamPoolCidrAllocationArray) ElementType() reflect.Type { 313 return reflect.TypeOf((*[]*VpcIpamPoolCidrAllocation)(nil)).Elem() 314 } 315 316 func (i VpcIpamPoolCidrAllocationArray) ToVpcIpamPoolCidrAllocationArrayOutput() VpcIpamPoolCidrAllocationArrayOutput { 317 return i.ToVpcIpamPoolCidrAllocationArrayOutputWithContext(context.Background()) 318 } 319 320 func (i VpcIpamPoolCidrAllocationArray) ToVpcIpamPoolCidrAllocationArrayOutputWithContext(ctx context.Context) VpcIpamPoolCidrAllocationArrayOutput { 321 return pulumi.ToOutputWithContext(ctx, i).(VpcIpamPoolCidrAllocationArrayOutput) 322 } 323 324 // VpcIpamPoolCidrAllocationMapInput is an input type that accepts VpcIpamPoolCidrAllocationMap and VpcIpamPoolCidrAllocationMapOutput values. 325 // You can construct a concrete instance of `VpcIpamPoolCidrAllocationMapInput` via: 326 // 327 // VpcIpamPoolCidrAllocationMap{ "key": VpcIpamPoolCidrAllocationArgs{...} } 328 type VpcIpamPoolCidrAllocationMapInput interface { 329 pulumi.Input 330 331 ToVpcIpamPoolCidrAllocationMapOutput() VpcIpamPoolCidrAllocationMapOutput 332 ToVpcIpamPoolCidrAllocationMapOutputWithContext(context.Context) VpcIpamPoolCidrAllocationMapOutput 333 } 334 335 type VpcIpamPoolCidrAllocationMap map[string]VpcIpamPoolCidrAllocationInput 336 337 func (VpcIpamPoolCidrAllocationMap) ElementType() reflect.Type { 338 return reflect.TypeOf((*map[string]*VpcIpamPoolCidrAllocation)(nil)).Elem() 339 } 340 341 func (i VpcIpamPoolCidrAllocationMap) ToVpcIpamPoolCidrAllocationMapOutput() VpcIpamPoolCidrAllocationMapOutput { 342 return i.ToVpcIpamPoolCidrAllocationMapOutputWithContext(context.Background()) 343 } 344 345 func (i VpcIpamPoolCidrAllocationMap) ToVpcIpamPoolCidrAllocationMapOutputWithContext(ctx context.Context) VpcIpamPoolCidrAllocationMapOutput { 346 return pulumi.ToOutputWithContext(ctx, i).(VpcIpamPoolCidrAllocationMapOutput) 347 } 348 349 type VpcIpamPoolCidrAllocationOutput struct{ *pulumi.OutputState } 350 351 func (VpcIpamPoolCidrAllocationOutput) ElementType() reflect.Type { 352 return reflect.TypeOf((**VpcIpamPoolCidrAllocation)(nil)).Elem() 353 } 354 355 func (o VpcIpamPoolCidrAllocationOutput) ToVpcIpamPoolCidrAllocationOutput() VpcIpamPoolCidrAllocationOutput { 356 return o 357 } 358 359 func (o VpcIpamPoolCidrAllocationOutput) ToVpcIpamPoolCidrAllocationOutputWithContext(ctx context.Context) VpcIpamPoolCidrAllocationOutput { 360 return o 361 } 362 363 // The CIDR you want to assign to the pool. 364 func (o VpcIpamPoolCidrAllocationOutput) Cidr() pulumi.StringOutput { 365 return o.ApplyT(func(v *VpcIpamPoolCidrAllocation) pulumi.StringOutput { return v.Cidr }).(pulumi.StringOutput) 366 } 367 368 // The description for the allocation. 369 func (o VpcIpamPoolCidrAllocationOutput) Description() pulumi.StringPtrOutput { 370 return o.ApplyT(func(v *VpcIpamPoolCidrAllocation) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) 371 } 372 373 // Exclude a particular CIDR range from being returned by the pool. 374 func (o VpcIpamPoolCidrAllocationOutput) DisallowedCidrs() pulumi.StringArrayOutput { 375 return o.ApplyT(func(v *VpcIpamPoolCidrAllocation) pulumi.StringArrayOutput { return v.DisallowedCidrs }).(pulumi.StringArrayOutput) 376 } 377 378 func (o VpcIpamPoolCidrAllocationOutput) IpamPoolAllocationId() pulumi.StringOutput { 379 return o.ApplyT(func(v *VpcIpamPoolCidrAllocation) pulumi.StringOutput { return v.IpamPoolAllocationId }).(pulumi.StringOutput) 380 } 381 382 // The ID of the pool to which you want to assign a CIDR. 383 func (o VpcIpamPoolCidrAllocationOutput) IpamPoolId() pulumi.StringOutput { 384 return o.ApplyT(func(v *VpcIpamPoolCidrAllocation) pulumi.StringOutput { return v.IpamPoolId }).(pulumi.StringOutput) 385 } 386 387 // The netmask length of the CIDR you would like to allocate to the IPAM pool. Valid Values: `0-128`. 388 func (o VpcIpamPoolCidrAllocationOutput) NetmaskLength() pulumi.IntPtrOutput { 389 return o.ApplyT(func(v *VpcIpamPoolCidrAllocation) pulumi.IntPtrOutput { return v.NetmaskLength }).(pulumi.IntPtrOutput) 390 } 391 392 // The ID of the resource. 393 func (o VpcIpamPoolCidrAllocationOutput) ResourceId() pulumi.StringOutput { 394 return o.ApplyT(func(v *VpcIpamPoolCidrAllocation) pulumi.StringOutput { return v.ResourceId }).(pulumi.StringOutput) 395 } 396 397 // The owner of the resource. 398 func (o VpcIpamPoolCidrAllocationOutput) ResourceOwner() pulumi.StringOutput { 399 return o.ApplyT(func(v *VpcIpamPoolCidrAllocation) pulumi.StringOutput { return v.ResourceOwner }).(pulumi.StringOutput) 400 } 401 402 // The type of the resource. 403 func (o VpcIpamPoolCidrAllocationOutput) ResourceType() pulumi.StringOutput { 404 return o.ApplyT(func(v *VpcIpamPoolCidrAllocation) pulumi.StringOutput { return v.ResourceType }).(pulumi.StringOutput) 405 } 406 407 type VpcIpamPoolCidrAllocationArrayOutput struct{ *pulumi.OutputState } 408 409 func (VpcIpamPoolCidrAllocationArrayOutput) ElementType() reflect.Type { 410 return reflect.TypeOf((*[]*VpcIpamPoolCidrAllocation)(nil)).Elem() 411 } 412 413 func (o VpcIpamPoolCidrAllocationArrayOutput) ToVpcIpamPoolCidrAllocationArrayOutput() VpcIpamPoolCidrAllocationArrayOutput { 414 return o 415 } 416 417 func (o VpcIpamPoolCidrAllocationArrayOutput) ToVpcIpamPoolCidrAllocationArrayOutputWithContext(ctx context.Context) VpcIpamPoolCidrAllocationArrayOutput { 418 return o 419 } 420 421 func (o VpcIpamPoolCidrAllocationArrayOutput) Index(i pulumi.IntInput) VpcIpamPoolCidrAllocationOutput { 422 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *VpcIpamPoolCidrAllocation { 423 return vs[0].([]*VpcIpamPoolCidrAllocation)[vs[1].(int)] 424 }).(VpcIpamPoolCidrAllocationOutput) 425 } 426 427 type VpcIpamPoolCidrAllocationMapOutput struct{ *pulumi.OutputState } 428 429 func (VpcIpamPoolCidrAllocationMapOutput) ElementType() reflect.Type { 430 return reflect.TypeOf((*map[string]*VpcIpamPoolCidrAllocation)(nil)).Elem() 431 } 432 433 func (o VpcIpamPoolCidrAllocationMapOutput) ToVpcIpamPoolCidrAllocationMapOutput() VpcIpamPoolCidrAllocationMapOutput { 434 return o 435 } 436 437 func (o VpcIpamPoolCidrAllocationMapOutput) ToVpcIpamPoolCidrAllocationMapOutputWithContext(ctx context.Context) VpcIpamPoolCidrAllocationMapOutput { 438 return o 439 } 440 441 func (o VpcIpamPoolCidrAllocationMapOutput) MapIndex(k pulumi.StringInput) VpcIpamPoolCidrAllocationOutput { 442 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *VpcIpamPoolCidrAllocation { 443 return vs[0].(map[string]*VpcIpamPoolCidrAllocation)[vs[1].(string)] 444 }).(VpcIpamPoolCidrAllocationOutput) 445 } 446 447 func init() { 448 pulumi.RegisterInputType(reflect.TypeOf((*VpcIpamPoolCidrAllocationInput)(nil)).Elem(), &VpcIpamPoolCidrAllocation{}) 449 pulumi.RegisterInputType(reflect.TypeOf((*VpcIpamPoolCidrAllocationArrayInput)(nil)).Elem(), VpcIpamPoolCidrAllocationArray{}) 450 pulumi.RegisterInputType(reflect.TypeOf((*VpcIpamPoolCidrAllocationMapInput)(nil)).Elem(), VpcIpamPoolCidrAllocationMap{}) 451 pulumi.RegisterOutputType(VpcIpamPoolCidrAllocationOutput{}) 452 pulumi.RegisterOutputType(VpcIpamPoolCidrAllocationArrayOutput{}) 453 pulumi.RegisterOutputType(VpcIpamPoolCidrAllocationMapOutput{}) 454 }