ec2clientvpn

package
v3.38.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 13, 2021 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AuthorizationRule

type AuthorizationRule struct {
	pulumi.CustomResourceState

	// The ID of the group to which the authorization rule grants access. One of `accessGroupId` or `authorizeAllGroups` must be set.
	AccessGroupId pulumi.StringPtrOutput `pulumi:"accessGroupId"`
	// Indicates whether the authorization rule grants access to all clients. One of `accessGroupId` or `authorizeAllGroups` must be set.
	AuthorizeAllGroups pulumi.BoolPtrOutput `pulumi:"authorizeAllGroups"`
	// The ID of the Client VPN endpoint.
	ClientVpnEndpointId pulumi.StringOutput `pulumi:"clientVpnEndpointId"`
	// A brief description of the authorization rule.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// The IPv4 address range, in CIDR notation, of the network to which the authorization rule applies.
	TargetNetworkCidr pulumi.StringOutput `pulumi:"targetNetworkCidr"`
}

Provides authorization rules for AWS Client VPN endpoints. For more information on usage, please see the [AWS Client VPN Administrator's Guide](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/what-is.html).

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/ec2clientvpn"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := ec2clientvpn.NewAuthorizationRule(ctx, "example", &ec2clientvpn.AuthorizationRuleArgs{
			ClientVpnEndpointId: pulumi.Any(aws_ec2_client_vpn_endpoint.Example.Id),
			TargetNetworkCidr:   pulumi.Any(aws_subnet.Example.Cidr_block),
			AuthorizeAllGroups:  pulumi.Bool(true),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

AWS Client VPN authorization rules can be imported using the endpoint ID and target network CIDR. If there is a specific group name that is included as well. All values are separated by a `,`.

```sh

$ pulumi import aws:ec2clientvpn/authorizationRule:AuthorizationRule example cvpn-endpoint-0ac3a1abbccddd666,10.1.0.0/24

```

```sh

$ pulumi import aws:ec2clientvpn/authorizationRule:AuthorizationRule example cvpn-endpoint-0ac3a1abbccddd666,10.1.0.0/24,team-a

```

func GetAuthorizationRule

func GetAuthorizationRule(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *AuthorizationRuleState, opts ...pulumi.ResourceOption) (*AuthorizationRule, error)

GetAuthorizationRule gets an existing AuthorizationRule resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewAuthorizationRule

func NewAuthorizationRule(ctx *pulumi.Context,
	name string, args *AuthorizationRuleArgs, opts ...pulumi.ResourceOption) (*AuthorizationRule, error)

NewAuthorizationRule registers a new resource with the given unique name, arguments, and options.

func (*AuthorizationRule) ElementType added in v3.13.0

func (*AuthorizationRule) ElementType() reflect.Type

func (*AuthorizationRule) ToAuthorizationRuleOutput added in v3.13.0

func (i *AuthorizationRule) ToAuthorizationRuleOutput() AuthorizationRuleOutput

func (*AuthorizationRule) ToAuthorizationRuleOutputWithContext added in v3.13.0

func (i *AuthorizationRule) ToAuthorizationRuleOutputWithContext(ctx context.Context) AuthorizationRuleOutput

func (*AuthorizationRule) ToAuthorizationRulePtrOutput added in v3.25.0

func (i *AuthorizationRule) ToAuthorizationRulePtrOutput() AuthorizationRulePtrOutput

func (*AuthorizationRule) ToAuthorizationRulePtrOutputWithContext added in v3.25.0

func (i *AuthorizationRule) ToAuthorizationRulePtrOutputWithContext(ctx context.Context) AuthorizationRulePtrOutput

type AuthorizationRuleArgs

type AuthorizationRuleArgs struct {
	// The ID of the group to which the authorization rule grants access. One of `accessGroupId` or `authorizeAllGroups` must be set.
	AccessGroupId pulumi.StringPtrInput
	// Indicates whether the authorization rule grants access to all clients. One of `accessGroupId` or `authorizeAllGroups` must be set.
	AuthorizeAllGroups pulumi.BoolPtrInput
	// The ID of the Client VPN endpoint.
	ClientVpnEndpointId pulumi.StringInput
	// A brief description of the authorization rule.
	Description pulumi.StringPtrInput
	// The IPv4 address range, in CIDR notation, of the network to which the authorization rule applies.
	TargetNetworkCidr pulumi.StringInput
}

The set of arguments for constructing a AuthorizationRule resource.

func (AuthorizationRuleArgs) ElementType

func (AuthorizationRuleArgs) ElementType() reflect.Type

type AuthorizationRuleArray added in v3.25.0

type AuthorizationRuleArray []AuthorizationRuleInput

func (AuthorizationRuleArray) ElementType added in v3.25.0

func (AuthorizationRuleArray) ElementType() reflect.Type

func (AuthorizationRuleArray) ToAuthorizationRuleArrayOutput added in v3.25.0

func (i AuthorizationRuleArray) ToAuthorizationRuleArrayOutput() AuthorizationRuleArrayOutput

func (AuthorizationRuleArray) ToAuthorizationRuleArrayOutputWithContext added in v3.25.0

func (i AuthorizationRuleArray) ToAuthorizationRuleArrayOutputWithContext(ctx context.Context) AuthorizationRuleArrayOutput

type AuthorizationRuleArrayInput added in v3.25.0

type AuthorizationRuleArrayInput interface {
	pulumi.Input

	ToAuthorizationRuleArrayOutput() AuthorizationRuleArrayOutput
	ToAuthorizationRuleArrayOutputWithContext(context.Context) AuthorizationRuleArrayOutput
}

AuthorizationRuleArrayInput is an input type that accepts AuthorizationRuleArray and AuthorizationRuleArrayOutput values. You can construct a concrete instance of `AuthorizationRuleArrayInput` via:

AuthorizationRuleArray{ AuthorizationRuleArgs{...} }

type AuthorizationRuleArrayOutput added in v3.25.0

type AuthorizationRuleArrayOutput struct{ *pulumi.OutputState }

func (AuthorizationRuleArrayOutput) ElementType added in v3.25.0

func (AuthorizationRuleArrayOutput) Index added in v3.25.0

func (AuthorizationRuleArrayOutput) ToAuthorizationRuleArrayOutput added in v3.25.0

func (o AuthorizationRuleArrayOutput) ToAuthorizationRuleArrayOutput() AuthorizationRuleArrayOutput

func (AuthorizationRuleArrayOutput) ToAuthorizationRuleArrayOutputWithContext added in v3.25.0

func (o AuthorizationRuleArrayOutput) ToAuthorizationRuleArrayOutputWithContext(ctx context.Context) AuthorizationRuleArrayOutput

type AuthorizationRuleInput added in v3.13.0

type AuthorizationRuleInput interface {
	pulumi.Input

	ToAuthorizationRuleOutput() AuthorizationRuleOutput
	ToAuthorizationRuleOutputWithContext(ctx context.Context) AuthorizationRuleOutput
}

type AuthorizationRuleMap added in v3.25.0

type AuthorizationRuleMap map[string]AuthorizationRuleInput

func (AuthorizationRuleMap) ElementType added in v3.25.0

func (AuthorizationRuleMap) ElementType() reflect.Type

func (AuthorizationRuleMap) ToAuthorizationRuleMapOutput added in v3.25.0

func (i AuthorizationRuleMap) ToAuthorizationRuleMapOutput() AuthorizationRuleMapOutput

func (AuthorizationRuleMap) ToAuthorizationRuleMapOutputWithContext added in v3.25.0

func (i AuthorizationRuleMap) ToAuthorizationRuleMapOutputWithContext(ctx context.Context) AuthorizationRuleMapOutput

type AuthorizationRuleMapInput added in v3.25.0

type AuthorizationRuleMapInput interface {
	pulumi.Input

	ToAuthorizationRuleMapOutput() AuthorizationRuleMapOutput
	ToAuthorizationRuleMapOutputWithContext(context.Context) AuthorizationRuleMapOutput
}

AuthorizationRuleMapInput is an input type that accepts AuthorizationRuleMap and AuthorizationRuleMapOutput values. You can construct a concrete instance of `AuthorizationRuleMapInput` via:

AuthorizationRuleMap{ "key": AuthorizationRuleArgs{...} }

type AuthorizationRuleMapOutput added in v3.25.0

type AuthorizationRuleMapOutput struct{ *pulumi.OutputState }

func (AuthorizationRuleMapOutput) ElementType added in v3.25.0

func (AuthorizationRuleMapOutput) ElementType() reflect.Type

func (AuthorizationRuleMapOutput) MapIndex added in v3.25.0

func (AuthorizationRuleMapOutput) ToAuthorizationRuleMapOutput added in v3.25.0

func (o AuthorizationRuleMapOutput) ToAuthorizationRuleMapOutput() AuthorizationRuleMapOutput

func (AuthorizationRuleMapOutput) ToAuthorizationRuleMapOutputWithContext added in v3.25.0

func (o AuthorizationRuleMapOutput) ToAuthorizationRuleMapOutputWithContext(ctx context.Context) AuthorizationRuleMapOutput

type AuthorizationRuleOutput added in v3.13.0

type AuthorizationRuleOutput struct {
	*pulumi.OutputState
}

func (AuthorizationRuleOutput) ElementType added in v3.13.0

func (AuthorizationRuleOutput) ElementType() reflect.Type

func (AuthorizationRuleOutput) ToAuthorizationRuleOutput added in v3.13.0

func (o AuthorizationRuleOutput) ToAuthorizationRuleOutput() AuthorizationRuleOutput

func (AuthorizationRuleOutput) ToAuthorizationRuleOutputWithContext added in v3.13.0

func (o AuthorizationRuleOutput) ToAuthorizationRuleOutputWithContext(ctx context.Context) AuthorizationRuleOutput

func (AuthorizationRuleOutput) ToAuthorizationRulePtrOutput added in v3.25.0

func (o AuthorizationRuleOutput) ToAuthorizationRulePtrOutput() AuthorizationRulePtrOutput

func (AuthorizationRuleOutput) ToAuthorizationRulePtrOutputWithContext added in v3.25.0

func (o AuthorizationRuleOutput) ToAuthorizationRulePtrOutputWithContext(ctx context.Context) AuthorizationRulePtrOutput

type AuthorizationRulePtrInput added in v3.25.0

type AuthorizationRulePtrInput interface {
	pulumi.Input

	ToAuthorizationRulePtrOutput() AuthorizationRulePtrOutput
	ToAuthorizationRulePtrOutputWithContext(ctx context.Context) AuthorizationRulePtrOutput
}

type AuthorizationRulePtrOutput added in v3.25.0

type AuthorizationRulePtrOutput struct {
	*pulumi.OutputState
}

func (AuthorizationRulePtrOutput) ElementType added in v3.25.0

func (AuthorizationRulePtrOutput) ElementType() reflect.Type

func (AuthorizationRulePtrOutput) ToAuthorizationRulePtrOutput added in v3.25.0

func (o AuthorizationRulePtrOutput) ToAuthorizationRulePtrOutput() AuthorizationRulePtrOutput

func (AuthorizationRulePtrOutput) ToAuthorizationRulePtrOutputWithContext added in v3.25.0

func (o AuthorizationRulePtrOutput) ToAuthorizationRulePtrOutputWithContext(ctx context.Context) AuthorizationRulePtrOutput

type AuthorizationRuleState

type AuthorizationRuleState struct {
	// The ID of the group to which the authorization rule grants access. One of `accessGroupId` or `authorizeAllGroups` must be set.
	AccessGroupId pulumi.StringPtrInput
	// Indicates whether the authorization rule grants access to all clients. One of `accessGroupId` or `authorizeAllGroups` must be set.
	AuthorizeAllGroups pulumi.BoolPtrInput
	// The ID of the Client VPN endpoint.
	ClientVpnEndpointId pulumi.StringPtrInput
	// A brief description of the authorization rule.
	Description pulumi.StringPtrInput
	// The IPv4 address range, in CIDR notation, of the network to which the authorization rule applies.
	TargetNetworkCidr pulumi.StringPtrInput
}

func (AuthorizationRuleState) ElementType

func (AuthorizationRuleState) ElementType() reflect.Type

type Endpoint

type Endpoint struct {
	pulumi.CustomResourceState

	// The ARN of the Client VPN endpoint.
	Arn pulumi.StringOutput `pulumi:"arn"`
	// Information about the authentication method to be used to authenticate clients.
	AuthenticationOptions EndpointAuthenticationOptionArrayOutput `pulumi:"authenticationOptions"`
	// The IPv4 address range, in CIDR notation, from which to assign client IP addresses. The address range cannot overlap with the local CIDR of the VPC in which the associated subnet is located, or the routes that you add manually. The address range cannot be changed after the Client VPN endpoint has been created. The CIDR block should be /22 or greater.
	ClientCidrBlock pulumi.StringOutput `pulumi:"clientCidrBlock"`
	// Information about the client connection logging options.
	ConnectionLogOptions EndpointConnectionLogOptionsOutput `pulumi:"connectionLogOptions"`
	// Name of the repository.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// The DNS name to be used by clients when establishing their VPN session.
	DnsName pulumi.StringOutput `pulumi:"dnsName"`
	// Information about the DNS servers to be used for DNS resolution. A Client VPN endpoint can have up to two DNS servers. If no DNS server is specified, the DNS address of the VPC that is to be associated with Client VPN endpoint is used as the DNS server.
	DnsServers pulumi.StringArrayOutput `pulumi:"dnsServers"`
	// The ARN of the ACM server certificate.
	ServerCertificateArn pulumi.StringOutput `pulumi:"serverCertificateArn"`
	// Indicates whether split-tunnel is enabled on VPN endpoint. Default value is `false`.
	SplitTunnel pulumi.BoolPtrOutput `pulumi:"splitTunnel"`
	// The current state of the Client VPN endpoint.
	Status pulumi.StringOutput `pulumi:"status"`
	// A mapping of tags to assign to the resource.
	Tags pulumi.StringMapOutput `pulumi:"tags"`
	// The transport protocol to be used by the VPN session. Default value is `udp`.
	TransportProtocol pulumi.StringPtrOutput `pulumi:"transportProtocol"`
}

Provides an AWS Client VPN endpoint for OpenVPN clients. For more information on usage, please see the [AWS Client VPN Administrator's Guide](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/what-is.html).

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/ec2clientvpn"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := ec2clientvpn.NewEndpoint(ctx, "example", &ec2clientvpn.EndpointArgs{
			Description:          pulumi.String("clientvpn-example"),
			ServerCertificateArn: pulumi.Any(aws_acm_certificate.Cert.Arn),
			ClientCidrBlock:      pulumi.String("10.0.0.0/16"),
			AuthenticationOptions: ec2clientvpn.EndpointAuthenticationOptionArray{
				&ec2clientvpn.EndpointAuthenticationOptionArgs{
					Type:                    pulumi.String("certificate-authentication"),
					RootCertificateChainArn: pulumi.Any(aws_acm_certificate.Root_cert.Arn),
				},
			},
			ConnectionLogOptions: &ec2clientvpn.EndpointConnectionLogOptionsArgs{
				Enabled:             pulumi.Bool(true),
				CloudwatchLogGroup:  pulumi.Any(aws_cloudwatch_log_group.Lg.Name),
				CloudwatchLogStream: pulumi.Any(aws_cloudwatch_log_stream.Ls.Name),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

AWS Client VPN endpoints can be imported using the `id` value found via `aws ec2 describe-client-vpn-endpoints`, e.g.

```sh

$ pulumi import aws:ec2clientvpn/endpoint:Endpoint example cvpn-endpoint-0ac3a1abbccddd666

```

func GetEndpoint

func GetEndpoint(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *EndpointState, opts ...pulumi.ResourceOption) (*Endpoint, error)

GetEndpoint gets an existing Endpoint resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewEndpoint

func NewEndpoint(ctx *pulumi.Context,
	name string, args *EndpointArgs, opts ...pulumi.ResourceOption) (*Endpoint, error)

NewEndpoint registers a new resource with the given unique name, arguments, and options.

func (*Endpoint) ElementType added in v3.13.0

func (*Endpoint) ElementType() reflect.Type

func (*Endpoint) ToEndpointOutput added in v3.13.0

func (i *Endpoint) ToEndpointOutput() EndpointOutput

func (*Endpoint) ToEndpointOutputWithContext added in v3.13.0

func (i *Endpoint) ToEndpointOutputWithContext(ctx context.Context) EndpointOutput

func (*Endpoint) ToEndpointPtrOutput added in v3.25.0

func (i *Endpoint) ToEndpointPtrOutput() EndpointPtrOutput

func (*Endpoint) ToEndpointPtrOutputWithContext added in v3.25.0

func (i *Endpoint) ToEndpointPtrOutputWithContext(ctx context.Context) EndpointPtrOutput

type EndpointArgs

type EndpointArgs struct {
	// Information about the authentication method to be used to authenticate clients.
	AuthenticationOptions EndpointAuthenticationOptionArrayInput
	// The IPv4 address range, in CIDR notation, from which to assign client IP addresses. The address range cannot overlap with the local CIDR of the VPC in which the associated subnet is located, or the routes that you add manually. The address range cannot be changed after the Client VPN endpoint has been created. The CIDR block should be /22 or greater.
	ClientCidrBlock pulumi.StringInput
	// Information about the client connection logging options.
	ConnectionLogOptions EndpointConnectionLogOptionsInput
	// Name of the repository.
	Description pulumi.StringPtrInput
	// Information about the DNS servers to be used for DNS resolution. A Client VPN endpoint can have up to two DNS servers. If no DNS server is specified, the DNS address of the VPC that is to be associated with Client VPN endpoint is used as the DNS server.
	DnsServers pulumi.StringArrayInput
	// The ARN of the ACM server certificate.
	ServerCertificateArn pulumi.StringInput
	// Indicates whether split-tunnel is enabled on VPN endpoint. Default value is `false`.
	SplitTunnel pulumi.BoolPtrInput
	// A mapping of tags to assign to the resource.
	Tags pulumi.StringMapInput
	// The transport protocol to be used by the VPN session. Default value is `udp`.
	TransportProtocol pulumi.StringPtrInput
}

The set of arguments for constructing a Endpoint resource.

func (EndpointArgs) ElementType

func (EndpointArgs) ElementType() reflect.Type

type EndpointArray added in v3.25.0

type EndpointArray []EndpointInput

func (EndpointArray) ElementType added in v3.25.0

func (EndpointArray) ElementType() reflect.Type

func (EndpointArray) ToEndpointArrayOutput added in v3.25.0

func (i EndpointArray) ToEndpointArrayOutput() EndpointArrayOutput

func (EndpointArray) ToEndpointArrayOutputWithContext added in v3.25.0

func (i EndpointArray) ToEndpointArrayOutputWithContext(ctx context.Context) EndpointArrayOutput

type EndpointArrayInput added in v3.25.0

type EndpointArrayInput interface {
	pulumi.Input

	ToEndpointArrayOutput() EndpointArrayOutput
	ToEndpointArrayOutputWithContext(context.Context) EndpointArrayOutput
}

EndpointArrayInput is an input type that accepts EndpointArray and EndpointArrayOutput values. You can construct a concrete instance of `EndpointArrayInput` via:

EndpointArray{ EndpointArgs{...} }

type EndpointArrayOutput added in v3.25.0

type EndpointArrayOutput struct{ *pulumi.OutputState }

func (EndpointArrayOutput) ElementType added in v3.25.0

func (EndpointArrayOutput) ElementType() reflect.Type

func (EndpointArrayOutput) Index added in v3.25.0

func (EndpointArrayOutput) ToEndpointArrayOutput added in v3.25.0

func (o EndpointArrayOutput) ToEndpointArrayOutput() EndpointArrayOutput

func (EndpointArrayOutput) ToEndpointArrayOutputWithContext added in v3.25.0

func (o EndpointArrayOutput) ToEndpointArrayOutputWithContext(ctx context.Context) EndpointArrayOutput

type EndpointAuthenticationOption

type EndpointAuthenticationOption struct {
	// The ID of the Active Directory to be used for authentication if type is `directory-service-authentication`.
	ActiveDirectoryId *string `pulumi:"activeDirectoryId"`
	// The ARN of the client certificate. The certificate must be signed by a certificate authority (CA) and it must be provisioned in AWS Certificate Manager (ACM). Only necessary when type is set to `certificate-authentication`.
	RootCertificateChainArn *string `pulumi:"rootCertificateChainArn"`
	// The ARN of the IAM SAML identity provider if type is `federated-authentication`.
	SamlProviderArn *string `pulumi:"samlProviderArn"`
	// The type of client authentication to be used. Specify `certificate-authentication` to use certificate-based authentication, `directory-service-authentication` to use Active Directory authentication, or `federated-authentication` to use Federated Authentication via SAML 2.0.
	Type string `pulumi:"type"`
}

type EndpointAuthenticationOptionArgs

type EndpointAuthenticationOptionArgs struct {
	// The ID of the Active Directory to be used for authentication if type is `directory-service-authentication`.
	ActiveDirectoryId pulumi.StringPtrInput `pulumi:"activeDirectoryId"`
	// The ARN of the client certificate. The certificate must be signed by a certificate authority (CA) and it must be provisioned in AWS Certificate Manager (ACM). Only necessary when type is set to `certificate-authentication`.
	RootCertificateChainArn pulumi.StringPtrInput `pulumi:"rootCertificateChainArn"`
	// The ARN of the IAM SAML identity provider if type is `federated-authentication`.
	SamlProviderArn pulumi.StringPtrInput `pulumi:"samlProviderArn"`
	// The type of client authentication to be used. Specify `certificate-authentication` to use certificate-based authentication, `directory-service-authentication` to use Active Directory authentication, or `federated-authentication` to use Federated Authentication via SAML 2.0.
	Type pulumi.StringInput `pulumi:"type"`
}

func (EndpointAuthenticationOptionArgs) ElementType

func (EndpointAuthenticationOptionArgs) ToEndpointAuthenticationOptionOutput

func (i EndpointAuthenticationOptionArgs) ToEndpointAuthenticationOptionOutput() EndpointAuthenticationOptionOutput

func (EndpointAuthenticationOptionArgs) ToEndpointAuthenticationOptionOutputWithContext

func (i EndpointAuthenticationOptionArgs) ToEndpointAuthenticationOptionOutputWithContext(ctx context.Context) EndpointAuthenticationOptionOutput

type EndpointAuthenticationOptionArray

type EndpointAuthenticationOptionArray []EndpointAuthenticationOptionInput

func (EndpointAuthenticationOptionArray) ElementType

func (EndpointAuthenticationOptionArray) ToEndpointAuthenticationOptionArrayOutput

func (i EndpointAuthenticationOptionArray) ToEndpointAuthenticationOptionArrayOutput() EndpointAuthenticationOptionArrayOutput

func (EndpointAuthenticationOptionArray) ToEndpointAuthenticationOptionArrayOutputWithContext

func (i EndpointAuthenticationOptionArray) ToEndpointAuthenticationOptionArrayOutputWithContext(ctx context.Context) EndpointAuthenticationOptionArrayOutput

type EndpointAuthenticationOptionArrayInput

type EndpointAuthenticationOptionArrayInput interface {
	pulumi.Input

	ToEndpointAuthenticationOptionArrayOutput() EndpointAuthenticationOptionArrayOutput
	ToEndpointAuthenticationOptionArrayOutputWithContext(context.Context) EndpointAuthenticationOptionArrayOutput
}

EndpointAuthenticationOptionArrayInput is an input type that accepts EndpointAuthenticationOptionArray and EndpointAuthenticationOptionArrayOutput values. You can construct a concrete instance of `EndpointAuthenticationOptionArrayInput` via:

EndpointAuthenticationOptionArray{ EndpointAuthenticationOptionArgs{...} }

type EndpointAuthenticationOptionArrayOutput

type EndpointAuthenticationOptionArrayOutput struct{ *pulumi.OutputState }

func (EndpointAuthenticationOptionArrayOutput) ElementType

func (EndpointAuthenticationOptionArrayOutput) Index

func (EndpointAuthenticationOptionArrayOutput) ToEndpointAuthenticationOptionArrayOutput

func (o EndpointAuthenticationOptionArrayOutput) ToEndpointAuthenticationOptionArrayOutput() EndpointAuthenticationOptionArrayOutput

func (EndpointAuthenticationOptionArrayOutput) ToEndpointAuthenticationOptionArrayOutputWithContext

func (o EndpointAuthenticationOptionArrayOutput) ToEndpointAuthenticationOptionArrayOutputWithContext(ctx context.Context) EndpointAuthenticationOptionArrayOutput

type EndpointAuthenticationOptionInput

type EndpointAuthenticationOptionInput interface {
	pulumi.Input

	ToEndpointAuthenticationOptionOutput() EndpointAuthenticationOptionOutput
	ToEndpointAuthenticationOptionOutputWithContext(context.Context) EndpointAuthenticationOptionOutput
}

EndpointAuthenticationOptionInput is an input type that accepts EndpointAuthenticationOptionArgs and EndpointAuthenticationOptionOutput values. You can construct a concrete instance of `EndpointAuthenticationOptionInput` via:

EndpointAuthenticationOptionArgs{...}

type EndpointAuthenticationOptionOutput

type EndpointAuthenticationOptionOutput struct{ *pulumi.OutputState }

func (EndpointAuthenticationOptionOutput) ActiveDirectoryId

The ID of the Active Directory to be used for authentication if type is `directory-service-authentication`.

func (EndpointAuthenticationOptionOutput) ElementType

func (EndpointAuthenticationOptionOutput) RootCertificateChainArn

func (o EndpointAuthenticationOptionOutput) RootCertificateChainArn() pulumi.StringPtrOutput

The ARN of the client certificate. The certificate must be signed by a certificate authority (CA) and it must be provisioned in AWS Certificate Manager (ACM). Only necessary when type is set to `certificate-authentication`.

func (EndpointAuthenticationOptionOutput) SamlProviderArn added in v3.3.0

The ARN of the IAM SAML identity provider if type is `federated-authentication`.

func (EndpointAuthenticationOptionOutput) ToEndpointAuthenticationOptionOutput

func (o EndpointAuthenticationOptionOutput) ToEndpointAuthenticationOptionOutput() EndpointAuthenticationOptionOutput

func (EndpointAuthenticationOptionOutput) ToEndpointAuthenticationOptionOutputWithContext

func (o EndpointAuthenticationOptionOutput) ToEndpointAuthenticationOptionOutputWithContext(ctx context.Context) EndpointAuthenticationOptionOutput

func (EndpointAuthenticationOptionOutput) Type

The type of client authentication to be used. Specify `certificate-authentication` to use certificate-based authentication, `directory-service-authentication` to use Active Directory authentication, or `federated-authentication` to use Federated Authentication via SAML 2.0.

type EndpointConnectionLogOptions

type EndpointConnectionLogOptions struct {
	// The name of the CloudWatch Logs log group.
	CloudwatchLogGroup *string `pulumi:"cloudwatchLogGroup"`
	// The name of the CloudWatch Logs log stream to which the connection data is published.
	CloudwatchLogStream *string `pulumi:"cloudwatchLogStream"`
	// Indicates whether connection logging is enabled.
	Enabled bool `pulumi:"enabled"`
}

type EndpointConnectionLogOptionsArgs

type EndpointConnectionLogOptionsArgs struct {
	// The name of the CloudWatch Logs log group.
	CloudwatchLogGroup pulumi.StringPtrInput `pulumi:"cloudwatchLogGroup"`
	// The name of the CloudWatch Logs log stream to which the connection data is published.
	CloudwatchLogStream pulumi.StringPtrInput `pulumi:"cloudwatchLogStream"`
	// Indicates whether connection logging is enabled.
	Enabled pulumi.BoolInput `pulumi:"enabled"`
}

func (EndpointConnectionLogOptionsArgs) ElementType

func (EndpointConnectionLogOptionsArgs) ToEndpointConnectionLogOptionsOutput

func (i EndpointConnectionLogOptionsArgs) ToEndpointConnectionLogOptionsOutput() EndpointConnectionLogOptionsOutput

func (EndpointConnectionLogOptionsArgs) ToEndpointConnectionLogOptionsOutputWithContext

func (i EndpointConnectionLogOptionsArgs) ToEndpointConnectionLogOptionsOutputWithContext(ctx context.Context) EndpointConnectionLogOptionsOutput

func (EndpointConnectionLogOptionsArgs) ToEndpointConnectionLogOptionsPtrOutput

func (i EndpointConnectionLogOptionsArgs) ToEndpointConnectionLogOptionsPtrOutput() EndpointConnectionLogOptionsPtrOutput

func (EndpointConnectionLogOptionsArgs) ToEndpointConnectionLogOptionsPtrOutputWithContext

func (i EndpointConnectionLogOptionsArgs) ToEndpointConnectionLogOptionsPtrOutputWithContext(ctx context.Context) EndpointConnectionLogOptionsPtrOutput

type EndpointConnectionLogOptionsInput

type EndpointConnectionLogOptionsInput interface {
	pulumi.Input

	ToEndpointConnectionLogOptionsOutput() EndpointConnectionLogOptionsOutput
	ToEndpointConnectionLogOptionsOutputWithContext(context.Context) EndpointConnectionLogOptionsOutput
}

EndpointConnectionLogOptionsInput is an input type that accepts EndpointConnectionLogOptionsArgs and EndpointConnectionLogOptionsOutput values. You can construct a concrete instance of `EndpointConnectionLogOptionsInput` via:

EndpointConnectionLogOptionsArgs{...}

type EndpointConnectionLogOptionsOutput

type EndpointConnectionLogOptionsOutput struct{ *pulumi.OutputState }

func (EndpointConnectionLogOptionsOutput) CloudwatchLogGroup

The name of the CloudWatch Logs log group.

func (EndpointConnectionLogOptionsOutput) CloudwatchLogStream

The name of the CloudWatch Logs log stream to which the connection data is published.

func (EndpointConnectionLogOptionsOutput) ElementType

func (EndpointConnectionLogOptionsOutput) Enabled

Indicates whether connection logging is enabled.

func (EndpointConnectionLogOptionsOutput) ToEndpointConnectionLogOptionsOutput

func (o EndpointConnectionLogOptionsOutput) ToEndpointConnectionLogOptionsOutput() EndpointConnectionLogOptionsOutput

func (EndpointConnectionLogOptionsOutput) ToEndpointConnectionLogOptionsOutputWithContext

func (o EndpointConnectionLogOptionsOutput) ToEndpointConnectionLogOptionsOutputWithContext(ctx context.Context) EndpointConnectionLogOptionsOutput

func (EndpointConnectionLogOptionsOutput) ToEndpointConnectionLogOptionsPtrOutput

func (o EndpointConnectionLogOptionsOutput) ToEndpointConnectionLogOptionsPtrOutput() EndpointConnectionLogOptionsPtrOutput

func (EndpointConnectionLogOptionsOutput) ToEndpointConnectionLogOptionsPtrOutputWithContext

func (o EndpointConnectionLogOptionsOutput) ToEndpointConnectionLogOptionsPtrOutputWithContext(ctx context.Context) EndpointConnectionLogOptionsPtrOutput

type EndpointConnectionLogOptionsPtrInput

type EndpointConnectionLogOptionsPtrInput interface {
	pulumi.Input

	ToEndpointConnectionLogOptionsPtrOutput() EndpointConnectionLogOptionsPtrOutput
	ToEndpointConnectionLogOptionsPtrOutputWithContext(context.Context) EndpointConnectionLogOptionsPtrOutput
}

EndpointConnectionLogOptionsPtrInput is an input type that accepts EndpointConnectionLogOptionsArgs, EndpointConnectionLogOptionsPtr and EndpointConnectionLogOptionsPtrOutput values. You can construct a concrete instance of `EndpointConnectionLogOptionsPtrInput` via:

        EndpointConnectionLogOptionsArgs{...}

or:

        nil

type EndpointConnectionLogOptionsPtrOutput

type EndpointConnectionLogOptionsPtrOutput struct{ *pulumi.OutputState }

func (EndpointConnectionLogOptionsPtrOutput) CloudwatchLogGroup

The name of the CloudWatch Logs log group.

func (EndpointConnectionLogOptionsPtrOutput) CloudwatchLogStream

The name of the CloudWatch Logs log stream to which the connection data is published.

func (EndpointConnectionLogOptionsPtrOutput) Elem

func (EndpointConnectionLogOptionsPtrOutput) ElementType

func (EndpointConnectionLogOptionsPtrOutput) Enabled

Indicates whether connection logging is enabled.

func (EndpointConnectionLogOptionsPtrOutput) ToEndpointConnectionLogOptionsPtrOutput

func (o EndpointConnectionLogOptionsPtrOutput) ToEndpointConnectionLogOptionsPtrOutput() EndpointConnectionLogOptionsPtrOutput

func (EndpointConnectionLogOptionsPtrOutput) ToEndpointConnectionLogOptionsPtrOutputWithContext

func (o EndpointConnectionLogOptionsPtrOutput) ToEndpointConnectionLogOptionsPtrOutputWithContext(ctx context.Context) EndpointConnectionLogOptionsPtrOutput

type EndpointInput added in v3.13.0

type EndpointInput interface {
	pulumi.Input

	ToEndpointOutput() EndpointOutput
	ToEndpointOutputWithContext(ctx context.Context) EndpointOutput
}

type EndpointMap added in v3.25.0

type EndpointMap map[string]EndpointInput

func (EndpointMap) ElementType added in v3.25.0

func (EndpointMap) ElementType() reflect.Type

func (EndpointMap) ToEndpointMapOutput added in v3.25.0

func (i EndpointMap) ToEndpointMapOutput() EndpointMapOutput

func (EndpointMap) ToEndpointMapOutputWithContext added in v3.25.0

func (i EndpointMap) ToEndpointMapOutputWithContext(ctx context.Context) EndpointMapOutput

type EndpointMapInput added in v3.25.0

type EndpointMapInput interface {
	pulumi.Input

	ToEndpointMapOutput() EndpointMapOutput
	ToEndpointMapOutputWithContext(context.Context) EndpointMapOutput
}

EndpointMapInput is an input type that accepts EndpointMap and EndpointMapOutput values. You can construct a concrete instance of `EndpointMapInput` via:

EndpointMap{ "key": EndpointArgs{...} }

type EndpointMapOutput added in v3.25.0

type EndpointMapOutput struct{ *pulumi.OutputState }

func (EndpointMapOutput) ElementType added in v3.25.0

func (EndpointMapOutput) ElementType() reflect.Type

func (EndpointMapOutput) MapIndex added in v3.25.0

func (EndpointMapOutput) ToEndpointMapOutput added in v3.25.0

func (o EndpointMapOutput) ToEndpointMapOutput() EndpointMapOutput

func (EndpointMapOutput) ToEndpointMapOutputWithContext added in v3.25.0

func (o EndpointMapOutput) ToEndpointMapOutputWithContext(ctx context.Context) EndpointMapOutput

type EndpointOutput added in v3.13.0

type EndpointOutput struct {
	*pulumi.OutputState
}

func (EndpointOutput) ElementType added in v3.13.0

func (EndpointOutput) ElementType() reflect.Type

func (EndpointOutput) ToEndpointOutput added in v3.13.0

func (o EndpointOutput) ToEndpointOutput() EndpointOutput

func (EndpointOutput) ToEndpointOutputWithContext added in v3.13.0

func (o EndpointOutput) ToEndpointOutputWithContext(ctx context.Context) EndpointOutput

func (EndpointOutput) ToEndpointPtrOutput added in v3.25.0

func (o EndpointOutput) ToEndpointPtrOutput() EndpointPtrOutput

func (EndpointOutput) ToEndpointPtrOutputWithContext added in v3.25.0

func (o EndpointOutput) ToEndpointPtrOutputWithContext(ctx context.Context) EndpointPtrOutput

type EndpointPtrInput added in v3.25.0

type EndpointPtrInput interface {
	pulumi.Input

	ToEndpointPtrOutput() EndpointPtrOutput
	ToEndpointPtrOutputWithContext(ctx context.Context) EndpointPtrOutput
}

type EndpointPtrOutput added in v3.25.0

type EndpointPtrOutput struct {
	*pulumi.OutputState
}

func (EndpointPtrOutput) ElementType added in v3.25.0

func (EndpointPtrOutput) ElementType() reflect.Type

func (EndpointPtrOutput) ToEndpointPtrOutput added in v3.25.0

func (o EndpointPtrOutput) ToEndpointPtrOutput() EndpointPtrOutput

func (EndpointPtrOutput) ToEndpointPtrOutputWithContext added in v3.25.0

func (o EndpointPtrOutput) ToEndpointPtrOutputWithContext(ctx context.Context) EndpointPtrOutput

type EndpointState

type EndpointState struct {
	// The ARN of the Client VPN endpoint.
	Arn pulumi.StringPtrInput
	// Information about the authentication method to be used to authenticate clients.
	AuthenticationOptions EndpointAuthenticationOptionArrayInput
	// The IPv4 address range, in CIDR notation, from which to assign client IP addresses. The address range cannot overlap with the local CIDR of the VPC in which the associated subnet is located, or the routes that you add manually. The address range cannot be changed after the Client VPN endpoint has been created. The CIDR block should be /22 or greater.
	ClientCidrBlock pulumi.StringPtrInput
	// Information about the client connection logging options.
	ConnectionLogOptions EndpointConnectionLogOptionsPtrInput
	// Name of the repository.
	Description pulumi.StringPtrInput
	// The DNS name to be used by clients when establishing their VPN session.
	DnsName pulumi.StringPtrInput
	// Information about the DNS servers to be used for DNS resolution. A Client VPN endpoint can have up to two DNS servers. If no DNS server is specified, the DNS address of the VPC that is to be associated with Client VPN endpoint is used as the DNS server.
	DnsServers pulumi.StringArrayInput
	// The ARN of the ACM server certificate.
	ServerCertificateArn pulumi.StringPtrInput
	// Indicates whether split-tunnel is enabled on VPN endpoint. Default value is `false`.
	SplitTunnel pulumi.BoolPtrInput
	// The current state of the Client VPN endpoint.
	Status pulumi.StringPtrInput
	// A mapping of tags to assign to the resource.
	Tags pulumi.StringMapInput
	// The transport protocol to be used by the VPN session. Default value is `udp`.
	TransportProtocol pulumi.StringPtrInput
}

func (EndpointState) ElementType

func (EndpointState) ElementType() reflect.Type

type NetworkAssociation

type NetworkAssociation struct {
	pulumi.CustomResourceState

	// The unique ID of the target network association.
	AssociationId pulumi.StringOutput `pulumi:"associationId"`
	// The ID of the Client VPN endpoint.
	ClientVpnEndpointId pulumi.StringOutput `pulumi:"clientVpnEndpointId"`
	// A list of up to five custom security groups to apply to the target network. If not specified, the VPC's default security group is assigned.
	SecurityGroups pulumi.StringArrayOutput `pulumi:"securityGroups"`
	// The current state of the target network association.
	Status pulumi.StringOutput `pulumi:"status"`
	// The ID of the subnet to associate with the Client VPN endpoint.
	SubnetId pulumi.StringOutput `pulumi:"subnetId"`
	// The ID of the VPC in which the target subnet is located.
	VpcId pulumi.StringOutput `pulumi:"vpcId"`
}

Provides network associations for AWS Client VPN endpoints. For more information on usage, please see the [AWS Client VPN Administrator's Guide](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/what-is.html).

## Example Usage ### Using default security group

```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/ec2clientvpn"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := ec2clientvpn.NewNetworkAssociation(ctx, "example", &ec2clientvpn.NetworkAssociationArgs{
			ClientVpnEndpointId: pulumi.Any(aws_ec2_client_vpn_endpoint.Example.Id),
			SubnetId:            pulumi.Any(aws_subnet.Example.Id),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

AWS Client VPN network associations can be imported using the endpoint ID and the association ID. Values are separated by a `,`.

```sh

$ pulumi import aws:ec2clientvpn/networkAssociation:NetworkAssociation example cvpn-endpoint-0ac3a1abbccddd666,vpn-assoc-0b8db902465d069ad

```

func GetNetworkAssociation

func GetNetworkAssociation(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *NetworkAssociationState, opts ...pulumi.ResourceOption) (*NetworkAssociation, error)

GetNetworkAssociation gets an existing NetworkAssociation resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewNetworkAssociation

func NewNetworkAssociation(ctx *pulumi.Context,
	name string, args *NetworkAssociationArgs, opts ...pulumi.ResourceOption) (*NetworkAssociation, error)

NewNetworkAssociation registers a new resource with the given unique name, arguments, and options.

func (*NetworkAssociation) ElementType added in v3.13.0

func (*NetworkAssociation) ElementType() reflect.Type

func (*NetworkAssociation) ToNetworkAssociationOutput added in v3.13.0

func (i *NetworkAssociation) ToNetworkAssociationOutput() NetworkAssociationOutput

func (*NetworkAssociation) ToNetworkAssociationOutputWithContext added in v3.13.0

func (i *NetworkAssociation) ToNetworkAssociationOutputWithContext(ctx context.Context) NetworkAssociationOutput

func (*NetworkAssociation) ToNetworkAssociationPtrOutput added in v3.25.0

func (i *NetworkAssociation) ToNetworkAssociationPtrOutput() NetworkAssociationPtrOutput

func (*NetworkAssociation) ToNetworkAssociationPtrOutputWithContext added in v3.25.0

func (i *NetworkAssociation) ToNetworkAssociationPtrOutputWithContext(ctx context.Context) NetworkAssociationPtrOutput

type NetworkAssociationArgs

type NetworkAssociationArgs struct {
	// The ID of the Client VPN endpoint.
	ClientVpnEndpointId pulumi.StringInput
	// A list of up to five custom security groups to apply to the target network. If not specified, the VPC's default security group is assigned.
	SecurityGroups pulumi.StringArrayInput
	// The ID of the subnet to associate with the Client VPN endpoint.
	SubnetId pulumi.StringInput
}

The set of arguments for constructing a NetworkAssociation resource.

func (NetworkAssociationArgs) ElementType

func (NetworkAssociationArgs) ElementType() reflect.Type

type NetworkAssociationArray added in v3.25.0

type NetworkAssociationArray []NetworkAssociationInput

func (NetworkAssociationArray) ElementType added in v3.25.0

func (NetworkAssociationArray) ElementType() reflect.Type

func (NetworkAssociationArray) ToNetworkAssociationArrayOutput added in v3.25.0

func (i NetworkAssociationArray) ToNetworkAssociationArrayOutput() NetworkAssociationArrayOutput

func (NetworkAssociationArray) ToNetworkAssociationArrayOutputWithContext added in v3.25.0

func (i NetworkAssociationArray) ToNetworkAssociationArrayOutputWithContext(ctx context.Context) NetworkAssociationArrayOutput

type NetworkAssociationArrayInput added in v3.25.0

type NetworkAssociationArrayInput interface {
	pulumi.Input

	ToNetworkAssociationArrayOutput() NetworkAssociationArrayOutput
	ToNetworkAssociationArrayOutputWithContext(context.Context) NetworkAssociationArrayOutput
}

NetworkAssociationArrayInput is an input type that accepts NetworkAssociationArray and NetworkAssociationArrayOutput values. You can construct a concrete instance of `NetworkAssociationArrayInput` via:

NetworkAssociationArray{ NetworkAssociationArgs{...} }

type NetworkAssociationArrayOutput added in v3.25.0

type NetworkAssociationArrayOutput struct{ *pulumi.OutputState }

func (NetworkAssociationArrayOutput) ElementType added in v3.25.0

func (NetworkAssociationArrayOutput) Index added in v3.25.0

func (NetworkAssociationArrayOutput) ToNetworkAssociationArrayOutput added in v3.25.0

func (o NetworkAssociationArrayOutput) ToNetworkAssociationArrayOutput() NetworkAssociationArrayOutput

func (NetworkAssociationArrayOutput) ToNetworkAssociationArrayOutputWithContext added in v3.25.0

func (o NetworkAssociationArrayOutput) ToNetworkAssociationArrayOutputWithContext(ctx context.Context) NetworkAssociationArrayOutput

type NetworkAssociationInput added in v3.13.0

type NetworkAssociationInput interface {
	pulumi.Input

	ToNetworkAssociationOutput() NetworkAssociationOutput
	ToNetworkAssociationOutputWithContext(ctx context.Context) NetworkAssociationOutput
}

type NetworkAssociationMap added in v3.25.0

type NetworkAssociationMap map[string]NetworkAssociationInput

func (NetworkAssociationMap) ElementType added in v3.25.0

func (NetworkAssociationMap) ElementType() reflect.Type

func (NetworkAssociationMap) ToNetworkAssociationMapOutput added in v3.25.0

func (i NetworkAssociationMap) ToNetworkAssociationMapOutput() NetworkAssociationMapOutput

func (NetworkAssociationMap) ToNetworkAssociationMapOutputWithContext added in v3.25.0

func (i NetworkAssociationMap) ToNetworkAssociationMapOutputWithContext(ctx context.Context) NetworkAssociationMapOutput

type NetworkAssociationMapInput added in v3.25.0

type NetworkAssociationMapInput interface {
	pulumi.Input

	ToNetworkAssociationMapOutput() NetworkAssociationMapOutput
	ToNetworkAssociationMapOutputWithContext(context.Context) NetworkAssociationMapOutput
}

NetworkAssociationMapInput is an input type that accepts NetworkAssociationMap and NetworkAssociationMapOutput values. You can construct a concrete instance of `NetworkAssociationMapInput` via:

NetworkAssociationMap{ "key": NetworkAssociationArgs{...} }

type NetworkAssociationMapOutput added in v3.25.0

type NetworkAssociationMapOutput struct{ *pulumi.OutputState }

func (NetworkAssociationMapOutput) ElementType added in v3.25.0

func (NetworkAssociationMapOutput) MapIndex added in v3.25.0

func (NetworkAssociationMapOutput) ToNetworkAssociationMapOutput added in v3.25.0

func (o NetworkAssociationMapOutput) ToNetworkAssociationMapOutput() NetworkAssociationMapOutput

func (NetworkAssociationMapOutput) ToNetworkAssociationMapOutputWithContext added in v3.25.0

func (o NetworkAssociationMapOutput) ToNetworkAssociationMapOutputWithContext(ctx context.Context) NetworkAssociationMapOutput

type NetworkAssociationOutput added in v3.13.0

type NetworkAssociationOutput struct {
	*pulumi.OutputState
}

func (NetworkAssociationOutput) ElementType added in v3.13.0

func (NetworkAssociationOutput) ElementType() reflect.Type

func (NetworkAssociationOutput) ToNetworkAssociationOutput added in v3.13.0

func (o NetworkAssociationOutput) ToNetworkAssociationOutput() NetworkAssociationOutput

func (NetworkAssociationOutput) ToNetworkAssociationOutputWithContext added in v3.13.0

func (o NetworkAssociationOutput) ToNetworkAssociationOutputWithContext(ctx context.Context) NetworkAssociationOutput

func (NetworkAssociationOutput) ToNetworkAssociationPtrOutput added in v3.25.0

func (o NetworkAssociationOutput) ToNetworkAssociationPtrOutput() NetworkAssociationPtrOutput

func (NetworkAssociationOutput) ToNetworkAssociationPtrOutputWithContext added in v3.25.0

func (o NetworkAssociationOutput) ToNetworkAssociationPtrOutputWithContext(ctx context.Context) NetworkAssociationPtrOutput

type NetworkAssociationPtrInput added in v3.25.0

type NetworkAssociationPtrInput interface {
	pulumi.Input

	ToNetworkAssociationPtrOutput() NetworkAssociationPtrOutput
	ToNetworkAssociationPtrOutputWithContext(ctx context.Context) NetworkAssociationPtrOutput
}

type NetworkAssociationPtrOutput added in v3.25.0

type NetworkAssociationPtrOutput struct {
	*pulumi.OutputState
}

func (NetworkAssociationPtrOutput) ElementType added in v3.25.0

func (NetworkAssociationPtrOutput) ToNetworkAssociationPtrOutput added in v3.25.0

func (o NetworkAssociationPtrOutput) ToNetworkAssociationPtrOutput() NetworkAssociationPtrOutput

func (NetworkAssociationPtrOutput) ToNetworkAssociationPtrOutputWithContext added in v3.25.0

func (o NetworkAssociationPtrOutput) ToNetworkAssociationPtrOutputWithContext(ctx context.Context) NetworkAssociationPtrOutput

type NetworkAssociationState

type NetworkAssociationState struct {
	// The unique ID of the target network association.
	AssociationId pulumi.StringPtrInput
	// The ID of the Client VPN endpoint.
	ClientVpnEndpointId pulumi.StringPtrInput
	// A list of up to five custom security groups to apply to the target network. If not specified, the VPC's default security group is assigned.
	SecurityGroups pulumi.StringArrayInput
	// The current state of the target network association.
	Status pulumi.StringPtrInput
	// The ID of the subnet to associate with the Client VPN endpoint.
	SubnetId pulumi.StringPtrInput
	// The ID of the VPC in which the target subnet is located.
	VpcId pulumi.StringPtrInput
}

func (NetworkAssociationState) ElementType

func (NetworkAssociationState) ElementType() reflect.Type

type Route

type Route struct {
	pulumi.CustomResourceState

	// The ID of the Client VPN endpoint.
	ClientVpnEndpointId pulumi.StringOutput `pulumi:"clientVpnEndpointId"`
	// A brief description of the authorization rule.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// The IPv4 address range, in CIDR notation, of the route destination.
	DestinationCidrBlock pulumi.StringOutput `pulumi:"destinationCidrBlock"`
	// Indicates how the Client VPN route was added. Will be `add-route` for routes created by this resource.
	Origin pulumi.StringOutput `pulumi:"origin"`
	// The ID of the Subnet to route the traffic through. It must already be attached to the Client VPN.
	TargetVpcSubnetId pulumi.StringOutput `pulumi:"targetVpcSubnetId"`
	// The type of the route.
	Type pulumi.StringOutput `pulumi:"type"`
}

Provides additional routes for AWS Client VPN endpoints. For more information on usage, please see the [AWS Client VPN Administrator's Guide](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/what-is.html).

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/ec2clientvpn"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		exampleEndpoint, err := ec2clientvpn.NewEndpoint(ctx, "exampleEndpoint", &ec2clientvpn.EndpointArgs{
			Description:          pulumi.String("Example Client VPN endpoint"),
			ServerCertificateArn: pulumi.Any(aws_acm_certificate.Example.Arn),
			ClientCidrBlock:      pulumi.String("10.0.0.0/16"),
			AuthenticationOptions: ec2clientvpn.EndpointAuthenticationOptionArray{
				&ec2clientvpn.EndpointAuthenticationOptionArgs{
					Type:                    pulumi.String("certificate-authentication"),
					RootCertificateChainArn: pulumi.Any(aws_acm_certificate.Example.Arn),
				},
			},
			ConnectionLogOptions: &ec2clientvpn.EndpointConnectionLogOptionsArgs{
				Enabled: pulumi.Bool(false),
			},
		})
		if err != nil {
			return err
		}
		exampleNetworkAssociation, err := ec2clientvpn.NewNetworkAssociation(ctx, "exampleNetworkAssociation", &ec2clientvpn.NetworkAssociationArgs{
			ClientVpnEndpointId: exampleEndpoint.ID(),
			SubnetId:            pulumi.Any(aws_subnet.Example.Id),
		})
		if err != nil {
			return err
		}
		_, err = ec2clientvpn.NewRoute(ctx, "exampleRoute", &ec2clientvpn.RouteArgs{
			ClientVpnEndpointId:  exampleEndpoint.ID(),
			DestinationCidrBlock: pulumi.String("0.0.0.0/0"),
			TargetVpcSubnetId:    exampleNetworkAssociation.SubnetId,
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

AWS Client VPN routes can be imported using the endpoint ID, target subnet ID, and destination CIDR block. All values are separated by a `,`.

```sh

$ pulumi import aws:ec2clientvpn/route:Route example cvpn-endpoint-1234567890abcdef,subnet-9876543210fedcba,10.1.0.0/24

```

func GetRoute

func GetRoute(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *RouteState, opts ...pulumi.ResourceOption) (*Route, error)

GetRoute gets an existing Route resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewRoute

func NewRoute(ctx *pulumi.Context,
	name string, args *RouteArgs, opts ...pulumi.ResourceOption) (*Route, error)

NewRoute registers a new resource with the given unique name, arguments, and options.

func (*Route) ElementType added in v3.13.0

func (*Route) ElementType() reflect.Type

func (*Route) ToRouteOutput added in v3.13.0

func (i *Route) ToRouteOutput() RouteOutput

func (*Route) ToRouteOutputWithContext added in v3.13.0

func (i *Route) ToRouteOutputWithContext(ctx context.Context) RouteOutput

func (*Route) ToRoutePtrOutput added in v3.25.0

func (i *Route) ToRoutePtrOutput() RoutePtrOutput

func (*Route) ToRoutePtrOutputWithContext added in v3.25.0

func (i *Route) ToRoutePtrOutputWithContext(ctx context.Context) RoutePtrOutput

type RouteArgs

type RouteArgs struct {
	// The ID of the Client VPN endpoint.
	ClientVpnEndpointId pulumi.StringInput
	// A brief description of the authorization rule.
	Description pulumi.StringPtrInput
	// The IPv4 address range, in CIDR notation, of the route destination.
	DestinationCidrBlock pulumi.StringInput
	// The ID of the Subnet to route the traffic through. It must already be attached to the Client VPN.
	TargetVpcSubnetId pulumi.StringInput
}

The set of arguments for constructing a Route resource.

func (RouteArgs) ElementType

func (RouteArgs) ElementType() reflect.Type

type RouteArray added in v3.25.0

type RouteArray []RouteInput

func (RouteArray) ElementType added in v3.25.0

func (RouteArray) ElementType() reflect.Type

func (RouteArray) ToRouteArrayOutput added in v3.25.0

func (i RouteArray) ToRouteArrayOutput() RouteArrayOutput

func (RouteArray) ToRouteArrayOutputWithContext added in v3.25.0

func (i RouteArray) ToRouteArrayOutputWithContext(ctx context.Context) RouteArrayOutput

type RouteArrayInput added in v3.25.0

type RouteArrayInput interface {
	pulumi.Input

	ToRouteArrayOutput() RouteArrayOutput
	ToRouteArrayOutputWithContext(context.Context) RouteArrayOutput
}

RouteArrayInput is an input type that accepts RouteArray and RouteArrayOutput values. You can construct a concrete instance of `RouteArrayInput` via:

RouteArray{ RouteArgs{...} }

type RouteArrayOutput added in v3.25.0

type RouteArrayOutput struct{ *pulumi.OutputState }

func (RouteArrayOutput) ElementType added in v3.25.0

func (RouteArrayOutput) ElementType() reflect.Type

func (RouteArrayOutput) Index added in v3.25.0

func (RouteArrayOutput) ToRouteArrayOutput added in v3.25.0

func (o RouteArrayOutput) ToRouteArrayOutput() RouteArrayOutput

func (RouteArrayOutput) ToRouteArrayOutputWithContext added in v3.25.0

func (o RouteArrayOutput) ToRouteArrayOutputWithContext(ctx context.Context) RouteArrayOutput

type RouteInput added in v3.13.0

type RouteInput interface {
	pulumi.Input

	ToRouteOutput() RouteOutput
	ToRouteOutputWithContext(ctx context.Context) RouteOutput
}

type RouteMap added in v3.25.0

type RouteMap map[string]RouteInput

func (RouteMap) ElementType added in v3.25.0

func (RouteMap) ElementType() reflect.Type

func (RouteMap) ToRouteMapOutput added in v3.25.0

func (i RouteMap) ToRouteMapOutput() RouteMapOutput

func (RouteMap) ToRouteMapOutputWithContext added in v3.25.0

func (i RouteMap) ToRouteMapOutputWithContext(ctx context.Context) RouteMapOutput

type RouteMapInput added in v3.25.0

type RouteMapInput interface {
	pulumi.Input

	ToRouteMapOutput() RouteMapOutput
	ToRouteMapOutputWithContext(context.Context) RouteMapOutput
}

RouteMapInput is an input type that accepts RouteMap and RouteMapOutput values. You can construct a concrete instance of `RouteMapInput` via:

RouteMap{ "key": RouteArgs{...} }

type RouteMapOutput added in v3.25.0

type RouteMapOutput struct{ *pulumi.OutputState }

func (RouteMapOutput) ElementType added in v3.25.0

func (RouteMapOutput) ElementType() reflect.Type

func (RouteMapOutput) MapIndex added in v3.25.0

func (RouteMapOutput) ToRouteMapOutput added in v3.25.0

func (o RouteMapOutput) ToRouteMapOutput() RouteMapOutput

func (RouteMapOutput) ToRouteMapOutputWithContext added in v3.25.0

func (o RouteMapOutput) ToRouteMapOutputWithContext(ctx context.Context) RouteMapOutput

type RouteOutput added in v3.13.0

type RouteOutput struct {
	*pulumi.OutputState
}

func (RouteOutput) ElementType added in v3.13.0

func (RouteOutput) ElementType() reflect.Type

func (RouteOutput) ToRouteOutput added in v3.13.0

func (o RouteOutput) ToRouteOutput() RouteOutput

func (RouteOutput) ToRouteOutputWithContext added in v3.13.0

func (o RouteOutput) ToRouteOutputWithContext(ctx context.Context) RouteOutput

func (RouteOutput) ToRoutePtrOutput added in v3.25.0

func (o RouteOutput) ToRoutePtrOutput() RoutePtrOutput

func (RouteOutput) ToRoutePtrOutputWithContext added in v3.25.0

func (o RouteOutput) ToRoutePtrOutputWithContext(ctx context.Context) RoutePtrOutput

type RoutePtrInput added in v3.25.0

type RoutePtrInput interface {
	pulumi.Input

	ToRoutePtrOutput() RoutePtrOutput
	ToRoutePtrOutputWithContext(ctx context.Context) RoutePtrOutput
}

type RoutePtrOutput added in v3.25.0

type RoutePtrOutput struct {
	*pulumi.OutputState
}

func (RoutePtrOutput) ElementType added in v3.25.0

func (RoutePtrOutput) ElementType() reflect.Type

func (RoutePtrOutput) ToRoutePtrOutput added in v3.25.0

func (o RoutePtrOutput) ToRoutePtrOutput() RoutePtrOutput

func (RoutePtrOutput) ToRoutePtrOutputWithContext added in v3.25.0

func (o RoutePtrOutput) ToRoutePtrOutputWithContext(ctx context.Context) RoutePtrOutput

type RouteState

type RouteState struct {
	// The ID of the Client VPN endpoint.
	ClientVpnEndpointId pulumi.StringPtrInput
	// A brief description of the authorization rule.
	Description pulumi.StringPtrInput
	// The IPv4 address range, in CIDR notation, of the route destination.
	DestinationCidrBlock pulumi.StringPtrInput
	// Indicates how the Client VPN route was added. Will be `add-route` for routes created by this resource.
	Origin pulumi.StringPtrInput
	// The ID of the Subnet to route the traffic through. It must already be attached to the Client VPN.
	TargetVpcSubnetId pulumi.StringPtrInput
	// The type of the route.
	Type pulumi.StringPtrInput
}

func (RouteState) ElementType

func (RouteState) ElementType() reflect.Type

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL