github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/globalaccelerator/endpointGroup.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 globalaccelerator
     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 Global Accelerator endpoint group.
    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/globalaccelerator"
    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 := globalaccelerator.NewEndpointGroup(ctx, "example", &globalaccelerator.EndpointGroupArgs{
    33  //				ListenerArn: pulumi.Any(exampleAwsGlobalacceleratorListener.Id),
    34  //				EndpointConfigurations: globalaccelerator.EndpointGroupEndpointConfigurationArray{
    35  //					&globalaccelerator.EndpointGroupEndpointConfigurationArgs{
    36  //						EndpointId: pulumi.Any(exampleAwsLb.Arn),
    37  //						Weight:     pulumi.Int(100),
    38  //					},
    39  //				},
    40  //			})
    41  //			if err != nil {
    42  //				return err
    43  //			}
    44  //			return nil
    45  //		})
    46  //	}
    47  //
    48  // ```
    49  // <!--End PulumiCodeChooser -->
    50  //
    51  // ## Import
    52  //
    53  // Using `pulumi import`, import Global Accelerator endpoint groups using the `id`. For example:
    54  //
    55  // ```sh
    56  // $ pulumi import aws:globalaccelerator/endpointGroup:EndpointGroup example arn:aws:globalaccelerator::111111111111:accelerator/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/listener/xxxxxxx/endpoint-group/xxxxxxxx
    57  // ```
    58  type EndpointGroup struct {
    59  	pulumi.CustomResourceState
    60  
    61  	// The Amazon Resource Name (ARN) of the endpoint group.
    62  	Arn pulumi.StringOutput `pulumi:"arn"`
    63  	// The list of endpoint objects. Fields documented below.
    64  	EndpointConfigurations EndpointGroupEndpointConfigurationArrayOutput `pulumi:"endpointConfigurations"`
    65  	// The name of the AWS Region where the endpoint group is located.
    66  	EndpointGroupRegion pulumi.StringOutput `pulumi:"endpointGroupRegion"`
    67  	// The time—10 seconds or 30 seconds—between each health check for an endpoint. The default value is 30.
    68  	HealthCheckIntervalSeconds pulumi.IntPtrOutput `pulumi:"healthCheckIntervalSeconds"`
    69  	// If the protocol is HTTP/S, then this specifies the path that is the destination for health check targets. The default value is slash (`/`). the provider will only perform drift detection of its value when present in a configuration.
    70  	HealthCheckPath pulumi.StringOutput `pulumi:"healthCheckPath"`
    71  	// The port that AWS Global Accelerator uses to check the health of endpoints that are part of this endpoint group. The default port is the listener port that this endpoint group is associated with. If listener port is a list of ports, Global Accelerator uses the first port in the list.
    72  	// the provider will only perform drift detection of its value when present in a configuration.
    73  	HealthCheckPort pulumi.IntOutput `pulumi:"healthCheckPort"`
    74  	// The protocol that AWS Global Accelerator uses to check the health of endpoints that are part of this endpoint group. The default value is TCP.
    75  	HealthCheckProtocol pulumi.StringPtrOutput `pulumi:"healthCheckProtocol"`
    76  	// The Amazon Resource Name (ARN) of the listener.
    77  	ListenerArn pulumi.StringOutput `pulumi:"listenerArn"`
    78  	// Override specific listener ports used to route traffic to endpoints that are part of this endpoint group. Fields documented below.
    79  	PortOverrides EndpointGroupPortOverrideArrayOutput `pulumi:"portOverrides"`
    80  	// The number of consecutive health checks required to set the state of a healthy endpoint to unhealthy, or to set an unhealthy endpoint to healthy. The default value is 3.
    81  	ThresholdCount pulumi.IntPtrOutput `pulumi:"thresholdCount"`
    82  	// The percentage of traffic to send to an AWS Region. Additional traffic is distributed to other endpoint groups for this listener. The default value is 100.
    83  	TrafficDialPercentage pulumi.Float64PtrOutput `pulumi:"trafficDialPercentage"`
    84  }
    85  
    86  // NewEndpointGroup registers a new resource with the given unique name, arguments, and options.
    87  func NewEndpointGroup(ctx *pulumi.Context,
    88  	name string, args *EndpointGroupArgs, opts ...pulumi.ResourceOption) (*EndpointGroup, error) {
    89  	if args == nil {
    90  		return nil, errors.New("missing one or more required arguments")
    91  	}
    92  
    93  	if args.ListenerArn == nil {
    94  		return nil, errors.New("invalid value for required argument 'ListenerArn'")
    95  	}
    96  	opts = internal.PkgResourceDefaultOpts(opts)
    97  	var resource EndpointGroup
    98  	err := ctx.RegisterResource("aws:globalaccelerator/endpointGroup:EndpointGroup", name, args, &resource, opts...)
    99  	if err != nil {
   100  		return nil, err
   101  	}
   102  	return &resource, nil
   103  }
   104  
   105  // GetEndpointGroup gets an existing EndpointGroup resource's state with the given name, ID, and optional
   106  // state properties that are used to uniquely qualify the lookup (nil if not required).
   107  func GetEndpointGroup(ctx *pulumi.Context,
   108  	name string, id pulumi.IDInput, state *EndpointGroupState, opts ...pulumi.ResourceOption) (*EndpointGroup, error) {
   109  	var resource EndpointGroup
   110  	err := ctx.ReadResource("aws:globalaccelerator/endpointGroup:EndpointGroup", name, id, state, &resource, opts...)
   111  	if err != nil {
   112  		return nil, err
   113  	}
   114  	return &resource, nil
   115  }
   116  
   117  // Input properties used for looking up and filtering EndpointGroup resources.
   118  type endpointGroupState struct {
   119  	// The Amazon Resource Name (ARN) of the endpoint group.
   120  	Arn *string `pulumi:"arn"`
   121  	// The list of endpoint objects. Fields documented below.
   122  	EndpointConfigurations []EndpointGroupEndpointConfiguration `pulumi:"endpointConfigurations"`
   123  	// The name of the AWS Region where the endpoint group is located.
   124  	EndpointGroupRegion *string `pulumi:"endpointGroupRegion"`
   125  	// The time—10 seconds or 30 seconds—between each health check for an endpoint. The default value is 30.
   126  	HealthCheckIntervalSeconds *int `pulumi:"healthCheckIntervalSeconds"`
   127  	// If the protocol is HTTP/S, then this specifies the path that is the destination for health check targets. The default value is slash (`/`). the provider will only perform drift detection of its value when present in a configuration.
   128  	HealthCheckPath *string `pulumi:"healthCheckPath"`
   129  	// The port that AWS Global Accelerator uses to check the health of endpoints that are part of this endpoint group. The default port is the listener port that this endpoint group is associated with. If listener port is a list of ports, Global Accelerator uses the first port in the list.
   130  	// the provider will only perform drift detection of its value when present in a configuration.
   131  	HealthCheckPort *int `pulumi:"healthCheckPort"`
   132  	// The protocol that AWS Global Accelerator uses to check the health of endpoints that are part of this endpoint group. The default value is TCP.
   133  	HealthCheckProtocol *string `pulumi:"healthCheckProtocol"`
   134  	// The Amazon Resource Name (ARN) of the listener.
   135  	ListenerArn *string `pulumi:"listenerArn"`
   136  	// Override specific listener ports used to route traffic to endpoints that are part of this endpoint group. Fields documented below.
   137  	PortOverrides []EndpointGroupPortOverride `pulumi:"portOverrides"`
   138  	// The number of consecutive health checks required to set the state of a healthy endpoint to unhealthy, or to set an unhealthy endpoint to healthy. The default value is 3.
   139  	ThresholdCount *int `pulumi:"thresholdCount"`
   140  	// The percentage of traffic to send to an AWS Region. Additional traffic is distributed to other endpoint groups for this listener. The default value is 100.
   141  	TrafficDialPercentage *float64 `pulumi:"trafficDialPercentage"`
   142  }
   143  
   144  type EndpointGroupState struct {
   145  	// The Amazon Resource Name (ARN) of the endpoint group.
   146  	Arn pulumi.StringPtrInput
   147  	// The list of endpoint objects. Fields documented below.
   148  	EndpointConfigurations EndpointGroupEndpointConfigurationArrayInput
   149  	// The name of the AWS Region where the endpoint group is located.
   150  	EndpointGroupRegion pulumi.StringPtrInput
   151  	// The time—10 seconds or 30 seconds—between each health check for an endpoint. The default value is 30.
   152  	HealthCheckIntervalSeconds pulumi.IntPtrInput
   153  	// If the protocol is HTTP/S, then this specifies the path that is the destination for health check targets. The default value is slash (`/`). the provider will only perform drift detection of its value when present in a configuration.
   154  	HealthCheckPath pulumi.StringPtrInput
   155  	// The port that AWS Global Accelerator uses to check the health of endpoints that are part of this endpoint group. The default port is the listener port that this endpoint group is associated with. If listener port is a list of ports, Global Accelerator uses the first port in the list.
   156  	// the provider will only perform drift detection of its value when present in a configuration.
   157  	HealthCheckPort pulumi.IntPtrInput
   158  	// The protocol that AWS Global Accelerator uses to check the health of endpoints that are part of this endpoint group. The default value is TCP.
   159  	HealthCheckProtocol pulumi.StringPtrInput
   160  	// The Amazon Resource Name (ARN) of the listener.
   161  	ListenerArn pulumi.StringPtrInput
   162  	// Override specific listener ports used to route traffic to endpoints that are part of this endpoint group. Fields documented below.
   163  	PortOverrides EndpointGroupPortOverrideArrayInput
   164  	// The number of consecutive health checks required to set the state of a healthy endpoint to unhealthy, or to set an unhealthy endpoint to healthy. The default value is 3.
   165  	ThresholdCount pulumi.IntPtrInput
   166  	// The percentage of traffic to send to an AWS Region. Additional traffic is distributed to other endpoint groups for this listener. The default value is 100.
   167  	TrafficDialPercentage pulumi.Float64PtrInput
   168  }
   169  
   170  func (EndpointGroupState) ElementType() reflect.Type {
   171  	return reflect.TypeOf((*endpointGroupState)(nil)).Elem()
   172  }
   173  
   174  type endpointGroupArgs struct {
   175  	// The list of endpoint objects. Fields documented below.
   176  	EndpointConfigurations []EndpointGroupEndpointConfiguration `pulumi:"endpointConfigurations"`
   177  	// The name of the AWS Region where the endpoint group is located.
   178  	EndpointGroupRegion *string `pulumi:"endpointGroupRegion"`
   179  	// The time—10 seconds or 30 seconds—between each health check for an endpoint. The default value is 30.
   180  	HealthCheckIntervalSeconds *int `pulumi:"healthCheckIntervalSeconds"`
   181  	// If the protocol is HTTP/S, then this specifies the path that is the destination for health check targets. The default value is slash (`/`). the provider will only perform drift detection of its value when present in a configuration.
   182  	HealthCheckPath *string `pulumi:"healthCheckPath"`
   183  	// The port that AWS Global Accelerator uses to check the health of endpoints that are part of this endpoint group. The default port is the listener port that this endpoint group is associated with. If listener port is a list of ports, Global Accelerator uses the first port in the list.
   184  	// the provider will only perform drift detection of its value when present in a configuration.
   185  	HealthCheckPort *int `pulumi:"healthCheckPort"`
   186  	// The protocol that AWS Global Accelerator uses to check the health of endpoints that are part of this endpoint group. The default value is TCP.
   187  	HealthCheckProtocol *string `pulumi:"healthCheckProtocol"`
   188  	// The Amazon Resource Name (ARN) of the listener.
   189  	ListenerArn string `pulumi:"listenerArn"`
   190  	// Override specific listener ports used to route traffic to endpoints that are part of this endpoint group. Fields documented below.
   191  	PortOverrides []EndpointGroupPortOverride `pulumi:"portOverrides"`
   192  	// The number of consecutive health checks required to set the state of a healthy endpoint to unhealthy, or to set an unhealthy endpoint to healthy. The default value is 3.
   193  	ThresholdCount *int `pulumi:"thresholdCount"`
   194  	// The percentage of traffic to send to an AWS Region. Additional traffic is distributed to other endpoint groups for this listener. The default value is 100.
   195  	TrafficDialPercentage *float64 `pulumi:"trafficDialPercentage"`
   196  }
   197  
   198  // The set of arguments for constructing a EndpointGroup resource.
   199  type EndpointGroupArgs struct {
   200  	// The list of endpoint objects. Fields documented below.
   201  	EndpointConfigurations EndpointGroupEndpointConfigurationArrayInput
   202  	// The name of the AWS Region where the endpoint group is located.
   203  	EndpointGroupRegion pulumi.StringPtrInput
   204  	// The time—10 seconds or 30 seconds—between each health check for an endpoint. The default value is 30.
   205  	HealthCheckIntervalSeconds pulumi.IntPtrInput
   206  	// If the protocol is HTTP/S, then this specifies the path that is the destination for health check targets. The default value is slash (`/`). the provider will only perform drift detection of its value when present in a configuration.
   207  	HealthCheckPath pulumi.StringPtrInput
   208  	// The port that AWS Global Accelerator uses to check the health of endpoints that are part of this endpoint group. The default port is the listener port that this endpoint group is associated with. If listener port is a list of ports, Global Accelerator uses the first port in the list.
   209  	// the provider will only perform drift detection of its value when present in a configuration.
   210  	HealthCheckPort pulumi.IntPtrInput
   211  	// The protocol that AWS Global Accelerator uses to check the health of endpoints that are part of this endpoint group. The default value is TCP.
   212  	HealthCheckProtocol pulumi.StringPtrInput
   213  	// The Amazon Resource Name (ARN) of the listener.
   214  	ListenerArn pulumi.StringInput
   215  	// Override specific listener ports used to route traffic to endpoints that are part of this endpoint group. Fields documented below.
   216  	PortOverrides EndpointGroupPortOverrideArrayInput
   217  	// The number of consecutive health checks required to set the state of a healthy endpoint to unhealthy, or to set an unhealthy endpoint to healthy. The default value is 3.
   218  	ThresholdCount pulumi.IntPtrInput
   219  	// The percentage of traffic to send to an AWS Region. Additional traffic is distributed to other endpoint groups for this listener. The default value is 100.
   220  	TrafficDialPercentage pulumi.Float64PtrInput
   221  }
   222  
   223  func (EndpointGroupArgs) ElementType() reflect.Type {
   224  	return reflect.TypeOf((*endpointGroupArgs)(nil)).Elem()
   225  }
   226  
   227  type EndpointGroupInput interface {
   228  	pulumi.Input
   229  
   230  	ToEndpointGroupOutput() EndpointGroupOutput
   231  	ToEndpointGroupOutputWithContext(ctx context.Context) EndpointGroupOutput
   232  }
   233  
   234  func (*EndpointGroup) ElementType() reflect.Type {
   235  	return reflect.TypeOf((**EndpointGroup)(nil)).Elem()
   236  }
   237  
   238  func (i *EndpointGroup) ToEndpointGroupOutput() EndpointGroupOutput {
   239  	return i.ToEndpointGroupOutputWithContext(context.Background())
   240  }
   241  
   242  func (i *EndpointGroup) ToEndpointGroupOutputWithContext(ctx context.Context) EndpointGroupOutput {
   243  	return pulumi.ToOutputWithContext(ctx, i).(EndpointGroupOutput)
   244  }
   245  
   246  // EndpointGroupArrayInput is an input type that accepts EndpointGroupArray and EndpointGroupArrayOutput values.
   247  // You can construct a concrete instance of `EndpointGroupArrayInput` via:
   248  //
   249  //	EndpointGroupArray{ EndpointGroupArgs{...} }
   250  type EndpointGroupArrayInput interface {
   251  	pulumi.Input
   252  
   253  	ToEndpointGroupArrayOutput() EndpointGroupArrayOutput
   254  	ToEndpointGroupArrayOutputWithContext(context.Context) EndpointGroupArrayOutput
   255  }
   256  
   257  type EndpointGroupArray []EndpointGroupInput
   258  
   259  func (EndpointGroupArray) ElementType() reflect.Type {
   260  	return reflect.TypeOf((*[]*EndpointGroup)(nil)).Elem()
   261  }
   262  
   263  func (i EndpointGroupArray) ToEndpointGroupArrayOutput() EndpointGroupArrayOutput {
   264  	return i.ToEndpointGroupArrayOutputWithContext(context.Background())
   265  }
   266  
   267  func (i EndpointGroupArray) ToEndpointGroupArrayOutputWithContext(ctx context.Context) EndpointGroupArrayOutput {
   268  	return pulumi.ToOutputWithContext(ctx, i).(EndpointGroupArrayOutput)
   269  }
   270  
   271  // EndpointGroupMapInput is an input type that accepts EndpointGroupMap and EndpointGroupMapOutput values.
   272  // You can construct a concrete instance of `EndpointGroupMapInput` via:
   273  //
   274  //	EndpointGroupMap{ "key": EndpointGroupArgs{...} }
   275  type EndpointGroupMapInput interface {
   276  	pulumi.Input
   277  
   278  	ToEndpointGroupMapOutput() EndpointGroupMapOutput
   279  	ToEndpointGroupMapOutputWithContext(context.Context) EndpointGroupMapOutput
   280  }
   281  
   282  type EndpointGroupMap map[string]EndpointGroupInput
   283  
   284  func (EndpointGroupMap) ElementType() reflect.Type {
   285  	return reflect.TypeOf((*map[string]*EndpointGroup)(nil)).Elem()
   286  }
   287  
   288  func (i EndpointGroupMap) ToEndpointGroupMapOutput() EndpointGroupMapOutput {
   289  	return i.ToEndpointGroupMapOutputWithContext(context.Background())
   290  }
   291  
   292  func (i EndpointGroupMap) ToEndpointGroupMapOutputWithContext(ctx context.Context) EndpointGroupMapOutput {
   293  	return pulumi.ToOutputWithContext(ctx, i).(EndpointGroupMapOutput)
   294  }
   295  
   296  type EndpointGroupOutput struct{ *pulumi.OutputState }
   297  
   298  func (EndpointGroupOutput) ElementType() reflect.Type {
   299  	return reflect.TypeOf((**EndpointGroup)(nil)).Elem()
   300  }
   301  
   302  func (o EndpointGroupOutput) ToEndpointGroupOutput() EndpointGroupOutput {
   303  	return o
   304  }
   305  
   306  func (o EndpointGroupOutput) ToEndpointGroupOutputWithContext(ctx context.Context) EndpointGroupOutput {
   307  	return o
   308  }
   309  
   310  // The Amazon Resource Name (ARN) of the endpoint group.
   311  func (o EndpointGroupOutput) Arn() pulumi.StringOutput {
   312  	return o.ApplyT(func(v *EndpointGroup) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   313  }
   314  
   315  // The list of endpoint objects. Fields documented below.
   316  func (o EndpointGroupOutput) EndpointConfigurations() EndpointGroupEndpointConfigurationArrayOutput {
   317  	return o.ApplyT(func(v *EndpointGroup) EndpointGroupEndpointConfigurationArrayOutput { return v.EndpointConfigurations }).(EndpointGroupEndpointConfigurationArrayOutput)
   318  }
   319  
   320  // The name of the AWS Region where the endpoint group is located.
   321  func (o EndpointGroupOutput) EndpointGroupRegion() pulumi.StringOutput {
   322  	return o.ApplyT(func(v *EndpointGroup) pulumi.StringOutput { return v.EndpointGroupRegion }).(pulumi.StringOutput)
   323  }
   324  
   325  // The time—10 seconds or 30 seconds—between each health check for an endpoint. The default value is 30.
   326  func (o EndpointGroupOutput) HealthCheckIntervalSeconds() pulumi.IntPtrOutput {
   327  	return o.ApplyT(func(v *EndpointGroup) pulumi.IntPtrOutput { return v.HealthCheckIntervalSeconds }).(pulumi.IntPtrOutput)
   328  }
   329  
   330  // If the protocol is HTTP/S, then this specifies the path that is the destination for health check targets. The default value is slash (`/`). the provider will only perform drift detection of its value when present in a configuration.
   331  func (o EndpointGroupOutput) HealthCheckPath() pulumi.StringOutput {
   332  	return o.ApplyT(func(v *EndpointGroup) pulumi.StringOutput { return v.HealthCheckPath }).(pulumi.StringOutput)
   333  }
   334  
   335  // The port that AWS Global Accelerator uses to check the health of endpoints that are part of this endpoint group. The default port is the listener port that this endpoint group is associated with. If listener port is a list of ports, Global Accelerator uses the first port in the list.
   336  // the provider will only perform drift detection of its value when present in a configuration.
   337  func (o EndpointGroupOutput) HealthCheckPort() pulumi.IntOutput {
   338  	return o.ApplyT(func(v *EndpointGroup) pulumi.IntOutput { return v.HealthCheckPort }).(pulumi.IntOutput)
   339  }
   340  
   341  // The protocol that AWS Global Accelerator uses to check the health of endpoints that are part of this endpoint group. The default value is TCP.
   342  func (o EndpointGroupOutput) HealthCheckProtocol() pulumi.StringPtrOutput {
   343  	return o.ApplyT(func(v *EndpointGroup) pulumi.StringPtrOutput { return v.HealthCheckProtocol }).(pulumi.StringPtrOutput)
   344  }
   345  
   346  // The Amazon Resource Name (ARN) of the listener.
   347  func (o EndpointGroupOutput) ListenerArn() pulumi.StringOutput {
   348  	return o.ApplyT(func(v *EndpointGroup) pulumi.StringOutput { return v.ListenerArn }).(pulumi.StringOutput)
   349  }
   350  
   351  // Override specific listener ports used to route traffic to endpoints that are part of this endpoint group. Fields documented below.
   352  func (o EndpointGroupOutput) PortOverrides() EndpointGroupPortOverrideArrayOutput {
   353  	return o.ApplyT(func(v *EndpointGroup) EndpointGroupPortOverrideArrayOutput { return v.PortOverrides }).(EndpointGroupPortOverrideArrayOutput)
   354  }
   355  
   356  // The number of consecutive health checks required to set the state of a healthy endpoint to unhealthy, or to set an unhealthy endpoint to healthy. The default value is 3.
   357  func (o EndpointGroupOutput) ThresholdCount() pulumi.IntPtrOutput {
   358  	return o.ApplyT(func(v *EndpointGroup) pulumi.IntPtrOutput { return v.ThresholdCount }).(pulumi.IntPtrOutput)
   359  }
   360  
   361  // The percentage of traffic to send to an AWS Region. Additional traffic is distributed to other endpoint groups for this listener. The default value is 100.
   362  func (o EndpointGroupOutput) TrafficDialPercentage() pulumi.Float64PtrOutput {
   363  	return o.ApplyT(func(v *EndpointGroup) pulumi.Float64PtrOutput { return v.TrafficDialPercentage }).(pulumi.Float64PtrOutput)
   364  }
   365  
   366  type EndpointGroupArrayOutput struct{ *pulumi.OutputState }
   367  
   368  func (EndpointGroupArrayOutput) ElementType() reflect.Type {
   369  	return reflect.TypeOf((*[]*EndpointGroup)(nil)).Elem()
   370  }
   371  
   372  func (o EndpointGroupArrayOutput) ToEndpointGroupArrayOutput() EndpointGroupArrayOutput {
   373  	return o
   374  }
   375  
   376  func (o EndpointGroupArrayOutput) ToEndpointGroupArrayOutputWithContext(ctx context.Context) EndpointGroupArrayOutput {
   377  	return o
   378  }
   379  
   380  func (o EndpointGroupArrayOutput) Index(i pulumi.IntInput) EndpointGroupOutput {
   381  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *EndpointGroup {
   382  		return vs[0].([]*EndpointGroup)[vs[1].(int)]
   383  	}).(EndpointGroupOutput)
   384  }
   385  
   386  type EndpointGroupMapOutput struct{ *pulumi.OutputState }
   387  
   388  func (EndpointGroupMapOutput) ElementType() reflect.Type {
   389  	return reflect.TypeOf((*map[string]*EndpointGroup)(nil)).Elem()
   390  }
   391  
   392  func (o EndpointGroupMapOutput) ToEndpointGroupMapOutput() EndpointGroupMapOutput {
   393  	return o
   394  }
   395  
   396  func (o EndpointGroupMapOutput) ToEndpointGroupMapOutputWithContext(ctx context.Context) EndpointGroupMapOutput {
   397  	return o
   398  }
   399  
   400  func (o EndpointGroupMapOutput) MapIndex(k pulumi.StringInput) EndpointGroupOutput {
   401  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *EndpointGroup {
   402  		return vs[0].(map[string]*EndpointGroup)[vs[1].(string)]
   403  	}).(EndpointGroupOutput)
   404  }
   405  
   406  func init() {
   407  	pulumi.RegisterInputType(reflect.TypeOf((*EndpointGroupInput)(nil)).Elem(), &EndpointGroup{})
   408  	pulumi.RegisterInputType(reflect.TypeOf((*EndpointGroupArrayInput)(nil)).Elem(), EndpointGroupArray{})
   409  	pulumi.RegisterInputType(reflect.TypeOf((*EndpointGroupMapInput)(nil)).Elem(), EndpointGroupMap{})
   410  	pulumi.RegisterOutputType(EndpointGroupOutput{})
   411  	pulumi.RegisterOutputType(EndpointGroupArrayOutput{})
   412  	pulumi.RegisterOutputType(EndpointGroupMapOutput{})
   413  }