github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/ec2transitgateway/vpcAttachment.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 ec2transitgateway
     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  // Manages an EC2 Transit Gateway VPC Attachment. For examples of custom route table association and propagation, see the EC2 Transit Gateway Networking Examples Guide.
    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/ec2transitgateway"
    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 := ec2transitgateway.NewVpcAttachment(ctx, "example", &ec2transitgateway.VpcAttachmentArgs{
    33  //				SubnetIds: pulumi.StringArray{
    34  //					exampleAwsSubnet.Id,
    35  //				},
    36  //				TransitGatewayId: pulumi.Any(exampleAwsEc2TransitGateway.Id),
    37  //				VpcId:            pulumi.Any(exampleAwsVpc.Id),
    38  //			})
    39  //			if err != nil {
    40  //				return err
    41  //			}
    42  //			return nil
    43  //		})
    44  //	}
    45  //
    46  // ```
    47  // <!--End PulumiCodeChooser -->
    48  //
    49  // ## Import
    50  //
    51  // Using `pulumi import`, import `aws_ec2_transit_gateway_vpc_attachment` using the EC2 Transit Gateway Attachment identifier. For example:
    52  //
    53  // ```sh
    54  // $ pulumi import aws:ec2transitgateway/vpcAttachment:VpcAttachment example tgw-attach-12345678
    55  // ```
    56  type VpcAttachment struct {
    57  	pulumi.CustomResourceState
    58  
    59  	// Whether Appliance Mode support is enabled. If enabled, a traffic flow between a source and destination uses the same Availability Zone for the VPC attachment for the lifetime of that flow. Valid values: `disable`, `enable`. Default value: `disable`.
    60  	ApplianceModeSupport pulumi.StringPtrOutput `pulumi:"applianceModeSupport"`
    61  	// Whether DNS support is enabled. Valid values: `disable`, `enable`. Default value: `enable`.
    62  	DnsSupport pulumi.StringPtrOutput `pulumi:"dnsSupport"`
    63  	// Whether IPv6 support is enabled. Valid values: `disable`, `enable`. Default value: `disable`.
    64  	Ipv6Support pulumi.StringPtrOutput `pulumi:"ipv6Support"`
    65  	// Identifiers of EC2 Subnets.
    66  	SubnetIds pulumi.StringArrayOutput `pulumi:"subnetIds"`
    67  	// Key-value tags for the EC2 Transit Gateway VPC Attachment. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    68  	Tags pulumi.StringMapOutput `pulumi:"tags"`
    69  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
    70  	//
    71  	// Deprecated: Please use `tags` instead.
    72  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
    73  	// Boolean whether the VPC Attachment should be associated with the EC2 Transit Gateway association default route table. This cannot be configured or perform drift detection with Resource Access Manager shared EC2 Transit Gateways. Default value: `true`.
    74  	TransitGatewayDefaultRouteTableAssociation pulumi.BoolOutput `pulumi:"transitGatewayDefaultRouteTableAssociation"`
    75  	// Boolean whether the VPC Attachment should propagate routes with the EC2 Transit Gateway propagation default route table. This cannot be configured or perform drift detection with Resource Access Manager shared EC2 Transit Gateways. Default value: `true`.
    76  	TransitGatewayDefaultRouteTablePropagation pulumi.BoolOutput `pulumi:"transitGatewayDefaultRouteTablePropagation"`
    77  	// Identifier of EC2 Transit Gateway.
    78  	TransitGatewayId pulumi.StringOutput `pulumi:"transitGatewayId"`
    79  	// Identifier of EC2 VPC.
    80  	VpcId pulumi.StringOutput `pulumi:"vpcId"`
    81  	// Identifier of the AWS account that owns the EC2 VPC.
    82  	VpcOwnerId pulumi.StringOutput `pulumi:"vpcOwnerId"`
    83  }
    84  
    85  // NewVpcAttachment registers a new resource with the given unique name, arguments, and options.
    86  func NewVpcAttachment(ctx *pulumi.Context,
    87  	name string, args *VpcAttachmentArgs, opts ...pulumi.ResourceOption) (*VpcAttachment, error) {
    88  	if args == nil {
    89  		return nil, errors.New("missing one or more required arguments")
    90  	}
    91  
    92  	if args.SubnetIds == nil {
    93  		return nil, errors.New("invalid value for required argument 'SubnetIds'")
    94  	}
    95  	if args.TransitGatewayId == nil {
    96  		return nil, errors.New("invalid value for required argument 'TransitGatewayId'")
    97  	}
    98  	if args.VpcId == nil {
    99  		return nil, errors.New("invalid value for required argument 'VpcId'")
   100  	}
   101  	opts = internal.PkgResourceDefaultOpts(opts)
   102  	var resource VpcAttachment
   103  	err := ctx.RegisterResource("aws:ec2transitgateway/vpcAttachment:VpcAttachment", name, args, &resource, opts...)
   104  	if err != nil {
   105  		return nil, err
   106  	}
   107  	return &resource, nil
   108  }
   109  
   110  // GetVpcAttachment gets an existing VpcAttachment resource's state with the given name, ID, and optional
   111  // state properties that are used to uniquely qualify the lookup (nil if not required).
   112  func GetVpcAttachment(ctx *pulumi.Context,
   113  	name string, id pulumi.IDInput, state *VpcAttachmentState, opts ...pulumi.ResourceOption) (*VpcAttachment, error) {
   114  	var resource VpcAttachment
   115  	err := ctx.ReadResource("aws:ec2transitgateway/vpcAttachment:VpcAttachment", name, id, state, &resource, opts...)
   116  	if err != nil {
   117  		return nil, err
   118  	}
   119  	return &resource, nil
   120  }
   121  
   122  // Input properties used for looking up and filtering VpcAttachment resources.
   123  type vpcAttachmentState struct {
   124  	// Whether Appliance Mode support is enabled. If enabled, a traffic flow between a source and destination uses the same Availability Zone for the VPC attachment for the lifetime of that flow. Valid values: `disable`, `enable`. Default value: `disable`.
   125  	ApplianceModeSupport *string `pulumi:"applianceModeSupport"`
   126  	// Whether DNS support is enabled. Valid values: `disable`, `enable`. Default value: `enable`.
   127  	DnsSupport *string `pulumi:"dnsSupport"`
   128  	// Whether IPv6 support is enabled. Valid values: `disable`, `enable`. Default value: `disable`.
   129  	Ipv6Support *string `pulumi:"ipv6Support"`
   130  	// Identifiers of EC2 Subnets.
   131  	SubnetIds []string `pulumi:"subnetIds"`
   132  	// Key-value tags for the EC2 Transit Gateway VPC Attachment. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   133  	Tags map[string]string `pulumi:"tags"`
   134  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   135  	//
   136  	// Deprecated: Please use `tags` instead.
   137  	TagsAll map[string]string `pulumi:"tagsAll"`
   138  	// Boolean whether the VPC Attachment should be associated with the EC2 Transit Gateway association default route table. This cannot be configured or perform drift detection with Resource Access Manager shared EC2 Transit Gateways. Default value: `true`.
   139  	TransitGatewayDefaultRouteTableAssociation *bool `pulumi:"transitGatewayDefaultRouteTableAssociation"`
   140  	// Boolean whether the VPC Attachment should propagate routes with the EC2 Transit Gateway propagation default route table. This cannot be configured or perform drift detection with Resource Access Manager shared EC2 Transit Gateways. Default value: `true`.
   141  	TransitGatewayDefaultRouteTablePropagation *bool `pulumi:"transitGatewayDefaultRouteTablePropagation"`
   142  	// Identifier of EC2 Transit Gateway.
   143  	TransitGatewayId *string `pulumi:"transitGatewayId"`
   144  	// Identifier of EC2 VPC.
   145  	VpcId *string `pulumi:"vpcId"`
   146  	// Identifier of the AWS account that owns the EC2 VPC.
   147  	VpcOwnerId *string `pulumi:"vpcOwnerId"`
   148  }
   149  
   150  type VpcAttachmentState struct {
   151  	// Whether Appliance Mode support is enabled. If enabled, a traffic flow between a source and destination uses the same Availability Zone for the VPC attachment for the lifetime of that flow. Valid values: `disable`, `enable`. Default value: `disable`.
   152  	ApplianceModeSupport pulumi.StringPtrInput
   153  	// Whether DNS support is enabled. Valid values: `disable`, `enable`. Default value: `enable`.
   154  	DnsSupport pulumi.StringPtrInput
   155  	// Whether IPv6 support is enabled. Valid values: `disable`, `enable`. Default value: `disable`.
   156  	Ipv6Support pulumi.StringPtrInput
   157  	// Identifiers of EC2 Subnets.
   158  	SubnetIds pulumi.StringArrayInput
   159  	// Key-value tags for the EC2 Transit Gateway VPC Attachment. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   160  	Tags pulumi.StringMapInput
   161  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   162  	//
   163  	// Deprecated: Please use `tags` instead.
   164  	TagsAll pulumi.StringMapInput
   165  	// Boolean whether the VPC Attachment should be associated with the EC2 Transit Gateway association default route table. This cannot be configured or perform drift detection with Resource Access Manager shared EC2 Transit Gateways. Default value: `true`.
   166  	TransitGatewayDefaultRouteTableAssociation pulumi.BoolPtrInput
   167  	// Boolean whether the VPC Attachment should propagate routes with the EC2 Transit Gateway propagation default route table. This cannot be configured or perform drift detection with Resource Access Manager shared EC2 Transit Gateways. Default value: `true`.
   168  	TransitGatewayDefaultRouteTablePropagation pulumi.BoolPtrInput
   169  	// Identifier of EC2 Transit Gateway.
   170  	TransitGatewayId pulumi.StringPtrInput
   171  	// Identifier of EC2 VPC.
   172  	VpcId pulumi.StringPtrInput
   173  	// Identifier of the AWS account that owns the EC2 VPC.
   174  	VpcOwnerId pulumi.StringPtrInput
   175  }
   176  
   177  func (VpcAttachmentState) ElementType() reflect.Type {
   178  	return reflect.TypeOf((*vpcAttachmentState)(nil)).Elem()
   179  }
   180  
   181  type vpcAttachmentArgs struct {
   182  	// Whether Appliance Mode support is enabled. If enabled, a traffic flow between a source and destination uses the same Availability Zone for the VPC attachment for the lifetime of that flow. Valid values: `disable`, `enable`. Default value: `disable`.
   183  	ApplianceModeSupport *string `pulumi:"applianceModeSupport"`
   184  	// Whether DNS support is enabled. Valid values: `disable`, `enable`. Default value: `enable`.
   185  	DnsSupport *string `pulumi:"dnsSupport"`
   186  	// Whether IPv6 support is enabled. Valid values: `disable`, `enable`. Default value: `disable`.
   187  	Ipv6Support *string `pulumi:"ipv6Support"`
   188  	// Identifiers of EC2 Subnets.
   189  	SubnetIds []string `pulumi:"subnetIds"`
   190  	// Key-value tags for the EC2 Transit Gateway VPC Attachment. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   191  	Tags map[string]string `pulumi:"tags"`
   192  	// Boolean whether the VPC Attachment should be associated with the EC2 Transit Gateway association default route table. This cannot be configured or perform drift detection with Resource Access Manager shared EC2 Transit Gateways. Default value: `true`.
   193  	TransitGatewayDefaultRouteTableAssociation *bool `pulumi:"transitGatewayDefaultRouteTableAssociation"`
   194  	// Boolean whether the VPC Attachment should propagate routes with the EC2 Transit Gateway propagation default route table. This cannot be configured or perform drift detection with Resource Access Manager shared EC2 Transit Gateways. Default value: `true`.
   195  	TransitGatewayDefaultRouteTablePropagation *bool `pulumi:"transitGatewayDefaultRouteTablePropagation"`
   196  	// Identifier of EC2 Transit Gateway.
   197  	TransitGatewayId string `pulumi:"transitGatewayId"`
   198  	// Identifier of EC2 VPC.
   199  	VpcId string `pulumi:"vpcId"`
   200  }
   201  
   202  // The set of arguments for constructing a VpcAttachment resource.
   203  type VpcAttachmentArgs struct {
   204  	// Whether Appliance Mode support is enabled. If enabled, a traffic flow between a source and destination uses the same Availability Zone for the VPC attachment for the lifetime of that flow. Valid values: `disable`, `enable`. Default value: `disable`.
   205  	ApplianceModeSupport pulumi.StringPtrInput
   206  	// Whether DNS support is enabled. Valid values: `disable`, `enable`. Default value: `enable`.
   207  	DnsSupport pulumi.StringPtrInput
   208  	// Whether IPv6 support is enabled. Valid values: `disable`, `enable`. Default value: `disable`.
   209  	Ipv6Support pulumi.StringPtrInput
   210  	// Identifiers of EC2 Subnets.
   211  	SubnetIds pulumi.StringArrayInput
   212  	// Key-value tags for the EC2 Transit Gateway VPC Attachment. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   213  	Tags pulumi.StringMapInput
   214  	// Boolean whether the VPC Attachment should be associated with the EC2 Transit Gateway association default route table. This cannot be configured or perform drift detection with Resource Access Manager shared EC2 Transit Gateways. Default value: `true`.
   215  	TransitGatewayDefaultRouteTableAssociation pulumi.BoolPtrInput
   216  	// Boolean whether the VPC Attachment should propagate routes with the EC2 Transit Gateway propagation default route table. This cannot be configured or perform drift detection with Resource Access Manager shared EC2 Transit Gateways. Default value: `true`.
   217  	TransitGatewayDefaultRouteTablePropagation pulumi.BoolPtrInput
   218  	// Identifier of EC2 Transit Gateway.
   219  	TransitGatewayId pulumi.StringInput
   220  	// Identifier of EC2 VPC.
   221  	VpcId pulumi.StringInput
   222  }
   223  
   224  func (VpcAttachmentArgs) ElementType() reflect.Type {
   225  	return reflect.TypeOf((*vpcAttachmentArgs)(nil)).Elem()
   226  }
   227  
   228  type VpcAttachmentInput interface {
   229  	pulumi.Input
   230  
   231  	ToVpcAttachmentOutput() VpcAttachmentOutput
   232  	ToVpcAttachmentOutputWithContext(ctx context.Context) VpcAttachmentOutput
   233  }
   234  
   235  func (*VpcAttachment) ElementType() reflect.Type {
   236  	return reflect.TypeOf((**VpcAttachment)(nil)).Elem()
   237  }
   238  
   239  func (i *VpcAttachment) ToVpcAttachmentOutput() VpcAttachmentOutput {
   240  	return i.ToVpcAttachmentOutputWithContext(context.Background())
   241  }
   242  
   243  func (i *VpcAttachment) ToVpcAttachmentOutputWithContext(ctx context.Context) VpcAttachmentOutput {
   244  	return pulumi.ToOutputWithContext(ctx, i).(VpcAttachmentOutput)
   245  }
   246  
   247  // VpcAttachmentArrayInput is an input type that accepts VpcAttachmentArray and VpcAttachmentArrayOutput values.
   248  // You can construct a concrete instance of `VpcAttachmentArrayInput` via:
   249  //
   250  //	VpcAttachmentArray{ VpcAttachmentArgs{...} }
   251  type VpcAttachmentArrayInput interface {
   252  	pulumi.Input
   253  
   254  	ToVpcAttachmentArrayOutput() VpcAttachmentArrayOutput
   255  	ToVpcAttachmentArrayOutputWithContext(context.Context) VpcAttachmentArrayOutput
   256  }
   257  
   258  type VpcAttachmentArray []VpcAttachmentInput
   259  
   260  func (VpcAttachmentArray) ElementType() reflect.Type {
   261  	return reflect.TypeOf((*[]*VpcAttachment)(nil)).Elem()
   262  }
   263  
   264  func (i VpcAttachmentArray) ToVpcAttachmentArrayOutput() VpcAttachmentArrayOutput {
   265  	return i.ToVpcAttachmentArrayOutputWithContext(context.Background())
   266  }
   267  
   268  func (i VpcAttachmentArray) ToVpcAttachmentArrayOutputWithContext(ctx context.Context) VpcAttachmentArrayOutput {
   269  	return pulumi.ToOutputWithContext(ctx, i).(VpcAttachmentArrayOutput)
   270  }
   271  
   272  // VpcAttachmentMapInput is an input type that accepts VpcAttachmentMap and VpcAttachmentMapOutput values.
   273  // You can construct a concrete instance of `VpcAttachmentMapInput` via:
   274  //
   275  //	VpcAttachmentMap{ "key": VpcAttachmentArgs{...} }
   276  type VpcAttachmentMapInput interface {
   277  	pulumi.Input
   278  
   279  	ToVpcAttachmentMapOutput() VpcAttachmentMapOutput
   280  	ToVpcAttachmentMapOutputWithContext(context.Context) VpcAttachmentMapOutput
   281  }
   282  
   283  type VpcAttachmentMap map[string]VpcAttachmentInput
   284  
   285  func (VpcAttachmentMap) ElementType() reflect.Type {
   286  	return reflect.TypeOf((*map[string]*VpcAttachment)(nil)).Elem()
   287  }
   288  
   289  func (i VpcAttachmentMap) ToVpcAttachmentMapOutput() VpcAttachmentMapOutput {
   290  	return i.ToVpcAttachmentMapOutputWithContext(context.Background())
   291  }
   292  
   293  func (i VpcAttachmentMap) ToVpcAttachmentMapOutputWithContext(ctx context.Context) VpcAttachmentMapOutput {
   294  	return pulumi.ToOutputWithContext(ctx, i).(VpcAttachmentMapOutput)
   295  }
   296  
   297  type VpcAttachmentOutput struct{ *pulumi.OutputState }
   298  
   299  func (VpcAttachmentOutput) ElementType() reflect.Type {
   300  	return reflect.TypeOf((**VpcAttachment)(nil)).Elem()
   301  }
   302  
   303  func (o VpcAttachmentOutput) ToVpcAttachmentOutput() VpcAttachmentOutput {
   304  	return o
   305  }
   306  
   307  func (o VpcAttachmentOutput) ToVpcAttachmentOutputWithContext(ctx context.Context) VpcAttachmentOutput {
   308  	return o
   309  }
   310  
   311  // Whether Appliance Mode support is enabled. If enabled, a traffic flow between a source and destination uses the same Availability Zone for the VPC attachment for the lifetime of that flow. Valid values: `disable`, `enable`. Default value: `disable`.
   312  func (o VpcAttachmentOutput) ApplianceModeSupport() pulumi.StringPtrOutput {
   313  	return o.ApplyT(func(v *VpcAttachment) pulumi.StringPtrOutput { return v.ApplianceModeSupport }).(pulumi.StringPtrOutput)
   314  }
   315  
   316  // Whether DNS support is enabled. Valid values: `disable`, `enable`. Default value: `enable`.
   317  func (o VpcAttachmentOutput) DnsSupport() pulumi.StringPtrOutput {
   318  	return o.ApplyT(func(v *VpcAttachment) pulumi.StringPtrOutput { return v.DnsSupport }).(pulumi.StringPtrOutput)
   319  }
   320  
   321  // Whether IPv6 support is enabled. Valid values: `disable`, `enable`. Default value: `disable`.
   322  func (o VpcAttachmentOutput) Ipv6Support() pulumi.StringPtrOutput {
   323  	return o.ApplyT(func(v *VpcAttachment) pulumi.StringPtrOutput { return v.Ipv6Support }).(pulumi.StringPtrOutput)
   324  }
   325  
   326  // Identifiers of EC2 Subnets.
   327  func (o VpcAttachmentOutput) SubnetIds() pulumi.StringArrayOutput {
   328  	return o.ApplyT(func(v *VpcAttachment) pulumi.StringArrayOutput { return v.SubnetIds }).(pulumi.StringArrayOutput)
   329  }
   330  
   331  // Key-value tags for the EC2 Transit Gateway VPC Attachment. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   332  func (o VpcAttachmentOutput) Tags() pulumi.StringMapOutput {
   333  	return o.ApplyT(func(v *VpcAttachment) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   334  }
   335  
   336  // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   337  //
   338  // Deprecated: Please use `tags` instead.
   339  func (o VpcAttachmentOutput) TagsAll() pulumi.StringMapOutput {
   340  	return o.ApplyT(func(v *VpcAttachment) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   341  }
   342  
   343  // Boolean whether the VPC Attachment should be associated with the EC2 Transit Gateway association default route table. This cannot be configured or perform drift detection with Resource Access Manager shared EC2 Transit Gateways. Default value: `true`.
   344  func (o VpcAttachmentOutput) TransitGatewayDefaultRouteTableAssociation() pulumi.BoolOutput {
   345  	return o.ApplyT(func(v *VpcAttachment) pulumi.BoolOutput { return v.TransitGatewayDefaultRouteTableAssociation }).(pulumi.BoolOutput)
   346  }
   347  
   348  // Boolean whether the VPC Attachment should propagate routes with the EC2 Transit Gateway propagation default route table. This cannot be configured or perform drift detection with Resource Access Manager shared EC2 Transit Gateways. Default value: `true`.
   349  func (o VpcAttachmentOutput) TransitGatewayDefaultRouteTablePropagation() pulumi.BoolOutput {
   350  	return o.ApplyT(func(v *VpcAttachment) pulumi.BoolOutput { return v.TransitGatewayDefaultRouteTablePropagation }).(pulumi.BoolOutput)
   351  }
   352  
   353  // Identifier of EC2 Transit Gateway.
   354  func (o VpcAttachmentOutput) TransitGatewayId() pulumi.StringOutput {
   355  	return o.ApplyT(func(v *VpcAttachment) pulumi.StringOutput { return v.TransitGatewayId }).(pulumi.StringOutput)
   356  }
   357  
   358  // Identifier of EC2 VPC.
   359  func (o VpcAttachmentOutput) VpcId() pulumi.StringOutput {
   360  	return o.ApplyT(func(v *VpcAttachment) pulumi.StringOutput { return v.VpcId }).(pulumi.StringOutput)
   361  }
   362  
   363  // Identifier of the AWS account that owns the EC2 VPC.
   364  func (o VpcAttachmentOutput) VpcOwnerId() pulumi.StringOutput {
   365  	return o.ApplyT(func(v *VpcAttachment) pulumi.StringOutput { return v.VpcOwnerId }).(pulumi.StringOutput)
   366  }
   367  
   368  type VpcAttachmentArrayOutput struct{ *pulumi.OutputState }
   369  
   370  func (VpcAttachmentArrayOutput) ElementType() reflect.Type {
   371  	return reflect.TypeOf((*[]*VpcAttachment)(nil)).Elem()
   372  }
   373  
   374  func (o VpcAttachmentArrayOutput) ToVpcAttachmentArrayOutput() VpcAttachmentArrayOutput {
   375  	return o
   376  }
   377  
   378  func (o VpcAttachmentArrayOutput) ToVpcAttachmentArrayOutputWithContext(ctx context.Context) VpcAttachmentArrayOutput {
   379  	return o
   380  }
   381  
   382  func (o VpcAttachmentArrayOutput) Index(i pulumi.IntInput) VpcAttachmentOutput {
   383  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *VpcAttachment {
   384  		return vs[0].([]*VpcAttachment)[vs[1].(int)]
   385  	}).(VpcAttachmentOutput)
   386  }
   387  
   388  type VpcAttachmentMapOutput struct{ *pulumi.OutputState }
   389  
   390  func (VpcAttachmentMapOutput) ElementType() reflect.Type {
   391  	return reflect.TypeOf((*map[string]*VpcAttachment)(nil)).Elem()
   392  }
   393  
   394  func (o VpcAttachmentMapOutput) ToVpcAttachmentMapOutput() VpcAttachmentMapOutput {
   395  	return o
   396  }
   397  
   398  func (o VpcAttachmentMapOutput) ToVpcAttachmentMapOutputWithContext(ctx context.Context) VpcAttachmentMapOutput {
   399  	return o
   400  }
   401  
   402  func (o VpcAttachmentMapOutput) MapIndex(k pulumi.StringInput) VpcAttachmentOutput {
   403  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *VpcAttachment {
   404  		return vs[0].(map[string]*VpcAttachment)[vs[1].(string)]
   405  	}).(VpcAttachmentOutput)
   406  }
   407  
   408  func init() {
   409  	pulumi.RegisterInputType(reflect.TypeOf((*VpcAttachmentInput)(nil)).Elem(), &VpcAttachment{})
   410  	pulumi.RegisterInputType(reflect.TypeOf((*VpcAttachmentArrayInput)(nil)).Elem(), VpcAttachmentArray{})
   411  	pulumi.RegisterInputType(reflect.TypeOf((*VpcAttachmentMapInput)(nil)).Elem(), VpcAttachmentMap{})
   412  	pulumi.RegisterOutputType(VpcAttachmentOutput{})
   413  	pulumi.RegisterOutputType(VpcAttachmentArrayOutput{})
   414  	pulumi.RegisterOutputType(VpcAttachmentMapOutput{})
   415  }