github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/directconnect/transitVirtualInterface.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 directconnect
     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 Direct Connect transit virtual interface resource.
    16  // A transit virtual interface is a VLAN that transports traffic from a Direct Connect gateway to one or more transit gateways.
    17  //
    18  // ## Example Usage
    19  //
    20  // <!--Start PulumiCodeChooser -->
    21  // ```go
    22  // package main
    23  //
    24  // import (
    25  //
    26  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/directconnect"
    27  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    28  //
    29  // )
    30  //
    31  //	func main() {
    32  //		pulumi.Run(func(ctx *pulumi.Context) error {
    33  //			example, err := directconnect.NewGateway(ctx, "example", &directconnect.GatewayArgs{
    34  //				Name:          pulumi.String("tf-dxg-example"),
    35  //				AmazonSideAsn: pulumi.String("64512"),
    36  //			})
    37  //			if err != nil {
    38  //				return err
    39  //			}
    40  //			_, err = directconnect.NewTransitVirtualInterface(ctx, "example", &directconnect.TransitVirtualInterfaceArgs{
    41  //				ConnectionId:  pulumi.Any(exampleAwsDxConnection.Id),
    42  //				DxGatewayId:   example.ID(),
    43  //				Name:          pulumi.String("tf-transit-vif-example"),
    44  //				Vlan:          pulumi.Int(4094),
    45  //				AddressFamily: pulumi.String("ipv4"),
    46  //				BgpAsn:        pulumi.Int(65352),
    47  //			})
    48  //			if err != nil {
    49  //				return err
    50  //			}
    51  //			return nil
    52  //		})
    53  //	}
    54  //
    55  // ```
    56  // <!--End PulumiCodeChooser -->
    57  //
    58  // ## Import
    59  //
    60  // Using `pulumi import`, import Direct Connect transit virtual interfaces using the VIF `id`. For example:
    61  //
    62  // ```sh
    63  // $ pulumi import aws:directconnect/transitVirtualInterface:TransitVirtualInterface test dxvif-33cc44dd
    64  // ```
    65  type TransitVirtualInterface struct {
    66  	pulumi.CustomResourceState
    67  
    68  	// The address family for the BGP peer. ` ipv4  ` or `ipv6`.
    69  	AddressFamily pulumi.StringOutput `pulumi:"addressFamily"`
    70  	// The IPv4 CIDR address to use to send traffic to Amazon. Required for IPv4 BGP peers.
    71  	AmazonAddress pulumi.StringOutput `pulumi:"amazonAddress"`
    72  	AmazonSideAsn pulumi.StringOutput `pulumi:"amazonSideAsn"`
    73  	// The ARN of the virtual interface.
    74  	Arn pulumi.StringOutput `pulumi:"arn"`
    75  	// The Direct Connect endpoint on which the virtual interface terminates.
    76  	AwsDevice pulumi.StringOutput `pulumi:"awsDevice"`
    77  	// The autonomous system (AS) number for Border Gateway Protocol (BGP) configuration.
    78  	BgpAsn pulumi.IntOutput `pulumi:"bgpAsn"`
    79  	// The authentication key for BGP configuration.
    80  	BgpAuthKey pulumi.StringOutput `pulumi:"bgpAuthKey"`
    81  	// The ID of the Direct Connect connection (or LAG) on which to create the virtual interface.
    82  	ConnectionId pulumi.StringOutput `pulumi:"connectionId"`
    83  	// The IPv4 CIDR destination address to which Amazon should send traffic. Required for IPv4 BGP peers.
    84  	CustomerAddress pulumi.StringOutput `pulumi:"customerAddress"`
    85  	// The ID of the Direct Connect gateway to which to connect the virtual interface.
    86  	DxGatewayId pulumi.StringOutput `pulumi:"dxGatewayId"`
    87  	// Indicates whether jumbo frames (8500 MTU) are supported.
    88  	JumboFrameCapable pulumi.BoolOutput `pulumi:"jumboFrameCapable"`
    89  	// The maximum transmission unit (MTU) is the size, in bytes, of the largest permissible packet that can be passed over the connection.
    90  	// The MTU of a virtual transit interface can be either `1500` or `8500` (jumbo frames). Default is `1500`.
    91  	Mtu pulumi.IntPtrOutput `pulumi:"mtu"`
    92  	// The name for the virtual interface.
    93  	Name pulumi.StringOutput `pulumi:"name"`
    94  	// Indicates whether to enable or disable SiteLink.
    95  	SitelinkEnabled pulumi.BoolPtrOutput `pulumi:"sitelinkEnabled"`
    96  	// 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.
    97  	Tags pulumi.StringMapOutput `pulumi:"tags"`
    98  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
    99  	//
   100  	// Deprecated: Please use `tags` instead.
   101  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
   102  	// The VLAN ID.
   103  	Vlan pulumi.IntOutput `pulumi:"vlan"`
   104  }
   105  
   106  // NewTransitVirtualInterface registers a new resource with the given unique name, arguments, and options.
   107  func NewTransitVirtualInterface(ctx *pulumi.Context,
   108  	name string, args *TransitVirtualInterfaceArgs, opts ...pulumi.ResourceOption) (*TransitVirtualInterface, error) {
   109  	if args == nil {
   110  		return nil, errors.New("missing one or more required arguments")
   111  	}
   112  
   113  	if args.AddressFamily == nil {
   114  		return nil, errors.New("invalid value for required argument 'AddressFamily'")
   115  	}
   116  	if args.BgpAsn == nil {
   117  		return nil, errors.New("invalid value for required argument 'BgpAsn'")
   118  	}
   119  	if args.ConnectionId == nil {
   120  		return nil, errors.New("invalid value for required argument 'ConnectionId'")
   121  	}
   122  	if args.DxGatewayId == nil {
   123  		return nil, errors.New("invalid value for required argument 'DxGatewayId'")
   124  	}
   125  	if args.Vlan == nil {
   126  		return nil, errors.New("invalid value for required argument 'Vlan'")
   127  	}
   128  	opts = internal.PkgResourceDefaultOpts(opts)
   129  	var resource TransitVirtualInterface
   130  	err := ctx.RegisterResource("aws:directconnect/transitVirtualInterface:TransitVirtualInterface", name, args, &resource, opts...)
   131  	if err != nil {
   132  		return nil, err
   133  	}
   134  	return &resource, nil
   135  }
   136  
   137  // GetTransitVirtualInterface gets an existing TransitVirtualInterface resource's state with the given name, ID, and optional
   138  // state properties that are used to uniquely qualify the lookup (nil if not required).
   139  func GetTransitVirtualInterface(ctx *pulumi.Context,
   140  	name string, id pulumi.IDInput, state *TransitVirtualInterfaceState, opts ...pulumi.ResourceOption) (*TransitVirtualInterface, error) {
   141  	var resource TransitVirtualInterface
   142  	err := ctx.ReadResource("aws:directconnect/transitVirtualInterface:TransitVirtualInterface", name, id, state, &resource, opts...)
   143  	if err != nil {
   144  		return nil, err
   145  	}
   146  	return &resource, nil
   147  }
   148  
   149  // Input properties used for looking up and filtering TransitVirtualInterface resources.
   150  type transitVirtualInterfaceState struct {
   151  	// The address family for the BGP peer. ` ipv4  ` or `ipv6`.
   152  	AddressFamily *string `pulumi:"addressFamily"`
   153  	// The IPv4 CIDR address to use to send traffic to Amazon. Required for IPv4 BGP peers.
   154  	AmazonAddress *string `pulumi:"amazonAddress"`
   155  	AmazonSideAsn *string `pulumi:"amazonSideAsn"`
   156  	// The ARN of the virtual interface.
   157  	Arn *string `pulumi:"arn"`
   158  	// The Direct Connect endpoint on which the virtual interface terminates.
   159  	AwsDevice *string `pulumi:"awsDevice"`
   160  	// The autonomous system (AS) number for Border Gateway Protocol (BGP) configuration.
   161  	BgpAsn *int `pulumi:"bgpAsn"`
   162  	// The authentication key for BGP configuration.
   163  	BgpAuthKey *string `pulumi:"bgpAuthKey"`
   164  	// The ID of the Direct Connect connection (or LAG) on which to create the virtual interface.
   165  	ConnectionId *string `pulumi:"connectionId"`
   166  	// The IPv4 CIDR destination address to which Amazon should send traffic. Required for IPv4 BGP peers.
   167  	CustomerAddress *string `pulumi:"customerAddress"`
   168  	// The ID of the Direct Connect gateway to which to connect the virtual interface.
   169  	DxGatewayId *string `pulumi:"dxGatewayId"`
   170  	// Indicates whether jumbo frames (8500 MTU) are supported.
   171  	JumboFrameCapable *bool `pulumi:"jumboFrameCapable"`
   172  	// The maximum transmission unit (MTU) is the size, in bytes, of the largest permissible packet that can be passed over the connection.
   173  	// The MTU of a virtual transit interface can be either `1500` or `8500` (jumbo frames). Default is `1500`.
   174  	Mtu *int `pulumi:"mtu"`
   175  	// The name for the virtual interface.
   176  	Name *string `pulumi:"name"`
   177  	// Indicates whether to enable or disable SiteLink.
   178  	SitelinkEnabled *bool `pulumi:"sitelinkEnabled"`
   179  	// 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.
   180  	Tags map[string]string `pulumi:"tags"`
   181  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   182  	//
   183  	// Deprecated: Please use `tags` instead.
   184  	TagsAll map[string]string `pulumi:"tagsAll"`
   185  	// The VLAN ID.
   186  	Vlan *int `pulumi:"vlan"`
   187  }
   188  
   189  type TransitVirtualInterfaceState struct {
   190  	// The address family for the BGP peer. ` ipv4  ` or `ipv6`.
   191  	AddressFamily pulumi.StringPtrInput
   192  	// The IPv4 CIDR address to use to send traffic to Amazon. Required for IPv4 BGP peers.
   193  	AmazonAddress pulumi.StringPtrInput
   194  	AmazonSideAsn pulumi.StringPtrInput
   195  	// The ARN of the virtual interface.
   196  	Arn pulumi.StringPtrInput
   197  	// The Direct Connect endpoint on which the virtual interface terminates.
   198  	AwsDevice pulumi.StringPtrInput
   199  	// The autonomous system (AS) number for Border Gateway Protocol (BGP) configuration.
   200  	BgpAsn pulumi.IntPtrInput
   201  	// The authentication key for BGP configuration.
   202  	BgpAuthKey pulumi.StringPtrInput
   203  	// The ID of the Direct Connect connection (or LAG) on which to create the virtual interface.
   204  	ConnectionId pulumi.StringPtrInput
   205  	// The IPv4 CIDR destination address to which Amazon should send traffic. Required for IPv4 BGP peers.
   206  	CustomerAddress pulumi.StringPtrInput
   207  	// The ID of the Direct Connect gateway to which to connect the virtual interface.
   208  	DxGatewayId pulumi.StringPtrInput
   209  	// Indicates whether jumbo frames (8500 MTU) are supported.
   210  	JumboFrameCapable pulumi.BoolPtrInput
   211  	// The maximum transmission unit (MTU) is the size, in bytes, of the largest permissible packet that can be passed over the connection.
   212  	// The MTU of a virtual transit interface can be either `1500` or `8500` (jumbo frames). Default is `1500`.
   213  	Mtu pulumi.IntPtrInput
   214  	// The name for the virtual interface.
   215  	Name pulumi.StringPtrInput
   216  	// Indicates whether to enable or disable SiteLink.
   217  	SitelinkEnabled pulumi.BoolPtrInput
   218  	// 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.
   219  	Tags pulumi.StringMapInput
   220  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   221  	//
   222  	// Deprecated: Please use `tags` instead.
   223  	TagsAll pulumi.StringMapInput
   224  	// The VLAN ID.
   225  	Vlan pulumi.IntPtrInput
   226  }
   227  
   228  func (TransitVirtualInterfaceState) ElementType() reflect.Type {
   229  	return reflect.TypeOf((*transitVirtualInterfaceState)(nil)).Elem()
   230  }
   231  
   232  type transitVirtualInterfaceArgs struct {
   233  	// The address family for the BGP peer. ` ipv4  ` or `ipv6`.
   234  	AddressFamily string `pulumi:"addressFamily"`
   235  	// The IPv4 CIDR address to use to send traffic to Amazon. Required for IPv4 BGP peers.
   236  	AmazonAddress *string `pulumi:"amazonAddress"`
   237  	// The autonomous system (AS) number for Border Gateway Protocol (BGP) configuration.
   238  	BgpAsn int `pulumi:"bgpAsn"`
   239  	// The authentication key for BGP configuration.
   240  	BgpAuthKey *string `pulumi:"bgpAuthKey"`
   241  	// The ID of the Direct Connect connection (or LAG) on which to create the virtual interface.
   242  	ConnectionId string `pulumi:"connectionId"`
   243  	// The IPv4 CIDR destination address to which Amazon should send traffic. Required for IPv4 BGP peers.
   244  	CustomerAddress *string `pulumi:"customerAddress"`
   245  	// The ID of the Direct Connect gateway to which to connect the virtual interface.
   246  	DxGatewayId string `pulumi:"dxGatewayId"`
   247  	// The maximum transmission unit (MTU) is the size, in bytes, of the largest permissible packet that can be passed over the connection.
   248  	// The MTU of a virtual transit interface can be either `1500` or `8500` (jumbo frames). Default is `1500`.
   249  	Mtu *int `pulumi:"mtu"`
   250  	// The name for the virtual interface.
   251  	Name *string `pulumi:"name"`
   252  	// Indicates whether to enable or disable SiteLink.
   253  	SitelinkEnabled *bool `pulumi:"sitelinkEnabled"`
   254  	// 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.
   255  	Tags map[string]string `pulumi:"tags"`
   256  	// The VLAN ID.
   257  	Vlan int `pulumi:"vlan"`
   258  }
   259  
   260  // The set of arguments for constructing a TransitVirtualInterface resource.
   261  type TransitVirtualInterfaceArgs struct {
   262  	// The address family for the BGP peer. ` ipv4  ` or `ipv6`.
   263  	AddressFamily pulumi.StringInput
   264  	// The IPv4 CIDR address to use to send traffic to Amazon. Required for IPv4 BGP peers.
   265  	AmazonAddress pulumi.StringPtrInput
   266  	// The autonomous system (AS) number for Border Gateway Protocol (BGP) configuration.
   267  	BgpAsn pulumi.IntInput
   268  	// The authentication key for BGP configuration.
   269  	BgpAuthKey pulumi.StringPtrInput
   270  	// The ID of the Direct Connect connection (or LAG) on which to create the virtual interface.
   271  	ConnectionId pulumi.StringInput
   272  	// The IPv4 CIDR destination address to which Amazon should send traffic. Required for IPv4 BGP peers.
   273  	CustomerAddress pulumi.StringPtrInput
   274  	// The ID of the Direct Connect gateway to which to connect the virtual interface.
   275  	DxGatewayId pulumi.StringInput
   276  	// The maximum transmission unit (MTU) is the size, in bytes, of the largest permissible packet that can be passed over the connection.
   277  	// The MTU of a virtual transit interface can be either `1500` or `8500` (jumbo frames). Default is `1500`.
   278  	Mtu pulumi.IntPtrInput
   279  	// The name for the virtual interface.
   280  	Name pulumi.StringPtrInput
   281  	// Indicates whether to enable or disable SiteLink.
   282  	SitelinkEnabled pulumi.BoolPtrInput
   283  	// 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.
   284  	Tags pulumi.StringMapInput
   285  	// The VLAN ID.
   286  	Vlan pulumi.IntInput
   287  }
   288  
   289  func (TransitVirtualInterfaceArgs) ElementType() reflect.Type {
   290  	return reflect.TypeOf((*transitVirtualInterfaceArgs)(nil)).Elem()
   291  }
   292  
   293  type TransitVirtualInterfaceInput interface {
   294  	pulumi.Input
   295  
   296  	ToTransitVirtualInterfaceOutput() TransitVirtualInterfaceOutput
   297  	ToTransitVirtualInterfaceOutputWithContext(ctx context.Context) TransitVirtualInterfaceOutput
   298  }
   299  
   300  func (*TransitVirtualInterface) ElementType() reflect.Type {
   301  	return reflect.TypeOf((**TransitVirtualInterface)(nil)).Elem()
   302  }
   303  
   304  func (i *TransitVirtualInterface) ToTransitVirtualInterfaceOutput() TransitVirtualInterfaceOutput {
   305  	return i.ToTransitVirtualInterfaceOutputWithContext(context.Background())
   306  }
   307  
   308  func (i *TransitVirtualInterface) ToTransitVirtualInterfaceOutputWithContext(ctx context.Context) TransitVirtualInterfaceOutput {
   309  	return pulumi.ToOutputWithContext(ctx, i).(TransitVirtualInterfaceOutput)
   310  }
   311  
   312  // TransitVirtualInterfaceArrayInput is an input type that accepts TransitVirtualInterfaceArray and TransitVirtualInterfaceArrayOutput values.
   313  // You can construct a concrete instance of `TransitVirtualInterfaceArrayInput` via:
   314  //
   315  //	TransitVirtualInterfaceArray{ TransitVirtualInterfaceArgs{...} }
   316  type TransitVirtualInterfaceArrayInput interface {
   317  	pulumi.Input
   318  
   319  	ToTransitVirtualInterfaceArrayOutput() TransitVirtualInterfaceArrayOutput
   320  	ToTransitVirtualInterfaceArrayOutputWithContext(context.Context) TransitVirtualInterfaceArrayOutput
   321  }
   322  
   323  type TransitVirtualInterfaceArray []TransitVirtualInterfaceInput
   324  
   325  func (TransitVirtualInterfaceArray) ElementType() reflect.Type {
   326  	return reflect.TypeOf((*[]*TransitVirtualInterface)(nil)).Elem()
   327  }
   328  
   329  func (i TransitVirtualInterfaceArray) ToTransitVirtualInterfaceArrayOutput() TransitVirtualInterfaceArrayOutput {
   330  	return i.ToTransitVirtualInterfaceArrayOutputWithContext(context.Background())
   331  }
   332  
   333  func (i TransitVirtualInterfaceArray) ToTransitVirtualInterfaceArrayOutputWithContext(ctx context.Context) TransitVirtualInterfaceArrayOutput {
   334  	return pulumi.ToOutputWithContext(ctx, i).(TransitVirtualInterfaceArrayOutput)
   335  }
   336  
   337  // TransitVirtualInterfaceMapInput is an input type that accepts TransitVirtualInterfaceMap and TransitVirtualInterfaceMapOutput values.
   338  // You can construct a concrete instance of `TransitVirtualInterfaceMapInput` via:
   339  //
   340  //	TransitVirtualInterfaceMap{ "key": TransitVirtualInterfaceArgs{...} }
   341  type TransitVirtualInterfaceMapInput interface {
   342  	pulumi.Input
   343  
   344  	ToTransitVirtualInterfaceMapOutput() TransitVirtualInterfaceMapOutput
   345  	ToTransitVirtualInterfaceMapOutputWithContext(context.Context) TransitVirtualInterfaceMapOutput
   346  }
   347  
   348  type TransitVirtualInterfaceMap map[string]TransitVirtualInterfaceInput
   349  
   350  func (TransitVirtualInterfaceMap) ElementType() reflect.Type {
   351  	return reflect.TypeOf((*map[string]*TransitVirtualInterface)(nil)).Elem()
   352  }
   353  
   354  func (i TransitVirtualInterfaceMap) ToTransitVirtualInterfaceMapOutput() TransitVirtualInterfaceMapOutput {
   355  	return i.ToTransitVirtualInterfaceMapOutputWithContext(context.Background())
   356  }
   357  
   358  func (i TransitVirtualInterfaceMap) ToTransitVirtualInterfaceMapOutputWithContext(ctx context.Context) TransitVirtualInterfaceMapOutput {
   359  	return pulumi.ToOutputWithContext(ctx, i).(TransitVirtualInterfaceMapOutput)
   360  }
   361  
   362  type TransitVirtualInterfaceOutput struct{ *pulumi.OutputState }
   363  
   364  func (TransitVirtualInterfaceOutput) ElementType() reflect.Type {
   365  	return reflect.TypeOf((**TransitVirtualInterface)(nil)).Elem()
   366  }
   367  
   368  func (o TransitVirtualInterfaceOutput) ToTransitVirtualInterfaceOutput() TransitVirtualInterfaceOutput {
   369  	return o
   370  }
   371  
   372  func (o TransitVirtualInterfaceOutput) ToTransitVirtualInterfaceOutputWithContext(ctx context.Context) TransitVirtualInterfaceOutput {
   373  	return o
   374  }
   375  
   376  // The address family for the BGP peer. ` ipv4  ` or `ipv6`.
   377  func (o TransitVirtualInterfaceOutput) AddressFamily() pulumi.StringOutput {
   378  	return o.ApplyT(func(v *TransitVirtualInterface) pulumi.StringOutput { return v.AddressFamily }).(pulumi.StringOutput)
   379  }
   380  
   381  // The IPv4 CIDR address to use to send traffic to Amazon. Required for IPv4 BGP peers.
   382  func (o TransitVirtualInterfaceOutput) AmazonAddress() pulumi.StringOutput {
   383  	return o.ApplyT(func(v *TransitVirtualInterface) pulumi.StringOutput { return v.AmazonAddress }).(pulumi.StringOutput)
   384  }
   385  
   386  func (o TransitVirtualInterfaceOutput) AmazonSideAsn() pulumi.StringOutput {
   387  	return o.ApplyT(func(v *TransitVirtualInterface) pulumi.StringOutput { return v.AmazonSideAsn }).(pulumi.StringOutput)
   388  }
   389  
   390  // The ARN of the virtual interface.
   391  func (o TransitVirtualInterfaceOutput) Arn() pulumi.StringOutput {
   392  	return o.ApplyT(func(v *TransitVirtualInterface) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   393  }
   394  
   395  // The Direct Connect endpoint on which the virtual interface terminates.
   396  func (o TransitVirtualInterfaceOutput) AwsDevice() pulumi.StringOutput {
   397  	return o.ApplyT(func(v *TransitVirtualInterface) pulumi.StringOutput { return v.AwsDevice }).(pulumi.StringOutput)
   398  }
   399  
   400  // The autonomous system (AS) number for Border Gateway Protocol (BGP) configuration.
   401  func (o TransitVirtualInterfaceOutput) BgpAsn() pulumi.IntOutput {
   402  	return o.ApplyT(func(v *TransitVirtualInterface) pulumi.IntOutput { return v.BgpAsn }).(pulumi.IntOutput)
   403  }
   404  
   405  // The authentication key for BGP configuration.
   406  func (o TransitVirtualInterfaceOutput) BgpAuthKey() pulumi.StringOutput {
   407  	return o.ApplyT(func(v *TransitVirtualInterface) pulumi.StringOutput { return v.BgpAuthKey }).(pulumi.StringOutput)
   408  }
   409  
   410  // The ID of the Direct Connect connection (or LAG) on which to create the virtual interface.
   411  func (o TransitVirtualInterfaceOutput) ConnectionId() pulumi.StringOutput {
   412  	return o.ApplyT(func(v *TransitVirtualInterface) pulumi.StringOutput { return v.ConnectionId }).(pulumi.StringOutput)
   413  }
   414  
   415  // The IPv4 CIDR destination address to which Amazon should send traffic. Required for IPv4 BGP peers.
   416  func (o TransitVirtualInterfaceOutput) CustomerAddress() pulumi.StringOutput {
   417  	return o.ApplyT(func(v *TransitVirtualInterface) pulumi.StringOutput { return v.CustomerAddress }).(pulumi.StringOutput)
   418  }
   419  
   420  // The ID of the Direct Connect gateway to which to connect the virtual interface.
   421  func (o TransitVirtualInterfaceOutput) DxGatewayId() pulumi.StringOutput {
   422  	return o.ApplyT(func(v *TransitVirtualInterface) pulumi.StringOutput { return v.DxGatewayId }).(pulumi.StringOutput)
   423  }
   424  
   425  // Indicates whether jumbo frames (8500 MTU) are supported.
   426  func (o TransitVirtualInterfaceOutput) JumboFrameCapable() pulumi.BoolOutput {
   427  	return o.ApplyT(func(v *TransitVirtualInterface) pulumi.BoolOutput { return v.JumboFrameCapable }).(pulumi.BoolOutput)
   428  }
   429  
   430  // The maximum transmission unit (MTU) is the size, in bytes, of the largest permissible packet that can be passed over the connection.
   431  // The MTU of a virtual transit interface can be either `1500` or `8500` (jumbo frames). Default is `1500`.
   432  func (o TransitVirtualInterfaceOutput) Mtu() pulumi.IntPtrOutput {
   433  	return o.ApplyT(func(v *TransitVirtualInterface) pulumi.IntPtrOutput { return v.Mtu }).(pulumi.IntPtrOutput)
   434  }
   435  
   436  // The name for the virtual interface.
   437  func (o TransitVirtualInterfaceOutput) Name() pulumi.StringOutput {
   438  	return o.ApplyT(func(v *TransitVirtualInterface) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   439  }
   440  
   441  // Indicates whether to enable or disable SiteLink.
   442  func (o TransitVirtualInterfaceOutput) SitelinkEnabled() pulumi.BoolPtrOutput {
   443  	return o.ApplyT(func(v *TransitVirtualInterface) pulumi.BoolPtrOutput { return v.SitelinkEnabled }).(pulumi.BoolPtrOutput)
   444  }
   445  
   446  // 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.
   447  func (o TransitVirtualInterfaceOutput) Tags() pulumi.StringMapOutput {
   448  	return o.ApplyT(func(v *TransitVirtualInterface) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   449  }
   450  
   451  // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   452  //
   453  // Deprecated: Please use `tags` instead.
   454  func (o TransitVirtualInterfaceOutput) TagsAll() pulumi.StringMapOutput {
   455  	return o.ApplyT(func(v *TransitVirtualInterface) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   456  }
   457  
   458  // The VLAN ID.
   459  func (o TransitVirtualInterfaceOutput) Vlan() pulumi.IntOutput {
   460  	return o.ApplyT(func(v *TransitVirtualInterface) pulumi.IntOutput { return v.Vlan }).(pulumi.IntOutput)
   461  }
   462  
   463  type TransitVirtualInterfaceArrayOutput struct{ *pulumi.OutputState }
   464  
   465  func (TransitVirtualInterfaceArrayOutput) ElementType() reflect.Type {
   466  	return reflect.TypeOf((*[]*TransitVirtualInterface)(nil)).Elem()
   467  }
   468  
   469  func (o TransitVirtualInterfaceArrayOutput) ToTransitVirtualInterfaceArrayOutput() TransitVirtualInterfaceArrayOutput {
   470  	return o
   471  }
   472  
   473  func (o TransitVirtualInterfaceArrayOutput) ToTransitVirtualInterfaceArrayOutputWithContext(ctx context.Context) TransitVirtualInterfaceArrayOutput {
   474  	return o
   475  }
   476  
   477  func (o TransitVirtualInterfaceArrayOutput) Index(i pulumi.IntInput) TransitVirtualInterfaceOutput {
   478  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *TransitVirtualInterface {
   479  		return vs[0].([]*TransitVirtualInterface)[vs[1].(int)]
   480  	}).(TransitVirtualInterfaceOutput)
   481  }
   482  
   483  type TransitVirtualInterfaceMapOutput struct{ *pulumi.OutputState }
   484  
   485  func (TransitVirtualInterfaceMapOutput) ElementType() reflect.Type {
   486  	return reflect.TypeOf((*map[string]*TransitVirtualInterface)(nil)).Elem()
   487  }
   488  
   489  func (o TransitVirtualInterfaceMapOutput) ToTransitVirtualInterfaceMapOutput() TransitVirtualInterfaceMapOutput {
   490  	return o
   491  }
   492  
   493  func (o TransitVirtualInterfaceMapOutput) ToTransitVirtualInterfaceMapOutputWithContext(ctx context.Context) TransitVirtualInterfaceMapOutput {
   494  	return o
   495  }
   496  
   497  func (o TransitVirtualInterfaceMapOutput) MapIndex(k pulumi.StringInput) TransitVirtualInterfaceOutput {
   498  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *TransitVirtualInterface {
   499  		return vs[0].(map[string]*TransitVirtualInterface)[vs[1].(string)]
   500  	}).(TransitVirtualInterfaceOutput)
   501  }
   502  
   503  func init() {
   504  	pulumi.RegisterInputType(reflect.TypeOf((*TransitVirtualInterfaceInput)(nil)).Elem(), &TransitVirtualInterface{})
   505  	pulumi.RegisterInputType(reflect.TypeOf((*TransitVirtualInterfaceArrayInput)(nil)).Elem(), TransitVirtualInterfaceArray{})
   506  	pulumi.RegisterInputType(reflect.TypeOf((*TransitVirtualInterfaceMapInput)(nil)).Elem(), TransitVirtualInterfaceMap{})
   507  	pulumi.RegisterOutputType(TransitVirtualInterfaceOutput{})
   508  	pulumi.RegisterOutputType(TransitVirtualInterfaceArrayOutput{})
   509  	pulumi.RegisterOutputType(TransitVirtualInterfaceMapOutput{})
   510  }