github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/directconnect/hostedPublicVirtualInterface.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 hosted public virtual interface resource. This resource represents the allocator's side of the hosted virtual interface.
    16  // A hosted virtual interface is a virtual interface that is owned by another AWS account.
    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  //			_, err := directconnect.NewHostedPublicVirtualInterface(ctx, "foo", &directconnect.HostedPublicVirtualInterfaceArgs{
    34  //				ConnectionId:    pulumi.String("dxcon-zzzzzzzz"),
    35  //				Name:            pulumi.String("vif-foo"),
    36  //				Vlan:            pulumi.Int(4094),
    37  //				AddressFamily:   pulumi.String("ipv4"),
    38  //				BgpAsn:          pulumi.Int(65352),
    39  //				CustomerAddress: pulumi.String("175.45.176.1/30"),
    40  //				AmazonAddress:   pulumi.String("175.45.176.2/30"),
    41  //				RouteFilterPrefixes: pulumi.StringArray{
    42  //					pulumi.String("210.52.109.0/24"),
    43  //					pulumi.String("175.45.176.0/22"),
    44  //				},
    45  //			})
    46  //			if err != nil {
    47  //				return err
    48  //			}
    49  //			return nil
    50  //		})
    51  //	}
    52  //
    53  // ```
    54  // <!--End PulumiCodeChooser -->
    55  //
    56  // ## Import
    57  //
    58  // Using `pulumi import`, import Direct Connect hosted public virtual interfaces using the VIF `id`. For example:
    59  //
    60  // ```sh
    61  // $ pulumi import aws:directconnect/hostedPublicVirtualInterface:HostedPublicVirtualInterface test dxvif-33cc44dd
    62  // ```
    63  type HostedPublicVirtualInterface struct {
    64  	pulumi.CustomResourceState
    65  
    66  	// The address family for the BGP peer. ` ipv4  ` or `ipv6`.
    67  	AddressFamily pulumi.StringOutput `pulumi:"addressFamily"`
    68  	// The IPv4 CIDR address to use to send traffic to Amazon. Required for IPv4 BGP peers.
    69  	AmazonAddress pulumi.StringOutput `pulumi:"amazonAddress"`
    70  	AmazonSideAsn pulumi.StringOutput `pulumi:"amazonSideAsn"`
    71  	// The ARN of the virtual interface.
    72  	Arn pulumi.StringOutput `pulumi:"arn"`
    73  	// The Direct Connect endpoint on which the virtual interface terminates.
    74  	AwsDevice pulumi.StringOutput `pulumi:"awsDevice"`
    75  	// The autonomous system (AS) number for Border Gateway Protocol (BGP) configuration.
    76  	BgpAsn pulumi.IntOutput `pulumi:"bgpAsn"`
    77  	// The authentication key for BGP configuration.
    78  	BgpAuthKey pulumi.StringOutput `pulumi:"bgpAuthKey"`
    79  	// The ID of the Direct Connect connection (or LAG) on which to create the virtual interface.
    80  	ConnectionId pulumi.StringOutput `pulumi:"connectionId"`
    81  	// The IPv4 CIDR destination address to which Amazon should send traffic. Required for IPv4 BGP peers.
    82  	CustomerAddress pulumi.StringOutput `pulumi:"customerAddress"`
    83  	// The name for the virtual interface.
    84  	Name pulumi.StringOutput `pulumi:"name"`
    85  	// The AWS account that will own the new virtual interface.
    86  	OwnerAccountId pulumi.StringOutput `pulumi:"ownerAccountId"`
    87  	// A list of routes to be advertised to the AWS network in this region.
    88  	RouteFilterPrefixes pulumi.StringArrayOutput `pulumi:"routeFilterPrefixes"`
    89  	// The VLAN ID.
    90  	Vlan pulumi.IntOutput `pulumi:"vlan"`
    91  }
    92  
    93  // NewHostedPublicVirtualInterface registers a new resource with the given unique name, arguments, and options.
    94  func NewHostedPublicVirtualInterface(ctx *pulumi.Context,
    95  	name string, args *HostedPublicVirtualInterfaceArgs, opts ...pulumi.ResourceOption) (*HostedPublicVirtualInterface, error) {
    96  	if args == nil {
    97  		return nil, errors.New("missing one or more required arguments")
    98  	}
    99  
   100  	if args.AddressFamily == nil {
   101  		return nil, errors.New("invalid value for required argument 'AddressFamily'")
   102  	}
   103  	if args.BgpAsn == nil {
   104  		return nil, errors.New("invalid value for required argument 'BgpAsn'")
   105  	}
   106  	if args.ConnectionId == nil {
   107  		return nil, errors.New("invalid value for required argument 'ConnectionId'")
   108  	}
   109  	if args.OwnerAccountId == nil {
   110  		return nil, errors.New("invalid value for required argument 'OwnerAccountId'")
   111  	}
   112  	if args.RouteFilterPrefixes == nil {
   113  		return nil, errors.New("invalid value for required argument 'RouteFilterPrefixes'")
   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 HostedPublicVirtualInterface
   120  	err := ctx.RegisterResource("aws:directconnect/hostedPublicVirtualInterface:HostedPublicVirtualInterface", name, args, &resource, opts...)
   121  	if err != nil {
   122  		return nil, err
   123  	}
   124  	return &resource, nil
   125  }
   126  
   127  // GetHostedPublicVirtualInterface gets an existing HostedPublicVirtualInterface 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 GetHostedPublicVirtualInterface(ctx *pulumi.Context,
   130  	name string, id pulumi.IDInput, state *HostedPublicVirtualInterfaceState, opts ...pulumi.ResourceOption) (*HostedPublicVirtualInterface, error) {
   131  	var resource HostedPublicVirtualInterface
   132  	err := ctx.ReadResource("aws:directconnect/hostedPublicVirtualInterface:HostedPublicVirtualInterface", 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 HostedPublicVirtualInterface resources.
   140  type hostedPublicVirtualInterfaceState 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 name for the virtual interface.
   159  	Name *string `pulumi:"name"`
   160  	// The AWS account that will own the new virtual interface.
   161  	OwnerAccountId *string `pulumi:"ownerAccountId"`
   162  	// A list of routes to be advertised to the AWS network in this region.
   163  	RouteFilterPrefixes []string `pulumi:"routeFilterPrefixes"`
   164  	// The VLAN ID.
   165  	Vlan *int `pulumi:"vlan"`
   166  }
   167  
   168  type HostedPublicVirtualInterfaceState struct {
   169  	// The address family for the BGP peer. ` ipv4  ` or `ipv6`.
   170  	AddressFamily pulumi.StringPtrInput
   171  	// The IPv4 CIDR address to use to send traffic to Amazon. Required for IPv4 BGP peers.
   172  	AmazonAddress pulumi.StringPtrInput
   173  	AmazonSideAsn pulumi.StringPtrInput
   174  	// The ARN of the virtual interface.
   175  	Arn pulumi.StringPtrInput
   176  	// The Direct Connect endpoint on which the virtual interface terminates.
   177  	AwsDevice pulumi.StringPtrInput
   178  	// The autonomous system (AS) number for Border Gateway Protocol (BGP) configuration.
   179  	BgpAsn pulumi.IntPtrInput
   180  	// The authentication key for BGP configuration.
   181  	BgpAuthKey pulumi.StringPtrInput
   182  	// The ID of the Direct Connect connection (or LAG) on which to create the virtual interface.
   183  	ConnectionId pulumi.StringPtrInput
   184  	// The IPv4 CIDR destination address to which Amazon should send traffic. Required for IPv4 BGP peers.
   185  	CustomerAddress pulumi.StringPtrInput
   186  	// The name for the virtual interface.
   187  	Name pulumi.StringPtrInput
   188  	// The AWS account that will own the new virtual interface.
   189  	OwnerAccountId pulumi.StringPtrInput
   190  	// A list of routes to be advertised to the AWS network in this region.
   191  	RouteFilterPrefixes pulumi.StringArrayInput
   192  	// The VLAN ID.
   193  	Vlan pulumi.IntPtrInput
   194  }
   195  
   196  func (HostedPublicVirtualInterfaceState) ElementType() reflect.Type {
   197  	return reflect.TypeOf((*hostedPublicVirtualInterfaceState)(nil)).Elem()
   198  }
   199  
   200  type hostedPublicVirtualInterfaceArgs struct {
   201  	// The address family for the BGP peer. ` ipv4  ` or `ipv6`.
   202  	AddressFamily string `pulumi:"addressFamily"`
   203  	// The IPv4 CIDR address to use to send traffic to Amazon. Required for IPv4 BGP peers.
   204  	AmazonAddress *string `pulumi:"amazonAddress"`
   205  	// The autonomous system (AS) number for Border Gateway Protocol (BGP) configuration.
   206  	BgpAsn int `pulumi:"bgpAsn"`
   207  	// The authentication key for BGP configuration.
   208  	BgpAuthKey *string `pulumi:"bgpAuthKey"`
   209  	// The ID of the Direct Connect connection (or LAG) on which to create the virtual interface.
   210  	ConnectionId string `pulumi:"connectionId"`
   211  	// The IPv4 CIDR destination address to which Amazon should send traffic. Required for IPv4 BGP peers.
   212  	CustomerAddress *string `pulumi:"customerAddress"`
   213  	// The name for the virtual interface.
   214  	Name *string `pulumi:"name"`
   215  	// The AWS account that will own the new virtual interface.
   216  	OwnerAccountId string `pulumi:"ownerAccountId"`
   217  	// A list of routes to be advertised to the AWS network in this region.
   218  	RouteFilterPrefixes []string `pulumi:"routeFilterPrefixes"`
   219  	// The VLAN ID.
   220  	Vlan int `pulumi:"vlan"`
   221  }
   222  
   223  // The set of arguments for constructing a HostedPublicVirtualInterface resource.
   224  type HostedPublicVirtualInterfaceArgs struct {
   225  	// The address family for the BGP peer. ` ipv4  ` or `ipv6`.
   226  	AddressFamily pulumi.StringInput
   227  	// The IPv4 CIDR address to use to send traffic to Amazon. Required for IPv4 BGP peers.
   228  	AmazonAddress pulumi.StringPtrInput
   229  	// The autonomous system (AS) number for Border Gateway Protocol (BGP) configuration.
   230  	BgpAsn pulumi.IntInput
   231  	// The authentication key for BGP configuration.
   232  	BgpAuthKey pulumi.StringPtrInput
   233  	// The ID of the Direct Connect connection (or LAG) on which to create the virtual interface.
   234  	ConnectionId pulumi.StringInput
   235  	// The IPv4 CIDR destination address to which Amazon should send traffic. Required for IPv4 BGP peers.
   236  	CustomerAddress pulumi.StringPtrInput
   237  	// The name for the virtual interface.
   238  	Name pulumi.StringPtrInput
   239  	// The AWS account that will own the new virtual interface.
   240  	OwnerAccountId pulumi.StringInput
   241  	// A list of routes to be advertised to the AWS network in this region.
   242  	RouteFilterPrefixes pulumi.StringArrayInput
   243  	// The VLAN ID.
   244  	Vlan pulumi.IntInput
   245  }
   246  
   247  func (HostedPublicVirtualInterfaceArgs) ElementType() reflect.Type {
   248  	return reflect.TypeOf((*hostedPublicVirtualInterfaceArgs)(nil)).Elem()
   249  }
   250  
   251  type HostedPublicVirtualInterfaceInput interface {
   252  	pulumi.Input
   253  
   254  	ToHostedPublicVirtualInterfaceOutput() HostedPublicVirtualInterfaceOutput
   255  	ToHostedPublicVirtualInterfaceOutputWithContext(ctx context.Context) HostedPublicVirtualInterfaceOutput
   256  }
   257  
   258  func (*HostedPublicVirtualInterface) ElementType() reflect.Type {
   259  	return reflect.TypeOf((**HostedPublicVirtualInterface)(nil)).Elem()
   260  }
   261  
   262  func (i *HostedPublicVirtualInterface) ToHostedPublicVirtualInterfaceOutput() HostedPublicVirtualInterfaceOutput {
   263  	return i.ToHostedPublicVirtualInterfaceOutputWithContext(context.Background())
   264  }
   265  
   266  func (i *HostedPublicVirtualInterface) ToHostedPublicVirtualInterfaceOutputWithContext(ctx context.Context) HostedPublicVirtualInterfaceOutput {
   267  	return pulumi.ToOutputWithContext(ctx, i).(HostedPublicVirtualInterfaceOutput)
   268  }
   269  
   270  // HostedPublicVirtualInterfaceArrayInput is an input type that accepts HostedPublicVirtualInterfaceArray and HostedPublicVirtualInterfaceArrayOutput values.
   271  // You can construct a concrete instance of `HostedPublicVirtualInterfaceArrayInput` via:
   272  //
   273  //	HostedPublicVirtualInterfaceArray{ HostedPublicVirtualInterfaceArgs{...} }
   274  type HostedPublicVirtualInterfaceArrayInput interface {
   275  	pulumi.Input
   276  
   277  	ToHostedPublicVirtualInterfaceArrayOutput() HostedPublicVirtualInterfaceArrayOutput
   278  	ToHostedPublicVirtualInterfaceArrayOutputWithContext(context.Context) HostedPublicVirtualInterfaceArrayOutput
   279  }
   280  
   281  type HostedPublicVirtualInterfaceArray []HostedPublicVirtualInterfaceInput
   282  
   283  func (HostedPublicVirtualInterfaceArray) ElementType() reflect.Type {
   284  	return reflect.TypeOf((*[]*HostedPublicVirtualInterface)(nil)).Elem()
   285  }
   286  
   287  func (i HostedPublicVirtualInterfaceArray) ToHostedPublicVirtualInterfaceArrayOutput() HostedPublicVirtualInterfaceArrayOutput {
   288  	return i.ToHostedPublicVirtualInterfaceArrayOutputWithContext(context.Background())
   289  }
   290  
   291  func (i HostedPublicVirtualInterfaceArray) ToHostedPublicVirtualInterfaceArrayOutputWithContext(ctx context.Context) HostedPublicVirtualInterfaceArrayOutput {
   292  	return pulumi.ToOutputWithContext(ctx, i).(HostedPublicVirtualInterfaceArrayOutput)
   293  }
   294  
   295  // HostedPublicVirtualInterfaceMapInput is an input type that accepts HostedPublicVirtualInterfaceMap and HostedPublicVirtualInterfaceMapOutput values.
   296  // You can construct a concrete instance of `HostedPublicVirtualInterfaceMapInput` via:
   297  //
   298  //	HostedPublicVirtualInterfaceMap{ "key": HostedPublicVirtualInterfaceArgs{...} }
   299  type HostedPublicVirtualInterfaceMapInput interface {
   300  	pulumi.Input
   301  
   302  	ToHostedPublicVirtualInterfaceMapOutput() HostedPublicVirtualInterfaceMapOutput
   303  	ToHostedPublicVirtualInterfaceMapOutputWithContext(context.Context) HostedPublicVirtualInterfaceMapOutput
   304  }
   305  
   306  type HostedPublicVirtualInterfaceMap map[string]HostedPublicVirtualInterfaceInput
   307  
   308  func (HostedPublicVirtualInterfaceMap) ElementType() reflect.Type {
   309  	return reflect.TypeOf((*map[string]*HostedPublicVirtualInterface)(nil)).Elem()
   310  }
   311  
   312  func (i HostedPublicVirtualInterfaceMap) ToHostedPublicVirtualInterfaceMapOutput() HostedPublicVirtualInterfaceMapOutput {
   313  	return i.ToHostedPublicVirtualInterfaceMapOutputWithContext(context.Background())
   314  }
   315  
   316  func (i HostedPublicVirtualInterfaceMap) ToHostedPublicVirtualInterfaceMapOutputWithContext(ctx context.Context) HostedPublicVirtualInterfaceMapOutput {
   317  	return pulumi.ToOutputWithContext(ctx, i).(HostedPublicVirtualInterfaceMapOutput)
   318  }
   319  
   320  type HostedPublicVirtualInterfaceOutput struct{ *pulumi.OutputState }
   321  
   322  func (HostedPublicVirtualInterfaceOutput) ElementType() reflect.Type {
   323  	return reflect.TypeOf((**HostedPublicVirtualInterface)(nil)).Elem()
   324  }
   325  
   326  func (o HostedPublicVirtualInterfaceOutput) ToHostedPublicVirtualInterfaceOutput() HostedPublicVirtualInterfaceOutput {
   327  	return o
   328  }
   329  
   330  func (o HostedPublicVirtualInterfaceOutput) ToHostedPublicVirtualInterfaceOutputWithContext(ctx context.Context) HostedPublicVirtualInterfaceOutput {
   331  	return o
   332  }
   333  
   334  // The address family for the BGP peer. ` ipv4  ` or `ipv6`.
   335  func (o HostedPublicVirtualInterfaceOutput) AddressFamily() pulumi.StringOutput {
   336  	return o.ApplyT(func(v *HostedPublicVirtualInterface) pulumi.StringOutput { return v.AddressFamily }).(pulumi.StringOutput)
   337  }
   338  
   339  // The IPv4 CIDR address to use to send traffic to Amazon. Required for IPv4 BGP peers.
   340  func (o HostedPublicVirtualInterfaceOutput) AmazonAddress() pulumi.StringOutput {
   341  	return o.ApplyT(func(v *HostedPublicVirtualInterface) pulumi.StringOutput { return v.AmazonAddress }).(pulumi.StringOutput)
   342  }
   343  
   344  func (o HostedPublicVirtualInterfaceOutput) AmazonSideAsn() pulumi.StringOutput {
   345  	return o.ApplyT(func(v *HostedPublicVirtualInterface) pulumi.StringOutput { return v.AmazonSideAsn }).(pulumi.StringOutput)
   346  }
   347  
   348  // The ARN of the virtual interface.
   349  func (o HostedPublicVirtualInterfaceOutput) Arn() pulumi.StringOutput {
   350  	return o.ApplyT(func(v *HostedPublicVirtualInterface) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   351  }
   352  
   353  // The Direct Connect endpoint on which the virtual interface terminates.
   354  func (o HostedPublicVirtualInterfaceOutput) AwsDevice() pulumi.StringOutput {
   355  	return o.ApplyT(func(v *HostedPublicVirtualInterface) pulumi.StringOutput { return v.AwsDevice }).(pulumi.StringOutput)
   356  }
   357  
   358  // The autonomous system (AS) number for Border Gateway Protocol (BGP) configuration.
   359  func (o HostedPublicVirtualInterfaceOutput) BgpAsn() pulumi.IntOutput {
   360  	return o.ApplyT(func(v *HostedPublicVirtualInterface) pulumi.IntOutput { return v.BgpAsn }).(pulumi.IntOutput)
   361  }
   362  
   363  // The authentication key for BGP configuration.
   364  func (o HostedPublicVirtualInterfaceOutput) BgpAuthKey() pulumi.StringOutput {
   365  	return o.ApplyT(func(v *HostedPublicVirtualInterface) pulumi.StringOutput { return v.BgpAuthKey }).(pulumi.StringOutput)
   366  }
   367  
   368  // The ID of the Direct Connect connection (or LAG) on which to create the virtual interface.
   369  func (o HostedPublicVirtualInterfaceOutput) ConnectionId() pulumi.StringOutput {
   370  	return o.ApplyT(func(v *HostedPublicVirtualInterface) pulumi.StringOutput { return v.ConnectionId }).(pulumi.StringOutput)
   371  }
   372  
   373  // The IPv4 CIDR destination address to which Amazon should send traffic. Required for IPv4 BGP peers.
   374  func (o HostedPublicVirtualInterfaceOutput) CustomerAddress() pulumi.StringOutput {
   375  	return o.ApplyT(func(v *HostedPublicVirtualInterface) pulumi.StringOutput { return v.CustomerAddress }).(pulumi.StringOutput)
   376  }
   377  
   378  // The name for the virtual interface.
   379  func (o HostedPublicVirtualInterfaceOutput) Name() pulumi.StringOutput {
   380  	return o.ApplyT(func(v *HostedPublicVirtualInterface) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   381  }
   382  
   383  // The AWS account that will own the new virtual interface.
   384  func (o HostedPublicVirtualInterfaceOutput) OwnerAccountId() pulumi.StringOutput {
   385  	return o.ApplyT(func(v *HostedPublicVirtualInterface) pulumi.StringOutput { return v.OwnerAccountId }).(pulumi.StringOutput)
   386  }
   387  
   388  // A list of routes to be advertised to the AWS network in this region.
   389  func (o HostedPublicVirtualInterfaceOutput) RouteFilterPrefixes() pulumi.StringArrayOutput {
   390  	return o.ApplyT(func(v *HostedPublicVirtualInterface) pulumi.StringArrayOutput { return v.RouteFilterPrefixes }).(pulumi.StringArrayOutput)
   391  }
   392  
   393  // The VLAN ID.
   394  func (o HostedPublicVirtualInterfaceOutput) Vlan() pulumi.IntOutput {
   395  	return o.ApplyT(func(v *HostedPublicVirtualInterface) pulumi.IntOutput { return v.Vlan }).(pulumi.IntOutput)
   396  }
   397  
   398  type HostedPublicVirtualInterfaceArrayOutput struct{ *pulumi.OutputState }
   399  
   400  func (HostedPublicVirtualInterfaceArrayOutput) ElementType() reflect.Type {
   401  	return reflect.TypeOf((*[]*HostedPublicVirtualInterface)(nil)).Elem()
   402  }
   403  
   404  func (o HostedPublicVirtualInterfaceArrayOutput) ToHostedPublicVirtualInterfaceArrayOutput() HostedPublicVirtualInterfaceArrayOutput {
   405  	return o
   406  }
   407  
   408  func (o HostedPublicVirtualInterfaceArrayOutput) ToHostedPublicVirtualInterfaceArrayOutputWithContext(ctx context.Context) HostedPublicVirtualInterfaceArrayOutput {
   409  	return o
   410  }
   411  
   412  func (o HostedPublicVirtualInterfaceArrayOutput) Index(i pulumi.IntInput) HostedPublicVirtualInterfaceOutput {
   413  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *HostedPublicVirtualInterface {
   414  		return vs[0].([]*HostedPublicVirtualInterface)[vs[1].(int)]
   415  	}).(HostedPublicVirtualInterfaceOutput)
   416  }
   417  
   418  type HostedPublicVirtualInterfaceMapOutput struct{ *pulumi.OutputState }
   419  
   420  func (HostedPublicVirtualInterfaceMapOutput) ElementType() reflect.Type {
   421  	return reflect.TypeOf((*map[string]*HostedPublicVirtualInterface)(nil)).Elem()
   422  }
   423  
   424  func (o HostedPublicVirtualInterfaceMapOutput) ToHostedPublicVirtualInterfaceMapOutput() HostedPublicVirtualInterfaceMapOutput {
   425  	return o
   426  }
   427  
   428  func (o HostedPublicVirtualInterfaceMapOutput) ToHostedPublicVirtualInterfaceMapOutputWithContext(ctx context.Context) HostedPublicVirtualInterfaceMapOutput {
   429  	return o
   430  }
   431  
   432  func (o HostedPublicVirtualInterfaceMapOutput) MapIndex(k pulumi.StringInput) HostedPublicVirtualInterfaceOutput {
   433  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *HostedPublicVirtualInterface {
   434  		return vs[0].(map[string]*HostedPublicVirtualInterface)[vs[1].(string)]
   435  	}).(HostedPublicVirtualInterfaceOutput)
   436  }
   437  
   438  func init() {
   439  	pulumi.RegisterInputType(reflect.TypeOf((*HostedPublicVirtualInterfaceInput)(nil)).Elem(), &HostedPublicVirtualInterface{})
   440  	pulumi.RegisterInputType(reflect.TypeOf((*HostedPublicVirtualInterfaceArrayInput)(nil)).Elem(), HostedPublicVirtualInterfaceArray{})
   441  	pulumi.RegisterInputType(reflect.TypeOf((*HostedPublicVirtualInterfaceMapInput)(nil)).Elem(), HostedPublicVirtualInterfaceMap{})
   442  	pulumi.RegisterOutputType(HostedPublicVirtualInterfaceOutput{})
   443  	pulumi.RegisterOutputType(HostedPublicVirtualInterfaceArrayOutput{})
   444  	pulumi.RegisterOutputType(HostedPublicVirtualInterfaceMapOutput{})
   445  }