github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/route53/resolverEndpoint.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 route53
     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 Route 53 Resolver endpoint 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/route53"
    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 := route53.NewResolverEndpoint(ctx, "foo", &route53.ResolverEndpointArgs{
    33  //				Name:      pulumi.String("foo"),
    34  //				Direction: pulumi.String("INBOUND"),
    35  //				SecurityGroupIds: pulumi.StringArray{
    36  //					sg1.Id,
    37  //					sg2.Id,
    38  //				},
    39  //				IpAddresses: route53.ResolverEndpointIpAddressArray{
    40  //					&route53.ResolverEndpointIpAddressArgs{
    41  //						SubnetId: pulumi.Any(sn1.Id),
    42  //					},
    43  //					&route53.ResolverEndpointIpAddressArgs{
    44  //						SubnetId: pulumi.Any(sn2.Id),
    45  //						Ip:       pulumi.String("10.0.64.4"),
    46  //					},
    47  //				},
    48  //				Protocols: pulumi.StringArray{
    49  //					pulumi.String("Do53"),
    50  //					pulumi.String("DoH"),
    51  //				},
    52  //				Tags: pulumi.StringMap{
    53  //					"Environment": pulumi.String("Prod"),
    54  //				},
    55  //			})
    56  //			if err != nil {
    57  //				return err
    58  //			}
    59  //			return nil
    60  //		})
    61  //	}
    62  //
    63  // ```
    64  // <!--End PulumiCodeChooser -->
    65  //
    66  // ## Import
    67  //
    68  // Using `pulumi import`, import  Route 53 Resolver endpoints using the Route 53 Resolver endpoint ID. For example:
    69  //
    70  // ```sh
    71  // $ pulumi import aws:route53/resolverEndpoint:ResolverEndpoint foo rslvr-in-abcdef01234567890
    72  // ```
    73  type ResolverEndpoint struct {
    74  	pulumi.CustomResourceState
    75  
    76  	// The ARN of the Route 53 Resolver endpoint.
    77  	Arn pulumi.StringOutput `pulumi:"arn"`
    78  	// The direction of DNS queries to or from the Route 53 Resolver endpoint.
    79  	// Valid values are `INBOUND` (resolver forwards DNS queries to the DNS service for a VPC from your network or another VPC)
    80  	// or `OUTBOUND` (resolver forwards DNS queries from the DNS service for a VPC to your network or another VPC).
    81  	Direction pulumi.StringOutput `pulumi:"direction"`
    82  	// The ID of the VPC that you want to create the resolver endpoint in.
    83  	HostVpcId pulumi.StringOutput `pulumi:"hostVpcId"`
    84  	// The subnets and IP addresses in your VPC that you want DNS queries to pass through on the way from your VPCs
    85  	// to your network (for outbound endpoints) or on the way from your network to your VPCs (for inbound endpoints). Described below.
    86  	IpAddresses ResolverEndpointIpAddressArrayOutput `pulumi:"ipAddresses"`
    87  	// The friendly name of the Route 53 Resolver endpoint.
    88  	Name pulumi.StringOutput `pulumi:"name"`
    89  	// The protocols you want to use for the Route 53 Resolver endpoint. Valid values: `DoH`, `Do53`, `DoH-FIPS`.
    90  	Protocols pulumi.StringArrayOutput `pulumi:"protocols"`
    91  	// The Route 53 Resolver endpoint IP address type. Valid values: `IPV4`, `IPV6`, `DUALSTACK`.
    92  	ResolverEndpointType pulumi.StringOutput `pulumi:"resolverEndpointType"`
    93  	// The ID of one or more security groups that you want to use to control access to this VPC.
    94  	SecurityGroupIds pulumi.StringArrayOutput `pulumi:"securityGroupIds"`
    95  	// 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.
    96  	Tags pulumi.StringMapOutput `pulumi:"tags"`
    97  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
    98  	//
    99  	// Deprecated: Please use `tags` instead.
   100  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
   101  }
   102  
   103  // NewResolverEndpoint registers a new resource with the given unique name, arguments, and options.
   104  func NewResolverEndpoint(ctx *pulumi.Context,
   105  	name string, args *ResolverEndpointArgs, opts ...pulumi.ResourceOption) (*ResolverEndpoint, error) {
   106  	if args == nil {
   107  		return nil, errors.New("missing one or more required arguments")
   108  	}
   109  
   110  	if args.Direction == nil {
   111  		return nil, errors.New("invalid value for required argument 'Direction'")
   112  	}
   113  	if args.IpAddresses == nil {
   114  		return nil, errors.New("invalid value for required argument 'IpAddresses'")
   115  	}
   116  	if args.SecurityGroupIds == nil {
   117  		return nil, errors.New("invalid value for required argument 'SecurityGroupIds'")
   118  	}
   119  	opts = internal.PkgResourceDefaultOpts(opts)
   120  	var resource ResolverEndpoint
   121  	err := ctx.RegisterResource("aws:route53/resolverEndpoint:ResolverEndpoint", name, args, &resource, opts...)
   122  	if err != nil {
   123  		return nil, err
   124  	}
   125  	return &resource, nil
   126  }
   127  
   128  // GetResolverEndpoint gets an existing ResolverEndpoint resource's state with the given name, ID, and optional
   129  // state properties that are used to uniquely qualify the lookup (nil if not required).
   130  func GetResolverEndpoint(ctx *pulumi.Context,
   131  	name string, id pulumi.IDInput, state *ResolverEndpointState, opts ...pulumi.ResourceOption) (*ResolverEndpoint, error) {
   132  	var resource ResolverEndpoint
   133  	err := ctx.ReadResource("aws:route53/resolverEndpoint:ResolverEndpoint", name, id, state, &resource, opts...)
   134  	if err != nil {
   135  		return nil, err
   136  	}
   137  	return &resource, nil
   138  }
   139  
   140  // Input properties used for looking up and filtering ResolverEndpoint resources.
   141  type resolverEndpointState struct {
   142  	// The ARN of the Route 53 Resolver endpoint.
   143  	Arn *string `pulumi:"arn"`
   144  	// The direction of DNS queries to or from the Route 53 Resolver endpoint.
   145  	// Valid values are `INBOUND` (resolver forwards DNS queries to the DNS service for a VPC from your network or another VPC)
   146  	// or `OUTBOUND` (resolver forwards DNS queries from the DNS service for a VPC to your network or another VPC).
   147  	Direction *string `pulumi:"direction"`
   148  	// The ID of the VPC that you want to create the resolver endpoint in.
   149  	HostVpcId *string `pulumi:"hostVpcId"`
   150  	// The subnets and IP addresses in your VPC that you want DNS queries to pass through on the way from your VPCs
   151  	// to your network (for outbound endpoints) or on the way from your network to your VPCs (for inbound endpoints). Described below.
   152  	IpAddresses []ResolverEndpointIpAddress `pulumi:"ipAddresses"`
   153  	// The friendly name of the Route 53 Resolver endpoint.
   154  	Name *string `pulumi:"name"`
   155  	// The protocols you want to use for the Route 53 Resolver endpoint. Valid values: `DoH`, `Do53`, `DoH-FIPS`.
   156  	Protocols []string `pulumi:"protocols"`
   157  	// The Route 53 Resolver endpoint IP address type. Valid values: `IPV4`, `IPV6`, `DUALSTACK`.
   158  	ResolverEndpointType *string `pulumi:"resolverEndpointType"`
   159  	// The ID of one or more security groups that you want to use to control access to this VPC.
   160  	SecurityGroupIds []string `pulumi:"securityGroupIds"`
   161  	// 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.
   162  	Tags map[string]string `pulumi:"tags"`
   163  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   164  	//
   165  	// Deprecated: Please use `tags` instead.
   166  	TagsAll map[string]string `pulumi:"tagsAll"`
   167  }
   168  
   169  type ResolverEndpointState struct {
   170  	// The ARN of the Route 53 Resolver endpoint.
   171  	Arn pulumi.StringPtrInput
   172  	// The direction of DNS queries to or from the Route 53 Resolver endpoint.
   173  	// Valid values are `INBOUND` (resolver forwards DNS queries to the DNS service for a VPC from your network or another VPC)
   174  	// or `OUTBOUND` (resolver forwards DNS queries from the DNS service for a VPC to your network or another VPC).
   175  	Direction pulumi.StringPtrInput
   176  	// The ID of the VPC that you want to create the resolver endpoint in.
   177  	HostVpcId pulumi.StringPtrInput
   178  	// The subnets and IP addresses in your VPC that you want DNS queries to pass through on the way from your VPCs
   179  	// to your network (for outbound endpoints) or on the way from your network to your VPCs (for inbound endpoints). Described below.
   180  	IpAddresses ResolverEndpointIpAddressArrayInput
   181  	// The friendly name of the Route 53 Resolver endpoint.
   182  	Name pulumi.StringPtrInput
   183  	// The protocols you want to use for the Route 53 Resolver endpoint. Valid values: `DoH`, `Do53`, `DoH-FIPS`.
   184  	Protocols pulumi.StringArrayInput
   185  	// The Route 53 Resolver endpoint IP address type. Valid values: `IPV4`, `IPV6`, `DUALSTACK`.
   186  	ResolverEndpointType pulumi.StringPtrInput
   187  	// The ID of one or more security groups that you want to use to control access to this VPC.
   188  	SecurityGroupIds pulumi.StringArrayInput
   189  	// 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.
   190  	Tags pulumi.StringMapInput
   191  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   192  	//
   193  	// Deprecated: Please use `tags` instead.
   194  	TagsAll pulumi.StringMapInput
   195  }
   196  
   197  func (ResolverEndpointState) ElementType() reflect.Type {
   198  	return reflect.TypeOf((*resolverEndpointState)(nil)).Elem()
   199  }
   200  
   201  type resolverEndpointArgs struct {
   202  	// The direction of DNS queries to or from the Route 53 Resolver endpoint.
   203  	// Valid values are `INBOUND` (resolver forwards DNS queries to the DNS service for a VPC from your network or another VPC)
   204  	// or `OUTBOUND` (resolver forwards DNS queries from the DNS service for a VPC to your network or another VPC).
   205  	Direction string `pulumi:"direction"`
   206  	// The subnets and IP addresses in your VPC that you want DNS queries to pass through on the way from your VPCs
   207  	// to your network (for outbound endpoints) or on the way from your network to your VPCs (for inbound endpoints). Described below.
   208  	IpAddresses []ResolverEndpointIpAddress `pulumi:"ipAddresses"`
   209  	// The friendly name of the Route 53 Resolver endpoint.
   210  	Name *string `pulumi:"name"`
   211  	// The protocols you want to use for the Route 53 Resolver endpoint. Valid values: `DoH`, `Do53`, `DoH-FIPS`.
   212  	Protocols []string `pulumi:"protocols"`
   213  	// The Route 53 Resolver endpoint IP address type. Valid values: `IPV4`, `IPV6`, `DUALSTACK`.
   214  	ResolverEndpointType *string `pulumi:"resolverEndpointType"`
   215  	// The ID of one or more security groups that you want to use to control access to this VPC.
   216  	SecurityGroupIds []string `pulumi:"securityGroupIds"`
   217  	// 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.
   218  	Tags map[string]string `pulumi:"tags"`
   219  }
   220  
   221  // The set of arguments for constructing a ResolverEndpoint resource.
   222  type ResolverEndpointArgs struct {
   223  	// The direction of DNS queries to or from the Route 53 Resolver endpoint.
   224  	// Valid values are `INBOUND` (resolver forwards DNS queries to the DNS service for a VPC from your network or another VPC)
   225  	// or `OUTBOUND` (resolver forwards DNS queries from the DNS service for a VPC to your network or another VPC).
   226  	Direction pulumi.StringInput
   227  	// The subnets and IP addresses in your VPC that you want DNS queries to pass through on the way from your VPCs
   228  	// to your network (for outbound endpoints) or on the way from your network to your VPCs (for inbound endpoints). Described below.
   229  	IpAddresses ResolverEndpointIpAddressArrayInput
   230  	// The friendly name of the Route 53 Resolver endpoint.
   231  	Name pulumi.StringPtrInput
   232  	// The protocols you want to use for the Route 53 Resolver endpoint. Valid values: `DoH`, `Do53`, `DoH-FIPS`.
   233  	Protocols pulumi.StringArrayInput
   234  	// The Route 53 Resolver endpoint IP address type. Valid values: `IPV4`, `IPV6`, `DUALSTACK`.
   235  	ResolverEndpointType pulumi.StringPtrInput
   236  	// The ID of one or more security groups that you want to use to control access to this VPC.
   237  	SecurityGroupIds pulumi.StringArrayInput
   238  	// 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.
   239  	Tags pulumi.StringMapInput
   240  }
   241  
   242  func (ResolverEndpointArgs) ElementType() reflect.Type {
   243  	return reflect.TypeOf((*resolverEndpointArgs)(nil)).Elem()
   244  }
   245  
   246  type ResolverEndpointInput interface {
   247  	pulumi.Input
   248  
   249  	ToResolverEndpointOutput() ResolverEndpointOutput
   250  	ToResolverEndpointOutputWithContext(ctx context.Context) ResolverEndpointOutput
   251  }
   252  
   253  func (*ResolverEndpoint) ElementType() reflect.Type {
   254  	return reflect.TypeOf((**ResolverEndpoint)(nil)).Elem()
   255  }
   256  
   257  func (i *ResolverEndpoint) ToResolverEndpointOutput() ResolverEndpointOutput {
   258  	return i.ToResolverEndpointOutputWithContext(context.Background())
   259  }
   260  
   261  func (i *ResolverEndpoint) ToResolverEndpointOutputWithContext(ctx context.Context) ResolverEndpointOutput {
   262  	return pulumi.ToOutputWithContext(ctx, i).(ResolverEndpointOutput)
   263  }
   264  
   265  // ResolverEndpointArrayInput is an input type that accepts ResolverEndpointArray and ResolverEndpointArrayOutput values.
   266  // You can construct a concrete instance of `ResolverEndpointArrayInput` via:
   267  //
   268  //	ResolverEndpointArray{ ResolverEndpointArgs{...} }
   269  type ResolverEndpointArrayInput interface {
   270  	pulumi.Input
   271  
   272  	ToResolverEndpointArrayOutput() ResolverEndpointArrayOutput
   273  	ToResolverEndpointArrayOutputWithContext(context.Context) ResolverEndpointArrayOutput
   274  }
   275  
   276  type ResolverEndpointArray []ResolverEndpointInput
   277  
   278  func (ResolverEndpointArray) ElementType() reflect.Type {
   279  	return reflect.TypeOf((*[]*ResolverEndpoint)(nil)).Elem()
   280  }
   281  
   282  func (i ResolverEndpointArray) ToResolverEndpointArrayOutput() ResolverEndpointArrayOutput {
   283  	return i.ToResolverEndpointArrayOutputWithContext(context.Background())
   284  }
   285  
   286  func (i ResolverEndpointArray) ToResolverEndpointArrayOutputWithContext(ctx context.Context) ResolverEndpointArrayOutput {
   287  	return pulumi.ToOutputWithContext(ctx, i).(ResolverEndpointArrayOutput)
   288  }
   289  
   290  // ResolverEndpointMapInput is an input type that accepts ResolverEndpointMap and ResolverEndpointMapOutput values.
   291  // You can construct a concrete instance of `ResolverEndpointMapInput` via:
   292  //
   293  //	ResolverEndpointMap{ "key": ResolverEndpointArgs{...} }
   294  type ResolverEndpointMapInput interface {
   295  	pulumi.Input
   296  
   297  	ToResolverEndpointMapOutput() ResolverEndpointMapOutput
   298  	ToResolverEndpointMapOutputWithContext(context.Context) ResolverEndpointMapOutput
   299  }
   300  
   301  type ResolverEndpointMap map[string]ResolverEndpointInput
   302  
   303  func (ResolverEndpointMap) ElementType() reflect.Type {
   304  	return reflect.TypeOf((*map[string]*ResolverEndpoint)(nil)).Elem()
   305  }
   306  
   307  func (i ResolverEndpointMap) ToResolverEndpointMapOutput() ResolverEndpointMapOutput {
   308  	return i.ToResolverEndpointMapOutputWithContext(context.Background())
   309  }
   310  
   311  func (i ResolverEndpointMap) ToResolverEndpointMapOutputWithContext(ctx context.Context) ResolverEndpointMapOutput {
   312  	return pulumi.ToOutputWithContext(ctx, i).(ResolverEndpointMapOutput)
   313  }
   314  
   315  type ResolverEndpointOutput struct{ *pulumi.OutputState }
   316  
   317  func (ResolverEndpointOutput) ElementType() reflect.Type {
   318  	return reflect.TypeOf((**ResolverEndpoint)(nil)).Elem()
   319  }
   320  
   321  func (o ResolverEndpointOutput) ToResolverEndpointOutput() ResolverEndpointOutput {
   322  	return o
   323  }
   324  
   325  func (o ResolverEndpointOutput) ToResolverEndpointOutputWithContext(ctx context.Context) ResolverEndpointOutput {
   326  	return o
   327  }
   328  
   329  // The ARN of the Route 53 Resolver endpoint.
   330  func (o ResolverEndpointOutput) Arn() pulumi.StringOutput {
   331  	return o.ApplyT(func(v *ResolverEndpoint) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   332  }
   333  
   334  // The direction of DNS queries to or from the Route 53 Resolver endpoint.
   335  // Valid values are `INBOUND` (resolver forwards DNS queries to the DNS service for a VPC from your network or another VPC)
   336  // or `OUTBOUND` (resolver forwards DNS queries from the DNS service for a VPC to your network or another VPC).
   337  func (o ResolverEndpointOutput) Direction() pulumi.StringOutput {
   338  	return o.ApplyT(func(v *ResolverEndpoint) pulumi.StringOutput { return v.Direction }).(pulumi.StringOutput)
   339  }
   340  
   341  // The ID of the VPC that you want to create the resolver endpoint in.
   342  func (o ResolverEndpointOutput) HostVpcId() pulumi.StringOutput {
   343  	return o.ApplyT(func(v *ResolverEndpoint) pulumi.StringOutput { return v.HostVpcId }).(pulumi.StringOutput)
   344  }
   345  
   346  // The subnets and IP addresses in your VPC that you want DNS queries to pass through on the way from your VPCs
   347  // to your network (for outbound endpoints) or on the way from your network to your VPCs (for inbound endpoints). Described below.
   348  func (o ResolverEndpointOutput) IpAddresses() ResolverEndpointIpAddressArrayOutput {
   349  	return o.ApplyT(func(v *ResolverEndpoint) ResolverEndpointIpAddressArrayOutput { return v.IpAddresses }).(ResolverEndpointIpAddressArrayOutput)
   350  }
   351  
   352  // The friendly name of the Route 53 Resolver endpoint.
   353  func (o ResolverEndpointOutput) Name() pulumi.StringOutput {
   354  	return o.ApplyT(func(v *ResolverEndpoint) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   355  }
   356  
   357  // The protocols you want to use for the Route 53 Resolver endpoint. Valid values: `DoH`, `Do53`, `DoH-FIPS`.
   358  func (o ResolverEndpointOutput) Protocols() pulumi.StringArrayOutput {
   359  	return o.ApplyT(func(v *ResolverEndpoint) pulumi.StringArrayOutput { return v.Protocols }).(pulumi.StringArrayOutput)
   360  }
   361  
   362  // The Route 53 Resolver endpoint IP address type. Valid values: `IPV4`, `IPV6`, `DUALSTACK`.
   363  func (o ResolverEndpointOutput) ResolverEndpointType() pulumi.StringOutput {
   364  	return o.ApplyT(func(v *ResolverEndpoint) pulumi.StringOutput { return v.ResolverEndpointType }).(pulumi.StringOutput)
   365  }
   366  
   367  // The ID of one or more security groups that you want to use to control access to this VPC.
   368  func (o ResolverEndpointOutput) SecurityGroupIds() pulumi.StringArrayOutput {
   369  	return o.ApplyT(func(v *ResolverEndpoint) pulumi.StringArrayOutput { return v.SecurityGroupIds }).(pulumi.StringArrayOutput)
   370  }
   371  
   372  // 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.
   373  func (o ResolverEndpointOutput) Tags() pulumi.StringMapOutput {
   374  	return o.ApplyT(func(v *ResolverEndpoint) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   375  }
   376  
   377  // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   378  //
   379  // Deprecated: Please use `tags` instead.
   380  func (o ResolverEndpointOutput) TagsAll() pulumi.StringMapOutput {
   381  	return o.ApplyT(func(v *ResolverEndpoint) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   382  }
   383  
   384  type ResolverEndpointArrayOutput struct{ *pulumi.OutputState }
   385  
   386  func (ResolverEndpointArrayOutput) ElementType() reflect.Type {
   387  	return reflect.TypeOf((*[]*ResolverEndpoint)(nil)).Elem()
   388  }
   389  
   390  func (o ResolverEndpointArrayOutput) ToResolverEndpointArrayOutput() ResolverEndpointArrayOutput {
   391  	return o
   392  }
   393  
   394  func (o ResolverEndpointArrayOutput) ToResolverEndpointArrayOutputWithContext(ctx context.Context) ResolverEndpointArrayOutput {
   395  	return o
   396  }
   397  
   398  func (o ResolverEndpointArrayOutput) Index(i pulumi.IntInput) ResolverEndpointOutput {
   399  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ResolverEndpoint {
   400  		return vs[0].([]*ResolverEndpoint)[vs[1].(int)]
   401  	}).(ResolverEndpointOutput)
   402  }
   403  
   404  type ResolverEndpointMapOutput struct{ *pulumi.OutputState }
   405  
   406  func (ResolverEndpointMapOutput) ElementType() reflect.Type {
   407  	return reflect.TypeOf((*map[string]*ResolverEndpoint)(nil)).Elem()
   408  }
   409  
   410  func (o ResolverEndpointMapOutput) ToResolverEndpointMapOutput() ResolverEndpointMapOutput {
   411  	return o
   412  }
   413  
   414  func (o ResolverEndpointMapOutput) ToResolverEndpointMapOutputWithContext(ctx context.Context) ResolverEndpointMapOutput {
   415  	return o
   416  }
   417  
   418  func (o ResolverEndpointMapOutput) MapIndex(k pulumi.StringInput) ResolverEndpointOutput {
   419  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ResolverEndpoint {
   420  		return vs[0].(map[string]*ResolverEndpoint)[vs[1].(string)]
   421  	}).(ResolverEndpointOutput)
   422  }
   423  
   424  func init() {
   425  	pulumi.RegisterInputType(reflect.TypeOf((*ResolverEndpointInput)(nil)).Elem(), &ResolverEndpoint{})
   426  	pulumi.RegisterInputType(reflect.TypeOf((*ResolverEndpointArrayInput)(nil)).Elem(), ResolverEndpointArray{})
   427  	pulumi.RegisterInputType(reflect.TypeOf((*ResolverEndpointMapInput)(nil)).Elem(), ResolverEndpointMap{})
   428  	pulumi.RegisterOutputType(ResolverEndpointOutput{})
   429  	pulumi.RegisterOutputType(ResolverEndpointArrayOutput{})
   430  	pulumi.RegisterOutputType(ResolverEndpointMapOutput{})
   431  }