github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/ec2/subnetCidrReservation.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 a subnet CIDR reservation resource.
    16  //
    17  // ## Example Usage
    18  //
    19  // <!--Start PulumiCodeChooser -->
    20  // ```go
    21  // package main
    22  //
    23  // import (
    24  //
    25  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
    26  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    27  //
    28  // )
    29  //
    30  //	func main() {
    31  //		pulumi.Run(func(ctx *pulumi.Context) error {
    32  //			_, err := ec2.NewSubnetCidrReservation(ctx, "example", &ec2.SubnetCidrReservationArgs{
    33  //				CidrBlock:       pulumi.String("10.0.0.16/28"),
    34  //				ReservationType: pulumi.String("prefix"),
    35  //				SubnetId:        pulumi.Any(exampleAwsSubnet.Id),
    36  //			})
    37  //			if err != nil {
    38  //				return err
    39  //			}
    40  //			return nil
    41  //		})
    42  //	}
    43  //
    44  // ```
    45  // <!--End PulumiCodeChooser -->
    46  //
    47  // ## Import
    48  //
    49  // Using `pulumi import`, import Existing CIDR reservations using `SUBNET_ID:RESERVATION_ID`. For example:
    50  //
    51  // ```sh
    52  // $ pulumi import aws:ec2/subnetCidrReservation:SubnetCidrReservation example subnet-01llsxvsxabqiymcz:scr-4mnvz6wb7otksjcs9
    53  // ```
    54  type SubnetCidrReservation struct {
    55  	pulumi.CustomResourceState
    56  
    57  	// The CIDR block for the reservation.
    58  	CidrBlock pulumi.StringOutput `pulumi:"cidrBlock"`
    59  	// A brief description of the reservation.
    60  	Description pulumi.StringPtrOutput `pulumi:"description"`
    61  	// ID of the AWS account that owns this CIDR reservation.
    62  	OwnerId pulumi.StringOutput `pulumi:"ownerId"`
    63  	// The type of reservation to create. Valid values: `explicit`, `prefix`
    64  	ReservationType pulumi.StringOutput `pulumi:"reservationType"`
    65  	// The ID of the subnet to create the reservation for.
    66  	SubnetId pulumi.StringOutput `pulumi:"subnetId"`
    67  }
    68  
    69  // NewSubnetCidrReservation registers a new resource with the given unique name, arguments, and options.
    70  func NewSubnetCidrReservation(ctx *pulumi.Context,
    71  	name string, args *SubnetCidrReservationArgs, opts ...pulumi.ResourceOption) (*SubnetCidrReservation, error) {
    72  	if args == nil {
    73  		return nil, errors.New("missing one or more required arguments")
    74  	}
    75  
    76  	if args.CidrBlock == nil {
    77  		return nil, errors.New("invalid value for required argument 'CidrBlock'")
    78  	}
    79  	if args.ReservationType == nil {
    80  		return nil, errors.New("invalid value for required argument 'ReservationType'")
    81  	}
    82  	if args.SubnetId == nil {
    83  		return nil, errors.New("invalid value for required argument 'SubnetId'")
    84  	}
    85  	opts = internal.PkgResourceDefaultOpts(opts)
    86  	var resource SubnetCidrReservation
    87  	err := ctx.RegisterResource("aws:ec2/subnetCidrReservation:SubnetCidrReservation", name, args, &resource, opts...)
    88  	if err != nil {
    89  		return nil, err
    90  	}
    91  	return &resource, nil
    92  }
    93  
    94  // GetSubnetCidrReservation gets an existing SubnetCidrReservation resource's state with the given name, ID, and optional
    95  // state properties that are used to uniquely qualify the lookup (nil if not required).
    96  func GetSubnetCidrReservation(ctx *pulumi.Context,
    97  	name string, id pulumi.IDInput, state *SubnetCidrReservationState, opts ...pulumi.ResourceOption) (*SubnetCidrReservation, error) {
    98  	var resource SubnetCidrReservation
    99  	err := ctx.ReadResource("aws:ec2/subnetCidrReservation:SubnetCidrReservation", name, id, state, &resource, opts...)
   100  	if err != nil {
   101  		return nil, err
   102  	}
   103  	return &resource, nil
   104  }
   105  
   106  // Input properties used for looking up and filtering SubnetCidrReservation resources.
   107  type subnetCidrReservationState struct {
   108  	// The CIDR block for the reservation.
   109  	CidrBlock *string `pulumi:"cidrBlock"`
   110  	// A brief description of the reservation.
   111  	Description *string `pulumi:"description"`
   112  	// ID of the AWS account that owns this CIDR reservation.
   113  	OwnerId *string `pulumi:"ownerId"`
   114  	// The type of reservation to create. Valid values: `explicit`, `prefix`
   115  	ReservationType *string `pulumi:"reservationType"`
   116  	// The ID of the subnet to create the reservation for.
   117  	SubnetId *string `pulumi:"subnetId"`
   118  }
   119  
   120  type SubnetCidrReservationState struct {
   121  	// The CIDR block for the reservation.
   122  	CidrBlock pulumi.StringPtrInput
   123  	// A brief description of the reservation.
   124  	Description pulumi.StringPtrInput
   125  	// ID of the AWS account that owns this CIDR reservation.
   126  	OwnerId pulumi.StringPtrInput
   127  	// The type of reservation to create. Valid values: `explicit`, `prefix`
   128  	ReservationType pulumi.StringPtrInput
   129  	// The ID of the subnet to create the reservation for.
   130  	SubnetId pulumi.StringPtrInput
   131  }
   132  
   133  func (SubnetCidrReservationState) ElementType() reflect.Type {
   134  	return reflect.TypeOf((*subnetCidrReservationState)(nil)).Elem()
   135  }
   136  
   137  type subnetCidrReservationArgs struct {
   138  	// The CIDR block for the reservation.
   139  	CidrBlock string `pulumi:"cidrBlock"`
   140  	// A brief description of the reservation.
   141  	Description *string `pulumi:"description"`
   142  	// The type of reservation to create. Valid values: `explicit`, `prefix`
   143  	ReservationType string `pulumi:"reservationType"`
   144  	// The ID of the subnet to create the reservation for.
   145  	SubnetId string `pulumi:"subnetId"`
   146  }
   147  
   148  // The set of arguments for constructing a SubnetCidrReservation resource.
   149  type SubnetCidrReservationArgs struct {
   150  	// The CIDR block for the reservation.
   151  	CidrBlock pulumi.StringInput
   152  	// A brief description of the reservation.
   153  	Description pulumi.StringPtrInput
   154  	// The type of reservation to create. Valid values: `explicit`, `prefix`
   155  	ReservationType pulumi.StringInput
   156  	// The ID of the subnet to create the reservation for.
   157  	SubnetId pulumi.StringInput
   158  }
   159  
   160  func (SubnetCidrReservationArgs) ElementType() reflect.Type {
   161  	return reflect.TypeOf((*subnetCidrReservationArgs)(nil)).Elem()
   162  }
   163  
   164  type SubnetCidrReservationInput interface {
   165  	pulumi.Input
   166  
   167  	ToSubnetCidrReservationOutput() SubnetCidrReservationOutput
   168  	ToSubnetCidrReservationOutputWithContext(ctx context.Context) SubnetCidrReservationOutput
   169  }
   170  
   171  func (*SubnetCidrReservation) ElementType() reflect.Type {
   172  	return reflect.TypeOf((**SubnetCidrReservation)(nil)).Elem()
   173  }
   174  
   175  func (i *SubnetCidrReservation) ToSubnetCidrReservationOutput() SubnetCidrReservationOutput {
   176  	return i.ToSubnetCidrReservationOutputWithContext(context.Background())
   177  }
   178  
   179  func (i *SubnetCidrReservation) ToSubnetCidrReservationOutputWithContext(ctx context.Context) SubnetCidrReservationOutput {
   180  	return pulumi.ToOutputWithContext(ctx, i).(SubnetCidrReservationOutput)
   181  }
   182  
   183  // SubnetCidrReservationArrayInput is an input type that accepts SubnetCidrReservationArray and SubnetCidrReservationArrayOutput values.
   184  // You can construct a concrete instance of `SubnetCidrReservationArrayInput` via:
   185  //
   186  //	SubnetCidrReservationArray{ SubnetCidrReservationArgs{...} }
   187  type SubnetCidrReservationArrayInput interface {
   188  	pulumi.Input
   189  
   190  	ToSubnetCidrReservationArrayOutput() SubnetCidrReservationArrayOutput
   191  	ToSubnetCidrReservationArrayOutputWithContext(context.Context) SubnetCidrReservationArrayOutput
   192  }
   193  
   194  type SubnetCidrReservationArray []SubnetCidrReservationInput
   195  
   196  func (SubnetCidrReservationArray) ElementType() reflect.Type {
   197  	return reflect.TypeOf((*[]*SubnetCidrReservation)(nil)).Elem()
   198  }
   199  
   200  func (i SubnetCidrReservationArray) ToSubnetCidrReservationArrayOutput() SubnetCidrReservationArrayOutput {
   201  	return i.ToSubnetCidrReservationArrayOutputWithContext(context.Background())
   202  }
   203  
   204  func (i SubnetCidrReservationArray) ToSubnetCidrReservationArrayOutputWithContext(ctx context.Context) SubnetCidrReservationArrayOutput {
   205  	return pulumi.ToOutputWithContext(ctx, i).(SubnetCidrReservationArrayOutput)
   206  }
   207  
   208  // SubnetCidrReservationMapInput is an input type that accepts SubnetCidrReservationMap and SubnetCidrReservationMapOutput values.
   209  // You can construct a concrete instance of `SubnetCidrReservationMapInput` via:
   210  //
   211  //	SubnetCidrReservationMap{ "key": SubnetCidrReservationArgs{...} }
   212  type SubnetCidrReservationMapInput interface {
   213  	pulumi.Input
   214  
   215  	ToSubnetCidrReservationMapOutput() SubnetCidrReservationMapOutput
   216  	ToSubnetCidrReservationMapOutputWithContext(context.Context) SubnetCidrReservationMapOutput
   217  }
   218  
   219  type SubnetCidrReservationMap map[string]SubnetCidrReservationInput
   220  
   221  func (SubnetCidrReservationMap) ElementType() reflect.Type {
   222  	return reflect.TypeOf((*map[string]*SubnetCidrReservation)(nil)).Elem()
   223  }
   224  
   225  func (i SubnetCidrReservationMap) ToSubnetCidrReservationMapOutput() SubnetCidrReservationMapOutput {
   226  	return i.ToSubnetCidrReservationMapOutputWithContext(context.Background())
   227  }
   228  
   229  func (i SubnetCidrReservationMap) ToSubnetCidrReservationMapOutputWithContext(ctx context.Context) SubnetCidrReservationMapOutput {
   230  	return pulumi.ToOutputWithContext(ctx, i).(SubnetCidrReservationMapOutput)
   231  }
   232  
   233  type SubnetCidrReservationOutput struct{ *pulumi.OutputState }
   234  
   235  func (SubnetCidrReservationOutput) ElementType() reflect.Type {
   236  	return reflect.TypeOf((**SubnetCidrReservation)(nil)).Elem()
   237  }
   238  
   239  func (o SubnetCidrReservationOutput) ToSubnetCidrReservationOutput() SubnetCidrReservationOutput {
   240  	return o
   241  }
   242  
   243  func (o SubnetCidrReservationOutput) ToSubnetCidrReservationOutputWithContext(ctx context.Context) SubnetCidrReservationOutput {
   244  	return o
   245  }
   246  
   247  // The CIDR block for the reservation.
   248  func (o SubnetCidrReservationOutput) CidrBlock() pulumi.StringOutput {
   249  	return o.ApplyT(func(v *SubnetCidrReservation) pulumi.StringOutput { return v.CidrBlock }).(pulumi.StringOutput)
   250  }
   251  
   252  // A brief description of the reservation.
   253  func (o SubnetCidrReservationOutput) Description() pulumi.StringPtrOutput {
   254  	return o.ApplyT(func(v *SubnetCidrReservation) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput)
   255  }
   256  
   257  // ID of the AWS account that owns this CIDR reservation.
   258  func (o SubnetCidrReservationOutput) OwnerId() pulumi.StringOutput {
   259  	return o.ApplyT(func(v *SubnetCidrReservation) pulumi.StringOutput { return v.OwnerId }).(pulumi.StringOutput)
   260  }
   261  
   262  // The type of reservation to create. Valid values: `explicit`, `prefix`
   263  func (o SubnetCidrReservationOutput) ReservationType() pulumi.StringOutput {
   264  	return o.ApplyT(func(v *SubnetCidrReservation) pulumi.StringOutput { return v.ReservationType }).(pulumi.StringOutput)
   265  }
   266  
   267  // The ID of the subnet to create the reservation for.
   268  func (o SubnetCidrReservationOutput) SubnetId() pulumi.StringOutput {
   269  	return o.ApplyT(func(v *SubnetCidrReservation) pulumi.StringOutput { return v.SubnetId }).(pulumi.StringOutput)
   270  }
   271  
   272  type SubnetCidrReservationArrayOutput struct{ *pulumi.OutputState }
   273  
   274  func (SubnetCidrReservationArrayOutput) ElementType() reflect.Type {
   275  	return reflect.TypeOf((*[]*SubnetCidrReservation)(nil)).Elem()
   276  }
   277  
   278  func (o SubnetCidrReservationArrayOutput) ToSubnetCidrReservationArrayOutput() SubnetCidrReservationArrayOutput {
   279  	return o
   280  }
   281  
   282  func (o SubnetCidrReservationArrayOutput) ToSubnetCidrReservationArrayOutputWithContext(ctx context.Context) SubnetCidrReservationArrayOutput {
   283  	return o
   284  }
   285  
   286  func (o SubnetCidrReservationArrayOutput) Index(i pulumi.IntInput) SubnetCidrReservationOutput {
   287  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *SubnetCidrReservation {
   288  		return vs[0].([]*SubnetCidrReservation)[vs[1].(int)]
   289  	}).(SubnetCidrReservationOutput)
   290  }
   291  
   292  type SubnetCidrReservationMapOutput struct{ *pulumi.OutputState }
   293  
   294  func (SubnetCidrReservationMapOutput) ElementType() reflect.Type {
   295  	return reflect.TypeOf((*map[string]*SubnetCidrReservation)(nil)).Elem()
   296  }
   297  
   298  func (o SubnetCidrReservationMapOutput) ToSubnetCidrReservationMapOutput() SubnetCidrReservationMapOutput {
   299  	return o
   300  }
   301  
   302  func (o SubnetCidrReservationMapOutput) ToSubnetCidrReservationMapOutputWithContext(ctx context.Context) SubnetCidrReservationMapOutput {
   303  	return o
   304  }
   305  
   306  func (o SubnetCidrReservationMapOutput) MapIndex(k pulumi.StringInput) SubnetCidrReservationOutput {
   307  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *SubnetCidrReservation {
   308  		return vs[0].(map[string]*SubnetCidrReservation)[vs[1].(string)]
   309  	}).(SubnetCidrReservationOutput)
   310  }
   311  
   312  func init() {
   313  	pulumi.RegisterInputType(reflect.TypeOf((*SubnetCidrReservationInput)(nil)).Elem(), &SubnetCidrReservation{})
   314  	pulumi.RegisterInputType(reflect.TypeOf((*SubnetCidrReservationArrayInput)(nil)).Elem(), SubnetCidrReservationArray{})
   315  	pulumi.RegisterInputType(reflect.TypeOf((*SubnetCidrReservationMapInput)(nil)).Elem(), SubnetCidrReservationMap{})
   316  	pulumi.RegisterOutputType(SubnetCidrReservationOutput{})
   317  	pulumi.RegisterOutputType(SubnetCidrReservationArrayOutput{})
   318  	pulumi.RegisterOutputType(SubnetCidrReservationMapOutput{})
   319  }