github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/ec2/vpcDhcpOptions.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 // Provides a VPC DHCP Options resource. 15 // 16 // ## Example Usage 17 // 18 // Basic usage: 19 // 20 // <!--Start PulumiCodeChooser --> 21 // ```go 22 // package main 23 // 24 // import ( 25 // 26 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" 27 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 28 // 29 // ) 30 // 31 // func main() { 32 // pulumi.Run(func(ctx *pulumi.Context) error { 33 // _, err := ec2.NewVpcDhcpOptions(ctx, "dns_resolver", &ec2.VpcDhcpOptionsArgs{ 34 // DomainNameServers: pulumi.StringArray{ 35 // pulumi.String("8.8.8.8"), 36 // pulumi.String("8.8.4.4"), 37 // }, 38 // }) 39 // if err != nil { 40 // return err 41 // } 42 // return nil 43 // }) 44 // } 45 // 46 // ``` 47 // <!--End PulumiCodeChooser --> 48 // 49 // Full usage: 50 // 51 // <!--Start PulumiCodeChooser --> 52 // ```go 53 // package main 54 // 55 // import ( 56 // 57 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" 58 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 59 // 60 // ) 61 // 62 // func main() { 63 // pulumi.Run(func(ctx *pulumi.Context) error { 64 // _, err := ec2.NewVpcDhcpOptions(ctx, "foo", &ec2.VpcDhcpOptionsArgs{ 65 // DomainName: pulumi.String("service.consul"), 66 // DomainNameServers: pulumi.StringArray{ 67 // pulumi.String("127.0.0.1"), 68 // pulumi.String("10.0.0.2"), 69 // }, 70 // Ipv6AddressPreferredLeaseTime: pulumi.String("1440"), 71 // NtpServers: pulumi.StringArray{ 72 // pulumi.String("127.0.0.1"), 73 // }, 74 // NetbiosNameServers: pulumi.StringArray{ 75 // pulumi.String("127.0.0.1"), 76 // }, 77 // NetbiosNodeType: pulumi.String("2"), 78 // Tags: pulumi.StringMap{ 79 // "Name": pulumi.String("foo-name"), 80 // }, 81 // }) 82 // if err != nil { 83 // return err 84 // } 85 // return nil 86 // }) 87 // } 88 // 89 // ``` 90 // <!--End PulumiCodeChooser --> 91 // 92 // ## Remarks 93 // 94 // * Notice that all arguments are optional but you have to specify at least one argument. 95 // * `domainNameServers`, `netbiosNameServers`, `ntpServers` are limited by AWS to maximum four servers only. 96 // * To actually use the DHCP Options Set you need to associate it to a VPC using `ec2.VpcDhcpOptionsAssociation`. 97 // * If you delete a DHCP Options Set, all VPCs using it will be associated to AWS's `default` DHCP Option Set. 98 // * In most cases unless you're configuring your own DNS you'll want to set `domainNameServers` to `AmazonProvidedDNS`. 99 // 100 // ## Import 101 // 102 // Using `pulumi import`, import VPC DHCP Options using the DHCP Options `id`. For example: 103 // 104 // ```sh 105 // $ pulumi import aws:ec2/vpcDhcpOptions:VpcDhcpOptions my_options dopt-d9070ebb 106 // ``` 107 type VpcDhcpOptions struct { 108 pulumi.CustomResourceState 109 110 // The ARN of the DHCP Options Set. 111 Arn pulumi.StringOutput `pulumi:"arn"` 112 // the suffix domain name to use by default when resolving non Fully Qualified Domain Names. In other words, this is what ends up being the `search` value in the `/etc/resolv.conf` file. 113 DomainName pulumi.StringPtrOutput `pulumi:"domainName"` 114 // List of name servers to configure in `/etc/resolv.conf`. If you want to use the default AWS nameservers you should set this to `AmazonProvidedDNS`. 115 DomainNameServers pulumi.StringArrayOutput `pulumi:"domainNameServers"` 116 // How frequently, in seconds, a running instance with an IPv6 assigned to it goes through DHCPv6 lease renewal. Acceptable values are between 140 and 2147483647 (approximately 68 years). If no value is entered, the default lease time is 140 seconds. If you use long-term addressing for EC2 instances, you can increase the lease time and avoid frequent lease renewal requests. Lease renewal typically occurs when half of the lease time has elapsed. 117 Ipv6AddressPreferredLeaseTime pulumi.StringPtrOutput `pulumi:"ipv6AddressPreferredLeaseTime"` 118 // List of NETBIOS name servers. 119 NetbiosNameServers pulumi.StringArrayOutput `pulumi:"netbiosNameServers"` 120 // The NetBIOS node type (1, 2, 4, or 8). AWS recommends to specify 2 since broadcast and multicast are not supported in their network. For more information about these node types, see [RFC 2132](http://www.ietf.org/rfc/rfc2132.txt). 121 NetbiosNodeType pulumi.StringPtrOutput `pulumi:"netbiosNodeType"` 122 // List of NTP servers to configure. 123 NtpServers pulumi.StringArrayOutput `pulumi:"ntpServers"` 124 // The ID of the AWS account that owns the DHCP options set. 125 OwnerId pulumi.StringOutput `pulumi:"ownerId"` 126 // 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. 127 Tags pulumi.StringMapOutput `pulumi:"tags"` 128 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 129 // 130 // Deprecated: Please use `tags` instead. 131 TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` 132 } 133 134 // NewVpcDhcpOptions registers a new resource with the given unique name, arguments, and options. 135 func NewVpcDhcpOptions(ctx *pulumi.Context, 136 name string, args *VpcDhcpOptionsArgs, opts ...pulumi.ResourceOption) (*VpcDhcpOptions, error) { 137 if args == nil { 138 args = &VpcDhcpOptionsArgs{} 139 } 140 141 opts = internal.PkgResourceDefaultOpts(opts) 142 var resource VpcDhcpOptions 143 err := ctx.RegisterResource("aws:ec2/vpcDhcpOptions:VpcDhcpOptions", name, args, &resource, opts...) 144 if err != nil { 145 return nil, err 146 } 147 return &resource, nil 148 } 149 150 // GetVpcDhcpOptions gets an existing VpcDhcpOptions resource's state with the given name, ID, and optional 151 // state properties that are used to uniquely qualify the lookup (nil if not required). 152 func GetVpcDhcpOptions(ctx *pulumi.Context, 153 name string, id pulumi.IDInput, state *VpcDhcpOptionsState, opts ...pulumi.ResourceOption) (*VpcDhcpOptions, error) { 154 var resource VpcDhcpOptions 155 err := ctx.ReadResource("aws:ec2/vpcDhcpOptions:VpcDhcpOptions", name, id, state, &resource, opts...) 156 if err != nil { 157 return nil, err 158 } 159 return &resource, nil 160 } 161 162 // Input properties used for looking up and filtering VpcDhcpOptions resources. 163 type vpcDhcpOptionsState struct { 164 // The ARN of the DHCP Options Set. 165 Arn *string `pulumi:"arn"` 166 // the suffix domain name to use by default when resolving non Fully Qualified Domain Names. In other words, this is what ends up being the `search` value in the `/etc/resolv.conf` file. 167 DomainName *string `pulumi:"domainName"` 168 // List of name servers to configure in `/etc/resolv.conf`. If you want to use the default AWS nameservers you should set this to `AmazonProvidedDNS`. 169 DomainNameServers []string `pulumi:"domainNameServers"` 170 // How frequently, in seconds, a running instance with an IPv6 assigned to it goes through DHCPv6 lease renewal. Acceptable values are between 140 and 2147483647 (approximately 68 years). If no value is entered, the default lease time is 140 seconds. If you use long-term addressing for EC2 instances, you can increase the lease time and avoid frequent lease renewal requests. Lease renewal typically occurs when half of the lease time has elapsed. 171 Ipv6AddressPreferredLeaseTime *string `pulumi:"ipv6AddressPreferredLeaseTime"` 172 // List of NETBIOS name servers. 173 NetbiosNameServers []string `pulumi:"netbiosNameServers"` 174 // The NetBIOS node type (1, 2, 4, or 8). AWS recommends to specify 2 since broadcast and multicast are not supported in their network. For more information about these node types, see [RFC 2132](http://www.ietf.org/rfc/rfc2132.txt). 175 NetbiosNodeType *string `pulumi:"netbiosNodeType"` 176 // List of NTP servers to configure. 177 NtpServers []string `pulumi:"ntpServers"` 178 // The ID of the AWS account that owns the DHCP options set. 179 OwnerId *string `pulumi:"ownerId"` 180 // 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. 181 Tags map[string]string `pulumi:"tags"` 182 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 183 // 184 // Deprecated: Please use `tags` instead. 185 TagsAll map[string]string `pulumi:"tagsAll"` 186 } 187 188 type VpcDhcpOptionsState struct { 189 // The ARN of the DHCP Options Set. 190 Arn pulumi.StringPtrInput 191 // the suffix domain name to use by default when resolving non Fully Qualified Domain Names. In other words, this is what ends up being the `search` value in the `/etc/resolv.conf` file. 192 DomainName pulumi.StringPtrInput 193 // List of name servers to configure in `/etc/resolv.conf`. If you want to use the default AWS nameservers you should set this to `AmazonProvidedDNS`. 194 DomainNameServers pulumi.StringArrayInput 195 // How frequently, in seconds, a running instance with an IPv6 assigned to it goes through DHCPv6 lease renewal. Acceptable values are between 140 and 2147483647 (approximately 68 years). If no value is entered, the default lease time is 140 seconds. If you use long-term addressing for EC2 instances, you can increase the lease time and avoid frequent lease renewal requests. Lease renewal typically occurs when half of the lease time has elapsed. 196 Ipv6AddressPreferredLeaseTime pulumi.StringPtrInput 197 // List of NETBIOS name servers. 198 NetbiosNameServers pulumi.StringArrayInput 199 // The NetBIOS node type (1, 2, 4, or 8). AWS recommends to specify 2 since broadcast and multicast are not supported in their network. For more information about these node types, see [RFC 2132](http://www.ietf.org/rfc/rfc2132.txt). 200 NetbiosNodeType pulumi.StringPtrInput 201 // List of NTP servers to configure. 202 NtpServers pulumi.StringArrayInput 203 // The ID of the AWS account that owns the DHCP options set. 204 OwnerId pulumi.StringPtrInput 205 // 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. 206 Tags pulumi.StringMapInput 207 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 208 // 209 // Deprecated: Please use `tags` instead. 210 TagsAll pulumi.StringMapInput 211 } 212 213 func (VpcDhcpOptionsState) ElementType() reflect.Type { 214 return reflect.TypeOf((*vpcDhcpOptionsState)(nil)).Elem() 215 } 216 217 type vpcDhcpOptionsArgs struct { 218 // the suffix domain name to use by default when resolving non Fully Qualified Domain Names. In other words, this is what ends up being the `search` value in the `/etc/resolv.conf` file. 219 DomainName *string `pulumi:"domainName"` 220 // List of name servers to configure in `/etc/resolv.conf`. If you want to use the default AWS nameservers you should set this to `AmazonProvidedDNS`. 221 DomainNameServers []string `pulumi:"domainNameServers"` 222 // How frequently, in seconds, a running instance with an IPv6 assigned to it goes through DHCPv6 lease renewal. Acceptable values are between 140 and 2147483647 (approximately 68 years). If no value is entered, the default lease time is 140 seconds. If you use long-term addressing for EC2 instances, you can increase the lease time and avoid frequent lease renewal requests. Lease renewal typically occurs when half of the lease time has elapsed. 223 Ipv6AddressPreferredLeaseTime *string `pulumi:"ipv6AddressPreferredLeaseTime"` 224 // List of NETBIOS name servers. 225 NetbiosNameServers []string `pulumi:"netbiosNameServers"` 226 // The NetBIOS node type (1, 2, 4, or 8). AWS recommends to specify 2 since broadcast and multicast are not supported in their network. For more information about these node types, see [RFC 2132](http://www.ietf.org/rfc/rfc2132.txt). 227 NetbiosNodeType *string `pulumi:"netbiosNodeType"` 228 // List of NTP servers to configure. 229 NtpServers []string `pulumi:"ntpServers"` 230 // 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. 231 Tags map[string]string `pulumi:"tags"` 232 } 233 234 // The set of arguments for constructing a VpcDhcpOptions resource. 235 type VpcDhcpOptionsArgs struct { 236 // the suffix domain name to use by default when resolving non Fully Qualified Domain Names. In other words, this is what ends up being the `search` value in the `/etc/resolv.conf` file. 237 DomainName pulumi.StringPtrInput 238 // List of name servers to configure in `/etc/resolv.conf`. If you want to use the default AWS nameservers you should set this to `AmazonProvidedDNS`. 239 DomainNameServers pulumi.StringArrayInput 240 // How frequently, in seconds, a running instance with an IPv6 assigned to it goes through DHCPv6 lease renewal. Acceptable values are between 140 and 2147483647 (approximately 68 years). If no value is entered, the default lease time is 140 seconds. If you use long-term addressing for EC2 instances, you can increase the lease time and avoid frequent lease renewal requests. Lease renewal typically occurs when half of the lease time has elapsed. 241 Ipv6AddressPreferredLeaseTime pulumi.StringPtrInput 242 // List of NETBIOS name servers. 243 NetbiosNameServers pulumi.StringArrayInput 244 // The NetBIOS node type (1, 2, 4, or 8). AWS recommends to specify 2 since broadcast and multicast are not supported in their network. For more information about these node types, see [RFC 2132](http://www.ietf.org/rfc/rfc2132.txt). 245 NetbiosNodeType pulumi.StringPtrInput 246 // List of NTP servers to configure. 247 NtpServers pulumi.StringArrayInput 248 // 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. 249 Tags pulumi.StringMapInput 250 } 251 252 func (VpcDhcpOptionsArgs) ElementType() reflect.Type { 253 return reflect.TypeOf((*vpcDhcpOptionsArgs)(nil)).Elem() 254 } 255 256 type VpcDhcpOptionsInput interface { 257 pulumi.Input 258 259 ToVpcDhcpOptionsOutput() VpcDhcpOptionsOutput 260 ToVpcDhcpOptionsOutputWithContext(ctx context.Context) VpcDhcpOptionsOutput 261 } 262 263 func (*VpcDhcpOptions) ElementType() reflect.Type { 264 return reflect.TypeOf((**VpcDhcpOptions)(nil)).Elem() 265 } 266 267 func (i *VpcDhcpOptions) ToVpcDhcpOptionsOutput() VpcDhcpOptionsOutput { 268 return i.ToVpcDhcpOptionsOutputWithContext(context.Background()) 269 } 270 271 func (i *VpcDhcpOptions) ToVpcDhcpOptionsOutputWithContext(ctx context.Context) VpcDhcpOptionsOutput { 272 return pulumi.ToOutputWithContext(ctx, i).(VpcDhcpOptionsOutput) 273 } 274 275 // VpcDhcpOptionsArrayInput is an input type that accepts VpcDhcpOptionsArray and VpcDhcpOptionsArrayOutput values. 276 // You can construct a concrete instance of `VpcDhcpOptionsArrayInput` via: 277 // 278 // VpcDhcpOptionsArray{ VpcDhcpOptionsArgs{...} } 279 type VpcDhcpOptionsArrayInput interface { 280 pulumi.Input 281 282 ToVpcDhcpOptionsArrayOutput() VpcDhcpOptionsArrayOutput 283 ToVpcDhcpOptionsArrayOutputWithContext(context.Context) VpcDhcpOptionsArrayOutput 284 } 285 286 type VpcDhcpOptionsArray []VpcDhcpOptionsInput 287 288 func (VpcDhcpOptionsArray) ElementType() reflect.Type { 289 return reflect.TypeOf((*[]*VpcDhcpOptions)(nil)).Elem() 290 } 291 292 func (i VpcDhcpOptionsArray) ToVpcDhcpOptionsArrayOutput() VpcDhcpOptionsArrayOutput { 293 return i.ToVpcDhcpOptionsArrayOutputWithContext(context.Background()) 294 } 295 296 func (i VpcDhcpOptionsArray) ToVpcDhcpOptionsArrayOutputWithContext(ctx context.Context) VpcDhcpOptionsArrayOutput { 297 return pulumi.ToOutputWithContext(ctx, i).(VpcDhcpOptionsArrayOutput) 298 } 299 300 // VpcDhcpOptionsMapInput is an input type that accepts VpcDhcpOptionsMap and VpcDhcpOptionsMapOutput values. 301 // You can construct a concrete instance of `VpcDhcpOptionsMapInput` via: 302 // 303 // VpcDhcpOptionsMap{ "key": VpcDhcpOptionsArgs{...} } 304 type VpcDhcpOptionsMapInput interface { 305 pulumi.Input 306 307 ToVpcDhcpOptionsMapOutput() VpcDhcpOptionsMapOutput 308 ToVpcDhcpOptionsMapOutputWithContext(context.Context) VpcDhcpOptionsMapOutput 309 } 310 311 type VpcDhcpOptionsMap map[string]VpcDhcpOptionsInput 312 313 func (VpcDhcpOptionsMap) ElementType() reflect.Type { 314 return reflect.TypeOf((*map[string]*VpcDhcpOptions)(nil)).Elem() 315 } 316 317 func (i VpcDhcpOptionsMap) ToVpcDhcpOptionsMapOutput() VpcDhcpOptionsMapOutput { 318 return i.ToVpcDhcpOptionsMapOutputWithContext(context.Background()) 319 } 320 321 func (i VpcDhcpOptionsMap) ToVpcDhcpOptionsMapOutputWithContext(ctx context.Context) VpcDhcpOptionsMapOutput { 322 return pulumi.ToOutputWithContext(ctx, i).(VpcDhcpOptionsMapOutput) 323 } 324 325 type VpcDhcpOptionsOutput struct{ *pulumi.OutputState } 326 327 func (VpcDhcpOptionsOutput) ElementType() reflect.Type { 328 return reflect.TypeOf((**VpcDhcpOptions)(nil)).Elem() 329 } 330 331 func (o VpcDhcpOptionsOutput) ToVpcDhcpOptionsOutput() VpcDhcpOptionsOutput { 332 return o 333 } 334 335 func (o VpcDhcpOptionsOutput) ToVpcDhcpOptionsOutputWithContext(ctx context.Context) VpcDhcpOptionsOutput { 336 return o 337 } 338 339 // The ARN of the DHCP Options Set. 340 func (o VpcDhcpOptionsOutput) Arn() pulumi.StringOutput { 341 return o.ApplyT(func(v *VpcDhcpOptions) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) 342 } 343 344 // the suffix domain name to use by default when resolving non Fully Qualified Domain Names. In other words, this is what ends up being the `search` value in the `/etc/resolv.conf` file. 345 func (o VpcDhcpOptionsOutput) DomainName() pulumi.StringPtrOutput { 346 return o.ApplyT(func(v *VpcDhcpOptions) pulumi.StringPtrOutput { return v.DomainName }).(pulumi.StringPtrOutput) 347 } 348 349 // List of name servers to configure in `/etc/resolv.conf`. If you want to use the default AWS nameservers you should set this to `AmazonProvidedDNS`. 350 func (o VpcDhcpOptionsOutput) DomainNameServers() pulumi.StringArrayOutput { 351 return o.ApplyT(func(v *VpcDhcpOptions) pulumi.StringArrayOutput { return v.DomainNameServers }).(pulumi.StringArrayOutput) 352 } 353 354 // How frequently, in seconds, a running instance with an IPv6 assigned to it goes through DHCPv6 lease renewal. Acceptable values are between 140 and 2147483647 (approximately 68 years). If no value is entered, the default lease time is 140 seconds. If you use long-term addressing for EC2 instances, you can increase the lease time and avoid frequent lease renewal requests. Lease renewal typically occurs when half of the lease time has elapsed. 355 func (o VpcDhcpOptionsOutput) Ipv6AddressPreferredLeaseTime() pulumi.StringPtrOutput { 356 return o.ApplyT(func(v *VpcDhcpOptions) pulumi.StringPtrOutput { return v.Ipv6AddressPreferredLeaseTime }).(pulumi.StringPtrOutput) 357 } 358 359 // List of NETBIOS name servers. 360 func (o VpcDhcpOptionsOutput) NetbiosNameServers() pulumi.StringArrayOutput { 361 return o.ApplyT(func(v *VpcDhcpOptions) pulumi.StringArrayOutput { return v.NetbiosNameServers }).(pulumi.StringArrayOutput) 362 } 363 364 // The NetBIOS node type (1, 2, 4, or 8). AWS recommends to specify 2 since broadcast and multicast are not supported in their network. For more information about these node types, see [RFC 2132](http://www.ietf.org/rfc/rfc2132.txt). 365 func (o VpcDhcpOptionsOutput) NetbiosNodeType() pulumi.StringPtrOutput { 366 return o.ApplyT(func(v *VpcDhcpOptions) pulumi.StringPtrOutput { return v.NetbiosNodeType }).(pulumi.StringPtrOutput) 367 } 368 369 // List of NTP servers to configure. 370 func (o VpcDhcpOptionsOutput) NtpServers() pulumi.StringArrayOutput { 371 return o.ApplyT(func(v *VpcDhcpOptions) pulumi.StringArrayOutput { return v.NtpServers }).(pulumi.StringArrayOutput) 372 } 373 374 // The ID of the AWS account that owns the DHCP options set. 375 func (o VpcDhcpOptionsOutput) OwnerId() pulumi.StringOutput { 376 return o.ApplyT(func(v *VpcDhcpOptions) pulumi.StringOutput { return v.OwnerId }).(pulumi.StringOutput) 377 } 378 379 // 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. 380 func (o VpcDhcpOptionsOutput) Tags() pulumi.StringMapOutput { 381 return o.ApplyT(func(v *VpcDhcpOptions) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) 382 } 383 384 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 385 // 386 // Deprecated: Please use `tags` instead. 387 func (o VpcDhcpOptionsOutput) TagsAll() pulumi.StringMapOutput { 388 return o.ApplyT(func(v *VpcDhcpOptions) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) 389 } 390 391 type VpcDhcpOptionsArrayOutput struct{ *pulumi.OutputState } 392 393 func (VpcDhcpOptionsArrayOutput) ElementType() reflect.Type { 394 return reflect.TypeOf((*[]*VpcDhcpOptions)(nil)).Elem() 395 } 396 397 func (o VpcDhcpOptionsArrayOutput) ToVpcDhcpOptionsArrayOutput() VpcDhcpOptionsArrayOutput { 398 return o 399 } 400 401 func (o VpcDhcpOptionsArrayOutput) ToVpcDhcpOptionsArrayOutputWithContext(ctx context.Context) VpcDhcpOptionsArrayOutput { 402 return o 403 } 404 405 func (o VpcDhcpOptionsArrayOutput) Index(i pulumi.IntInput) VpcDhcpOptionsOutput { 406 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *VpcDhcpOptions { 407 return vs[0].([]*VpcDhcpOptions)[vs[1].(int)] 408 }).(VpcDhcpOptionsOutput) 409 } 410 411 type VpcDhcpOptionsMapOutput struct{ *pulumi.OutputState } 412 413 func (VpcDhcpOptionsMapOutput) ElementType() reflect.Type { 414 return reflect.TypeOf((*map[string]*VpcDhcpOptions)(nil)).Elem() 415 } 416 417 func (o VpcDhcpOptionsMapOutput) ToVpcDhcpOptionsMapOutput() VpcDhcpOptionsMapOutput { 418 return o 419 } 420 421 func (o VpcDhcpOptionsMapOutput) ToVpcDhcpOptionsMapOutputWithContext(ctx context.Context) VpcDhcpOptionsMapOutput { 422 return o 423 } 424 425 func (o VpcDhcpOptionsMapOutput) MapIndex(k pulumi.StringInput) VpcDhcpOptionsOutput { 426 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *VpcDhcpOptions { 427 return vs[0].(map[string]*VpcDhcpOptions)[vs[1].(string)] 428 }).(VpcDhcpOptionsOutput) 429 } 430 431 func init() { 432 pulumi.RegisterInputType(reflect.TypeOf((*VpcDhcpOptionsInput)(nil)).Elem(), &VpcDhcpOptions{}) 433 pulumi.RegisterInputType(reflect.TypeOf((*VpcDhcpOptionsArrayInput)(nil)).Elem(), VpcDhcpOptionsArray{}) 434 pulumi.RegisterInputType(reflect.TypeOf((*VpcDhcpOptionsMapInput)(nil)).Elem(), VpcDhcpOptionsMap{}) 435 pulumi.RegisterOutputType(VpcDhcpOptionsOutput{}) 436 pulumi.RegisterOutputType(VpcDhcpOptionsArrayOutput{}) 437 pulumi.RegisterOutputType(VpcDhcpOptionsMapOutput{}) 438 }