github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/verifiedaccess/endpoint.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 verifiedaccess
     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  // Resource for managing an AWS EC2 (Elastic Compute Cloud) Verified Access Endpoint.
    16  //
    17  // ## Example Usage
    18  //
    19  // ### Network Interface Example
    20  //
    21  // <!--Start PulumiCodeChooser -->
    22  // ```go
    23  // package main
    24  //
    25  // import (
    26  //
    27  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/verifiedaccess"
    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 := verifiedaccess.NewEndpoint(ctx, "example", &verifiedaccess.EndpointArgs{
    35  //				ApplicationDomain:    pulumi.String("example.com"),
    36  //				AttachmentType:       pulumi.String("vpc"),
    37  //				Description:          pulumi.String("example"),
    38  //				DomainCertificateArn: pulumi.Any(exampleAwsAcmCertificate.Arn),
    39  //				EndpointDomainPrefix: pulumi.String("example"),
    40  //				EndpointType:         pulumi.String("network-interface"),
    41  //				NetworkInterfaceOptions: &verifiedaccess.EndpointNetworkInterfaceOptionsArgs{
    42  //					NetworkInterfaceId: pulumi.Any(exampleAwsNetworkInterface.Id),
    43  //					Port:               pulumi.Int(443),
    44  //					Protocol:           pulumi.String("https"),
    45  //				},
    46  //				SecurityGroupIds: pulumi.StringArray{
    47  //					exampleAwsSecurityGroup.Id,
    48  //				},
    49  //				VerifiedAccessGroupId: pulumi.Any(exampleAwsVerifiedaccessGroup.Id),
    50  //			})
    51  //			if err != nil {
    52  //				return err
    53  //			}
    54  //			return nil
    55  //		})
    56  //	}
    57  //
    58  // ```
    59  // <!--End PulumiCodeChooser -->
    60  //
    61  // ## Import
    62  //
    63  // Using `pulumi import`, import Verified Access Instances using the  `id`. For example:
    64  //
    65  // ```sh
    66  // $ pulumi import aws:verifiedaccess/endpoint:Endpoint example vae-8012925589
    67  // ```
    68  type Endpoint struct {
    69  	pulumi.CustomResourceState
    70  
    71  	// The DNS name for users to reach your application.
    72  	ApplicationDomain pulumi.StringOutput `pulumi:"applicationDomain"`
    73  	// The type of attachment. Currently, only `vpc` is supported.
    74  	AttachmentType pulumi.StringOutput `pulumi:"attachmentType"`
    75  	// A description for the Verified Access endpoint.
    76  	Description pulumi.StringPtrOutput `pulumi:"description"`
    77  	// Returned if endpoint has a device trust provider attached.
    78  	DeviceValidationDomain pulumi.StringOutput `pulumi:"deviceValidationDomain"`
    79  	// The ARN of the public TLS/SSL certificate in AWS Certificate Manager to associate with the endpoint. The CN in the certificate must match the DNS name your end users will use to reach your application.
    80  	DomainCertificateArn pulumi.StringOutput `pulumi:"domainCertificateArn"`
    81  	// A DNS name that is generated for the endpoint.
    82  	EndpointDomain pulumi.StringOutput `pulumi:"endpointDomain"`
    83  	// A custom identifier that is prepended to the DNS name that is generated for the endpoint.
    84  	EndpointDomainPrefix pulumi.StringOutput `pulumi:"endpointDomainPrefix"`
    85  	// The type of Verified Access endpoint to create. Currently `load-balancer` or `network-interface` are supported.
    86  	EndpointType pulumi.StringOutput `pulumi:"endpointType"`
    87  	// The load balancer details. This parameter is required if the endpoint type is `load-balancer`.
    88  	LoadBalancerOptions EndpointLoadBalancerOptionsPtrOutput `pulumi:"loadBalancerOptions"`
    89  	// The network interface details. This parameter is required if the endpoint type is `network-interface`.
    90  	NetworkInterfaceOptions EndpointNetworkInterfaceOptionsPtrOutput `pulumi:"networkInterfaceOptions"`
    91  	// The policy document that is associated with this resource.
    92  	PolicyDocument pulumi.StringPtrOutput `pulumi:"policyDocument"`
    93  	// List of the the security groups IDs to associate with the Verified Access endpoint.
    94  	SecurityGroupIds pulumi.StringArrayOutput `pulumi:"securityGroupIds"`
    95  	// The options in use for server side encryption.
    96  	SseSpecification EndpointSseSpecificationOutput `pulumi:"sseSpecification"`
    97  	// Key-value tags for the Verified Access Endpoint. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    98  	Tags pulumi.StringMapOutput `pulumi:"tags"`
    99  	// Deprecated: Please use `tags` instead.
   100  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
   101  	// The ID of the Verified Access group to associate the endpoint with.
   102  	//
   103  	// The following arguments are optional:
   104  	VerifiedAccessGroupId    pulumi.StringOutput `pulumi:"verifiedAccessGroupId"`
   105  	VerifiedAccessInstanceId pulumi.StringOutput `pulumi:"verifiedAccessInstanceId"`
   106  }
   107  
   108  // NewEndpoint registers a new resource with the given unique name, arguments, and options.
   109  func NewEndpoint(ctx *pulumi.Context,
   110  	name string, args *EndpointArgs, opts ...pulumi.ResourceOption) (*Endpoint, error) {
   111  	if args == nil {
   112  		return nil, errors.New("missing one or more required arguments")
   113  	}
   114  
   115  	if args.ApplicationDomain == nil {
   116  		return nil, errors.New("invalid value for required argument 'ApplicationDomain'")
   117  	}
   118  	if args.AttachmentType == nil {
   119  		return nil, errors.New("invalid value for required argument 'AttachmentType'")
   120  	}
   121  	if args.DomainCertificateArn == nil {
   122  		return nil, errors.New("invalid value for required argument 'DomainCertificateArn'")
   123  	}
   124  	if args.EndpointDomainPrefix == nil {
   125  		return nil, errors.New("invalid value for required argument 'EndpointDomainPrefix'")
   126  	}
   127  	if args.EndpointType == nil {
   128  		return nil, errors.New("invalid value for required argument 'EndpointType'")
   129  	}
   130  	if args.VerifiedAccessGroupId == nil {
   131  		return nil, errors.New("invalid value for required argument 'VerifiedAccessGroupId'")
   132  	}
   133  	opts = internal.PkgResourceDefaultOpts(opts)
   134  	var resource Endpoint
   135  	err := ctx.RegisterResource("aws:verifiedaccess/endpoint:Endpoint", name, args, &resource, opts...)
   136  	if err != nil {
   137  		return nil, err
   138  	}
   139  	return &resource, nil
   140  }
   141  
   142  // GetEndpoint gets an existing Endpoint resource's state with the given name, ID, and optional
   143  // state properties that are used to uniquely qualify the lookup (nil if not required).
   144  func GetEndpoint(ctx *pulumi.Context,
   145  	name string, id pulumi.IDInput, state *EndpointState, opts ...pulumi.ResourceOption) (*Endpoint, error) {
   146  	var resource Endpoint
   147  	err := ctx.ReadResource("aws:verifiedaccess/endpoint:Endpoint", name, id, state, &resource, opts...)
   148  	if err != nil {
   149  		return nil, err
   150  	}
   151  	return &resource, nil
   152  }
   153  
   154  // Input properties used for looking up and filtering Endpoint resources.
   155  type endpointState struct {
   156  	// The DNS name for users to reach your application.
   157  	ApplicationDomain *string `pulumi:"applicationDomain"`
   158  	// The type of attachment. Currently, only `vpc` is supported.
   159  	AttachmentType *string `pulumi:"attachmentType"`
   160  	// A description for the Verified Access endpoint.
   161  	Description *string `pulumi:"description"`
   162  	// Returned if endpoint has a device trust provider attached.
   163  	DeviceValidationDomain *string `pulumi:"deviceValidationDomain"`
   164  	// The ARN of the public TLS/SSL certificate in AWS Certificate Manager to associate with the endpoint. The CN in the certificate must match the DNS name your end users will use to reach your application.
   165  	DomainCertificateArn *string `pulumi:"domainCertificateArn"`
   166  	// A DNS name that is generated for the endpoint.
   167  	EndpointDomain *string `pulumi:"endpointDomain"`
   168  	// A custom identifier that is prepended to the DNS name that is generated for the endpoint.
   169  	EndpointDomainPrefix *string `pulumi:"endpointDomainPrefix"`
   170  	// The type of Verified Access endpoint to create. Currently `load-balancer` or `network-interface` are supported.
   171  	EndpointType *string `pulumi:"endpointType"`
   172  	// The load balancer details. This parameter is required if the endpoint type is `load-balancer`.
   173  	LoadBalancerOptions *EndpointLoadBalancerOptions `pulumi:"loadBalancerOptions"`
   174  	// The network interface details. This parameter is required if the endpoint type is `network-interface`.
   175  	NetworkInterfaceOptions *EndpointNetworkInterfaceOptions `pulumi:"networkInterfaceOptions"`
   176  	// The policy document that is associated with this resource.
   177  	PolicyDocument *string `pulumi:"policyDocument"`
   178  	// List of the the security groups IDs to associate with the Verified Access endpoint.
   179  	SecurityGroupIds []string `pulumi:"securityGroupIds"`
   180  	// The options in use for server side encryption.
   181  	SseSpecification *EndpointSseSpecification `pulumi:"sseSpecification"`
   182  	// Key-value tags for the Verified Access Endpoint. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   183  	Tags map[string]string `pulumi:"tags"`
   184  	// Deprecated: Please use `tags` instead.
   185  	TagsAll map[string]string `pulumi:"tagsAll"`
   186  	// The ID of the Verified Access group to associate the endpoint with.
   187  	//
   188  	// The following arguments are optional:
   189  	VerifiedAccessGroupId    *string `pulumi:"verifiedAccessGroupId"`
   190  	VerifiedAccessInstanceId *string `pulumi:"verifiedAccessInstanceId"`
   191  }
   192  
   193  type EndpointState struct {
   194  	// The DNS name for users to reach your application.
   195  	ApplicationDomain pulumi.StringPtrInput
   196  	// The type of attachment. Currently, only `vpc` is supported.
   197  	AttachmentType pulumi.StringPtrInput
   198  	// A description for the Verified Access endpoint.
   199  	Description pulumi.StringPtrInput
   200  	// Returned if endpoint has a device trust provider attached.
   201  	DeviceValidationDomain pulumi.StringPtrInput
   202  	// The ARN of the public TLS/SSL certificate in AWS Certificate Manager to associate with the endpoint. The CN in the certificate must match the DNS name your end users will use to reach your application.
   203  	DomainCertificateArn pulumi.StringPtrInput
   204  	// A DNS name that is generated for the endpoint.
   205  	EndpointDomain pulumi.StringPtrInput
   206  	// A custom identifier that is prepended to the DNS name that is generated for the endpoint.
   207  	EndpointDomainPrefix pulumi.StringPtrInput
   208  	// The type of Verified Access endpoint to create. Currently `load-balancer` or `network-interface` are supported.
   209  	EndpointType pulumi.StringPtrInput
   210  	// The load balancer details. This parameter is required if the endpoint type is `load-balancer`.
   211  	LoadBalancerOptions EndpointLoadBalancerOptionsPtrInput
   212  	// The network interface details. This parameter is required if the endpoint type is `network-interface`.
   213  	NetworkInterfaceOptions EndpointNetworkInterfaceOptionsPtrInput
   214  	// The policy document that is associated with this resource.
   215  	PolicyDocument pulumi.StringPtrInput
   216  	// List of the the security groups IDs to associate with the Verified Access endpoint.
   217  	SecurityGroupIds pulumi.StringArrayInput
   218  	// The options in use for server side encryption.
   219  	SseSpecification EndpointSseSpecificationPtrInput
   220  	// Key-value tags for the Verified Access Endpoint. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   221  	Tags pulumi.StringMapInput
   222  	// Deprecated: Please use `tags` instead.
   223  	TagsAll pulumi.StringMapInput
   224  	// The ID of the Verified Access group to associate the endpoint with.
   225  	//
   226  	// The following arguments are optional:
   227  	VerifiedAccessGroupId    pulumi.StringPtrInput
   228  	VerifiedAccessInstanceId pulumi.StringPtrInput
   229  }
   230  
   231  func (EndpointState) ElementType() reflect.Type {
   232  	return reflect.TypeOf((*endpointState)(nil)).Elem()
   233  }
   234  
   235  type endpointArgs struct {
   236  	// The DNS name for users to reach your application.
   237  	ApplicationDomain string `pulumi:"applicationDomain"`
   238  	// The type of attachment. Currently, only `vpc` is supported.
   239  	AttachmentType string `pulumi:"attachmentType"`
   240  	// A description for the Verified Access endpoint.
   241  	Description *string `pulumi:"description"`
   242  	// The ARN of the public TLS/SSL certificate in AWS Certificate Manager to associate with the endpoint. The CN in the certificate must match the DNS name your end users will use to reach your application.
   243  	DomainCertificateArn string `pulumi:"domainCertificateArn"`
   244  	// A custom identifier that is prepended to the DNS name that is generated for the endpoint.
   245  	EndpointDomainPrefix string `pulumi:"endpointDomainPrefix"`
   246  	// The type of Verified Access endpoint to create. Currently `load-balancer` or `network-interface` are supported.
   247  	EndpointType string `pulumi:"endpointType"`
   248  	// The load balancer details. This parameter is required if the endpoint type is `load-balancer`.
   249  	LoadBalancerOptions *EndpointLoadBalancerOptions `pulumi:"loadBalancerOptions"`
   250  	// The network interface details. This parameter is required if the endpoint type is `network-interface`.
   251  	NetworkInterfaceOptions *EndpointNetworkInterfaceOptions `pulumi:"networkInterfaceOptions"`
   252  	// The policy document that is associated with this resource.
   253  	PolicyDocument *string `pulumi:"policyDocument"`
   254  	// List of the the security groups IDs to associate with the Verified Access endpoint.
   255  	SecurityGroupIds []string `pulumi:"securityGroupIds"`
   256  	// The options in use for server side encryption.
   257  	SseSpecification *EndpointSseSpecification `pulumi:"sseSpecification"`
   258  	// Key-value tags for the Verified Access Endpoint. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   259  	Tags map[string]string `pulumi:"tags"`
   260  	// The ID of the Verified Access group to associate the endpoint with.
   261  	//
   262  	// The following arguments are optional:
   263  	VerifiedAccessGroupId string `pulumi:"verifiedAccessGroupId"`
   264  }
   265  
   266  // The set of arguments for constructing a Endpoint resource.
   267  type EndpointArgs struct {
   268  	// The DNS name for users to reach your application.
   269  	ApplicationDomain pulumi.StringInput
   270  	// The type of attachment. Currently, only `vpc` is supported.
   271  	AttachmentType pulumi.StringInput
   272  	// A description for the Verified Access endpoint.
   273  	Description pulumi.StringPtrInput
   274  	// The ARN of the public TLS/SSL certificate in AWS Certificate Manager to associate with the endpoint. The CN in the certificate must match the DNS name your end users will use to reach your application.
   275  	DomainCertificateArn pulumi.StringInput
   276  	// A custom identifier that is prepended to the DNS name that is generated for the endpoint.
   277  	EndpointDomainPrefix pulumi.StringInput
   278  	// The type of Verified Access endpoint to create. Currently `load-balancer` or `network-interface` are supported.
   279  	EndpointType pulumi.StringInput
   280  	// The load balancer details. This parameter is required if the endpoint type is `load-balancer`.
   281  	LoadBalancerOptions EndpointLoadBalancerOptionsPtrInput
   282  	// The network interface details. This parameter is required if the endpoint type is `network-interface`.
   283  	NetworkInterfaceOptions EndpointNetworkInterfaceOptionsPtrInput
   284  	// The policy document that is associated with this resource.
   285  	PolicyDocument pulumi.StringPtrInput
   286  	// List of the the security groups IDs to associate with the Verified Access endpoint.
   287  	SecurityGroupIds pulumi.StringArrayInput
   288  	// The options in use for server side encryption.
   289  	SseSpecification EndpointSseSpecificationPtrInput
   290  	// Key-value tags for the Verified Access Endpoint. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   291  	Tags pulumi.StringMapInput
   292  	// The ID of the Verified Access group to associate the endpoint with.
   293  	//
   294  	// The following arguments are optional:
   295  	VerifiedAccessGroupId pulumi.StringInput
   296  }
   297  
   298  func (EndpointArgs) ElementType() reflect.Type {
   299  	return reflect.TypeOf((*endpointArgs)(nil)).Elem()
   300  }
   301  
   302  type EndpointInput interface {
   303  	pulumi.Input
   304  
   305  	ToEndpointOutput() EndpointOutput
   306  	ToEndpointOutputWithContext(ctx context.Context) EndpointOutput
   307  }
   308  
   309  func (*Endpoint) ElementType() reflect.Type {
   310  	return reflect.TypeOf((**Endpoint)(nil)).Elem()
   311  }
   312  
   313  func (i *Endpoint) ToEndpointOutput() EndpointOutput {
   314  	return i.ToEndpointOutputWithContext(context.Background())
   315  }
   316  
   317  func (i *Endpoint) ToEndpointOutputWithContext(ctx context.Context) EndpointOutput {
   318  	return pulumi.ToOutputWithContext(ctx, i).(EndpointOutput)
   319  }
   320  
   321  // EndpointArrayInput is an input type that accepts EndpointArray and EndpointArrayOutput values.
   322  // You can construct a concrete instance of `EndpointArrayInput` via:
   323  //
   324  //	EndpointArray{ EndpointArgs{...} }
   325  type EndpointArrayInput interface {
   326  	pulumi.Input
   327  
   328  	ToEndpointArrayOutput() EndpointArrayOutput
   329  	ToEndpointArrayOutputWithContext(context.Context) EndpointArrayOutput
   330  }
   331  
   332  type EndpointArray []EndpointInput
   333  
   334  func (EndpointArray) ElementType() reflect.Type {
   335  	return reflect.TypeOf((*[]*Endpoint)(nil)).Elem()
   336  }
   337  
   338  func (i EndpointArray) ToEndpointArrayOutput() EndpointArrayOutput {
   339  	return i.ToEndpointArrayOutputWithContext(context.Background())
   340  }
   341  
   342  func (i EndpointArray) ToEndpointArrayOutputWithContext(ctx context.Context) EndpointArrayOutput {
   343  	return pulumi.ToOutputWithContext(ctx, i).(EndpointArrayOutput)
   344  }
   345  
   346  // EndpointMapInput is an input type that accepts EndpointMap and EndpointMapOutput values.
   347  // You can construct a concrete instance of `EndpointMapInput` via:
   348  //
   349  //	EndpointMap{ "key": EndpointArgs{...} }
   350  type EndpointMapInput interface {
   351  	pulumi.Input
   352  
   353  	ToEndpointMapOutput() EndpointMapOutput
   354  	ToEndpointMapOutputWithContext(context.Context) EndpointMapOutput
   355  }
   356  
   357  type EndpointMap map[string]EndpointInput
   358  
   359  func (EndpointMap) ElementType() reflect.Type {
   360  	return reflect.TypeOf((*map[string]*Endpoint)(nil)).Elem()
   361  }
   362  
   363  func (i EndpointMap) ToEndpointMapOutput() EndpointMapOutput {
   364  	return i.ToEndpointMapOutputWithContext(context.Background())
   365  }
   366  
   367  func (i EndpointMap) ToEndpointMapOutputWithContext(ctx context.Context) EndpointMapOutput {
   368  	return pulumi.ToOutputWithContext(ctx, i).(EndpointMapOutput)
   369  }
   370  
   371  type EndpointOutput struct{ *pulumi.OutputState }
   372  
   373  func (EndpointOutput) ElementType() reflect.Type {
   374  	return reflect.TypeOf((**Endpoint)(nil)).Elem()
   375  }
   376  
   377  func (o EndpointOutput) ToEndpointOutput() EndpointOutput {
   378  	return o
   379  }
   380  
   381  func (o EndpointOutput) ToEndpointOutputWithContext(ctx context.Context) EndpointOutput {
   382  	return o
   383  }
   384  
   385  // The DNS name for users to reach your application.
   386  func (o EndpointOutput) ApplicationDomain() pulumi.StringOutput {
   387  	return o.ApplyT(func(v *Endpoint) pulumi.StringOutput { return v.ApplicationDomain }).(pulumi.StringOutput)
   388  }
   389  
   390  // The type of attachment. Currently, only `vpc` is supported.
   391  func (o EndpointOutput) AttachmentType() pulumi.StringOutput {
   392  	return o.ApplyT(func(v *Endpoint) pulumi.StringOutput { return v.AttachmentType }).(pulumi.StringOutput)
   393  }
   394  
   395  // A description for the Verified Access endpoint.
   396  func (o EndpointOutput) Description() pulumi.StringPtrOutput {
   397  	return o.ApplyT(func(v *Endpoint) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput)
   398  }
   399  
   400  // Returned if endpoint has a device trust provider attached.
   401  func (o EndpointOutput) DeviceValidationDomain() pulumi.StringOutput {
   402  	return o.ApplyT(func(v *Endpoint) pulumi.StringOutput { return v.DeviceValidationDomain }).(pulumi.StringOutput)
   403  }
   404  
   405  // The ARN of the public TLS/SSL certificate in AWS Certificate Manager to associate with the endpoint. The CN in the certificate must match the DNS name your end users will use to reach your application.
   406  func (o EndpointOutput) DomainCertificateArn() pulumi.StringOutput {
   407  	return o.ApplyT(func(v *Endpoint) pulumi.StringOutput { return v.DomainCertificateArn }).(pulumi.StringOutput)
   408  }
   409  
   410  // A DNS name that is generated for the endpoint.
   411  func (o EndpointOutput) EndpointDomain() pulumi.StringOutput {
   412  	return o.ApplyT(func(v *Endpoint) pulumi.StringOutput { return v.EndpointDomain }).(pulumi.StringOutput)
   413  }
   414  
   415  // A custom identifier that is prepended to the DNS name that is generated for the endpoint.
   416  func (o EndpointOutput) EndpointDomainPrefix() pulumi.StringOutput {
   417  	return o.ApplyT(func(v *Endpoint) pulumi.StringOutput { return v.EndpointDomainPrefix }).(pulumi.StringOutput)
   418  }
   419  
   420  // The type of Verified Access endpoint to create. Currently `load-balancer` or `network-interface` are supported.
   421  func (o EndpointOutput) EndpointType() pulumi.StringOutput {
   422  	return o.ApplyT(func(v *Endpoint) pulumi.StringOutput { return v.EndpointType }).(pulumi.StringOutput)
   423  }
   424  
   425  // The load balancer details. This parameter is required if the endpoint type is `load-balancer`.
   426  func (o EndpointOutput) LoadBalancerOptions() EndpointLoadBalancerOptionsPtrOutput {
   427  	return o.ApplyT(func(v *Endpoint) EndpointLoadBalancerOptionsPtrOutput { return v.LoadBalancerOptions }).(EndpointLoadBalancerOptionsPtrOutput)
   428  }
   429  
   430  // The network interface details. This parameter is required if the endpoint type is `network-interface`.
   431  func (o EndpointOutput) NetworkInterfaceOptions() EndpointNetworkInterfaceOptionsPtrOutput {
   432  	return o.ApplyT(func(v *Endpoint) EndpointNetworkInterfaceOptionsPtrOutput { return v.NetworkInterfaceOptions }).(EndpointNetworkInterfaceOptionsPtrOutput)
   433  }
   434  
   435  // The policy document that is associated with this resource.
   436  func (o EndpointOutput) PolicyDocument() pulumi.StringPtrOutput {
   437  	return o.ApplyT(func(v *Endpoint) pulumi.StringPtrOutput { return v.PolicyDocument }).(pulumi.StringPtrOutput)
   438  }
   439  
   440  // List of the the security groups IDs to associate with the Verified Access endpoint.
   441  func (o EndpointOutput) SecurityGroupIds() pulumi.StringArrayOutput {
   442  	return o.ApplyT(func(v *Endpoint) pulumi.StringArrayOutput { return v.SecurityGroupIds }).(pulumi.StringArrayOutput)
   443  }
   444  
   445  // The options in use for server side encryption.
   446  func (o EndpointOutput) SseSpecification() EndpointSseSpecificationOutput {
   447  	return o.ApplyT(func(v *Endpoint) EndpointSseSpecificationOutput { return v.SseSpecification }).(EndpointSseSpecificationOutput)
   448  }
   449  
   450  // Key-value tags for the Verified Access Endpoint. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   451  func (o EndpointOutput) Tags() pulumi.StringMapOutput {
   452  	return o.ApplyT(func(v *Endpoint) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   453  }
   454  
   455  // Deprecated: Please use `tags` instead.
   456  func (o EndpointOutput) TagsAll() pulumi.StringMapOutput {
   457  	return o.ApplyT(func(v *Endpoint) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   458  }
   459  
   460  // The ID of the Verified Access group to associate the endpoint with.
   461  //
   462  // The following arguments are optional:
   463  func (o EndpointOutput) VerifiedAccessGroupId() pulumi.StringOutput {
   464  	return o.ApplyT(func(v *Endpoint) pulumi.StringOutput { return v.VerifiedAccessGroupId }).(pulumi.StringOutput)
   465  }
   466  
   467  func (o EndpointOutput) VerifiedAccessInstanceId() pulumi.StringOutput {
   468  	return o.ApplyT(func(v *Endpoint) pulumi.StringOutput { return v.VerifiedAccessInstanceId }).(pulumi.StringOutput)
   469  }
   470  
   471  type EndpointArrayOutput struct{ *pulumi.OutputState }
   472  
   473  func (EndpointArrayOutput) ElementType() reflect.Type {
   474  	return reflect.TypeOf((*[]*Endpoint)(nil)).Elem()
   475  }
   476  
   477  func (o EndpointArrayOutput) ToEndpointArrayOutput() EndpointArrayOutput {
   478  	return o
   479  }
   480  
   481  func (o EndpointArrayOutput) ToEndpointArrayOutputWithContext(ctx context.Context) EndpointArrayOutput {
   482  	return o
   483  }
   484  
   485  func (o EndpointArrayOutput) Index(i pulumi.IntInput) EndpointOutput {
   486  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Endpoint {
   487  		return vs[0].([]*Endpoint)[vs[1].(int)]
   488  	}).(EndpointOutput)
   489  }
   490  
   491  type EndpointMapOutput struct{ *pulumi.OutputState }
   492  
   493  func (EndpointMapOutput) ElementType() reflect.Type {
   494  	return reflect.TypeOf((*map[string]*Endpoint)(nil)).Elem()
   495  }
   496  
   497  func (o EndpointMapOutput) ToEndpointMapOutput() EndpointMapOutput {
   498  	return o
   499  }
   500  
   501  func (o EndpointMapOutput) ToEndpointMapOutputWithContext(ctx context.Context) EndpointMapOutput {
   502  	return o
   503  }
   504  
   505  func (o EndpointMapOutput) MapIndex(k pulumi.StringInput) EndpointOutput {
   506  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Endpoint {
   507  		return vs[0].(map[string]*Endpoint)[vs[1].(string)]
   508  	}).(EndpointOutput)
   509  }
   510  
   511  func init() {
   512  	pulumi.RegisterInputType(reflect.TypeOf((*EndpointInput)(nil)).Elem(), &Endpoint{})
   513  	pulumi.RegisterInputType(reflect.TypeOf((*EndpointArrayInput)(nil)).Elem(), EndpointArray{})
   514  	pulumi.RegisterInputType(reflect.TypeOf((*EndpointMapInput)(nil)).Elem(), EndpointMap{})
   515  	pulumi.RegisterOutputType(EndpointOutput{})
   516  	pulumi.RegisterOutputType(EndpointArrayOutput{})
   517  	pulumi.RegisterOutputType(EndpointMapOutput{})
   518  }