github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/directconnect/linkAggregationGroup.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 LAG. Connections can be added to the LAG via the `directconnect.Connection` and `directconnect.ConnectionAssociation` resources.
    16  //
    17  // > *NOTE:* When creating a LAG, if no existing connection is specified, Direct Connect will create a connection and this provider will remove this unmanaged connection during resource creation.
    18  //
    19  // ## Example Usage
    20  //
    21  // <!--Start PulumiCodeChooser -->
    22  // ```go
    23  // package main
    24  //
    25  // import (
    26  //
    27  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/directconnect"
    28  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    29  //
    30  // )
    31  //
    32  //	func main() {
    33  //		pulumi.Run(func(ctx *pulumi.Context) error {
    34  //			_, err := directconnect.NewLinkAggregationGroup(ctx, "hoge", &directconnect.LinkAggregationGroupArgs{
    35  //				Name:                 pulumi.String("tf-dx-lag"),
    36  //				ConnectionsBandwidth: pulumi.String("1Gbps"),
    37  //				Location:             pulumi.String("EqDC2"),
    38  //				ForceDestroy:         pulumi.Bool(true),
    39  //			})
    40  //			if err != nil {
    41  //				return err
    42  //			}
    43  //			return nil
    44  //		})
    45  //	}
    46  //
    47  // ```
    48  // <!--End PulumiCodeChooser -->
    49  //
    50  // ## Import
    51  //
    52  // Using `pulumi import`, import Direct Connect LAGs using the LAG `id`. For example:
    53  //
    54  // ```sh
    55  // $ pulumi import aws:directconnect/linkAggregationGroup:LinkAggregationGroup test_lag dxlag-fgnsp5rq
    56  // ```
    57  type LinkAggregationGroup struct {
    58  	pulumi.CustomResourceState
    59  
    60  	// The ARN of the LAG.
    61  	Arn pulumi.StringOutput `pulumi:"arn"`
    62  	// The ID of an existing dedicated connection to migrate to the LAG.
    63  	ConnectionId pulumi.StringPtrOutput `pulumi:"connectionId"`
    64  	// The bandwidth of the individual physical connections bundled by the LAG. Valid values: 50Mbps, 100Mbps, 200Mbps, 300Mbps, 400Mbps, 500Mbps, 1Gbps, 2Gbps, 5Gbps, 10Gbps and 100Gbps. Case sensitive.
    65  	ConnectionsBandwidth pulumi.StringOutput `pulumi:"connectionsBandwidth"`
    66  	// A boolean that indicates all connections associated with the LAG should be deleted so that the LAG can be destroyed without error. These objects are *not* recoverable.
    67  	ForceDestroy pulumi.BoolPtrOutput `pulumi:"forceDestroy"`
    68  	// Indicates whether the LAG supports a secondary BGP peer in the same address family (IPv4/IPv6).
    69  	HasLogicalRedundancy pulumi.StringOutput `pulumi:"hasLogicalRedundancy"`
    70  	// Indicates whether jumbo frames (9001 MTU) are supported.
    71  	JumboFrameCapable pulumi.BoolOutput `pulumi:"jumboFrameCapable"`
    72  	// The AWS Direct Connect location in which the LAG should be allocated. See [DescribeLocations](https://docs.aws.amazon.com/directconnect/latest/APIReference/API_DescribeLocations.html) for the list of AWS Direct Connect locations. Use `locationCode`.
    73  	Location pulumi.StringOutput `pulumi:"location"`
    74  	// The name of the LAG.
    75  	Name pulumi.StringOutput `pulumi:"name"`
    76  	// The ID of the AWS account that owns the LAG.
    77  	OwnerAccountId pulumi.StringOutput `pulumi:"ownerAccountId"`
    78  	// The name of the service provider associated with the LAG.
    79  	ProviderName pulumi.StringOutput `pulumi:"providerName"`
    80  	// 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.
    81  	Tags pulumi.StringMapOutput `pulumi:"tags"`
    82  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
    83  	//
    84  	// Deprecated: Please use `tags` instead.
    85  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
    86  }
    87  
    88  // NewLinkAggregationGroup registers a new resource with the given unique name, arguments, and options.
    89  func NewLinkAggregationGroup(ctx *pulumi.Context,
    90  	name string, args *LinkAggregationGroupArgs, opts ...pulumi.ResourceOption) (*LinkAggregationGroup, error) {
    91  	if args == nil {
    92  		return nil, errors.New("missing one or more required arguments")
    93  	}
    94  
    95  	if args.ConnectionsBandwidth == nil {
    96  		return nil, errors.New("invalid value for required argument 'ConnectionsBandwidth'")
    97  	}
    98  	if args.Location == nil {
    99  		return nil, errors.New("invalid value for required argument 'Location'")
   100  	}
   101  	opts = internal.PkgResourceDefaultOpts(opts)
   102  	var resource LinkAggregationGroup
   103  	err := ctx.RegisterResource("aws:directconnect/linkAggregationGroup:LinkAggregationGroup", name, args, &resource, opts...)
   104  	if err != nil {
   105  		return nil, err
   106  	}
   107  	return &resource, nil
   108  }
   109  
   110  // GetLinkAggregationGroup gets an existing LinkAggregationGroup resource's state with the given name, ID, and optional
   111  // state properties that are used to uniquely qualify the lookup (nil if not required).
   112  func GetLinkAggregationGroup(ctx *pulumi.Context,
   113  	name string, id pulumi.IDInput, state *LinkAggregationGroupState, opts ...pulumi.ResourceOption) (*LinkAggregationGroup, error) {
   114  	var resource LinkAggregationGroup
   115  	err := ctx.ReadResource("aws:directconnect/linkAggregationGroup:LinkAggregationGroup", name, id, state, &resource, opts...)
   116  	if err != nil {
   117  		return nil, err
   118  	}
   119  	return &resource, nil
   120  }
   121  
   122  // Input properties used for looking up and filtering LinkAggregationGroup resources.
   123  type linkAggregationGroupState struct {
   124  	// The ARN of the LAG.
   125  	Arn *string `pulumi:"arn"`
   126  	// The ID of an existing dedicated connection to migrate to the LAG.
   127  	ConnectionId *string `pulumi:"connectionId"`
   128  	// The bandwidth of the individual physical connections bundled by the LAG. Valid values: 50Mbps, 100Mbps, 200Mbps, 300Mbps, 400Mbps, 500Mbps, 1Gbps, 2Gbps, 5Gbps, 10Gbps and 100Gbps. Case sensitive.
   129  	ConnectionsBandwidth *string `pulumi:"connectionsBandwidth"`
   130  	// A boolean that indicates all connections associated with the LAG should be deleted so that the LAG can be destroyed without error. These objects are *not* recoverable.
   131  	ForceDestroy *bool `pulumi:"forceDestroy"`
   132  	// Indicates whether the LAG supports a secondary BGP peer in the same address family (IPv4/IPv6).
   133  	HasLogicalRedundancy *string `pulumi:"hasLogicalRedundancy"`
   134  	// Indicates whether jumbo frames (9001 MTU) are supported.
   135  	JumboFrameCapable *bool `pulumi:"jumboFrameCapable"`
   136  	// The AWS Direct Connect location in which the LAG should be allocated. See [DescribeLocations](https://docs.aws.amazon.com/directconnect/latest/APIReference/API_DescribeLocations.html) for the list of AWS Direct Connect locations. Use `locationCode`.
   137  	Location *string `pulumi:"location"`
   138  	// The name of the LAG.
   139  	Name *string `pulumi:"name"`
   140  	// The ID of the AWS account that owns the LAG.
   141  	OwnerAccountId *string `pulumi:"ownerAccountId"`
   142  	// The name of the service provider associated with the LAG.
   143  	ProviderName *string `pulumi:"providerName"`
   144  	// 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.
   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  }
   151  
   152  type LinkAggregationGroupState struct {
   153  	// The ARN of the LAG.
   154  	Arn pulumi.StringPtrInput
   155  	// The ID of an existing dedicated connection to migrate to the LAG.
   156  	ConnectionId pulumi.StringPtrInput
   157  	// The bandwidth of the individual physical connections bundled by the LAG. Valid values: 50Mbps, 100Mbps, 200Mbps, 300Mbps, 400Mbps, 500Mbps, 1Gbps, 2Gbps, 5Gbps, 10Gbps and 100Gbps. Case sensitive.
   158  	ConnectionsBandwidth pulumi.StringPtrInput
   159  	// A boolean that indicates all connections associated with the LAG should be deleted so that the LAG can be destroyed without error. These objects are *not* recoverable.
   160  	ForceDestroy pulumi.BoolPtrInput
   161  	// Indicates whether the LAG supports a secondary BGP peer in the same address family (IPv4/IPv6).
   162  	HasLogicalRedundancy pulumi.StringPtrInput
   163  	// Indicates whether jumbo frames (9001 MTU) are supported.
   164  	JumboFrameCapable pulumi.BoolPtrInput
   165  	// The AWS Direct Connect location in which the LAG should be allocated. See [DescribeLocations](https://docs.aws.amazon.com/directconnect/latest/APIReference/API_DescribeLocations.html) for the list of AWS Direct Connect locations. Use `locationCode`.
   166  	Location pulumi.StringPtrInput
   167  	// The name of the LAG.
   168  	Name pulumi.StringPtrInput
   169  	// The ID of the AWS account that owns the LAG.
   170  	OwnerAccountId pulumi.StringPtrInput
   171  	// The name of the service provider associated with the LAG.
   172  	ProviderName pulumi.StringPtrInput
   173  	// 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.
   174  	Tags pulumi.StringMapInput
   175  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   176  	//
   177  	// Deprecated: Please use `tags` instead.
   178  	TagsAll pulumi.StringMapInput
   179  }
   180  
   181  func (LinkAggregationGroupState) ElementType() reflect.Type {
   182  	return reflect.TypeOf((*linkAggregationGroupState)(nil)).Elem()
   183  }
   184  
   185  type linkAggregationGroupArgs struct {
   186  	// The ID of an existing dedicated connection to migrate to the LAG.
   187  	ConnectionId *string `pulumi:"connectionId"`
   188  	// The bandwidth of the individual physical connections bundled by the LAG. Valid values: 50Mbps, 100Mbps, 200Mbps, 300Mbps, 400Mbps, 500Mbps, 1Gbps, 2Gbps, 5Gbps, 10Gbps and 100Gbps. Case sensitive.
   189  	ConnectionsBandwidth string `pulumi:"connectionsBandwidth"`
   190  	// A boolean that indicates all connections associated with the LAG should be deleted so that the LAG can be destroyed without error. These objects are *not* recoverable.
   191  	ForceDestroy *bool `pulumi:"forceDestroy"`
   192  	// The AWS Direct Connect location in which the LAG should be allocated. See [DescribeLocations](https://docs.aws.amazon.com/directconnect/latest/APIReference/API_DescribeLocations.html) for the list of AWS Direct Connect locations. Use `locationCode`.
   193  	Location string `pulumi:"location"`
   194  	// The name of the LAG.
   195  	Name *string `pulumi:"name"`
   196  	// The name of the service provider associated with the LAG.
   197  	ProviderName *string `pulumi:"providerName"`
   198  	// 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.
   199  	Tags map[string]string `pulumi:"tags"`
   200  }
   201  
   202  // The set of arguments for constructing a LinkAggregationGroup resource.
   203  type LinkAggregationGroupArgs struct {
   204  	// The ID of an existing dedicated connection to migrate to the LAG.
   205  	ConnectionId pulumi.StringPtrInput
   206  	// The bandwidth of the individual physical connections bundled by the LAG. Valid values: 50Mbps, 100Mbps, 200Mbps, 300Mbps, 400Mbps, 500Mbps, 1Gbps, 2Gbps, 5Gbps, 10Gbps and 100Gbps. Case sensitive.
   207  	ConnectionsBandwidth pulumi.StringInput
   208  	// A boolean that indicates all connections associated with the LAG should be deleted so that the LAG can be destroyed without error. These objects are *not* recoverable.
   209  	ForceDestroy pulumi.BoolPtrInput
   210  	// The AWS Direct Connect location in which the LAG should be allocated. See [DescribeLocations](https://docs.aws.amazon.com/directconnect/latest/APIReference/API_DescribeLocations.html) for the list of AWS Direct Connect locations. Use `locationCode`.
   211  	Location pulumi.StringInput
   212  	// The name of the LAG.
   213  	Name pulumi.StringPtrInput
   214  	// The name of the service provider associated with the LAG.
   215  	ProviderName pulumi.StringPtrInput
   216  	// 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.
   217  	Tags pulumi.StringMapInput
   218  }
   219  
   220  func (LinkAggregationGroupArgs) ElementType() reflect.Type {
   221  	return reflect.TypeOf((*linkAggregationGroupArgs)(nil)).Elem()
   222  }
   223  
   224  type LinkAggregationGroupInput interface {
   225  	pulumi.Input
   226  
   227  	ToLinkAggregationGroupOutput() LinkAggregationGroupOutput
   228  	ToLinkAggregationGroupOutputWithContext(ctx context.Context) LinkAggregationGroupOutput
   229  }
   230  
   231  func (*LinkAggregationGroup) ElementType() reflect.Type {
   232  	return reflect.TypeOf((**LinkAggregationGroup)(nil)).Elem()
   233  }
   234  
   235  func (i *LinkAggregationGroup) ToLinkAggregationGroupOutput() LinkAggregationGroupOutput {
   236  	return i.ToLinkAggregationGroupOutputWithContext(context.Background())
   237  }
   238  
   239  func (i *LinkAggregationGroup) ToLinkAggregationGroupOutputWithContext(ctx context.Context) LinkAggregationGroupOutput {
   240  	return pulumi.ToOutputWithContext(ctx, i).(LinkAggregationGroupOutput)
   241  }
   242  
   243  // LinkAggregationGroupArrayInput is an input type that accepts LinkAggregationGroupArray and LinkAggregationGroupArrayOutput values.
   244  // You can construct a concrete instance of `LinkAggregationGroupArrayInput` via:
   245  //
   246  //	LinkAggregationGroupArray{ LinkAggregationGroupArgs{...} }
   247  type LinkAggregationGroupArrayInput interface {
   248  	pulumi.Input
   249  
   250  	ToLinkAggregationGroupArrayOutput() LinkAggregationGroupArrayOutput
   251  	ToLinkAggregationGroupArrayOutputWithContext(context.Context) LinkAggregationGroupArrayOutput
   252  }
   253  
   254  type LinkAggregationGroupArray []LinkAggregationGroupInput
   255  
   256  func (LinkAggregationGroupArray) ElementType() reflect.Type {
   257  	return reflect.TypeOf((*[]*LinkAggregationGroup)(nil)).Elem()
   258  }
   259  
   260  func (i LinkAggregationGroupArray) ToLinkAggregationGroupArrayOutput() LinkAggregationGroupArrayOutput {
   261  	return i.ToLinkAggregationGroupArrayOutputWithContext(context.Background())
   262  }
   263  
   264  func (i LinkAggregationGroupArray) ToLinkAggregationGroupArrayOutputWithContext(ctx context.Context) LinkAggregationGroupArrayOutput {
   265  	return pulumi.ToOutputWithContext(ctx, i).(LinkAggregationGroupArrayOutput)
   266  }
   267  
   268  // LinkAggregationGroupMapInput is an input type that accepts LinkAggregationGroupMap and LinkAggregationGroupMapOutput values.
   269  // You can construct a concrete instance of `LinkAggregationGroupMapInput` via:
   270  //
   271  //	LinkAggregationGroupMap{ "key": LinkAggregationGroupArgs{...} }
   272  type LinkAggregationGroupMapInput interface {
   273  	pulumi.Input
   274  
   275  	ToLinkAggregationGroupMapOutput() LinkAggregationGroupMapOutput
   276  	ToLinkAggregationGroupMapOutputWithContext(context.Context) LinkAggregationGroupMapOutput
   277  }
   278  
   279  type LinkAggregationGroupMap map[string]LinkAggregationGroupInput
   280  
   281  func (LinkAggregationGroupMap) ElementType() reflect.Type {
   282  	return reflect.TypeOf((*map[string]*LinkAggregationGroup)(nil)).Elem()
   283  }
   284  
   285  func (i LinkAggregationGroupMap) ToLinkAggregationGroupMapOutput() LinkAggregationGroupMapOutput {
   286  	return i.ToLinkAggregationGroupMapOutputWithContext(context.Background())
   287  }
   288  
   289  func (i LinkAggregationGroupMap) ToLinkAggregationGroupMapOutputWithContext(ctx context.Context) LinkAggregationGroupMapOutput {
   290  	return pulumi.ToOutputWithContext(ctx, i).(LinkAggregationGroupMapOutput)
   291  }
   292  
   293  type LinkAggregationGroupOutput struct{ *pulumi.OutputState }
   294  
   295  func (LinkAggregationGroupOutput) ElementType() reflect.Type {
   296  	return reflect.TypeOf((**LinkAggregationGroup)(nil)).Elem()
   297  }
   298  
   299  func (o LinkAggregationGroupOutput) ToLinkAggregationGroupOutput() LinkAggregationGroupOutput {
   300  	return o
   301  }
   302  
   303  func (o LinkAggregationGroupOutput) ToLinkAggregationGroupOutputWithContext(ctx context.Context) LinkAggregationGroupOutput {
   304  	return o
   305  }
   306  
   307  // The ARN of the LAG.
   308  func (o LinkAggregationGroupOutput) Arn() pulumi.StringOutput {
   309  	return o.ApplyT(func(v *LinkAggregationGroup) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   310  }
   311  
   312  // The ID of an existing dedicated connection to migrate to the LAG.
   313  func (o LinkAggregationGroupOutput) ConnectionId() pulumi.StringPtrOutput {
   314  	return o.ApplyT(func(v *LinkAggregationGroup) pulumi.StringPtrOutput { return v.ConnectionId }).(pulumi.StringPtrOutput)
   315  }
   316  
   317  // The bandwidth of the individual physical connections bundled by the LAG. Valid values: 50Mbps, 100Mbps, 200Mbps, 300Mbps, 400Mbps, 500Mbps, 1Gbps, 2Gbps, 5Gbps, 10Gbps and 100Gbps. Case sensitive.
   318  func (o LinkAggregationGroupOutput) ConnectionsBandwidth() pulumi.StringOutput {
   319  	return o.ApplyT(func(v *LinkAggregationGroup) pulumi.StringOutput { return v.ConnectionsBandwidth }).(pulumi.StringOutput)
   320  }
   321  
   322  // A boolean that indicates all connections associated with the LAG should be deleted so that the LAG can be destroyed without error. These objects are *not* recoverable.
   323  func (o LinkAggregationGroupOutput) ForceDestroy() pulumi.BoolPtrOutput {
   324  	return o.ApplyT(func(v *LinkAggregationGroup) pulumi.BoolPtrOutput { return v.ForceDestroy }).(pulumi.BoolPtrOutput)
   325  }
   326  
   327  // Indicates whether the LAG supports a secondary BGP peer in the same address family (IPv4/IPv6).
   328  func (o LinkAggregationGroupOutput) HasLogicalRedundancy() pulumi.StringOutput {
   329  	return o.ApplyT(func(v *LinkAggregationGroup) pulumi.StringOutput { return v.HasLogicalRedundancy }).(pulumi.StringOutput)
   330  }
   331  
   332  // Indicates whether jumbo frames (9001 MTU) are supported.
   333  func (o LinkAggregationGroupOutput) JumboFrameCapable() pulumi.BoolOutput {
   334  	return o.ApplyT(func(v *LinkAggregationGroup) pulumi.BoolOutput { return v.JumboFrameCapable }).(pulumi.BoolOutput)
   335  }
   336  
   337  // The AWS Direct Connect location in which the LAG should be allocated. See [DescribeLocations](https://docs.aws.amazon.com/directconnect/latest/APIReference/API_DescribeLocations.html) for the list of AWS Direct Connect locations. Use `locationCode`.
   338  func (o LinkAggregationGroupOutput) Location() pulumi.StringOutput {
   339  	return o.ApplyT(func(v *LinkAggregationGroup) pulumi.StringOutput { return v.Location }).(pulumi.StringOutput)
   340  }
   341  
   342  // The name of the LAG.
   343  func (o LinkAggregationGroupOutput) Name() pulumi.StringOutput {
   344  	return o.ApplyT(func(v *LinkAggregationGroup) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   345  }
   346  
   347  // The ID of the AWS account that owns the LAG.
   348  func (o LinkAggregationGroupOutput) OwnerAccountId() pulumi.StringOutput {
   349  	return o.ApplyT(func(v *LinkAggregationGroup) pulumi.StringOutput { return v.OwnerAccountId }).(pulumi.StringOutput)
   350  }
   351  
   352  // The name of the service provider associated with the LAG.
   353  func (o LinkAggregationGroupOutput) ProviderName() pulumi.StringOutput {
   354  	return o.ApplyT(func(v *LinkAggregationGroup) pulumi.StringOutput { return v.ProviderName }).(pulumi.StringOutput)
   355  }
   356  
   357  // 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.
   358  func (o LinkAggregationGroupOutput) Tags() pulumi.StringMapOutput {
   359  	return o.ApplyT(func(v *LinkAggregationGroup) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   360  }
   361  
   362  // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   363  //
   364  // Deprecated: Please use `tags` instead.
   365  func (o LinkAggregationGroupOutput) TagsAll() pulumi.StringMapOutput {
   366  	return o.ApplyT(func(v *LinkAggregationGroup) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   367  }
   368  
   369  type LinkAggregationGroupArrayOutput struct{ *pulumi.OutputState }
   370  
   371  func (LinkAggregationGroupArrayOutput) ElementType() reflect.Type {
   372  	return reflect.TypeOf((*[]*LinkAggregationGroup)(nil)).Elem()
   373  }
   374  
   375  func (o LinkAggregationGroupArrayOutput) ToLinkAggregationGroupArrayOutput() LinkAggregationGroupArrayOutput {
   376  	return o
   377  }
   378  
   379  func (o LinkAggregationGroupArrayOutput) ToLinkAggregationGroupArrayOutputWithContext(ctx context.Context) LinkAggregationGroupArrayOutput {
   380  	return o
   381  }
   382  
   383  func (o LinkAggregationGroupArrayOutput) Index(i pulumi.IntInput) LinkAggregationGroupOutput {
   384  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *LinkAggregationGroup {
   385  		return vs[0].([]*LinkAggregationGroup)[vs[1].(int)]
   386  	}).(LinkAggregationGroupOutput)
   387  }
   388  
   389  type LinkAggregationGroupMapOutput struct{ *pulumi.OutputState }
   390  
   391  func (LinkAggregationGroupMapOutput) ElementType() reflect.Type {
   392  	return reflect.TypeOf((*map[string]*LinkAggregationGroup)(nil)).Elem()
   393  }
   394  
   395  func (o LinkAggregationGroupMapOutput) ToLinkAggregationGroupMapOutput() LinkAggregationGroupMapOutput {
   396  	return o
   397  }
   398  
   399  func (o LinkAggregationGroupMapOutput) ToLinkAggregationGroupMapOutputWithContext(ctx context.Context) LinkAggregationGroupMapOutput {
   400  	return o
   401  }
   402  
   403  func (o LinkAggregationGroupMapOutput) MapIndex(k pulumi.StringInput) LinkAggregationGroupOutput {
   404  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *LinkAggregationGroup {
   405  		return vs[0].(map[string]*LinkAggregationGroup)[vs[1].(string)]
   406  	}).(LinkAggregationGroupOutput)
   407  }
   408  
   409  func init() {
   410  	pulumi.RegisterInputType(reflect.TypeOf((*LinkAggregationGroupInput)(nil)).Elem(), &LinkAggregationGroup{})
   411  	pulumi.RegisterInputType(reflect.TypeOf((*LinkAggregationGroupArrayInput)(nil)).Elem(), LinkAggregationGroupArray{})
   412  	pulumi.RegisterInputType(reflect.TypeOf((*LinkAggregationGroupMapInput)(nil)).Elem(), LinkAggregationGroupMap{})
   413  	pulumi.RegisterOutputType(LinkAggregationGroupOutput{})
   414  	pulumi.RegisterOutputType(LinkAggregationGroupArrayOutput{})
   415  	pulumi.RegisterOutputType(LinkAggregationGroupMapOutput{})
   416  }