github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/ec2/getIpamPreviewNextCidr.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 "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" 11 "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 12 ) 13 14 // Previews a CIDR from an IPAM address pool. Only works for private IPv4. 15 // 16 // > **NOTE:** This functionality is also encapsulated in a resource sharing the same name. The data source can be used when you need to use the cidr in a calculation of the same Root module, `count` for example. However, once a cidr range has been allocated that was previewed, the next refresh will find a **new** cidr and may force new resources downstream. Make sure to use `ignoreChanges` if this is undesirable. 17 // 18 // ## Example Usage 19 // 20 // Basic usage: 21 // 22 // <!--Start PulumiCodeChooser --> 23 // ```go 24 // package main 25 // 26 // import ( 27 // 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 // test, err := ec2.GetIpamPreviewNextCidr(ctx, &ec2.GetIpamPreviewNextCidrArgs{ 36 // IpamPoolId: testAwsVpcIpamPool.Id, 37 // NetmaskLength: pulumi.IntRef(28), 38 // }, nil) 39 // if err != nil { 40 // return err 41 // } 42 // _, err = ec2.NewVpcIpamPoolCidrAllocation(ctx, "test", &ec2.VpcIpamPoolCidrAllocationArgs{ 43 // IpamPoolId: pulumi.Any(testAwsVpcIpamPool.Id), 44 // Cidr: pulumi.String(test.Cidr), 45 // }) 46 // if err != nil { 47 // return err 48 // } 49 // return nil 50 // }) 51 // } 52 // 53 // ``` 54 // <!--End PulumiCodeChooser --> 55 func GetIpamPreviewNextCidr(ctx *pulumi.Context, args *GetIpamPreviewNextCidrArgs, opts ...pulumi.InvokeOption) (*GetIpamPreviewNextCidrResult, error) { 56 opts = internal.PkgInvokeDefaultOpts(opts) 57 var rv GetIpamPreviewNextCidrResult 58 err := ctx.Invoke("aws:ec2/getIpamPreviewNextCidr:getIpamPreviewNextCidr", args, &rv, opts...) 59 if err != nil { 60 return nil, err 61 } 62 return &rv, nil 63 } 64 65 // A collection of arguments for invoking getIpamPreviewNextCidr. 66 type GetIpamPreviewNextCidrArgs struct { 67 // Exclude a particular CIDR range from being returned by the pool. 68 DisallowedCidrs []string `pulumi:"disallowedCidrs"` 69 // ID of the pool to which you want to assign a CIDR. 70 IpamPoolId string `pulumi:"ipamPoolId"` 71 // Netmask length of the CIDR you would like to preview from the IPAM pool. 72 NetmaskLength *int `pulumi:"netmaskLength"` 73 } 74 75 // A collection of values returned by getIpamPreviewNextCidr. 76 type GetIpamPreviewNextCidrResult struct { 77 // Previewed CIDR from the pool. 78 Cidr string `pulumi:"cidr"` 79 DisallowedCidrs []string `pulumi:"disallowedCidrs"` 80 // The provider-assigned unique ID for this managed resource. 81 Id string `pulumi:"id"` 82 IpamPoolId string `pulumi:"ipamPoolId"` 83 NetmaskLength *int `pulumi:"netmaskLength"` 84 } 85 86 func GetIpamPreviewNextCidrOutput(ctx *pulumi.Context, args GetIpamPreviewNextCidrOutputArgs, opts ...pulumi.InvokeOption) GetIpamPreviewNextCidrResultOutput { 87 return pulumi.ToOutputWithContext(context.Background(), args). 88 ApplyT(func(v interface{}) (GetIpamPreviewNextCidrResult, error) { 89 args := v.(GetIpamPreviewNextCidrArgs) 90 r, err := GetIpamPreviewNextCidr(ctx, &args, opts...) 91 var s GetIpamPreviewNextCidrResult 92 if r != nil { 93 s = *r 94 } 95 return s, err 96 }).(GetIpamPreviewNextCidrResultOutput) 97 } 98 99 // A collection of arguments for invoking getIpamPreviewNextCidr. 100 type GetIpamPreviewNextCidrOutputArgs struct { 101 // Exclude a particular CIDR range from being returned by the pool. 102 DisallowedCidrs pulumi.StringArrayInput `pulumi:"disallowedCidrs"` 103 // ID of the pool to which you want to assign a CIDR. 104 IpamPoolId pulumi.StringInput `pulumi:"ipamPoolId"` 105 // Netmask length of the CIDR you would like to preview from the IPAM pool. 106 NetmaskLength pulumi.IntPtrInput `pulumi:"netmaskLength"` 107 } 108 109 func (GetIpamPreviewNextCidrOutputArgs) ElementType() reflect.Type { 110 return reflect.TypeOf((*GetIpamPreviewNextCidrArgs)(nil)).Elem() 111 } 112 113 // A collection of values returned by getIpamPreviewNextCidr. 114 type GetIpamPreviewNextCidrResultOutput struct{ *pulumi.OutputState } 115 116 func (GetIpamPreviewNextCidrResultOutput) ElementType() reflect.Type { 117 return reflect.TypeOf((*GetIpamPreviewNextCidrResult)(nil)).Elem() 118 } 119 120 func (o GetIpamPreviewNextCidrResultOutput) ToGetIpamPreviewNextCidrResultOutput() GetIpamPreviewNextCidrResultOutput { 121 return o 122 } 123 124 func (o GetIpamPreviewNextCidrResultOutput) ToGetIpamPreviewNextCidrResultOutputWithContext(ctx context.Context) GetIpamPreviewNextCidrResultOutput { 125 return o 126 } 127 128 // Previewed CIDR from the pool. 129 func (o GetIpamPreviewNextCidrResultOutput) Cidr() pulumi.StringOutput { 130 return o.ApplyT(func(v GetIpamPreviewNextCidrResult) string { return v.Cidr }).(pulumi.StringOutput) 131 } 132 133 func (o GetIpamPreviewNextCidrResultOutput) DisallowedCidrs() pulumi.StringArrayOutput { 134 return o.ApplyT(func(v GetIpamPreviewNextCidrResult) []string { return v.DisallowedCidrs }).(pulumi.StringArrayOutput) 135 } 136 137 // The provider-assigned unique ID for this managed resource. 138 func (o GetIpamPreviewNextCidrResultOutput) Id() pulumi.StringOutput { 139 return o.ApplyT(func(v GetIpamPreviewNextCidrResult) string { return v.Id }).(pulumi.StringOutput) 140 } 141 142 func (o GetIpamPreviewNextCidrResultOutput) IpamPoolId() pulumi.StringOutput { 143 return o.ApplyT(func(v GetIpamPreviewNextCidrResult) string { return v.IpamPoolId }).(pulumi.StringOutput) 144 } 145 146 func (o GetIpamPreviewNextCidrResultOutput) NetmaskLength() pulumi.IntPtrOutput { 147 return o.ApplyT(func(v GetIpamPreviewNextCidrResult) *int { return v.NetmaskLength }).(pulumi.IntPtrOutput) 148 } 149 150 func init() { 151 pulumi.RegisterOutputType(GetIpamPreviewNextCidrResultOutput{}) 152 }