github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/ec2/vpcIpamPool.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 // Provides an IP address pool resource for IPAM. 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 // example, 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 // _, err = ec2.NewVpcIpamPool(ctx, "example", &ec2.VpcIpamPoolArgs{ 50 // AddressFamily: pulumi.String("ipv4"), 51 // IpamScopeId: example.PrivateDefaultScopeId, 52 // Locale: pulumi.String(current.Name), 53 // }) 54 // if err != nil { 55 // return err 56 // } 57 // return nil 58 // }) 59 // } 60 // 61 // ``` 62 // <!--End PulumiCodeChooser --> 63 // 64 // Nested Pools: 65 // 66 // <!--Start PulumiCodeChooser --> 67 // ```go 68 // package main 69 // 70 // import ( 71 // 72 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws" 73 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" 74 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 75 // 76 // ) 77 // 78 // func main() { 79 // pulumi.Run(func(ctx *pulumi.Context) error { 80 // current, err := aws.GetRegion(ctx, nil, nil) 81 // if err != nil { 82 // return err 83 // } 84 // example, err := ec2.NewVpcIpam(ctx, "example", &ec2.VpcIpamArgs{ 85 // OperatingRegions: ec2.VpcIpamOperatingRegionArray{ 86 // &ec2.VpcIpamOperatingRegionArgs{ 87 // RegionName: pulumi.String(current.Name), 88 // }, 89 // }, 90 // }) 91 // if err != nil { 92 // return err 93 // } 94 // parent, err := ec2.NewVpcIpamPool(ctx, "parent", &ec2.VpcIpamPoolArgs{ 95 // AddressFamily: pulumi.String("ipv4"), 96 // IpamScopeId: example.PrivateDefaultScopeId, 97 // }) 98 // if err != nil { 99 // return err 100 // } 101 // _, err = ec2.NewVpcIpamPoolCidr(ctx, "parent_test", &ec2.VpcIpamPoolCidrArgs{ 102 // IpamPoolId: parent.ID(), 103 // Cidr: pulumi.String("172.20.0.0/16"), 104 // }) 105 // if err != nil { 106 // return err 107 // } 108 // child, err := ec2.NewVpcIpamPool(ctx, "child", &ec2.VpcIpamPoolArgs{ 109 // AddressFamily: pulumi.String("ipv4"), 110 // IpamScopeId: example.PrivateDefaultScopeId, 111 // Locale: pulumi.String(current.Name), 112 // SourceIpamPoolId: parent.ID(), 113 // }) 114 // if err != nil { 115 // return err 116 // } 117 // _, err = ec2.NewVpcIpamPoolCidr(ctx, "child_test", &ec2.VpcIpamPoolCidrArgs{ 118 // IpamPoolId: child.ID(), 119 // Cidr: pulumi.String("172.20.0.0/24"), 120 // }) 121 // if err != nil { 122 // return err 123 // } 124 // return nil 125 // }) 126 // } 127 // 128 // ``` 129 // <!--End PulumiCodeChooser --> 130 // 131 // ## Import 132 // 133 // Using `pulumi import`, import IPAMs using the IPAM pool `id`. For example: 134 // 135 // ```sh 136 // $ pulumi import aws:ec2/vpcIpamPool:VpcIpamPool example ipam-pool-0958f95207d978e1e 137 // ``` 138 type VpcIpamPool struct { 139 pulumi.CustomResourceState 140 141 // The IP protocol assigned to this pool. You must choose either IPv4 or IPv6 protocol for a pool. 142 AddressFamily pulumi.StringOutput `pulumi:"addressFamily"` 143 // A default netmask length for allocations added to this pool. If, for example, the CIDR assigned to this pool is 10.0.0.0/8 and you enter 16 here, new allocations will default to 10.0.0.0/16 (unless you provide a different netmask value when you create the new allocation). 144 AllocationDefaultNetmaskLength pulumi.IntPtrOutput `pulumi:"allocationDefaultNetmaskLength"` 145 // The maximum netmask length that will be required for CIDR allocations in this pool. 146 AllocationMaxNetmaskLength pulumi.IntPtrOutput `pulumi:"allocationMaxNetmaskLength"` 147 // The minimum netmask length that will be required for CIDR allocations in this pool. 148 AllocationMinNetmaskLength pulumi.IntPtrOutput `pulumi:"allocationMinNetmaskLength"` 149 // Tags that are required for resources that use CIDRs from this IPAM pool. Resources that do not have these tags will not be allowed to allocate space from the pool. If the resources have their tags changed after they have allocated space or if the allocation tagging requirements are changed on the pool, the resource may be marked as noncompliant. 150 AllocationResourceTags pulumi.StringMapOutput `pulumi:"allocationResourceTags"` 151 // Amazon Resource Name (ARN) of IPAM 152 Arn pulumi.StringOutput `pulumi:"arn"` 153 // If you include this argument, IPAM automatically imports any VPCs you have in your scope that fall 154 // within the CIDR range in the pool. 155 AutoImport pulumi.BoolPtrOutput `pulumi:"autoImport"` 156 // Limits which AWS service the pool can be used in. Only useable on public scopes. Valid Values: `ec2`. 157 AwsService pulumi.StringPtrOutput `pulumi:"awsService"` 158 // Enables you to quickly delete an IPAM pool and all resources within that pool, including provisioned CIDRs, allocations, and other pools. 159 Cascade pulumi.BoolPtrOutput `pulumi:"cascade"` 160 // A description for the IPAM pool. 161 Description pulumi.StringPtrOutput `pulumi:"description"` 162 // The ID of the scope in which you would like to create the IPAM pool. 163 IpamScopeId pulumi.StringOutput `pulumi:"ipamScopeId"` 164 IpamScopeType pulumi.StringOutput `pulumi:"ipamScopeType"` 165 // The locale in which you would like to create the IPAM pool. Locale is the Region where you want to make an IPAM pool available for allocations. You can only create pools with locales that match the operating Regions of the IPAM. You can only create VPCs from a pool whose locale matches the VPC's Region. Possible values: Any AWS region, such as `us-east-1`. 166 Locale pulumi.StringPtrOutput `pulumi:"locale"` 167 PoolDepth pulumi.IntOutput `pulumi:"poolDepth"` 168 // The IP address source for pools in the public scope. Only used for provisioning IP address CIDRs to pools in the public scope. Valid values are `byoip` or `amazon`. Default is `byoip`. 169 PublicIpSource pulumi.StringPtrOutput `pulumi:"publicIpSource"` 170 // Defines whether or not IPv6 pool space is publicly advertisable over the internet. This argument is required if `addressFamily = "ipv6"` and `publicIpSource = "byoip"`, default is `false`. This option is not available for IPv4 pool space or if `publicIpSource = "amazon"`. 171 PubliclyAdvertisable pulumi.BoolPtrOutput `pulumi:"publiclyAdvertisable"` 172 // The ID of the source IPAM pool. Use this argument to create a child pool within an existing pool. 173 SourceIpamPoolId pulumi.StringPtrOutput `pulumi:"sourceIpamPoolId"` 174 // The ID of the IPAM 175 State pulumi.StringOutput `pulumi:"state"` 176 // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 177 Tags pulumi.StringMapOutput `pulumi:"tags"` 178 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 179 // 180 // Deprecated: Please use `tags` instead. 181 TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` 182 } 183 184 // NewVpcIpamPool registers a new resource with the given unique name, arguments, and options. 185 func NewVpcIpamPool(ctx *pulumi.Context, 186 name string, args *VpcIpamPoolArgs, opts ...pulumi.ResourceOption) (*VpcIpamPool, error) { 187 if args == nil { 188 return nil, errors.New("missing one or more required arguments") 189 } 190 191 if args.AddressFamily == nil { 192 return nil, errors.New("invalid value for required argument 'AddressFamily'") 193 } 194 if args.IpamScopeId == nil { 195 return nil, errors.New("invalid value for required argument 'IpamScopeId'") 196 } 197 opts = internal.PkgResourceDefaultOpts(opts) 198 var resource VpcIpamPool 199 err := ctx.RegisterResource("aws:ec2/vpcIpamPool:VpcIpamPool", name, args, &resource, opts...) 200 if err != nil { 201 return nil, err 202 } 203 return &resource, nil 204 } 205 206 // GetVpcIpamPool gets an existing VpcIpamPool resource's state with the given name, ID, and optional 207 // state properties that are used to uniquely qualify the lookup (nil if not required). 208 func GetVpcIpamPool(ctx *pulumi.Context, 209 name string, id pulumi.IDInput, state *VpcIpamPoolState, opts ...pulumi.ResourceOption) (*VpcIpamPool, error) { 210 var resource VpcIpamPool 211 err := ctx.ReadResource("aws:ec2/vpcIpamPool:VpcIpamPool", name, id, state, &resource, opts...) 212 if err != nil { 213 return nil, err 214 } 215 return &resource, nil 216 } 217 218 // Input properties used for looking up and filtering VpcIpamPool resources. 219 type vpcIpamPoolState struct { 220 // The IP protocol assigned to this pool. You must choose either IPv4 or IPv6 protocol for a pool. 221 AddressFamily *string `pulumi:"addressFamily"` 222 // A default netmask length for allocations added to this pool. If, for example, the CIDR assigned to this pool is 10.0.0.0/8 and you enter 16 here, new allocations will default to 10.0.0.0/16 (unless you provide a different netmask value when you create the new allocation). 223 AllocationDefaultNetmaskLength *int `pulumi:"allocationDefaultNetmaskLength"` 224 // The maximum netmask length that will be required for CIDR allocations in this pool. 225 AllocationMaxNetmaskLength *int `pulumi:"allocationMaxNetmaskLength"` 226 // The minimum netmask length that will be required for CIDR allocations in this pool. 227 AllocationMinNetmaskLength *int `pulumi:"allocationMinNetmaskLength"` 228 // Tags that are required for resources that use CIDRs from this IPAM pool. Resources that do not have these tags will not be allowed to allocate space from the pool. If the resources have their tags changed after they have allocated space or if the allocation tagging requirements are changed on the pool, the resource may be marked as noncompliant. 229 AllocationResourceTags map[string]string `pulumi:"allocationResourceTags"` 230 // Amazon Resource Name (ARN) of IPAM 231 Arn *string `pulumi:"arn"` 232 // If you include this argument, IPAM automatically imports any VPCs you have in your scope that fall 233 // within the CIDR range in the pool. 234 AutoImport *bool `pulumi:"autoImport"` 235 // Limits which AWS service the pool can be used in. Only useable on public scopes. Valid Values: `ec2`. 236 AwsService *string `pulumi:"awsService"` 237 // Enables you to quickly delete an IPAM pool and all resources within that pool, including provisioned CIDRs, allocations, and other pools. 238 Cascade *bool `pulumi:"cascade"` 239 // A description for the IPAM pool. 240 Description *string `pulumi:"description"` 241 // The ID of the scope in which you would like to create the IPAM pool. 242 IpamScopeId *string `pulumi:"ipamScopeId"` 243 IpamScopeType *string `pulumi:"ipamScopeType"` 244 // The locale in which you would like to create the IPAM pool. Locale is the Region where you want to make an IPAM pool available for allocations. You can only create pools with locales that match the operating Regions of the IPAM. You can only create VPCs from a pool whose locale matches the VPC's Region. Possible values: Any AWS region, such as `us-east-1`. 245 Locale *string `pulumi:"locale"` 246 PoolDepth *int `pulumi:"poolDepth"` 247 // The IP address source for pools in the public scope. Only used for provisioning IP address CIDRs to pools in the public scope. Valid values are `byoip` or `amazon`. Default is `byoip`. 248 PublicIpSource *string `pulumi:"publicIpSource"` 249 // Defines whether or not IPv6 pool space is publicly advertisable over the internet. This argument is required if `addressFamily = "ipv6"` and `publicIpSource = "byoip"`, default is `false`. This option is not available for IPv4 pool space or if `publicIpSource = "amazon"`. 250 PubliclyAdvertisable *bool `pulumi:"publiclyAdvertisable"` 251 // The ID of the source IPAM pool. Use this argument to create a child pool within an existing pool. 252 SourceIpamPoolId *string `pulumi:"sourceIpamPoolId"` 253 // The ID of the IPAM 254 State *string `pulumi:"state"` 255 // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 256 Tags map[string]string `pulumi:"tags"` 257 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 258 // 259 // Deprecated: Please use `tags` instead. 260 TagsAll map[string]string `pulumi:"tagsAll"` 261 } 262 263 type VpcIpamPoolState struct { 264 // The IP protocol assigned to this pool. You must choose either IPv4 or IPv6 protocol for a pool. 265 AddressFamily pulumi.StringPtrInput 266 // A default netmask length for allocations added to this pool. If, for example, the CIDR assigned to this pool is 10.0.0.0/8 and you enter 16 here, new allocations will default to 10.0.0.0/16 (unless you provide a different netmask value when you create the new allocation). 267 AllocationDefaultNetmaskLength pulumi.IntPtrInput 268 // The maximum netmask length that will be required for CIDR allocations in this pool. 269 AllocationMaxNetmaskLength pulumi.IntPtrInput 270 // The minimum netmask length that will be required for CIDR allocations in this pool. 271 AllocationMinNetmaskLength pulumi.IntPtrInput 272 // Tags that are required for resources that use CIDRs from this IPAM pool. Resources that do not have these tags will not be allowed to allocate space from the pool. If the resources have their tags changed after they have allocated space or if the allocation tagging requirements are changed on the pool, the resource may be marked as noncompliant. 273 AllocationResourceTags pulumi.StringMapInput 274 // Amazon Resource Name (ARN) of IPAM 275 Arn pulumi.StringPtrInput 276 // If you include this argument, IPAM automatically imports any VPCs you have in your scope that fall 277 // within the CIDR range in the pool. 278 AutoImport pulumi.BoolPtrInput 279 // Limits which AWS service the pool can be used in. Only useable on public scopes. Valid Values: `ec2`. 280 AwsService pulumi.StringPtrInput 281 // Enables you to quickly delete an IPAM pool and all resources within that pool, including provisioned CIDRs, allocations, and other pools. 282 Cascade pulumi.BoolPtrInput 283 // A description for the IPAM pool. 284 Description pulumi.StringPtrInput 285 // The ID of the scope in which you would like to create the IPAM pool. 286 IpamScopeId pulumi.StringPtrInput 287 IpamScopeType pulumi.StringPtrInput 288 // The locale in which you would like to create the IPAM pool. Locale is the Region where you want to make an IPAM pool available for allocations. You can only create pools with locales that match the operating Regions of the IPAM. You can only create VPCs from a pool whose locale matches the VPC's Region. Possible values: Any AWS region, such as `us-east-1`. 289 Locale pulumi.StringPtrInput 290 PoolDepth pulumi.IntPtrInput 291 // The IP address source for pools in the public scope. Only used for provisioning IP address CIDRs to pools in the public scope. Valid values are `byoip` or `amazon`. Default is `byoip`. 292 PublicIpSource pulumi.StringPtrInput 293 // Defines whether or not IPv6 pool space is publicly advertisable over the internet. This argument is required if `addressFamily = "ipv6"` and `publicIpSource = "byoip"`, default is `false`. This option is not available for IPv4 pool space or if `publicIpSource = "amazon"`. 294 PubliclyAdvertisable pulumi.BoolPtrInput 295 // The ID of the source IPAM pool. Use this argument to create a child pool within an existing pool. 296 SourceIpamPoolId pulumi.StringPtrInput 297 // The ID of the IPAM 298 State pulumi.StringPtrInput 299 // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 300 Tags pulumi.StringMapInput 301 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 302 // 303 // Deprecated: Please use `tags` instead. 304 TagsAll pulumi.StringMapInput 305 } 306 307 func (VpcIpamPoolState) ElementType() reflect.Type { 308 return reflect.TypeOf((*vpcIpamPoolState)(nil)).Elem() 309 } 310 311 type vpcIpamPoolArgs struct { 312 // The IP protocol assigned to this pool. You must choose either IPv4 or IPv6 protocol for a pool. 313 AddressFamily string `pulumi:"addressFamily"` 314 // A default netmask length for allocations added to this pool. If, for example, the CIDR assigned to this pool is 10.0.0.0/8 and you enter 16 here, new allocations will default to 10.0.0.0/16 (unless you provide a different netmask value when you create the new allocation). 315 AllocationDefaultNetmaskLength *int `pulumi:"allocationDefaultNetmaskLength"` 316 // The maximum netmask length that will be required for CIDR allocations in this pool. 317 AllocationMaxNetmaskLength *int `pulumi:"allocationMaxNetmaskLength"` 318 // The minimum netmask length that will be required for CIDR allocations in this pool. 319 AllocationMinNetmaskLength *int `pulumi:"allocationMinNetmaskLength"` 320 // Tags that are required for resources that use CIDRs from this IPAM pool. Resources that do not have these tags will not be allowed to allocate space from the pool. If the resources have their tags changed after they have allocated space or if the allocation tagging requirements are changed on the pool, the resource may be marked as noncompliant. 321 AllocationResourceTags map[string]string `pulumi:"allocationResourceTags"` 322 // If you include this argument, IPAM automatically imports any VPCs you have in your scope that fall 323 // within the CIDR range in the pool. 324 AutoImport *bool `pulumi:"autoImport"` 325 // Limits which AWS service the pool can be used in. Only useable on public scopes. Valid Values: `ec2`. 326 AwsService *string `pulumi:"awsService"` 327 // Enables you to quickly delete an IPAM pool and all resources within that pool, including provisioned CIDRs, allocations, and other pools. 328 Cascade *bool `pulumi:"cascade"` 329 // A description for the IPAM pool. 330 Description *string `pulumi:"description"` 331 // The ID of the scope in which you would like to create the IPAM pool. 332 IpamScopeId string `pulumi:"ipamScopeId"` 333 // The locale in which you would like to create the IPAM pool. Locale is the Region where you want to make an IPAM pool available for allocations. You can only create pools with locales that match the operating Regions of the IPAM. You can only create VPCs from a pool whose locale matches the VPC's Region. Possible values: Any AWS region, such as `us-east-1`. 334 Locale *string `pulumi:"locale"` 335 // The IP address source for pools in the public scope. Only used for provisioning IP address CIDRs to pools in the public scope. Valid values are `byoip` or `amazon`. Default is `byoip`. 336 PublicIpSource *string `pulumi:"publicIpSource"` 337 // Defines whether or not IPv6 pool space is publicly advertisable over the internet. This argument is required if `addressFamily = "ipv6"` and `publicIpSource = "byoip"`, default is `false`. This option is not available for IPv4 pool space or if `publicIpSource = "amazon"`. 338 PubliclyAdvertisable *bool `pulumi:"publiclyAdvertisable"` 339 // The ID of the source IPAM pool. Use this argument to create a child pool within an existing pool. 340 SourceIpamPoolId *string `pulumi:"sourceIpamPoolId"` 341 // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 342 Tags map[string]string `pulumi:"tags"` 343 } 344 345 // The set of arguments for constructing a VpcIpamPool resource. 346 type VpcIpamPoolArgs struct { 347 // The IP protocol assigned to this pool. You must choose either IPv4 or IPv6 protocol for a pool. 348 AddressFamily pulumi.StringInput 349 // A default netmask length for allocations added to this pool. If, for example, the CIDR assigned to this pool is 10.0.0.0/8 and you enter 16 here, new allocations will default to 10.0.0.0/16 (unless you provide a different netmask value when you create the new allocation). 350 AllocationDefaultNetmaskLength pulumi.IntPtrInput 351 // The maximum netmask length that will be required for CIDR allocations in this pool. 352 AllocationMaxNetmaskLength pulumi.IntPtrInput 353 // The minimum netmask length that will be required for CIDR allocations in this pool. 354 AllocationMinNetmaskLength pulumi.IntPtrInput 355 // Tags that are required for resources that use CIDRs from this IPAM pool. Resources that do not have these tags will not be allowed to allocate space from the pool. If the resources have their tags changed after they have allocated space or if the allocation tagging requirements are changed on the pool, the resource may be marked as noncompliant. 356 AllocationResourceTags pulumi.StringMapInput 357 // If you include this argument, IPAM automatically imports any VPCs you have in your scope that fall 358 // within the CIDR range in the pool. 359 AutoImport pulumi.BoolPtrInput 360 // Limits which AWS service the pool can be used in. Only useable on public scopes. Valid Values: `ec2`. 361 AwsService pulumi.StringPtrInput 362 // Enables you to quickly delete an IPAM pool and all resources within that pool, including provisioned CIDRs, allocations, and other pools. 363 Cascade pulumi.BoolPtrInput 364 // A description for the IPAM pool. 365 Description pulumi.StringPtrInput 366 // The ID of the scope in which you would like to create the IPAM pool. 367 IpamScopeId pulumi.StringInput 368 // The locale in which you would like to create the IPAM pool. Locale is the Region where you want to make an IPAM pool available for allocations. You can only create pools with locales that match the operating Regions of the IPAM. You can only create VPCs from a pool whose locale matches the VPC's Region. Possible values: Any AWS region, such as `us-east-1`. 369 Locale pulumi.StringPtrInput 370 // The IP address source for pools in the public scope. Only used for provisioning IP address CIDRs to pools in the public scope. Valid values are `byoip` or `amazon`. Default is `byoip`. 371 PublicIpSource pulumi.StringPtrInput 372 // Defines whether or not IPv6 pool space is publicly advertisable over the internet. This argument is required if `addressFamily = "ipv6"` and `publicIpSource = "byoip"`, default is `false`. This option is not available for IPv4 pool space or if `publicIpSource = "amazon"`. 373 PubliclyAdvertisable pulumi.BoolPtrInput 374 // The ID of the source IPAM pool. Use this argument to create a child pool within an existing pool. 375 SourceIpamPoolId pulumi.StringPtrInput 376 // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 377 Tags pulumi.StringMapInput 378 } 379 380 func (VpcIpamPoolArgs) ElementType() reflect.Type { 381 return reflect.TypeOf((*vpcIpamPoolArgs)(nil)).Elem() 382 } 383 384 type VpcIpamPoolInput interface { 385 pulumi.Input 386 387 ToVpcIpamPoolOutput() VpcIpamPoolOutput 388 ToVpcIpamPoolOutputWithContext(ctx context.Context) VpcIpamPoolOutput 389 } 390 391 func (*VpcIpamPool) ElementType() reflect.Type { 392 return reflect.TypeOf((**VpcIpamPool)(nil)).Elem() 393 } 394 395 func (i *VpcIpamPool) ToVpcIpamPoolOutput() VpcIpamPoolOutput { 396 return i.ToVpcIpamPoolOutputWithContext(context.Background()) 397 } 398 399 func (i *VpcIpamPool) ToVpcIpamPoolOutputWithContext(ctx context.Context) VpcIpamPoolOutput { 400 return pulumi.ToOutputWithContext(ctx, i).(VpcIpamPoolOutput) 401 } 402 403 // VpcIpamPoolArrayInput is an input type that accepts VpcIpamPoolArray and VpcIpamPoolArrayOutput values. 404 // You can construct a concrete instance of `VpcIpamPoolArrayInput` via: 405 // 406 // VpcIpamPoolArray{ VpcIpamPoolArgs{...} } 407 type VpcIpamPoolArrayInput interface { 408 pulumi.Input 409 410 ToVpcIpamPoolArrayOutput() VpcIpamPoolArrayOutput 411 ToVpcIpamPoolArrayOutputWithContext(context.Context) VpcIpamPoolArrayOutput 412 } 413 414 type VpcIpamPoolArray []VpcIpamPoolInput 415 416 func (VpcIpamPoolArray) ElementType() reflect.Type { 417 return reflect.TypeOf((*[]*VpcIpamPool)(nil)).Elem() 418 } 419 420 func (i VpcIpamPoolArray) ToVpcIpamPoolArrayOutput() VpcIpamPoolArrayOutput { 421 return i.ToVpcIpamPoolArrayOutputWithContext(context.Background()) 422 } 423 424 func (i VpcIpamPoolArray) ToVpcIpamPoolArrayOutputWithContext(ctx context.Context) VpcIpamPoolArrayOutput { 425 return pulumi.ToOutputWithContext(ctx, i).(VpcIpamPoolArrayOutput) 426 } 427 428 // VpcIpamPoolMapInput is an input type that accepts VpcIpamPoolMap and VpcIpamPoolMapOutput values. 429 // You can construct a concrete instance of `VpcIpamPoolMapInput` via: 430 // 431 // VpcIpamPoolMap{ "key": VpcIpamPoolArgs{...} } 432 type VpcIpamPoolMapInput interface { 433 pulumi.Input 434 435 ToVpcIpamPoolMapOutput() VpcIpamPoolMapOutput 436 ToVpcIpamPoolMapOutputWithContext(context.Context) VpcIpamPoolMapOutput 437 } 438 439 type VpcIpamPoolMap map[string]VpcIpamPoolInput 440 441 func (VpcIpamPoolMap) ElementType() reflect.Type { 442 return reflect.TypeOf((*map[string]*VpcIpamPool)(nil)).Elem() 443 } 444 445 func (i VpcIpamPoolMap) ToVpcIpamPoolMapOutput() VpcIpamPoolMapOutput { 446 return i.ToVpcIpamPoolMapOutputWithContext(context.Background()) 447 } 448 449 func (i VpcIpamPoolMap) ToVpcIpamPoolMapOutputWithContext(ctx context.Context) VpcIpamPoolMapOutput { 450 return pulumi.ToOutputWithContext(ctx, i).(VpcIpamPoolMapOutput) 451 } 452 453 type VpcIpamPoolOutput struct{ *pulumi.OutputState } 454 455 func (VpcIpamPoolOutput) ElementType() reflect.Type { 456 return reflect.TypeOf((**VpcIpamPool)(nil)).Elem() 457 } 458 459 func (o VpcIpamPoolOutput) ToVpcIpamPoolOutput() VpcIpamPoolOutput { 460 return o 461 } 462 463 func (o VpcIpamPoolOutput) ToVpcIpamPoolOutputWithContext(ctx context.Context) VpcIpamPoolOutput { 464 return o 465 } 466 467 // The IP protocol assigned to this pool. You must choose either IPv4 or IPv6 protocol for a pool. 468 func (o VpcIpamPoolOutput) AddressFamily() pulumi.StringOutput { 469 return o.ApplyT(func(v *VpcIpamPool) pulumi.StringOutput { return v.AddressFamily }).(pulumi.StringOutput) 470 } 471 472 // A default netmask length for allocations added to this pool. If, for example, the CIDR assigned to this pool is 10.0.0.0/8 and you enter 16 here, new allocations will default to 10.0.0.0/16 (unless you provide a different netmask value when you create the new allocation). 473 func (o VpcIpamPoolOutput) AllocationDefaultNetmaskLength() pulumi.IntPtrOutput { 474 return o.ApplyT(func(v *VpcIpamPool) pulumi.IntPtrOutput { return v.AllocationDefaultNetmaskLength }).(pulumi.IntPtrOutput) 475 } 476 477 // The maximum netmask length that will be required for CIDR allocations in this pool. 478 func (o VpcIpamPoolOutput) AllocationMaxNetmaskLength() pulumi.IntPtrOutput { 479 return o.ApplyT(func(v *VpcIpamPool) pulumi.IntPtrOutput { return v.AllocationMaxNetmaskLength }).(pulumi.IntPtrOutput) 480 } 481 482 // The minimum netmask length that will be required for CIDR allocations in this pool. 483 func (o VpcIpamPoolOutput) AllocationMinNetmaskLength() pulumi.IntPtrOutput { 484 return o.ApplyT(func(v *VpcIpamPool) pulumi.IntPtrOutput { return v.AllocationMinNetmaskLength }).(pulumi.IntPtrOutput) 485 } 486 487 // Tags that are required for resources that use CIDRs from this IPAM pool. Resources that do not have these tags will not be allowed to allocate space from the pool. If the resources have their tags changed after they have allocated space or if the allocation tagging requirements are changed on the pool, the resource may be marked as noncompliant. 488 func (o VpcIpamPoolOutput) AllocationResourceTags() pulumi.StringMapOutput { 489 return o.ApplyT(func(v *VpcIpamPool) pulumi.StringMapOutput { return v.AllocationResourceTags }).(pulumi.StringMapOutput) 490 } 491 492 // Amazon Resource Name (ARN) of IPAM 493 func (o VpcIpamPoolOutput) Arn() pulumi.StringOutput { 494 return o.ApplyT(func(v *VpcIpamPool) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) 495 } 496 497 // If you include this argument, IPAM automatically imports any VPCs you have in your scope that fall 498 // within the CIDR range in the pool. 499 func (o VpcIpamPoolOutput) AutoImport() pulumi.BoolPtrOutput { 500 return o.ApplyT(func(v *VpcIpamPool) pulumi.BoolPtrOutput { return v.AutoImport }).(pulumi.BoolPtrOutput) 501 } 502 503 // Limits which AWS service the pool can be used in. Only useable on public scopes. Valid Values: `ec2`. 504 func (o VpcIpamPoolOutput) AwsService() pulumi.StringPtrOutput { 505 return o.ApplyT(func(v *VpcIpamPool) pulumi.StringPtrOutput { return v.AwsService }).(pulumi.StringPtrOutput) 506 } 507 508 // Enables you to quickly delete an IPAM pool and all resources within that pool, including provisioned CIDRs, allocations, and other pools. 509 func (o VpcIpamPoolOutput) Cascade() pulumi.BoolPtrOutput { 510 return o.ApplyT(func(v *VpcIpamPool) pulumi.BoolPtrOutput { return v.Cascade }).(pulumi.BoolPtrOutput) 511 } 512 513 // A description for the IPAM pool. 514 func (o VpcIpamPoolOutput) Description() pulumi.StringPtrOutput { 515 return o.ApplyT(func(v *VpcIpamPool) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) 516 } 517 518 // The ID of the scope in which you would like to create the IPAM pool. 519 func (o VpcIpamPoolOutput) IpamScopeId() pulumi.StringOutput { 520 return o.ApplyT(func(v *VpcIpamPool) pulumi.StringOutput { return v.IpamScopeId }).(pulumi.StringOutput) 521 } 522 523 func (o VpcIpamPoolOutput) IpamScopeType() pulumi.StringOutput { 524 return o.ApplyT(func(v *VpcIpamPool) pulumi.StringOutput { return v.IpamScopeType }).(pulumi.StringOutput) 525 } 526 527 // The locale in which you would like to create the IPAM pool. Locale is the Region where you want to make an IPAM pool available for allocations. You can only create pools with locales that match the operating Regions of the IPAM. You can only create VPCs from a pool whose locale matches the VPC's Region. Possible values: Any AWS region, such as `us-east-1`. 528 func (o VpcIpamPoolOutput) Locale() pulumi.StringPtrOutput { 529 return o.ApplyT(func(v *VpcIpamPool) pulumi.StringPtrOutput { return v.Locale }).(pulumi.StringPtrOutput) 530 } 531 532 func (o VpcIpamPoolOutput) PoolDepth() pulumi.IntOutput { 533 return o.ApplyT(func(v *VpcIpamPool) pulumi.IntOutput { return v.PoolDepth }).(pulumi.IntOutput) 534 } 535 536 // The IP address source for pools in the public scope. Only used for provisioning IP address CIDRs to pools in the public scope. Valid values are `byoip` or `amazon`. Default is `byoip`. 537 func (o VpcIpamPoolOutput) PublicIpSource() pulumi.StringPtrOutput { 538 return o.ApplyT(func(v *VpcIpamPool) pulumi.StringPtrOutput { return v.PublicIpSource }).(pulumi.StringPtrOutput) 539 } 540 541 // Defines whether or not IPv6 pool space is publicly advertisable over the internet. This argument is required if `addressFamily = "ipv6"` and `publicIpSource = "byoip"`, default is `false`. This option is not available for IPv4 pool space or if `publicIpSource = "amazon"`. 542 func (o VpcIpamPoolOutput) PubliclyAdvertisable() pulumi.BoolPtrOutput { 543 return o.ApplyT(func(v *VpcIpamPool) pulumi.BoolPtrOutput { return v.PubliclyAdvertisable }).(pulumi.BoolPtrOutput) 544 } 545 546 // The ID of the source IPAM pool. Use this argument to create a child pool within an existing pool. 547 func (o VpcIpamPoolOutput) SourceIpamPoolId() pulumi.StringPtrOutput { 548 return o.ApplyT(func(v *VpcIpamPool) pulumi.StringPtrOutput { return v.SourceIpamPoolId }).(pulumi.StringPtrOutput) 549 } 550 551 // The ID of the IPAM 552 func (o VpcIpamPoolOutput) State() pulumi.StringOutput { 553 return o.ApplyT(func(v *VpcIpamPool) pulumi.StringOutput { return v.State }).(pulumi.StringOutput) 554 } 555 556 // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 557 func (o VpcIpamPoolOutput) Tags() pulumi.StringMapOutput { 558 return o.ApplyT(func(v *VpcIpamPool) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) 559 } 560 561 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 562 // 563 // Deprecated: Please use `tags` instead. 564 func (o VpcIpamPoolOutput) TagsAll() pulumi.StringMapOutput { 565 return o.ApplyT(func(v *VpcIpamPool) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) 566 } 567 568 type VpcIpamPoolArrayOutput struct{ *pulumi.OutputState } 569 570 func (VpcIpamPoolArrayOutput) ElementType() reflect.Type { 571 return reflect.TypeOf((*[]*VpcIpamPool)(nil)).Elem() 572 } 573 574 func (o VpcIpamPoolArrayOutput) ToVpcIpamPoolArrayOutput() VpcIpamPoolArrayOutput { 575 return o 576 } 577 578 func (o VpcIpamPoolArrayOutput) ToVpcIpamPoolArrayOutputWithContext(ctx context.Context) VpcIpamPoolArrayOutput { 579 return o 580 } 581 582 func (o VpcIpamPoolArrayOutput) Index(i pulumi.IntInput) VpcIpamPoolOutput { 583 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *VpcIpamPool { 584 return vs[0].([]*VpcIpamPool)[vs[1].(int)] 585 }).(VpcIpamPoolOutput) 586 } 587 588 type VpcIpamPoolMapOutput struct{ *pulumi.OutputState } 589 590 func (VpcIpamPoolMapOutput) ElementType() reflect.Type { 591 return reflect.TypeOf((*map[string]*VpcIpamPool)(nil)).Elem() 592 } 593 594 func (o VpcIpamPoolMapOutput) ToVpcIpamPoolMapOutput() VpcIpamPoolMapOutput { 595 return o 596 } 597 598 func (o VpcIpamPoolMapOutput) ToVpcIpamPoolMapOutputWithContext(ctx context.Context) VpcIpamPoolMapOutput { 599 return o 600 } 601 602 func (o VpcIpamPoolMapOutput) MapIndex(k pulumi.StringInput) VpcIpamPoolOutput { 603 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *VpcIpamPool { 604 return vs[0].(map[string]*VpcIpamPool)[vs[1].(string)] 605 }).(VpcIpamPoolOutput) 606 } 607 608 func init() { 609 pulumi.RegisterInputType(reflect.TypeOf((*VpcIpamPoolInput)(nil)).Elem(), &VpcIpamPool{}) 610 pulumi.RegisterInputType(reflect.TypeOf((*VpcIpamPoolArrayInput)(nil)).Elem(), VpcIpamPoolArray{}) 611 pulumi.RegisterInputType(reflect.TypeOf((*VpcIpamPoolMapInput)(nil)).Elem(), VpcIpamPoolMap{}) 612 pulumi.RegisterOutputType(VpcIpamPoolOutput{}) 613 pulumi.RegisterOutputType(VpcIpamPoolArrayOutput{}) 614 pulumi.RegisterOutputType(VpcIpamPoolMapOutput{}) 615 }