@cdktf/provider-aws
Version:
Prebuilt aws Provider for Terraform CDK (cdktf)
1,000 lines • 144 kB
JavaScript
"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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZWMyLWNsaWVudC12cG4tZW5kcG9pbnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFTQSwrQkFBK0I7QUFnSC9CLFNBQWdCLG9EQUFvRCxDQUFDLE1BQXNFO0lBQ3pJLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFBQyxPQUFPLE1BQU0sQ0FBQztJQUFDLENBQUM7SUFDNUYsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLG9IQUFvSCxDQUFDLENBQUM7SUFDeEksQ0FBQztJQUNELE9BQU87UUFDTCxtQkFBbUIsRUFBRSxLQUFLLENBQUMsaUJBQWlCLENBQUMsTUFBTyxDQUFDLGlCQUFpQixDQUFDO1FBQ3ZFLDBCQUEwQixFQUFFLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxNQUFPLENBQUMsdUJBQXVCLENBQUM7UUFDcEYsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixDQUFDLE1BQU8sQ0FBQyxlQUFlLENBQUM7UUFDbkUsOEJBQThCLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixDQUFDLE1BQU8sQ0FBQywwQkFBMEIsQ0FBQztRQUMzRixJQUFJLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixDQUFDLE1BQU8sQ0FBQyxJQUFJLENBQUM7S0FDNUMsQ0FBQTtBQUNILENBQUM7QUFaRCxvSEFZQztBQUdELFNBQWdCLHVEQUF1RCxDQUFDLE1BQXNFO0lBQzVJLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFBQyxPQUFPLE1BQU0sQ0FBQztJQUFDLENBQUM7SUFDNUYsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLG9IQUFvSCxDQUFDLENBQUM7SUFDeEksQ0FBQztJQUNELE1BQU0sS0FBSyxHQUFHO1FBQ1osbUJBQW1CLEVBQUU7WUFDbkIsS0FBSyxFQUFFLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxNQUFPLENBQUMsaUJBQWlCLENBQUM7WUFDNUQsT0FBTyxFQUFFLEtBQUs7WUFDZCxJQUFJLEVBQUUsUUFBUTtZQUNkLGdCQUFnQixFQUFFLFFBQVE7U0FDM0I7UUFDRCwwQkFBMEIsRUFBRTtZQUMxQixLQUFLLEVBQUUsS0FBSyxDQUFDLG9CQUFvQixDQUFDLE1BQU8sQ0FBQyx1QkFBdUIsQ0FBQztZQUNsRSxPQUFPLEVBQUUsS0FBSztZQUNkLElBQUksRUFBRSxRQUFRO1lBQ2QsZ0JBQWdCLEVBQUUsUUFBUTtTQUMzQjtRQUNELGlCQUFpQixFQUFFO1lBQ2pCLEtBQUssRUFBRSxLQUFLLENBQUMsb0JBQW9CLENBQUMsTUFBTyxDQUFDLGVBQWUsQ0FBQztZQUMxRCxPQUFPLEVBQUUsS0FBSztZQUNkLElBQUksRUFBRSxRQUFRO1lBQ2QsZ0JBQWdCLEVBQUUsUUFBUTtTQUMzQjtRQUNELDhCQUE4QixFQUFFO1lBQzlCLEtBQUssRUFBRSxLQUFLLENBQUMsb0JBQW9CLENBQUMsTUFBTyxDQUFDLDBCQUEwQixDQUFDO1lBQ3JFLE9BQU8sRUFBRSxLQUFLO1lBQ2QsSUFBSSxFQUFFLFFBQVE7WUFDZCxnQkFBZ0IsRUFBRSxRQUFRO1NBQzNCO1FBQ0QsSUFBSSxFQUFFO1lBQ0osS0FBSyxFQUFFLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxNQUFPLENBQUMsSUFBSSxDQUFDO1lBQy9DLE9BQU8sRUFBRSxLQUFLO1lBQ2QsSUFBSSxFQUFFLFFBQVE7WUFDZCxnQkFBZ0IsRUFBRSxRQUFRO1NBQzNCO0tBQ0YsQ0FBQztJQUVGLDhCQUE4QjtJQUM5QixPQUFPLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUM7QUFDNUgsQ0FBQztBQXhDRCwwSEF3Q0M7QUFFRCxNQUFhLHdEQUF5RCxTQUFRLEtBQUssQ0FBQyxhQUFhO0lBSS9GOzs7OztNQUtFO0lBQ0YsWUFBbUIsaUJBQTZDLEVBQUUsa0JBQTBCLEVBQUUsa0JBQTBCLEVBQUUsc0JBQStCO1FBQ3ZKLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBVm5GLGtCQUFhLEdBQUcsS0FBSyxDQUFDO0lBVzlCLENBQUM7SUFFRCxJQUFXLGFBQWE7UUFDdEIsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDekIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQzlCLENBQUM7UUFDRCxJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQ3RDLE1BQU0sbUJBQW1CLEdBQVEsRUFBRSxDQUFDO1FBQ3BDLElBQUksSUFBSSxDQUFDLGtCQUFrQixLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzFDLFlBQVksR0FBRyxJQUFJLENBQUM7WUFDcEIsbUJBQW1CLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1FBQ2xFLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyx3QkFBd0IsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNoRCxZQUFZLEdBQUcsSUFBSSxDQUFDO1lBQ3BCLG1CQUFtQixDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQztRQUM5RSxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDeEMsWUFBWSxHQUFHLElBQUksQ0FBQztZQUNwQixtQkFBbUIsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQzlELENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQywyQkFBMkIsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNuRCxZQUFZLEdBQUcsSUFBSSxDQUFDO1lBQ3BCLG1CQUFtQixDQUFDLDBCQUEwQixHQUFHLElBQUksQ0FBQywyQkFBMkIsQ0FBQztRQUNwRixDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzdCLFlBQVksR0FBRyxJQUFJLENBQUM7WUFDcEIsbUJBQW1CLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDeEMsQ0FBQztRQUNELE9BQU8sWUFBWSxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3hELENBQUM7SUFFRCxJQUFXLGFBQWEsQ0FBQyxLQUFnRjtRQUN2RyxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztZQUMzQixJQUFJLENBQUMsZUFBZSxHQUFHLFNBQVMsQ0FBQztZQUNqQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsU0FBUyxDQUFDO1lBQ3BDLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxTQUFTLENBQUM7WUFDMUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFNBQVMsQ0FBQztZQUNsQyxJQUFJLENBQUMsMkJBQTJCLEdBQUcsU0FBUyxDQUFDO1lBQzdDLElBQUksQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDO1FBQ3pCLENBQUM7YUFDSSxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDaEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7WUFDM0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFDL0IsQ0FBQzthQUNJLENBQUM7WUFDSixJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztZQUNyRCxJQUFJLENBQUMsZUFBZSxHQUFHLFNBQVMsQ0FBQztZQUNqQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDLGlCQUFpQixDQUFDO1lBQ2xELElBQUksQ0FBQyx3QkFBd0IsR0FBRyxLQUFLLENBQUMsdUJBQXVCLENBQUM7WUFDOUQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUM7WUFDOUMsSUFBSSxDQUFDLDJCQUEyQixHQUFHLEtBQUssQ0FBQywwQkFBMEIsQ0FBQztZQUNwRSxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDMUIsQ0FBQztJQUNILENBQUM7SUFJRCxJQUFXLGlCQUFpQjtRQUMxQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFDRCxJQUFXLGlCQUFpQixDQUFDLEtBQWE7UUFDeEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztJQUNsQyxDQUFDO0lBQ00sc0JBQXNCO1FBQzNCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxTQUFTLENBQUM7SUFDdEMsQ0FBQztJQUNELG9EQUFvRDtJQUNwRCxJQUFXLHNCQUFzQjtRQUMvQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNqQyxDQUFDO0lBSUQsSUFBVyx1QkFBdUI7UUFDaEMsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsNEJBQTRCLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBQ0QsSUFBVyx1QkFBdUIsQ0FBQyxLQUFhO1FBQzlDLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxLQUFLLENBQUM7SUFDeEMsQ0FBQztJQUNNLDRCQUE0QjtRQUNqQyxJQUFJLENBQUMsd0JBQXdCLEdBQUcsU0FBUyxDQUFDO0lBQzVDLENBQUM7SUFDRCxvREFBb0Q7SUFDcEQsSUFBVyw0QkFBNEI7UUFDckMsT0FBTyxJQUFJLENBQUMsd0JBQXdCLENBQUM7SUFDdkMsQ0FBQztJQUlELElBQVcsZUFBZTtRQUN4QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFDRCxJQUFXLGVBQWUsQ0FBQyxLQUFhO1FBQ3RDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFDaEMsQ0FBQztJQUNNLG9CQUFvQjtRQUN6QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDO0lBQ3BDLENBQUM7SUFDRCxvREFBb0Q7SUFDcEQsSUFBVyxvQkFBb0I7UUFDN0IsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDL0IsQ0FBQztJQUlELElBQVcsMEJBQTBCO1FBQ25DLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLGdDQUFnQyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUNELElBQVcsMEJBQTBCLENBQUMsS0FBYTtRQUNqRCxJQUFJLENBQUMsMkJBQTJCLEdBQUcsS0FBSyxDQUFDO0lBQzNDLENBQUM7SUFDTSwrQkFBK0I7UUFDcEMsSUFBSSxDQUFDLDJCQUEyQixHQUFHLFNBQVMsQ0FBQztJQUMvQyxDQUFDO0lBQ0Qsb0RBQW9EO0lBQ3BELElBQVcsK0JBQStCO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLDJCQUEyQixDQUFDO0lBQzFDLENBQUM7SUFJRCxJQUFXLElBQUk7UUFDYixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBQ0QsSUFBVyxJQUFJLENBQUMsS0FBYTtRQUMzQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBQ0Qsb0RBQW9EO0lBQ3BELElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQzs7QUEvSUgsNEhBZ0pDOzs7QUFFRCxNQUFhLDZDQUE4QyxTQUFRLEtBQUssQ0FBQyxXQUFXO0lBR2xGOzs7O01BSUU7SUFDRixZQUFzQixpQkFBNkMsRUFBWSxrQkFBMEIsRUFBWSxRQUFpQjtRQUNwSSxLQUFLLENBQUMsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxDQUFDLENBQUE7UUFEbEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUE0QjtRQUFZLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBUTtRQUFZLGFBQVEsR0FBUixRQUFRLENBQVM7SUFFdEksQ0FBQztJQUVEOztNQUVFO0lBQ0ssR0FBRyxDQUFDLEtBQWE7UUFDdEIsT0FBTyxJQUFJLHdEQUF3RCxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3SSxDQUFDOztBQWpCSCxzR0FrQkM7OztBQVlELFNBQWdCLG1EQUFtRCxDQUFDLE1BQTJHO0lBQzdLLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFBQyxPQUFPLE1BQU0sQ0FBQztJQUFDLENBQUM7SUFDNUYsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLG9IQUFvSCxDQUFDLENBQUM7SUFDeEksQ0FBQztJQUNELE9BQU87UUFDTCxPQUFPLEVBQUUsS0FBSyxDQUFDLGtCQUFrQixDQUFDLE1BQU8sQ0FBQyxPQUFPLENBQUM7UUFDbEQsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixDQUFDLE1BQU8sQ0FBQyxpQkFBaUIsQ0FBQztLQUN4RSxDQUFBO0FBQ0gsQ0FBQztBQVRELGtIQVNDO0FBR0QsU0FBZ0Isc0RBQXNELENBQUMsTUFBMkc7SUFDaEwsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUFDLE9BQU8sTUFBTSxDQUFDO0lBQUMsQ0FBQztJQUM1RixJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsb0hBQW9ILENBQUMsQ0FBQztJQUN4SSxDQUFDO0lBQ0QsTUFBTSxLQUFLLEdBQUc7UUF