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 }