UNPKG

@cdktf/provider-aws

Version:

Prebuilt aws Provider for Terraform CDK (cdktf)

1,000 lines 144 kB
"use strict"; var _a, _b, _c, _d, _e, _f; Object.defineProperty(exports, "__esModule", { value: true }); exports.Ec2ClientVpnEndpoint = exports.Ec2ClientVpnEndpointConnectionLogOptionsOutputReference = exports.ec2ClientVpnEndpointConnectionLogOptionsToHclTerraform = exports.ec2ClientVpnEndpointConnectionLogOptionsToTerraform = exports.Ec2ClientVpnEndpointClientLoginBannerOptionsOutputReference = exports.ec2ClientVpnEndpointClientLoginBannerOptionsToHclTerraform = exports.ec2ClientVpnEndpointClientLoginBannerOptionsToTerraform = exports.Ec2ClientVpnEndpointClientConnectOptionsOutputReference = exports.ec2ClientVpnEndpointClientConnectOptionsToHclTerraform = exports.ec2ClientVpnEndpointClientConnectOptionsToTerraform = exports.Ec2ClientVpnEndpointAuthenticationOptionsList = exports.Ec2ClientVpnEndpointAuthenticationOptionsOutputReference = exports.ec2ClientVpnEndpointAuthenticationOptionsToHclTerraform = exports.ec2ClientVpnEndpointAuthenticationOptionsToTerraform = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const cdktf = require("cdktf"); function ec2ClientVpnEndpointAuthenticationOptionsToTerraform(struct) { if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) { return struct; } if (cdktf.isComplexElement(struct)) { throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration"); } return { active_directory_id: cdktf.stringToTerraform(struct.activeDirectoryId), root_certificate_chain_arn: cdktf.stringToTerraform(struct.rootCertificateChainArn), saml_provider_arn: cdktf.stringToTerraform(struct.samlProviderArn), self_service_saml_provider_arn: cdktf.stringToTerraform(struct.selfServiceSamlProviderArn), type: cdktf.stringToTerraform(struct.type), }; } exports.ec2ClientVpnEndpointAuthenticationOptionsToTerraform = ec2ClientVpnEndpointAuthenticationOptionsToTerraform; function ec2ClientVpnEndpointAuthenticationOptionsToHclTerraform(struct) { if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) { return struct; } if (cdktf.isComplexElement(struct)) { throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration"); } const attrs = { active_directory_id: { value: cdktf.stringToHclTerraform(struct.activeDirectoryId), isBlock: false, type: "simple", storageClassType: "string", }, root_certificate_chain_arn: { value: cdktf.stringToHclTerraform(struct.rootCertificateChainArn), isBlock: false, type: "simple", storageClassType: "string", }, saml_provider_arn: { value: cdktf.stringToHclTerraform(struct.samlProviderArn), isBlock: false, type: "simple", storageClassType: "string", }, self_service_saml_provider_arn: { value: cdktf.stringToHclTerraform(struct.selfServiceSamlProviderArn), isBlock: false, type: "simple", storageClassType: "string", }, type: { value: cdktf.stringToHclTerraform(struct.type), isBlock: false, type: "simple", storageClassType: "string", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } exports.ec2ClientVpnEndpointAuthenticationOptionsToHclTerraform = ec2ClientVpnEndpointAuthenticationOptionsToHclTerraform; class Ec2ClientVpnEndpointAuthenticationOptionsOutputReference extends cdktf.ComplexObject { /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing * @param complexObjectIndex the index of this item in the list * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index) */ constructor(terraformResource, terraformAttribute, complexObjectIndex, complexObjectIsFromSet) { super(terraformResource, terraformAttribute, complexObjectIsFromSet, complexObjectIndex); this.isEmptyObject = false; } get internalValue() { if (this.resolvableValue) { return this.resolvableValue; } let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; if (this._activeDirectoryId !== undefined) { hasAnyValues = true; internalValueResult.activeDirectoryId = this._activeDirectoryId; } if (this._rootCertificateChainArn !== undefined) { hasAnyValues = true; internalValueResult.rootCertificateChainArn = this._rootCertificateChainArn; } if (this._samlProviderArn !== undefined) { hasAnyValues = true; internalValueResult.samlProviderArn = this._samlProviderArn; } if (this._selfServiceSamlProviderArn !== undefined) { hasAnyValues = true; internalValueResult.selfServiceSamlProviderArn = this._selfServiceSamlProviderArn; } if (this._type !== undefined) { hasAnyValues = true; internalValueResult.type = this._type; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this.resolvableValue = undefined; this._activeDirectoryId = undefined; this._rootCertificateChainArn = undefined; this._samlProviderArn = undefined; this._selfServiceSamlProviderArn = undefined; this._type = undefined; } else if (cdktf.Tokenization.isResolvable(value)) { this.isEmptyObject = false; this.resolvableValue = value; } else { this.isEmptyObject = Object.keys(value).length === 0; this.resolvableValue = undefined; this._activeDirectoryId = value.activeDirectoryId; this._rootCertificateChainArn = value.rootCertificateChainArn; this._samlProviderArn = value.samlProviderArn; this._selfServiceSamlProviderArn = value.selfServiceSamlProviderArn; this._type = value.type; } } get activeDirectoryId() { return this.getStringAttribute('active_directory_id'); } set activeDirectoryId(value) { this._activeDirectoryId = value; } resetActiveDirectoryId() { this._activeDirectoryId = undefined; } // Temporarily expose input value. Use with caution. get activeDirectoryIdInput() { return this._activeDirectoryId; } get rootCertificateChainArn() { return this.getStringAttribute('root_certificate_chain_arn'); } set rootCertificateChainArn(value) { this._rootCertificateChainArn = value; } resetRootCertificateChainArn() { this._rootCertificateChainArn = undefined; } // Temporarily expose input value. Use with caution. get rootCertificateChainArnInput() { return this._rootCertificateChainArn; } get samlProviderArn() { return this.getStringAttribute('saml_provider_arn'); } set samlProviderArn(value) { this._samlProviderArn = value; } resetSamlProviderArn() { this._samlProviderArn = undefined; } // Temporarily expose input value. Use with caution. get samlProviderArnInput() { return this._samlProviderArn; } get selfServiceSamlProviderArn() { return this.getStringAttribute('self_service_saml_provider_arn'); } set selfServiceSamlProviderArn(value) { this._selfServiceSamlProviderArn = value; } resetSelfServiceSamlProviderArn() { this._selfServiceSamlProviderArn = undefined; } // Temporarily expose input value. Use with caution. get selfServiceSamlProviderArnInput() { return this._selfServiceSamlProviderArn; } get type() { return this.getStringAttribute('type'); } set type(value) { this._type = value; } // Temporarily expose input value. Use with caution. get typeInput() { return this._type; } } exports.Ec2ClientVpnEndpointAuthenticationOptionsOutputReference = Ec2ClientVpnEndpointAuthenticationOptionsOutputReference; _a = JSII_RTTI_SYMBOL_1; Ec2ClientVpnEndpointAuthenticationOptionsOutputReference[_a] = { fqn: "@cdktf/provider-aws.ec2ClientVpnEndpoint.Ec2ClientVpnEndpointAuthenticationOptionsOutputReference", version: "19.50.0" }; class Ec2ClientVpnEndpointAuthenticationOptionsList extends cdktf.ComplexList { /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index) */ constructor(terraformResource, terraformAttribute, wrapsSet) { super(terraformResource, terraformAttribute, wrapsSet); this.terraformResource = terraformResource; this.terraformAttribute = terraformAttribute; this.wrapsSet = wrapsSet; } /** * @param index the index of the item to return */ get(index) { return new Ec2ClientVpnEndpointAuthenticationOptionsOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet); } } exports.Ec2ClientVpnEndpointAuthenticationOptionsList = Ec2ClientVpnEndpointAuthenticationOptionsList; _b = JSII_RTTI_SYMBOL_1; Ec2ClientVpnEndpointAuthenticationOptionsList[_b] = { fqn: "@cdktf/provider-aws.ec2ClientVpnEndpoint.Ec2ClientVpnEndpointAuthenticationOptionsList", version: "19.50.0" }; function ec2ClientVpnEndpointClientConnectOptionsToTerraform(struct) { if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) { return struct; } if (cdktf.isComplexElement(struct)) { throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration"); } return { enabled: cdktf.booleanToTerraform(struct.enabled), lambda_function_arn: cdktf.stringToTerraform(struct.lambdaFunctionArn), }; } exports.ec2ClientVpnEndpointClientConnectOptionsToTerraform = ec2ClientVpnEndpointClientConnectOptionsToTerraform; function ec2ClientVpnEndpointClientConnectOptionsToHclTerraform(struct) { if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) { return struct; } if (cdktf.isComplexElement(struct)) { throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration"); } const attrs = { enabled: { value: cdktf.booleanToHclTerraform(struct.enabled), isBlock: false, type: "simple", storageClassType: "boolean", }, lambda_function_arn: { value: cdktf.stringToHclTerraform(struct.lambdaFunctionArn), isBlock: false, type: "simple", storageClassType: "string", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } exports.ec2ClientVpnEndpointClientConnectOptionsToHclTerraform = ec2ClientVpnEndpointClientConnectOptionsToHclTerraform; class Ec2ClientVpnEndpointClientConnectOptionsOutputReference extends cdktf.ComplexObject { /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing */ constructor(terraformResource, terraformAttribute) { super(terraformResource, terraformAttribute, false, 0); this.isEmptyObject = false; } get internalValue() { let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; if (this._enabled !== undefined) { hasAnyValues = true; internalValueResult.enabled = this._enabled; } if (this._lambdaFunctionArn !== undefined) { hasAnyValues = true; internalValueResult.lambdaFunctionArn = this._lambdaFunctionArn; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._enabled = undefined; this._lambdaFunctionArn = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._enabled = value.enabled; this._lambdaFunctionArn = value.lambdaFunctionArn; } } get enabled() { return this.getBooleanAttribute('enabled'); } set enabled(value) { this._enabled = value; } resetEnabled() { this._enabled = undefined; } // Temporarily expose input value. Use with caution. get enabledInput() { return this._enabled; } get lambdaFunctionArn() { return this.getStringAttribute('lambda_function_arn'); } set lambdaFunctionArn(value) { this._lambdaFunctionArn = value; } resetLambdaFunctionArn() { this._lambdaFunctionArn = undefined; } // Temporarily expose input value. Use with caution. get lambdaFunctionArnInput() { return this._lambdaFunctionArn; } } exports.Ec2ClientVpnEndpointClientConnectOptionsOutputReference = Ec2ClientVpnEndpointClientConnectOptionsOutputReference; _c = JSII_RTTI_SYMBOL_1; Ec2ClientVpnEndpointClientConnectOptionsOutputReference[_c] = { fqn: "@cdktf/provider-aws.ec2ClientVpnEndpoint.Ec2ClientVpnEndpointClientConnectOptionsOutputReference", version: "19.50.0" }; function ec2ClientVpnEndpointClientLoginBannerOptionsToTerraform(struct) { if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) { return struct; } if (cdktf.isComplexElement(struct)) { throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration"); } return { banner_text: cdktf.stringToTerraform(struct.bannerText), enabled: cdktf.booleanToTerraform(struct.enabled), }; } exports.ec2ClientVpnEndpointClientLoginBannerOptionsToTerraform = ec2ClientVpnEndpointClientLoginBannerOptionsToTerraform; function ec2ClientVpnEndpointClientLoginBannerOptionsToHclTerraform(struct) { if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) { return struct; } if (cdktf.isComplexElement(struct)) { throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration"); } const attrs = { banner_text: { value: cdktf.stringToHclTerraform(struct.bannerText), isBlock: false, type: "simple", storageClassType: "string", }, enabled: { value: cdktf.booleanToHclTerraform(struct.enabled), isBlock: false, type: "simple", storageClassType: "boolean", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } exports.ec2ClientVpnEndpointClientLoginBannerOptionsToHclTerraform = ec2ClientVpnEndpointClientLoginBannerOptionsToHclTerraform; class Ec2ClientVpnEndpointClientLoginBannerOptionsOutputReference extends cdktf.ComplexObject { /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing */ constructor(terraformResource, terraformAttribute) { super(terraformResource, terraformAttribute, false, 0); this.isEmptyObject = false; } get internalValue() { let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; if (this._bannerText !== undefined) { hasAnyValues = true; internalValueResult.bannerText = this._bannerText; } if (this._enabled !== undefined) { hasAnyValues = true; internalValueResult.enabled = this._enabled; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._bannerText = undefined; this._enabled = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._bannerText = value.bannerText; this._enabled = value.enabled; } } get bannerText() { return this.getStringAttribute('banner_text'); } set bannerText(value) { this._bannerText = value; } resetBannerText() { this._bannerText = undefined; } // Temporarily expose input value. Use with caution. get bannerTextInput() { return this._bannerText; } get enabled() { return this.getBooleanAttribute('enabled'); } set enabled(value) { this._enabled = value; } resetEnabled() { this._enabled = undefined; } // Temporarily expose input value. Use with caution. get enabledInput() { return this._enabled; } } exports.Ec2ClientVpnEndpointClientLoginBannerOptionsOutputReference = Ec2ClientVpnEndpointClientLoginBannerOptionsOutputReference; _d = JSII_RTTI_SYMBOL_1; Ec2ClientVpnEndpointClientLoginBannerOptionsOutputReference[_d] = { fqn: "@cdktf/provider-aws.ec2ClientVpnEndpoint.Ec2ClientVpnEndpointClientLoginBannerOptionsOutputReference", version: "19.50.0" }; function ec2ClientVpnEndpointConnectionLogOptionsToTerraform(struct) { if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) { return struct; } if (cdktf.isComplexElement(struct)) { throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration"); } return { cloudwatch_log_group: cdktf.stringToTerraform(struct.cloudwatchLogGroup), cloudwatch_log_stream: cdktf.stringToTerraform(struct.cloudwatchLogStream), enabled: cdktf.booleanToTerraform(struct.enabled), }; } exports.ec2ClientVpnEndpointConnectionLogOptionsToTerraform = ec2ClientVpnEndpointConnectionLogOptionsToTerraform; function ec2ClientVpnEndpointConnectionLogOptionsToHclTerraform(struct) { if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) { return struct; } if (cdktf.isComplexElement(struct)) { throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration"); } const attrs = { cloudwatch_log_group: { value: cdktf.stringToHclTerraform(struct.cloudwatchLogGroup), isBlock: false, type: "simple", storageClassType: "string", }, cloudwatch_log_stream: { value: cdktf.stringToHclTerraform(struct.cloudwatchLogStream), isBlock: false, type: "simple", storageClassType: "string", }, enabled: { value: cdktf.booleanToHclTerraform(struct.enabled), isBlock: false, type: "simple", storageClassType: "boolean", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } exports.ec2ClientVpnEndpointConnectionLogOptionsToHclTerraform = ec2ClientVpnEndpointConnectionLogOptionsToHclTerraform; class Ec2ClientVpnEndpointConnectionLogOptionsOutputReference extends cdktf.ComplexObject { /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing */ constructor(terraformResource, terraformAttribute) { super(terraformResource, terraformAttribute, false, 0); this.isEmptyObject = false; } get internalValue() { let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; if (this._cloudwatchLogGroup !== undefined) { hasAnyValues = true; internalValueResult.cloudwatchLogGroup = this._cloudwatchLogGroup; } if (this._cloudwatchLogStream !== undefined) { hasAnyValues = true; internalValueResult.cloudwatchLogStream = this._cloudwatchLogStream; } if (this._enabled !== undefined) { hasAnyValues = true; internalValueResult.enabled = this._enabled; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._cloudwatchLogGroup = undefined; this._cloudwatchLogStream = undefined; this._enabled = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._cloudwatchLogGroup = value.cloudwatchLogGroup; this._cloudwatchLogStream = value.cloudwatchLogStream; this._enabled = value.enabled; } } get cloudwatchLogGroup() { return this.getStringAttribute('cloudwatch_log_group'); } set cloudwatchLogGroup(value) { this._cloudwatchLogGroup = value; } resetCloudwatchLogGroup() { this._cloudwatchLogGroup = undefined; } // Temporarily expose input value. Use with caution. get cloudwatchLogGroupInput() { return this._cloudwatchLogGroup; } get cloudwatchLogStream() { return this.getStringAttribute('cloudwatch_log_stream'); } set cloudwatchLogStream(value) { this._cloudwatchLogStream = value; } resetCloudwatchLogStream() { this._cloudwatchLogStream = undefined; } // Temporarily expose input value. Use with caution. get cloudwatchLogStreamInput() { return this._cloudwatchLogStream; } get enabled() { return this.getBooleanAttribute('enabled'); } set enabled(value) { this._enabled = value; } // Temporarily expose input value. Use with caution. get enabledInput() { return this._enabled; } } exports.Ec2ClientVpnEndpointConnectionLogOptionsOutputReference = Ec2ClientVpnEndpointConnectionLogOptionsOutputReference; _e = JSII_RTTI_SYMBOL_1; Ec2ClientVpnEndpointConnectionLogOptionsOutputReference[_e] = { fqn: "@cdktf/provider-aws.ec2ClientVpnEndpoint.Ec2ClientVpnEndpointConnectionLogOptionsOutputReference", version: "19.50.0" }; /** * Represents a {@link https://registry.terraform.io/providers/hashicorp/aws/5.84.0/docs/resources/ec2_client_vpn_endpoint aws_ec2_client_vpn_endpoint} */ class Ec2ClientVpnEndpoint extends cdktf.TerraformResource { // ============== // STATIC Methods // ============== /** * Generates CDKTF code for importing a Ec2ClientVpnEndpoint resource upon running "cdktf plan <stack-name>" * @param scope The scope in which to define this construct * @param importToId The construct id used in the generated config for the Ec2ClientVpnEndpoint to import * @param importFromId The id of the existing Ec2ClientVpnEndpoint that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/aws/5.84.0/docs/resources/ec2_client_vpn_endpoint#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the Ec2ClientVpnEndpoint to import is found */ static generateConfigForImport(scope, importToId, importFromId, provider) { return new cdktf.ImportableResource(scope, importToId, { terraformResourceType: "aws_ec2_client_vpn_endpoint", importId: importFromId, provider }); } // =========== // INITIALIZER // =========== /** * Create a new {@link https://registry.terraform.io/providers/hashicorp/aws/5.84.0/docs/resources/ec2_client_vpn_endpoint aws_ec2_client_vpn_endpoint} Resource * * @param scope The scope in which to define this construct * @param id The scoped construct ID. Must be unique amongst siblings in the same scope * @param options Ec2ClientVpnEndpointConfig */ constructor(scope, id, config) { super(scope, id, { terraformResourceType: 'aws_ec2_client_vpn_endpoint', terraformGeneratorMetadata: { providerName: 'aws', providerVersion: '5.84.0', providerVersionConstraint: '~> 5.0' }, provider: config.provider, dependsOn: config.dependsOn, count: config.count, lifecycle: config.lifecycle, provisioners: config.provisioners, connection: config.connection, forEach: config.forEach }); // authentication_options - computed: false, optional: false, required: true this._authenticationOptions = new Ec2ClientVpnEndpointAuthenticationOptionsList(this, "authentication_options", true); // client_connect_options - computed: false, optional: true, required: false this._clientConnectOptions = new Ec2ClientVpnEndpointClientConnectOptionsOutputReference(this, "client_connect_options"); // client_login_banner_options - computed: false, optional: true, required: false this._clientLoginBannerOptions = new Ec2ClientVpnEndpointClientLoginBannerOptionsOutputReference(this, "client_login_banner_options"); // connection_log_options - computed: false, optional: false, required: true this._connectionLogOptions = new Ec2ClientVpnEndpointConnectionLogOptionsOutputReference(this, "connection_log_options"); this._clientCidrBlock = config.clientCidrBlock; this._description = config.description; this._dnsServers = config.dnsServers; this._id = config.id; this._securityGroupIds = config.securityGroupIds; this._selfServicePortal = config.selfServicePortal; this._serverCertificateArn = config.serverCertificateArn; this._sessionTimeoutHours = config.sessionTimeoutHours; this._splitTunnel = config.splitTunnel; this._tags = config.tags; this._tagsAll = config.tagsAll; this._transportProtocol = config.transportProtocol; this._vpcId = config.vpcId; this._vpnPort = config.vpnPort; this._authenticationOptions.internalValue = config.authenticationOptions; this._clientConnectOptions.internalValue = config.clientConnectOptions; this._clientLoginBannerOptions.internalValue = config.clientLoginBannerOptions; this._connectionLogOptions.internalValue = config.connectionLogOptions; } // ========== // ATTRIBUTES // ========== // arn - computed: true, optional: false, required: false get arn() { return this.getStringAttribute('arn'); } get clientCidrBlock() { return this.getStringAttribute('client_cidr_block'); } set clientCidrBlock(value) { this._clientCidrBlock = value; } // Temporarily expose input value. Use with caution. get clientCidrBlockInput() { return this._clientCidrBlock; } get description() { return this.getStringAttribute('description'); } set description(value) { this._description = value; } resetDescription() { this._description = undefined; } // Temporarily expose input value. Use with caution. get descriptionInput() { return this._description; } // dns_name - computed: true, optional: false, required: false get dnsName() { return this.getStringAttribute('dns_name'); } get dnsServers() { return this.getListAttribute('dns_servers'); } set dnsServers(value) { this._dnsServers = value; } resetDnsServers() { this._dnsServers = undefined; } // Temporarily expose input value. Use with caution. get dnsServersInput() { return this._dnsServers; } get id() { return this.getStringAttribute('id'); } set id(value) { this._id = value; } resetId() { this._id = undefined; } // Temporarily expose input value. Use with caution. get idInput() { return this._id; } get securityGroupIds() { return cdktf.Fn.tolist(this.getListAttribute('security_group_ids')); } set securityGroupIds(value) { this._securityGroupIds = value; } resetSecurityGroupIds() { this._securityGroupIds = undefined; } // Temporarily expose input value. Use with caution. get securityGroupIdsInput() { return this._securityGroupIds; } get selfServicePortal() { return this.getStringAttribute('self_service_portal'); } set selfServicePortal(value) { this._selfServicePortal = value; } resetSelfServicePortal() { this._selfServicePortal = undefined; } // Temporarily expose input value. Use with caution. get selfServicePortalInput() { return this._selfServicePortal; } // self_service_portal_url - computed: true, optional: false, required: false get selfServicePortalUrl() { return this.getStringAttribute('self_service_portal_url'); } get serverCertificateArn() { return this.getStringAttribute('server_certificate_arn'); } set serverCertificateArn(value) { this._serverCertificateArn = value; } // Temporarily expose input value. Use with caution. get serverCertificateArnInput() { return this._serverCertificateArn; } get sessionTimeoutHours() { return this.getNumberAttribute('session_timeout_hours'); } set sessionTimeoutHours(value) { this._sessionTimeoutHours = value; } resetSessionTimeoutHours() { this._sessionTimeoutHours = undefined; } // Temporarily expose input value. Use with caution. get sessionTimeoutHoursInput() { return this._sessionTimeoutHours; } get splitTunnel() { return this.getBooleanAttribute('split_tunnel'); } set splitTunnel(value) { this._splitTunnel = value; } resetSplitTunnel() { this._splitTunnel = undefined; } // Temporarily expose input value. Use with caution. get splitTunnelInput() { return this._splitTunnel; } get tags() { return this.getStringMapAttribute('tags'); } set tags(value) { this._tags = value; } resetTags() { this._tags = undefined; } // Temporarily expose input value. Use with caution. get tagsInput() { return this._tags; } get tagsAll() { return this.getStringMapAttribute('tags_all'); } set tagsAll(value) { this._tagsAll = value; } resetTagsAll() { this._tagsAll = undefined; } // Temporarily expose input value. Use with caution. get tagsAllInput() { return this._tagsAll; } get transportProtocol() { return this.getStringAttribute('transport_protocol'); } set transportProtocol(value) { this._transportProtocol = value; } resetTransportProtocol() { this._transportProtocol = undefined; } // Temporarily expose input value. Use with caution. get transportProtocolInput() { return this._transportProtocol; } get vpcId() { return this.getStringAttribute('vpc_id'); } set vpcId(value) { this._vpcId = value; } resetVpcId() { this._vpcId = undefined; } // Temporarily expose input value. Use with caution. get vpcIdInput() { return this._vpcId; } get vpnPort() { return this.getNumberAttribute('vpn_port'); } set vpnPort(value) { this._vpnPort = value; } resetVpnPort() { this._vpnPort = undefined; } // Temporarily expose input value. Use with caution. get vpnPortInput() { return this._vpnPort; } get authenticationOptions() { return this._authenticationOptions; } putAuthenticationOptions(value) { this._authenticationOptions.internalValue = value; } // Temporarily expose input value. Use with caution. get authenticationOptionsInput() { return this._authenticationOptions.internalValue; } get clientConnectOptions() { return this._clientConnectOptions; } putClientConnectOptions(value) { this._clientConnectOptions.internalValue = value; } resetClientConnectOptions() { this._clientConnectOptions.internalValue = undefined; } // Temporarily expose input value. Use with caution. get clientConnectOptionsInput() { return this._clientConnectOptions.internalValue; } get clientLoginBannerOptions() { return this._clientLoginBannerOptions; } putClientLoginBannerOptions(value) { this._clientLoginBannerOptions.internalValue = value; } resetClientLoginBannerOptions() { this._clientLoginBannerOptions.internalValue = undefined; } // Temporarily expose input value. Use with caution. get clientLoginBannerOptionsInput() { return this._clientLoginBannerOptions.internalValue; } get connectionLogOptions() { return this._connectionLogOptions; } putConnectionLogOptions(value) { this._connectionLogOptions.internalValue = value; } // Temporarily expose input value. Use with caution. get connectionLogOptionsInput() { return this._connectionLogOptions.internalValue; } // ========= // SYNTHESIS // ========= synthesizeAttributes() { return { client_cidr_block: cdktf.stringToTerraform(this._clientCidrBlock), description: cdktf.stringToTerraform(this._description), dns_servers: cdktf.listMapper(cdktf.stringToTerraform, false)(this._dnsServers), id: cdktf.stringToTerraform(this._id), security_group_ids: cdktf.listMapper(cdktf.stringToTerraform, false)(this._securityGroupIds), self_service_portal: cdktf.stringToTerraform(this._selfServicePortal), server_certificate_arn: cdktf.stringToTerraform(this._serverCertificateArn), session_timeout_hours: cdktf.numberToTerraform(this._sessionTimeoutHours), split_tunnel: cdktf.booleanToTerraform(this._splitTunnel), tags: cdktf.hashMapper(cdktf.stringToTerraform)(this._tags), tags_all: cdktf.hashMapper(cdktf.stringToTerraform)(this._tagsAll), transport_protocol: cdktf.stringToTerraform(this._transportProtocol), vpc_id: cdktf.stringToTerraform(this._vpcId), vpn_port: cdktf.numberToTerraform(this._vpnPort), authentication_options: cdktf.listMapper(ec2ClientVpnEndpointAuthenticationOptionsToTerraform, true)(this._authenticationOptions.internalValue), client_connect_options: ec2ClientVpnEndpointClientConnectOptionsToTerraform(this._clientConnectOptions.internalValue), client_login_banner_options: ec2ClientVpnEndpointClientLoginBannerOptionsToTerraform(this._clientLoginBannerOptions.internalValue), connection_log_options: ec2ClientVpnEndpointConnectionLogOptionsToTerraform(this._connectionLogOptions.internalValue), }; } synthesizeHclAttributes() { const attrs = { client_cidr_block: { value: cdktf.stringToHclTerraform(this._clientCidrBlock), isBlock: false, type: "simple", storageClassType: "string", }, description: { value: cdktf.stringToHclTerraform(this._description), isBlock: false, type: "simple", storageClassType: "string", }, dns_servers: { value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(this._dnsServers), isBlock: false, type: "list", storageClassType: "stringList", }, id: { value: cdktf.stringToHclTerraform(this._id), isBlock: false, type: "simple", storageClassType: "string", }, security_group_ids: { value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(this._securityGroupIds), isBlock: false, type: "set", storageClassType: "stringList", }, self_service_portal: { value: cdktf.stringToHclTerraform(this._selfServicePortal), isBlock: false, type: "simple", storageClassType: "string", }, server_certificate_arn: { value: cdktf.stringToHclTerraform(this._serverCertificateArn), isBlock: false, type: "simple", storageClassType: "string", }, session_timeout_hours: { value: cdktf.numberToHclTerraform(this._sessionTimeoutHours), isBlock: false, type: "simple", storageClassType: "number", }, split_tunnel: { value: cdktf.booleanToHclTerraform(this._splitTunnel), isBlock: false, type: "simple", storageClassType: "boolean", }, tags: { value: cdktf.hashMapperHcl(cdktf.stringToHclTerraform)(this._tags), isBlock: false, type: "map", storageClassType: "stringMap", }, tags_all: { value: cdktf.hashMapperHcl(cdktf.stringToHclTerraform)(this._tagsAll), isBlock: false, type: "map", storageClassType: "stringMap", }, transport_protocol: { value: cdktf.stringToHclTerraform(this._transportProtocol), isBlock: false, type: "simple", storageClassType: "string", }, vpc_id: { value: cdktf.stringToHclTerraform(this._vpcId), isBlock: false, type: "simple", storageClassType: "string", }, vpn_port: { value: cdktf.numberToHclTerraform(this._vpnPort), isBlock: false, type: "simple", storageClassType: "number", }, authentication_options: { value: cdktf.listMapperHcl(ec2ClientVpnEndpointAuthenticationOptionsToHclTerraform, true)(this._authenticationOptions.internalValue), isBlock: true, type: "set", storageClassType: "Ec2ClientVpnEndpointAuthenticationOptionsList", }, client_connect_options: { value: ec2ClientVpnEndpointClientConnectOptionsToHclTerraform(this._clientConnectOptions.internalValue), isBlock: true, type: "list", storageClassType: "Ec2ClientVpnEndpointClientConnectOptionsList", }, client_login_banner_options: { value: ec2ClientVpnEndpointClientLoginBannerOptionsToHclTerraform(this._clientLoginBannerOptions.internalValue), isBlock: true, type: "list", storageClassType: "Ec2ClientVpnEndpointClientLoginBannerOptionsList", }, connection_log_options: { value: ec2ClientVpnEndpointConnectionLogOptionsToHclTerraform(this._connectionLogOptions.internalValue), isBlock: true, type: "list", storageClassType: "Ec2ClientVpnEndpointConnectionLogOptionsList", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } } exports.Ec2ClientVpnEndpoint = Ec2ClientVpnEndpoint; _f = JSII_RTTI_SYMBOL_1; Ec2ClientVpnEndpoint[_f] = { fqn: "@cdktf/provider-aws.ec2ClientVpnEndpoint.Ec2ClientVpnEndpoint", version: "19.50.0" }; // ================= // STATIC PROPERTIES // ================= Ec2ClientVpnEndpoint.tfResourceType = "aws_ec2_client_vpn_endpoint"; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZWMyLWNsaWVudC12cG4tZW5kcG9pbnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFTQSwrQkFBK0I7QUFnSC9CLFNBQWdCLG9EQUFvRCxDQUFDLE1BQXNFO0lBQ3pJLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFBQyxPQUFPLE1BQU0sQ0FBQztJQUFDLENBQUM7SUFDNUYsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLG9IQUFvSCxDQUFDLENBQUM7SUFDeEksQ0FBQztJQUNELE9BQU87UUFDTCxtQkFBbUIsRUFBRSxLQUFLLENBQUMsaUJBQWlCLENBQUMsTUFBTyxDQUFDLGlCQUFpQixDQUFDO1FBQ3ZFLDBCQUEwQixFQUFFLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxNQUFPLENBQUMsdUJBQXVCLENBQUM7UUFDcEYsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixDQUFDLE1BQU8sQ0FBQyxlQUFlLENBQUM7UUFDbkUsOEJBQThCLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixDQUFDLE1BQU8sQ0FBQywwQkFBMEIsQ0FBQztRQUMzRixJQUFJLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixDQUFDLE1BQU8sQ0FBQyxJQUFJLENBQUM7S0FDNUMsQ0FBQTtBQUNILENBQUM7QUFaRCxvSEFZQztBQUdELFNBQWdCLHVEQUF1RCxDQUFDLE1BQXNFO0lBQzVJLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFBQyxPQUFPLE1B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