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  }