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