github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/ec2transitgateway/transitGateway.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  	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal"
    11  	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    12  )
    13  
    14  // Manages an EC2 Transit Gateway.
    15  //
    16  // ## Example Usage
    17  //
    18  // <!--Start PulumiCodeChooser -->
    19  // ```go
    20  // package main
    21  //
    22  // import (
    23  //
    24  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2transitgateway"
    25  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    26  //
    27  // )
    28  //
    29  //	func main() {
    30  //		pulumi.Run(func(ctx *pulumi.Context) error {
    31  //			_, err := ec2transitgateway.NewTransitGateway(ctx, "example", &ec2transitgateway.TransitGatewayArgs{
    32  //				Description: pulumi.String("example"),
    33  //			})
    34  //			if err != nil {
    35  //				return err
    36  //			}
    37  //			return nil
    38  //		})
    39  //	}
    40  //
    41  // ```
    42  // <!--End PulumiCodeChooser -->
    43  //
    44  // ## Import
    45  //
    46  // Using `pulumi import`, import `aws_ec2_transit_gateway` using the EC2 Transit Gateway identifier. For example:
    47  //
    48  // ```sh
    49  // $ pulumi import aws:ec2transitgateway/transitGateway:TransitGateway example tgw-12345678
    50  // ```
    51  type TransitGateway struct {
    52  	pulumi.CustomResourceState
    53  
    54  	// Private Autonomous System Number (ASN) for the Amazon side of a BGP session. The range is `64512` to `65534` for 16-bit ASNs and `4200000000` to `4294967294` for 32-bit ASNs. Default value: `64512`.
    55  	//
    56  	// > **NOTE:** Modifying `amazonSideAsn` on a Transit Gateway with active BGP sessions is [not allowed](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyTransitGatewayOptions.html). You must first delete all Transit Gateway attachments that have BGP configured prior to modifying `amazonSideAsn`.
    57  	AmazonSideAsn pulumi.IntPtrOutput `pulumi:"amazonSideAsn"`
    58  	// EC2 Transit Gateway Amazon Resource Name (ARN)
    59  	Arn pulumi.StringOutput `pulumi:"arn"`
    60  	// Identifier of the default association route table
    61  	AssociationDefaultRouteTableId pulumi.StringOutput `pulumi:"associationDefaultRouteTableId"`
    62  	// Whether resource attachment requests are automatically accepted. Valid values: `disable`, `enable`. Default value: `disable`.
    63  	AutoAcceptSharedAttachments pulumi.StringPtrOutput `pulumi:"autoAcceptSharedAttachments"`
    64  	// Whether resource attachments are automatically associated with the default association route table. Valid values: `disable`, `enable`. Default value: `enable`.
    65  	DefaultRouteTableAssociation pulumi.StringPtrOutput `pulumi:"defaultRouteTableAssociation"`
    66  	// Whether resource attachments automatically propagate routes to the default propagation route table. Valid values: `disable`, `enable`. Default value: `enable`.
    67  	DefaultRouteTablePropagation pulumi.StringPtrOutput `pulumi:"defaultRouteTablePropagation"`
    68  	// Description of the EC2 Transit Gateway.
    69  	Description pulumi.StringPtrOutput `pulumi:"description"`
    70  	// Whether DNS support is enabled. Valid values: `disable`, `enable`. Default value: `enable`.
    71  	DnsSupport pulumi.StringPtrOutput `pulumi:"dnsSupport"`
    72  	// Whether Multicast support is enabled. Required to use `ec2TransitGatewayMulticastDomain`. Valid values: `disable`, `enable`. Default value: `disable`.
    73  	MulticastSupport pulumi.StringPtrOutput `pulumi:"multicastSupport"`
    74  	// Identifier of the AWS account that owns the EC2 Transit Gateway
    75  	OwnerId pulumi.StringOutput `pulumi:"ownerId"`
    76  	// Identifier of the default propagation route table
    77  	PropagationDefaultRouteTableId pulumi.StringOutput `pulumi:"propagationDefaultRouteTableId"`
    78  	// Key-value tags for the EC2 Transit Gateway. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    79  	Tags pulumi.StringMapOutput `pulumi:"tags"`
    80  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
    81  	//
    82  	// Deprecated: Please use `tags` instead.
    83  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
    84  	// One or more IPv4 or IPv6 CIDR blocks for the transit gateway. Must be a size /24 CIDR block or larger for IPv4, or a size /64 CIDR block or larger for IPv6.
    85  	TransitGatewayCidrBlocks pulumi.StringArrayOutput `pulumi:"transitGatewayCidrBlocks"`
    86  	// Whether VPN Equal Cost Multipath Protocol support is enabled. Valid values: `disable`, `enable`. Default value: `enable`.
    87  	VpnEcmpSupport pulumi.StringPtrOutput `pulumi:"vpnEcmpSupport"`
    88  }
    89  
    90  // NewTransitGateway registers a new resource with the given unique name, arguments, and options.
    91  func NewTransitGateway(ctx *pulumi.Context,
    92  	name string, args *TransitGatewayArgs, opts ...pulumi.ResourceOption) (*TransitGateway, error) {
    93  	if args == nil {
    94  		args = &TransitGatewayArgs{}
    95  	}
    96  
    97  	opts = internal.PkgResourceDefaultOpts(opts)
    98  	var resource TransitGateway
    99  	err := ctx.RegisterResource("aws:ec2transitgateway/transitGateway:TransitGateway", name, args, &resource, opts...)
   100  	if err != nil {
   101  		return nil, err
   102  	}
   103  	return &resource, nil
   104  }
   105  
   106  // GetTransitGateway gets an existing TransitGateway resource's state with the given name, ID, and optional
   107  // state properties that are used to uniquely qualify the lookup (nil if not required).
   108  func GetTransitGateway(ctx *pulumi.Context,
   109  	name string, id pulumi.IDInput, state *TransitGatewayState, opts ...pulumi.ResourceOption) (*TransitGateway, error) {
   110  	var resource TransitGateway
   111  	err := ctx.ReadResource("aws:ec2transitgateway/transitGateway:TransitGateway", name, id, state, &resource, opts...)
   112  	if err != nil {
   113  		return nil, err
   114  	}
   115  	return &resource, nil
   116  }
   117  
   118  // Input properties used for looking up and filtering TransitGateway resources.
   119  type transitGatewayState struct {
   120  	// Private Autonomous System Number (ASN) for the Amazon side of a BGP session. The range is `64512` to `65534` for 16-bit ASNs and `4200000000` to `4294967294` for 32-bit ASNs. Default value: `64512`.
   121  	//
   122  	// > **NOTE:** Modifying `amazonSideAsn` on a Transit Gateway with active BGP sessions is [not allowed](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyTransitGatewayOptions.html). You must first delete all Transit Gateway attachments that have BGP configured prior to modifying `amazonSideAsn`.
   123  	AmazonSideAsn *int `pulumi:"amazonSideAsn"`
   124  	// EC2 Transit Gateway Amazon Resource Name (ARN)
   125  	Arn *string `pulumi:"arn"`
   126  	// Identifier of the default association route table
   127  	AssociationDefaultRouteTableId *string `pulumi:"associationDefaultRouteTableId"`
   128  	// Whether resource attachment requests are automatically accepted. Valid values: `disable`, `enable`. Default value: `disable`.
   129  	AutoAcceptSharedAttachments *string `pulumi:"autoAcceptSharedAttachments"`
   130  	// Whether resource attachments are automatically associated with the default association route table. Valid values: `disable`, `enable`. Default value: `enable`.
   131  	DefaultRouteTableAssociation *string `pulumi:"defaultRouteTableAssociation"`
   132  	// Whether resource attachments automatically propagate routes to the default propagation route table. Valid values: `disable`, `enable`. Default value: `enable`.
   133  	DefaultRouteTablePropagation *string `pulumi:"defaultRouteTablePropagation"`
   134  	// Description of the EC2 Transit Gateway.
   135  	Description *string `pulumi:"description"`
   136  	// Whether DNS support is enabled. Valid values: `disable`, `enable`. Default value: `enable`.
   137  	DnsSupport *string `pulumi:"dnsSupport"`
   138  	// Whether Multicast support is enabled. Required to use `ec2TransitGatewayMulticastDomain`. Valid values: `disable`, `enable`. Default value: `disable`.
   139  	MulticastSupport *string `pulumi:"multicastSupport"`
   140  	// Identifier of the AWS account that owns the EC2 Transit Gateway
   141  	OwnerId *string `pulumi:"ownerId"`
   142  	// Identifier of the default propagation route table
   143  	PropagationDefaultRouteTableId *string `pulumi:"propagationDefaultRouteTableId"`
   144  	// Key-value tags for the EC2 Transit Gateway. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   145  	Tags map[string]string `pulumi:"tags"`
   146  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   147  	//
   148  	// Deprecated: Please use `tags` instead.
   149  	TagsAll map[string]string `pulumi:"tagsAll"`
   150  	// One or more IPv4 or IPv6 CIDR blocks for the transit gateway. Must be a size /24 CIDR block or larger for IPv4, or a size /64 CIDR block or larger for IPv6.
   151  	TransitGatewayCidrBlocks []string `pulumi:"transitGatewayCidrBlocks"`
   152  	// Whether VPN Equal Cost Multipath Protocol support is enabled. Valid values: `disable`, `enable`. Default value: `enable`.
   153  	VpnEcmpSupport *string `pulumi:"vpnEcmpSupport"`
   154  }
   155  
   156  type TransitGatewayState struct {
   157  	// Private Autonomous System Number (ASN) for the Amazon side of a BGP session. The range is `64512` to `65534` for 16-bit ASNs and `4200000000` to `4294967294` for 32-bit ASNs. Default value: `64512`.
   158  	//
   159  	// > **NOTE:** Modifying `amazonSideAsn` on a Transit Gateway with active BGP sessions is [not allowed](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyTransitGatewayOptions.html). You must first delete all Transit Gateway attachments that have BGP configured prior to modifying `amazonSideAsn`.
   160  	AmazonSideAsn pulumi.IntPtrInput
   161  	// EC2 Transit Gateway Amazon Resource Name (ARN)
   162  	Arn pulumi.StringPtrInput
   163  	// Identifier of the default association route table
   164  	AssociationDefaultRouteTableId pulumi.StringPtrInput
   165  	// Whether resource attachment requests are automatically accepted. Valid values: `disable`, `enable`. Default value: `disable`.
   166  	AutoAcceptSharedAttachments pulumi.StringPtrInput
   167  	// Whether resource attachments are automatically associated with the default association route table. Valid values: `disable`, `enable`. Default value: `enable`.
   168  	DefaultRouteTableAssociation pulumi.StringPtrInput
   169  	// Whether resource attachments automatically propagate routes to the default propagation route table. Valid values: `disable`, `enable`. Default value: `enable`.
   170  	DefaultRouteTablePropagation pulumi.StringPtrInput
   171  	// Description of the EC2 Transit Gateway.
   172  	Description pulumi.StringPtrInput
   173  	// Whether DNS support is enabled. Valid values: `disable`, `enable`. Default value: `enable`.
   174  	DnsSupport pulumi.StringPtrInput
   175  	// Whether Multicast support is enabled. Required to use `ec2TransitGatewayMulticastDomain`. Valid values: `disable`, `enable`. Default value: `disable`.
   176  	MulticastSupport pulumi.StringPtrInput
   177  	// Identifier of the AWS account that owns the EC2 Transit Gateway
   178  	OwnerId pulumi.StringPtrInput
   179  	// Identifier of the default propagation route table
   180  	PropagationDefaultRouteTableId pulumi.StringPtrInput
   181  	// Key-value tags for the EC2 Transit Gateway. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   182  	Tags pulumi.StringMapInput
   183  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   184  	//
   185  	// Deprecated: Please use `tags` instead.
   186  	TagsAll pulumi.StringMapInput
   187  	// One or more IPv4 or IPv6 CIDR blocks for the transit gateway. Must be a size /24 CIDR block or larger for IPv4, or a size /64 CIDR block or larger for IPv6.
   188  	TransitGatewayCidrBlocks pulumi.StringArrayInput
   189  	// Whether VPN Equal Cost Multipath Protocol support is enabled. Valid values: `disable`, `enable`. Default value: `enable`.
   190  	VpnEcmpSupport pulumi.StringPtrInput
   191  }
   192  
   193  func (TransitGatewayState) ElementType() reflect.Type {
   194  	return reflect.TypeOf((*transitGatewayState)(nil)).Elem()
   195  }
   196  
   197  type transitGatewayArgs struct {
   198  	// Private Autonomous System Number (ASN) for the Amazon side of a BGP session. The range is `64512` to `65534` for 16-bit ASNs and `4200000000` to `4294967294` for 32-bit ASNs. Default value: `64512`.
   199  	//
   200  	// > **NOTE:** Modifying `amazonSideAsn` on a Transit Gateway with active BGP sessions is [not allowed](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyTransitGatewayOptions.html). You must first delete all Transit Gateway attachments that have BGP configured prior to modifying `amazonSideAsn`.
   201  	AmazonSideAsn *int `pulumi:"amazonSideAsn"`
   202  	// Whether resource attachment requests are automatically accepted. Valid values: `disable`, `enable`. Default value: `disable`.
   203  	AutoAcceptSharedAttachments *string `pulumi:"autoAcceptSharedAttachments"`
   204  	// Whether resource attachments are automatically associated with the default association route table. Valid values: `disable`, `enable`. Default value: `enable`.
   205  	DefaultRouteTableAssociation *string `pulumi:"defaultRouteTableAssociation"`
   206  	// Whether resource attachments automatically propagate routes to the default propagation route table. Valid values: `disable`, `enable`. Default value: `enable`.
   207  	DefaultRouteTablePropagation *string `pulumi:"defaultRouteTablePropagation"`
   208  	// Description of the EC2 Transit Gateway.
   209  	Description *string `pulumi:"description"`
   210  	// Whether DNS support is enabled. Valid values: `disable`, `enable`. Default value: `enable`.
   211  	DnsSupport *string `pulumi:"dnsSupport"`
   212  	// Whether Multicast support is enabled. Required to use `ec2TransitGatewayMulticastDomain`. Valid values: `disable`, `enable`. Default value: `disable`.
   213  	MulticastSupport *string `pulumi:"multicastSupport"`
   214  	// Key-value tags for the EC2 Transit Gateway. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   215  	Tags map[string]string `pulumi:"tags"`
   216  	// One or more IPv4 or IPv6 CIDR blocks for the transit gateway. Must be a size /24 CIDR block or larger for IPv4, or a size /64 CIDR block or larger for IPv6.
   217  	TransitGatewayCidrBlocks []string `pulumi:"transitGatewayCidrBlocks"`
   218  	// Whether VPN Equal Cost Multipath Protocol support is enabled. Valid values: `disable`, `enable`. Default value: `enable`.
   219  	VpnEcmpSupport *string `pulumi:"vpnEcmpSupport"`
   220  }
   221  
   222  // The set of arguments for constructing a TransitGateway resource.
   223  type TransitGatewayArgs struct {
   224  	// Private Autonomous System Number (ASN) for the Amazon side of a BGP session. The range is `64512` to `65534` for 16-bit ASNs and `4200000000` to `4294967294` for 32-bit ASNs. Default value: `64512`.
   225  	//
   226  	// > **NOTE:** Modifying `amazonSideAsn` on a Transit Gateway with active BGP sessions is [not allowed](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyTransitGatewayOptions.html). You must first delete all Transit Gateway attachments that have BGP configured prior to modifying `amazonSideAsn`.
   227  	AmazonSideAsn pulumi.IntPtrInput
   228  	// Whether resource attachment requests are automatically accepted. Valid values: `disable`, `enable`. Default value: `disable`.
   229  	AutoAcceptSharedAttachments pulumi.StringPtrInput
   230  	// Whether resource attachments are automatically associated with the default association route table. Valid values: `disable`, `enable`. Default value: `enable`.
   231  	DefaultRouteTableAssociation pulumi.StringPtrInput
   232  	// Whether resource attachments automatically propagate routes to the default propagation route table. Valid values: `disable`, `enable`. Default value: `enable`.
   233  	DefaultRouteTablePropagation pulumi.StringPtrInput
   234  	// Description of the EC2 Transit Gateway.
   235  	Description pulumi.StringPtrInput
   236  	// Whether DNS support is enabled. Valid values: `disable`, `enable`. Default value: `enable`.
   237  	DnsSupport pulumi.StringPtrInput
   238  	// Whether Multicast support is enabled. Required to use `ec2TransitGatewayMulticastDomain`. Valid values: `disable`, `enable`. Default value: `disable`.
   239  	MulticastSupport pulumi.StringPtrInput
   240  	// Key-value tags for the EC2 Transit Gateway. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   241  	Tags pulumi.StringMapInput
   242  	// One or more IPv4 or IPv6 CIDR blocks for the transit gateway. Must be a size /24 CIDR block or larger for IPv4, or a size /64 CIDR block or larger for IPv6.
   243  	TransitGatewayCidrBlocks pulumi.StringArrayInput
   244  	// Whether VPN Equal Cost Multipath Protocol support is enabled. Valid values: `disable`, `enable`. Default value: `enable`.
   245  	VpnEcmpSupport pulumi.StringPtrInput
   246  }
   247  
   248  func (TransitGatewayArgs) ElementType() reflect.Type {
   249  	return reflect.TypeOf((*transitGatewayArgs)(nil)).Elem()
   250  }
   251  
   252  type TransitGatewayInput interface {
   253  	pulumi.Input
   254  
   255  	ToTransitGatewayOutput() TransitGatewayOutput
   256  	ToTransitGatewayOutputWithContext(ctx context.Context) TransitGatewayOutput
   257  }
   258  
   259  func (*TransitGateway) ElementType() reflect.Type {
   260  	return reflect.TypeOf((**TransitGateway)(nil)).Elem()
   261  }
   262  
   263  func (i *TransitGateway) ToTransitGatewayOutput() TransitGatewayOutput {
   264  	return i.ToTransitGatewayOutputWithContext(context.Background())
   265  }
   266  
   267  func (i *TransitGateway) ToTransitGatewayOutputWithContext(ctx context.Context) TransitGatewayOutput {
   268  	return pulumi.ToOutputWithContext(ctx, i).(TransitGatewayOutput)
   269  }
   270  
   271  // TransitGatewayArrayInput is an input type that accepts TransitGatewayArray and TransitGatewayArrayOutput values.
   272  // You can construct a concrete instance of `TransitGatewayArrayInput` via:
   273  //
   274  //	TransitGatewayArray{ TransitGatewayArgs{...} }
   275  type TransitGatewayArrayInput interface {
   276  	pulumi.Input
   277  
   278  	ToTransitGatewayArrayOutput() TransitGatewayArrayOutput
   279  	ToTransitGatewayArrayOutputWithContext(context.Context) TransitGatewayArrayOutput
   280  }
   281  
   282  type TransitGatewayArray []TransitGatewayInput
   283  
   284  func (TransitGatewayArray) ElementType() reflect.Type {
   285  	return reflect.TypeOf((*[]*TransitGateway)(nil)).Elem()
   286  }
   287  
   288  func (i TransitGatewayArray) ToTransitGatewayArrayOutput() TransitGatewayArrayOutput {
   289  	return i.ToTransitGatewayArrayOutputWithContext(context.Background())
   290  }
   291  
   292  func (i TransitGatewayArray) ToTransitGatewayArrayOutputWithContext(ctx context.Context) TransitGatewayArrayOutput {
   293  	return pulumi.ToOutputWithContext(ctx, i).(TransitGatewayArrayOutput)
   294  }
   295  
   296  // TransitGatewayMapInput is an input type that accepts TransitGatewayMap and TransitGatewayMapOutput values.
   297  // You can construct a concrete instance of `TransitGatewayMapInput` via:
   298  //
   299  //	TransitGatewayMap{ "key": TransitGatewayArgs{...} }
   300  type TransitGatewayMapInput interface {
   301  	pulumi.Input
   302  
   303  	ToTransitGatewayMapOutput() TransitGatewayMapOutput
   304  	ToTransitGatewayMapOutputWithContext(context.Context) TransitGatewayMapOutput
   305  }
   306  
   307  type TransitGatewayMap map[string]TransitGatewayInput
   308  
   309  func (TransitGatewayMap) ElementType() reflect.Type {
   310  	return reflect.TypeOf((*map[string]*TransitGateway)(nil)).Elem()
   311  }
   312  
   313  func (i TransitGatewayMap) ToTransitGatewayMapOutput() TransitGatewayMapOutput {
   314  	return i.ToTransitGatewayMapOutputWithContext(context.Background())
   315  }
   316  
   317  func (i TransitGatewayMap) ToTransitGatewayMapOutputWithContext(ctx context.Context) TransitGatewayMapOutput {
   318  	return pulumi.ToOutputWithContext(ctx, i).(TransitGatewayMapOutput)
   319  }
   320  
   321  type TransitGatewayOutput struct{ *pulumi.OutputState }
   322  
   323  func (TransitGatewayOutput) ElementType() reflect.Type {
   324  	return reflect.TypeOf((**TransitGateway)(nil)).Elem()
   325  }
   326  
   327  func (o TransitGatewayOutput) ToTransitGatewayOutput() TransitGatewayOutput {
   328  	return o
   329  }
   330  
   331  func (o TransitGatewayOutput) ToTransitGatewayOutputWithContext(ctx context.Context) TransitGatewayOutput {
   332  	return o
   333  }
   334  
   335  // Private Autonomous System Number (ASN) for the Amazon side of a BGP session. The range is `64512` to `65534` for 16-bit ASNs and `4200000000` to `4294967294` for 32-bit ASNs. Default value: `64512`.
   336  //
   337  // > **NOTE:** Modifying `amazonSideAsn` on a Transit Gateway with active BGP sessions is [not allowed](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyTransitGatewayOptions.html). You must first delete all Transit Gateway attachments that have BGP configured prior to modifying `amazonSideAsn`.
   338  func (o TransitGatewayOutput) AmazonSideAsn() pulumi.IntPtrOutput {
   339  	return o.ApplyT(func(v *TransitGateway) pulumi.IntPtrOutput { return v.AmazonSideAsn }).(pulumi.IntPtrOutput)
   340  }
   341  
   342  // EC2 Transit Gateway Amazon Resource Name (ARN)
   343  func (o TransitGatewayOutput) Arn() pulumi.StringOutput {
   344  	return o.ApplyT(func(v *TransitGateway) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   345  }
   346  
   347  // Identifier of the default association route table
   348  func (o TransitGatewayOutput) AssociationDefaultRouteTableId() pulumi.StringOutput {
   349  	return o.ApplyT(func(v *TransitGateway) pulumi.StringOutput { return v.AssociationDefaultRouteTableId }).(pulumi.StringOutput)
   350  }
   351  
   352  // Whether resource attachment requests are automatically accepted. Valid values: `disable`, `enable`. Default value: `disable`.
   353  func (o TransitGatewayOutput) AutoAcceptSharedAttachments() pulumi.StringPtrOutput {
   354  	return o.ApplyT(func(v *TransitGateway) pulumi.StringPtrOutput { return v.AutoAcceptSharedAttachments }).(pulumi.StringPtrOutput)
   355  }
   356  
   357  // Whether resource attachments are automatically associated with the default association route table. Valid values: `disable`, `enable`. Default value: `enable`.
   358  func (o TransitGatewayOutput) DefaultRouteTableAssociation() pulumi.StringPtrOutput {
   359  	return o.ApplyT(func(v *TransitGateway) pulumi.StringPtrOutput { return v.DefaultRouteTableAssociation }).(pulumi.StringPtrOutput)
   360  }
   361  
   362  // Whether resource attachments automatically propagate routes to the default propagation route table. Valid values: `disable`, `enable`. Default value: `enable`.
   363  func (o TransitGatewayOutput) DefaultRouteTablePropagation() pulumi.StringPtrOutput {
   364  	return o.ApplyT(func(v *TransitGateway) pulumi.StringPtrOutput { return v.DefaultRouteTablePropagation }).(pulumi.StringPtrOutput)
   365  }
   366  
   367  // Description of the EC2 Transit Gateway.
   368  func (o TransitGatewayOutput) Description() pulumi.StringPtrOutput {
   369  	return o.ApplyT(func(v *TransitGateway) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput)
   370  }
   371  
   372  // Whether DNS support is enabled. Valid values: `disable`, `enable`. Default value: `enable`.
   373  func (o TransitGatewayOutput) DnsSupport() pulumi.StringPtrOutput {
   374  	return o.ApplyT(func(v *TransitGateway) pulumi.StringPtrOutput { return v.DnsSupport }).(pulumi.StringPtrOutput)
   375  }
   376  
   377  // Whether Multicast support is enabled. Required to use `ec2TransitGatewayMulticastDomain`. Valid values: `disable`, `enable`. Default value: `disable`.
   378  func (o TransitGatewayOutput) MulticastSupport() pulumi.StringPtrOutput {
   379  	return o.ApplyT(func(v *TransitGateway) pulumi.StringPtrOutput { return v.MulticastSupport }).(pulumi.StringPtrOutput)
   380  }
   381  
   382  // Identifier of the AWS account that owns the EC2 Transit Gateway
   383  func (o TransitGatewayOutput) OwnerId() pulumi.StringOutput {
   384  	return o.ApplyT(func(v *TransitGateway) pulumi.StringOutput { return v.OwnerId }).(pulumi.StringOutput)
   385  }
   386  
   387  // Identifier of the default propagation route table
   388  func (o TransitGatewayOutput) PropagationDefaultRouteTableId() pulumi.StringOutput {
   389  	return o.ApplyT(func(v *TransitGateway) pulumi.StringOutput { return v.PropagationDefaultRouteTableId }).(pulumi.StringOutput)
   390  }
   391  
   392  // Key-value tags for the EC2 Transit Gateway. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   393  func (o TransitGatewayOutput) Tags() pulumi.StringMapOutput {
   394  	return o.ApplyT(func(v *TransitGateway) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   395  }
   396  
   397  // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   398  //
   399  // Deprecated: Please use `tags` instead.
   400  func (o TransitGatewayOutput) TagsAll() pulumi.StringMapOutput {
   401  	return o.ApplyT(func(v *TransitGateway) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   402  }
   403  
   404  // One or more IPv4 or IPv6 CIDR blocks for the transit gateway. Must be a size /24 CIDR block or larger for IPv4, or a size /64 CIDR block or larger for IPv6.
   405  func (o TransitGatewayOutput) TransitGatewayCidrBlocks() pulumi.StringArrayOutput {
   406  	return o.ApplyT(func(v *TransitGateway) pulumi.StringArrayOutput { return v.TransitGatewayCidrBlocks }).(pulumi.StringArrayOutput)
   407  }
   408  
   409  // Whether VPN Equal Cost Multipath Protocol support is enabled. Valid values: `disable`, `enable`. Default value: `enable`.
   410  func (o TransitGatewayOutput) VpnEcmpSupport() pulumi.StringPtrOutput {
   411  	return o.ApplyT(func(v *TransitGateway) pulumi.StringPtrOutput { return v.VpnEcmpSupport }).(pulumi.StringPtrOutput)
   412  }
   413  
   414  type TransitGatewayArrayOutput struct{ *pulumi.OutputState }
   415  
   416  func (TransitGatewayArrayOutput) ElementType() reflect.Type {
   417  	return reflect.TypeOf((*[]*TransitGateway)(nil)).Elem()
   418  }
   419  
   420  func (o TransitGatewayArrayOutput) ToTransitGatewayArrayOutput() TransitGatewayArrayOutput {
   421  	return o
   422  }
   423  
   424  func (o TransitGatewayArrayOutput) ToTransitGatewayArrayOutputWithContext(ctx context.Context) TransitGatewayArrayOutput {
   425  	return o
   426  }
   427  
   428  func (o TransitGatewayArrayOutput) Index(i pulumi.IntInput) TransitGatewayOutput {
   429  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *TransitGateway {
   430  		return vs[0].([]*TransitGateway)[vs[1].(int)]
   431  	}).(TransitGatewayOutput)
   432  }
   433  
   434  type TransitGatewayMapOutput struct{ *pulumi.OutputState }
   435  
   436  func (TransitGatewayMapOutput) ElementType() reflect.Type {
   437  	return reflect.TypeOf((*map[string]*TransitGateway)(nil)).Elem()
   438  }
   439  
   440  func (o TransitGatewayMapOutput) ToTransitGatewayMapOutput() TransitGatewayMapOutput {
   441  	return o
   442  }
   443  
   444  func (o TransitGatewayMapOutput) ToTransitGatewayMapOutputWithContext(ctx context.Context) TransitGatewayMapOutput {
   445  	return o
   446  }
   447  
   448  func (o TransitGatewayMapOutput) MapIndex(k pulumi.StringInput) TransitGatewayOutput {
   449  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *TransitGateway {
   450  		return vs[0].(map[string]*TransitGateway)[vs[1].(string)]
   451  	}).(TransitGatewayOutput)
   452  }
   453  
   454  func init() {
   455  	pulumi.RegisterInputType(reflect.TypeOf((*TransitGatewayInput)(nil)).Elem(), &TransitGateway{})
   456  	pulumi.RegisterInputType(reflect.TypeOf((*TransitGatewayArrayInput)(nil)).Elem(), TransitGatewayArray{})
   457  	pulumi.RegisterInputType(reflect.TypeOf((*TransitGatewayMapInput)(nil)).Elem(), TransitGatewayMap{})
   458  	pulumi.RegisterOutputType(TransitGatewayOutput{})
   459  	pulumi.RegisterOutputType(TransitGatewayArrayOutput{})
   460  	pulumi.RegisterOutputType(TransitGatewayMapOutput{})
   461  }