github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/ec2/vpcEndpointService.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 ec2
     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 VPC Endpoint Service resource.
    16  // Service consumers can create an _Interface_ VPC Endpoint to connect to the service.
    17  //
    18  // > **NOTE on VPC Endpoint Services and VPC Endpoint Service Allowed Principals:** This provider provides
    19  // both a standalone VPC Endpoint Service Allowed Principal resource
    20  // and a VPC Endpoint Service resource with an `allowedPrincipals` attribute. Do not use the same principal ARN in both
    21  // a VPC Endpoint Service resource and a VPC Endpoint Service Allowed Principal resource. Doing so will cause a conflict
    22  // and will overwrite the association.
    23  //
    24  // ## Example Usage
    25  //
    26  // ### Network Load Balancers
    27  //
    28  // <!--Start PulumiCodeChooser -->
    29  // ```go
    30  // package main
    31  //
    32  // import (
    33  //
    34  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
    35  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    36  //
    37  // )
    38  //
    39  //	func main() {
    40  //		pulumi.Run(func(ctx *pulumi.Context) error {
    41  //			_, err := ec2.NewVpcEndpointService(ctx, "example", &ec2.VpcEndpointServiceArgs{
    42  //				AcceptanceRequired: pulumi.Bool(false),
    43  //				NetworkLoadBalancerArns: pulumi.StringArray{
    44  //					exampleAwsLb.Arn,
    45  //				},
    46  //			})
    47  //			if err != nil {
    48  //				return err
    49  //			}
    50  //			return nil
    51  //		})
    52  //	}
    53  //
    54  // ```
    55  // <!--End PulumiCodeChooser -->
    56  //
    57  // ### Gateway Load Balancers
    58  //
    59  // <!--Start PulumiCodeChooser -->
    60  // ```go
    61  // package main
    62  //
    63  // import (
    64  //
    65  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
    66  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    67  //
    68  // )
    69  //
    70  //	func main() {
    71  //		pulumi.Run(func(ctx *pulumi.Context) error {
    72  //			_, err := ec2.NewVpcEndpointService(ctx, "example", &ec2.VpcEndpointServiceArgs{
    73  //				AcceptanceRequired: pulumi.Bool(false),
    74  //				GatewayLoadBalancerArns: pulumi.StringArray{
    75  //					exampleAwsLb.Arn,
    76  //				},
    77  //			})
    78  //			if err != nil {
    79  //				return err
    80  //			}
    81  //			return nil
    82  //		})
    83  //	}
    84  //
    85  // ```
    86  // <!--End PulumiCodeChooser -->
    87  //
    88  // ## Import
    89  //
    90  // Using `pulumi import`, import VPC Endpoint Services using the VPC endpoint service `id`. For example:
    91  //
    92  // ```sh
    93  // $ pulumi import aws:ec2/vpcEndpointService:VpcEndpointService foo vpce-svc-0f97a19d3fa8220bc
    94  // ```
    95  type VpcEndpointService struct {
    96  	pulumi.CustomResourceState
    97  
    98  	// Whether or not VPC endpoint connection requests to the service must be accepted by the service owner - `true` or `false`.
    99  	AcceptanceRequired pulumi.BoolOutput `pulumi:"acceptanceRequired"`
   100  	// The ARNs of one or more principals allowed to discover the endpoint service.
   101  	AllowedPrincipals pulumi.StringArrayOutput `pulumi:"allowedPrincipals"`
   102  	// The Amazon Resource Name (ARN) of the VPC endpoint service.
   103  	Arn pulumi.StringOutput `pulumi:"arn"`
   104  	// A set of Availability Zones in which the service is available.
   105  	AvailabilityZones pulumi.StringArrayOutput `pulumi:"availabilityZones"`
   106  	// A set of DNS names for the service.
   107  	BaseEndpointDnsNames pulumi.StringArrayOutput `pulumi:"baseEndpointDnsNames"`
   108  	// Amazon Resource Names (ARNs) of one or more Gateway Load Balancers for the endpoint service.
   109  	GatewayLoadBalancerArns pulumi.StringArrayOutput `pulumi:"gatewayLoadBalancerArns"`
   110  	// Whether or not the service manages its VPC endpoints - `true` or `false`.
   111  	ManagesVpcEndpoints pulumi.BoolOutput `pulumi:"managesVpcEndpoints"`
   112  	// Amazon Resource Names (ARNs) of one or more Network Load Balancers for the endpoint service.
   113  	NetworkLoadBalancerArns pulumi.StringArrayOutput `pulumi:"networkLoadBalancerArns"`
   114  	// The private DNS name for the service.
   115  	PrivateDnsName pulumi.StringOutput `pulumi:"privateDnsName"`
   116  	// List of objects containing information about the endpoint service private DNS name configuration.
   117  	PrivateDnsNameConfigurations VpcEndpointServicePrivateDnsNameConfigurationArrayOutput `pulumi:"privateDnsNameConfigurations"`
   118  	// The service name.
   119  	ServiceName pulumi.StringOutput `pulumi:"serviceName"`
   120  	// The service type, `Gateway` or `Interface`.
   121  	ServiceType pulumi.StringOutput `pulumi:"serviceType"`
   122  	// Verification state of the VPC endpoint service. Consumers of the endpoint service can use the private name only when the state is `verified`.
   123  	State pulumi.StringOutput `pulumi:"state"`
   124  	// The supported IP address types. The possible values are `ipv4` and `ipv6`.
   125  	SupportedIpAddressTypes pulumi.StringArrayOutput `pulumi:"supportedIpAddressTypes"`
   126  	// 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.
   127  	Tags pulumi.StringMapOutput `pulumi:"tags"`
   128  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   129  	//
   130  	// Deprecated: Please use `tags` instead.
   131  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
   132  }
   133  
   134  // NewVpcEndpointService registers a new resource with the given unique name, arguments, and options.
   135  func NewVpcEndpointService(ctx *pulumi.Context,
   136  	name string, args *VpcEndpointServiceArgs, opts ...pulumi.ResourceOption) (*VpcEndpointService, error) {
   137  	if args == nil {
   138  		return nil, errors.New("missing one or more required arguments")
   139  	}
   140  
   141  	if args.AcceptanceRequired == nil {
   142  		return nil, errors.New("invalid value for required argument 'AcceptanceRequired'")
   143  	}
   144  	opts = internal.PkgResourceDefaultOpts(opts)
   145  	var resource VpcEndpointService
   146  	err := ctx.RegisterResource("aws:ec2/vpcEndpointService:VpcEndpointService", name, args, &resource, opts...)
   147  	if err != nil {
   148  		return nil, err
   149  	}
   150  	return &resource, nil
   151  }
   152  
   153  // GetVpcEndpointService gets an existing VpcEndpointService resource's state with the given name, ID, and optional
   154  // state properties that are used to uniquely qualify the lookup (nil if not required).
   155  func GetVpcEndpointService(ctx *pulumi.Context,
   156  	name string, id pulumi.IDInput, state *VpcEndpointServiceState, opts ...pulumi.ResourceOption) (*VpcEndpointService, error) {
   157  	var resource VpcEndpointService
   158  	err := ctx.ReadResource("aws:ec2/vpcEndpointService:VpcEndpointService", name, id, state, &resource, opts...)
   159  	if err != nil {
   160  		return nil, err
   161  	}
   162  	return &resource, nil
   163  }
   164  
   165  // Input properties used for looking up and filtering VpcEndpointService resources.
   166  type vpcEndpointServiceState struct {
   167  	// Whether or not VPC endpoint connection requests to the service must be accepted by the service owner - `true` or `false`.
   168  	AcceptanceRequired *bool `pulumi:"acceptanceRequired"`
   169  	// The ARNs of one or more principals allowed to discover the endpoint service.
   170  	AllowedPrincipals []string `pulumi:"allowedPrincipals"`
   171  	// The Amazon Resource Name (ARN) of the VPC endpoint service.
   172  	Arn *string `pulumi:"arn"`
   173  	// A set of Availability Zones in which the service is available.
   174  	AvailabilityZones []string `pulumi:"availabilityZones"`
   175  	// A set of DNS names for the service.
   176  	BaseEndpointDnsNames []string `pulumi:"baseEndpointDnsNames"`
   177  	// Amazon Resource Names (ARNs) of one or more Gateway Load Balancers for the endpoint service.
   178  	GatewayLoadBalancerArns []string `pulumi:"gatewayLoadBalancerArns"`
   179  	// Whether or not the service manages its VPC endpoints - `true` or `false`.
   180  	ManagesVpcEndpoints *bool `pulumi:"managesVpcEndpoints"`
   181  	// Amazon Resource Names (ARNs) of one or more Network Load Balancers for the endpoint service.
   182  	NetworkLoadBalancerArns []string `pulumi:"networkLoadBalancerArns"`
   183  	// The private DNS name for the service.
   184  	PrivateDnsName *string `pulumi:"privateDnsName"`
   185  	// List of objects containing information about the endpoint service private DNS name configuration.
   186  	PrivateDnsNameConfigurations []VpcEndpointServicePrivateDnsNameConfiguration `pulumi:"privateDnsNameConfigurations"`
   187  	// The service name.
   188  	ServiceName *string `pulumi:"serviceName"`
   189  	// The service type, `Gateway` or `Interface`.
   190  	ServiceType *string `pulumi:"serviceType"`
   191  	// Verification state of the VPC endpoint service. Consumers of the endpoint service can use the private name only when the state is `verified`.
   192  	State *string `pulumi:"state"`
   193  	// The supported IP address types. The possible values are `ipv4` and `ipv6`.
   194  	SupportedIpAddressTypes []string `pulumi:"supportedIpAddressTypes"`
   195  	// 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.
   196  	Tags map[string]string `pulumi:"tags"`
   197  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   198  	//
   199  	// Deprecated: Please use `tags` instead.
   200  	TagsAll map[string]string `pulumi:"tagsAll"`
   201  }
   202  
   203  type VpcEndpointServiceState struct {
   204  	// Whether or not VPC endpoint connection requests to the service must be accepted by the service owner - `true` or `false`.
   205  	AcceptanceRequired pulumi.BoolPtrInput
   206  	// The ARNs of one or more principals allowed to discover the endpoint service.
   207  	AllowedPrincipals pulumi.StringArrayInput
   208  	// The Amazon Resource Name (ARN) of the VPC endpoint service.
   209  	Arn pulumi.StringPtrInput
   210  	// A set of Availability Zones in which the service is available.
   211  	AvailabilityZones pulumi.StringArrayInput
   212  	// A set of DNS names for the service.
   213  	BaseEndpointDnsNames pulumi.StringArrayInput
   214  	// Amazon Resource Names (ARNs) of one or more Gateway Load Balancers for the endpoint service.
   215  	GatewayLoadBalancerArns pulumi.StringArrayInput
   216  	// Whether or not the service manages its VPC endpoints - `true` or `false`.
   217  	ManagesVpcEndpoints pulumi.BoolPtrInput
   218  	// Amazon Resource Names (ARNs) of one or more Network Load Balancers for the endpoint service.
   219  	NetworkLoadBalancerArns pulumi.StringArrayInput
   220  	// The private DNS name for the service.
   221  	PrivateDnsName pulumi.StringPtrInput
   222  	// List of objects containing information about the endpoint service private DNS name configuration.
   223  	PrivateDnsNameConfigurations VpcEndpointServicePrivateDnsNameConfigurationArrayInput
   224  	// The service name.
   225  	ServiceName pulumi.StringPtrInput
   226  	// The service type, `Gateway` or `Interface`.
   227  	ServiceType pulumi.StringPtrInput
   228  	// Verification state of the VPC endpoint service. Consumers of the endpoint service can use the private name only when the state is `verified`.
   229  	State pulumi.StringPtrInput
   230  	// The supported IP address types. The possible values are `ipv4` and `ipv6`.
   231  	SupportedIpAddressTypes pulumi.StringArrayInput
   232  	// 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.
   233  	Tags pulumi.StringMapInput
   234  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   235  	//
   236  	// Deprecated: Please use `tags` instead.
   237  	TagsAll pulumi.StringMapInput
   238  }
   239  
   240  func (VpcEndpointServiceState) ElementType() reflect.Type {
   241  	return reflect.TypeOf((*vpcEndpointServiceState)(nil)).Elem()
   242  }
   243  
   244  type vpcEndpointServiceArgs struct {
   245  	// Whether or not VPC endpoint connection requests to the service must be accepted by the service owner - `true` or `false`.
   246  	AcceptanceRequired bool `pulumi:"acceptanceRequired"`
   247  	// The ARNs of one or more principals allowed to discover the endpoint service.
   248  	AllowedPrincipals []string `pulumi:"allowedPrincipals"`
   249  	// Amazon Resource Names (ARNs) of one or more Gateway Load Balancers for the endpoint service.
   250  	GatewayLoadBalancerArns []string `pulumi:"gatewayLoadBalancerArns"`
   251  	// Amazon Resource Names (ARNs) of one or more Network Load Balancers for the endpoint service.
   252  	NetworkLoadBalancerArns []string `pulumi:"networkLoadBalancerArns"`
   253  	// The private DNS name for the service.
   254  	PrivateDnsName *string `pulumi:"privateDnsName"`
   255  	// The supported IP address types. The possible values are `ipv4` and `ipv6`.
   256  	SupportedIpAddressTypes []string `pulumi:"supportedIpAddressTypes"`
   257  	// 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.
   258  	Tags map[string]string `pulumi:"tags"`
   259  }
   260  
   261  // The set of arguments for constructing a VpcEndpointService resource.
   262  type VpcEndpointServiceArgs struct {
   263  	// Whether or not VPC endpoint connection requests to the service must be accepted by the service owner - `true` or `false`.
   264  	AcceptanceRequired pulumi.BoolInput
   265  	// The ARNs of one or more principals allowed to discover the endpoint service.
   266  	AllowedPrincipals pulumi.StringArrayInput
   267  	// Amazon Resource Names (ARNs) of one or more Gateway Load Balancers for the endpoint service.
   268  	GatewayLoadBalancerArns pulumi.StringArrayInput
   269  	// Amazon Resource Names (ARNs) of one or more Network Load Balancers for the endpoint service.
   270  	NetworkLoadBalancerArns pulumi.StringArrayInput
   271  	// The private DNS name for the service.
   272  	PrivateDnsName pulumi.StringPtrInput
   273  	// The supported IP address types. The possible values are `ipv4` and `ipv6`.
   274  	SupportedIpAddressTypes pulumi.StringArrayInput
   275  	// 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.
   276  	Tags pulumi.StringMapInput
   277  }
   278  
   279  func (VpcEndpointServiceArgs) ElementType() reflect.Type {
   280  	return reflect.TypeOf((*vpcEndpointServiceArgs)(nil)).Elem()
   281  }
   282  
   283  type VpcEndpointServiceInput interface {
   284  	pulumi.Input
   285  
   286  	ToVpcEndpointServiceOutput() VpcEndpointServiceOutput
   287  	ToVpcEndpointServiceOutputWithContext(ctx context.Context) VpcEndpointServiceOutput
   288  }
   289  
   290  func (*VpcEndpointService) ElementType() reflect.Type {
   291  	return reflect.TypeOf((**VpcEndpointService)(nil)).Elem()
   292  }
   293  
   294  func (i *VpcEndpointService) ToVpcEndpointServiceOutput() VpcEndpointServiceOutput {
   295  	return i.ToVpcEndpointServiceOutputWithContext(context.Background())
   296  }
   297  
   298  func (i *VpcEndpointService) ToVpcEndpointServiceOutputWithContext(ctx context.Context) VpcEndpointServiceOutput {
   299  	return pulumi.ToOutputWithContext(ctx, i).(VpcEndpointServiceOutput)
   300  }
   301  
   302  // VpcEndpointServiceArrayInput is an input type that accepts VpcEndpointServiceArray and VpcEndpointServiceArrayOutput values.
   303  // You can construct a concrete instance of `VpcEndpointServiceArrayInput` via:
   304  //
   305  //	VpcEndpointServiceArray{ VpcEndpointServiceArgs{...} }
   306  type VpcEndpointServiceArrayInput interface {
   307  	pulumi.Input
   308  
   309  	ToVpcEndpointServiceArrayOutput() VpcEndpointServiceArrayOutput
   310  	ToVpcEndpointServiceArrayOutputWithContext(context.Context) VpcEndpointServiceArrayOutput
   311  }
   312  
   313  type VpcEndpointServiceArray []VpcEndpointServiceInput
   314  
   315  func (VpcEndpointServiceArray) ElementType() reflect.Type {
   316  	return reflect.TypeOf((*[]*VpcEndpointService)(nil)).Elem()
   317  }
   318  
   319  func (i VpcEndpointServiceArray) ToVpcEndpointServiceArrayOutput() VpcEndpointServiceArrayOutput {
   320  	return i.ToVpcEndpointServiceArrayOutputWithContext(context.Background())
   321  }
   322  
   323  func (i VpcEndpointServiceArray) ToVpcEndpointServiceArrayOutputWithContext(ctx context.Context) VpcEndpointServiceArrayOutput {
   324  	return pulumi.ToOutputWithContext(ctx, i).(VpcEndpointServiceArrayOutput)
   325  }
   326  
   327  // VpcEndpointServiceMapInput is an input type that accepts VpcEndpointServiceMap and VpcEndpointServiceMapOutput values.
   328  // You can construct a concrete instance of `VpcEndpointServiceMapInput` via:
   329  //
   330  //	VpcEndpointServiceMap{ "key": VpcEndpointServiceArgs{...} }
   331  type VpcEndpointServiceMapInput interface {
   332  	pulumi.Input
   333  
   334  	ToVpcEndpointServiceMapOutput() VpcEndpointServiceMapOutput
   335  	ToVpcEndpointServiceMapOutputWithContext(context.Context) VpcEndpointServiceMapOutput
   336  }
   337  
   338  type VpcEndpointServiceMap map[string]VpcEndpointServiceInput
   339  
   340  func (VpcEndpointServiceMap) ElementType() reflect.Type {
   341  	return reflect.TypeOf((*map[string]*VpcEndpointService)(nil)).Elem()
   342  }
   343  
   344  func (i VpcEndpointServiceMap) ToVpcEndpointServiceMapOutput() VpcEndpointServiceMapOutput {
   345  	return i.ToVpcEndpointServiceMapOutputWithContext(context.Background())
   346  }
   347  
   348  func (i VpcEndpointServiceMap) ToVpcEndpointServiceMapOutputWithContext(ctx context.Context) VpcEndpointServiceMapOutput {
   349  	return pulumi.ToOutputWithContext(ctx, i).(VpcEndpointServiceMapOutput)
   350  }
   351  
   352  type VpcEndpointServiceOutput struct{ *pulumi.OutputState }
   353  
   354  func (VpcEndpointServiceOutput) ElementType() reflect.Type {
   355  	return reflect.TypeOf((**VpcEndpointService)(nil)).Elem()
   356  }
   357  
   358  func (o VpcEndpointServiceOutput) ToVpcEndpointServiceOutput() VpcEndpointServiceOutput {
   359  	return o
   360  }
   361  
   362  func (o VpcEndpointServiceOutput) ToVpcEndpointServiceOutputWithContext(ctx context.Context) VpcEndpointServiceOutput {
   363  	return o
   364  }
   365  
   366  // Whether or not VPC endpoint connection requests to the service must be accepted by the service owner - `true` or `false`.
   367  func (o VpcEndpointServiceOutput) AcceptanceRequired() pulumi.BoolOutput {
   368  	return o.ApplyT(func(v *VpcEndpointService) pulumi.BoolOutput { return v.AcceptanceRequired }).(pulumi.BoolOutput)
   369  }
   370  
   371  // The ARNs of one or more principals allowed to discover the endpoint service.
   372  func (o VpcEndpointServiceOutput) AllowedPrincipals() pulumi.StringArrayOutput {
   373  	return o.ApplyT(func(v *VpcEndpointService) pulumi.StringArrayOutput { return v.AllowedPrincipals }).(pulumi.StringArrayOutput)
   374  }
   375  
   376  // The Amazon Resource Name (ARN) of the VPC endpoint service.
   377  func (o VpcEndpointServiceOutput) Arn() pulumi.StringOutput {
   378  	return o.ApplyT(func(v *VpcEndpointService) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   379  }
   380  
   381  // A set of Availability Zones in which the service is available.
   382  func (o VpcEndpointServiceOutput) AvailabilityZones() pulumi.StringArrayOutput {
   383  	return o.ApplyT(func(v *VpcEndpointService) pulumi.StringArrayOutput { return v.AvailabilityZones }).(pulumi.StringArrayOutput)
   384  }
   385  
   386  // A set of DNS names for the service.
   387  func (o VpcEndpointServiceOutput) BaseEndpointDnsNames() pulumi.StringArrayOutput {
   388  	return o.ApplyT(func(v *VpcEndpointService) pulumi.StringArrayOutput { return v.BaseEndpointDnsNames }).(pulumi.StringArrayOutput)
   389  }
   390  
   391  // Amazon Resource Names (ARNs) of one or more Gateway Load Balancers for the endpoint service.
   392  func (o VpcEndpointServiceOutput) GatewayLoadBalancerArns() pulumi.StringArrayOutput {
   393  	return o.ApplyT(func(v *VpcEndpointService) pulumi.StringArrayOutput { return v.GatewayLoadBalancerArns }).(pulumi.StringArrayOutput)
   394  }
   395  
   396  // Whether or not the service manages its VPC endpoints - `true` or `false`.
   397  func (o VpcEndpointServiceOutput) ManagesVpcEndpoints() pulumi.BoolOutput {
   398  	return o.ApplyT(func(v *VpcEndpointService) pulumi.BoolOutput { return v.ManagesVpcEndpoints }).(pulumi.BoolOutput)
   399  }
   400  
   401  // Amazon Resource Names (ARNs) of one or more Network Load Balancers for the endpoint service.
   402  func (o VpcEndpointServiceOutput) NetworkLoadBalancerArns() pulumi.StringArrayOutput {
   403  	return o.ApplyT(func(v *VpcEndpointService) pulumi.StringArrayOutput { return v.NetworkLoadBalancerArns }).(pulumi.StringArrayOutput)
   404  }
   405  
   406  // The private DNS name for the service.
   407  func (o VpcEndpointServiceOutput) PrivateDnsName() pulumi.StringOutput {
   408  	return o.ApplyT(func(v *VpcEndpointService) pulumi.StringOutput { return v.PrivateDnsName }).(pulumi.StringOutput)
   409  }
   410  
   411  // List of objects containing information about the endpoint service private DNS name configuration.
   412  func (o VpcEndpointServiceOutput) PrivateDnsNameConfigurations() VpcEndpointServicePrivateDnsNameConfigurationArrayOutput {
   413  	return o.ApplyT(func(v *VpcEndpointService) VpcEndpointServicePrivateDnsNameConfigurationArrayOutput {
   414  		return v.PrivateDnsNameConfigurations
   415  	}).(VpcEndpointServicePrivateDnsNameConfigurationArrayOutput)
   416  }
   417  
   418  // The service name.
   419  func (o VpcEndpointServiceOutput) ServiceName() pulumi.StringOutput {
   420  	return o.ApplyT(func(v *VpcEndpointService) pulumi.StringOutput { return v.ServiceName }).(pulumi.StringOutput)
   421  }
   422  
   423  // The service type, `Gateway` or `Interface`.
   424  func (o VpcEndpointServiceOutput) ServiceType() pulumi.StringOutput {
   425  	return o.ApplyT(func(v *VpcEndpointService) pulumi.StringOutput { return v.ServiceType }).(pulumi.StringOutput)
   426  }
   427  
   428  // Verification state of the VPC endpoint service. Consumers of the endpoint service can use the private name only when the state is `verified`.
   429  func (o VpcEndpointServiceOutput) State() pulumi.StringOutput {
   430  	return o.ApplyT(func(v *VpcEndpointService) pulumi.StringOutput { return v.State }).(pulumi.StringOutput)
   431  }
   432  
   433  // The supported IP address types. The possible values are `ipv4` and `ipv6`.
   434  func (o VpcEndpointServiceOutput) SupportedIpAddressTypes() pulumi.StringArrayOutput {
   435  	return o.ApplyT(func(v *VpcEndpointService) pulumi.StringArrayOutput { return v.SupportedIpAddressTypes }).(pulumi.StringArrayOutput)
   436  }
   437  
   438  // 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.
   439  func (o VpcEndpointServiceOutput) Tags() pulumi.StringMapOutput {
   440  	return o.ApplyT(func(v *VpcEndpointService) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   441  }
   442  
   443  // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   444  //
   445  // Deprecated: Please use `tags` instead.
   446  func (o VpcEndpointServiceOutput) TagsAll() pulumi.StringMapOutput {
   447  	return o.ApplyT(func(v *VpcEndpointService) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   448  }
   449  
   450  type VpcEndpointServiceArrayOutput struct{ *pulumi.OutputState }
   451  
   452  func (VpcEndpointServiceArrayOutput) ElementType() reflect.Type {
   453  	return reflect.TypeOf((*[]*VpcEndpointService)(nil)).Elem()
   454  }
   455  
   456  func (o VpcEndpointServiceArrayOutput) ToVpcEndpointServiceArrayOutput() VpcEndpointServiceArrayOutput {
   457  	return o
   458  }
   459  
   460  func (o VpcEndpointServiceArrayOutput) ToVpcEndpointServiceArrayOutputWithContext(ctx context.Context) VpcEndpointServiceArrayOutput {
   461  	return o
   462  }
   463  
   464  func (o VpcEndpointServiceArrayOutput) Index(i pulumi.IntInput) VpcEndpointServiceOutput {
   465  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *VpcEndpointService {
   466  		return vs[0].([]*VpcEndpointService)[vs[1].(int)]
   467  	}).(VpcEndpointServiceOutput)
   468  }
   469  
   470  type VpcEndpointServiceMapOutput struct{ *pulumi.OutputState }
   471  
   472  func (VpcEndpointServiceMapOutput) ElementType() reflect.Type {
   473  	return reflect.TypeOf((*map[string]*VpcEndpointService)(nil)).Elem()
   474  }
   475  
   476  func (o VpcEndpointServiceMapOutput) ToVpcEndpointServiceMapOutput() VpcEndpointServiceMapOutput {
   477  	return o
   478  }
   479  
   480  func (o VpcEndpointServiceMapOutput) ToVpcEndpointServiceMapOutputWithContext(ctx context.Context) VpcEndpointServiceMapOutput {
   481  	return o
   482  }
   483  
   484  func (o VpcEndpointServiceMapOutput) MapIndex(k pulumi.StringInput) VpcEndpointServiceOutput {
   485  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *VpcEndpointService {
   486  		return vs[0].(map[string]*VpcEndpointService)[vs[1].(string)]
   487  	}).(VpcEndpointServiceOutput)
   488  }
   489  
   490  func init() {
   491  	pulumi.RegisterInputType(reflect.TypeOf((*VpcEndpointServiceInput)(nil)).Elem(), &VpcEndpointService{})
   492  	pulumi.RegisterInputType(reflect.TypeOf((*VpcEndpointServiceArrayInput)(nil)).Elem(), VpcEndpointServiceArray{})
   493  	pulumi.RegisterInputType(reflect.TypeOf((*VpcEndpointServiceMapInput)(nil)).Elem(), VpcEndpointServiceMap{})
   494  	pulumi.RegisterOutputType(VpcEndpointServiceOutput{})
   495  	pulumi.RegisterOutputType(VpcEndpointServiceArrayOutput{})
   496  	pulumi.RegisterOutputType(VpcEndpointServiceMapOutput{})
   497  }