UNPKG

@cdktf/provider-aws

Version:

Prebuilt aws Provider for Terraform CDK (cdktf)

1,010 lines 136 kB
"use strict"; var _a, _b, _c, _d, _e, _f, _g; Object.defineProperty(exports, "__esModule", { value: true }); exports.VpcEndpoint = exports.VpcEndpointTimeoutsOutputReference = exports.VpcEndpointSubnetConfigurationList = exports.VpcEndpointSubnetConfigurationOutputReference = exports.VpcEndpointDnsOptionsOutputReference = exports.VpcEndpointDnsEntryList = exports.VpcEndpointDnsEntryOutputReference = void 0; exports.vpcEndpointDnsEntryToTerraform = vpcEndpointDnsEntryToTerraform; exports.vpcEndpointDnsEntryToHclTerraform = vpcEndpointDnsEntryToHclTerraform; exports.vpcEndpointDnsOptionsToTerraform = vpcEndpointDnsOptionsToTerraform; exports.vpcEndpointDnsOptionsToHclTerraform = vpcEndpointDnsOptionsToHclTerraform; exports.vpcEndpointSubnetConfigurationToTerraform = vpcEndpointSubnetConfigurationToTerraform; exports.vpcEndpointSubnetConfigurationToHclTerraform = vpcEndpointSubnetConfigurationToHclTerraform; exports.vpcEndpointTimeoutsToTerraform = vpcEndpointTimeoutsToTerraform; exports.vpcEndpointTimeoutsToHclTerraform = vpcEndpointTimeoutsToHclTerraform; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const cdktf = require("cdktf"); function vpcEndpointDnsEntryToTerraform(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 {}; } function vpcEndpointDnsEntryToHclTerraform(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 = {}; return attrs; } class VpcEndpointDnsEntryOutputReference 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() { let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; } else { this.isEmptyObject = Object.keys(value).length === 0; } } // dns_name - computed: true, optional: false, required: false get dnsName() { return this.getStringAttribute('dns_name'); } // hosted_zone_id - computed: true, optional: false, required: false get hostedZoneId() { return this.getStringAttribute('hosted_zone_id'); } } exports.VpcEndpointDnsEntryOutputReference = VpcEndpointDnsEntryOutputReference; _a = JSII_RTTI_SYMBOL_1; VpcEndpointDnsEntryOutputReference[_a] = { fqn: "@cdktf/provider-aws.vpcEndpoint.VpcEndpointDnsEntryOutputReference", version: "21.22.1" }; class VpcEndpointDnsEntryList 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 VpcEndpointDnsEntryOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet); } } exports.VpcEndpointDnsEntryList = VpcEndpointDnsEntryList; _b = JSII_RTTI_SYMBOL_1; VpcEndpointDnsEntryList[_b] = { fqn: "@cdktf/provider-aws.vpcEndpoint.VpcEndpointDnsEntryList", version: "21.22.1" }; function vpcEndpointDnsOptionsToTerraform(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 { dns_record_ip_type: cdktf.stringToTerraform(struct.dnsRecordIpType), private_dns_only_for_inbound_resolver_endpoint: cdktf.booleanToTerraform(struct.privateDnsOnlyForInboundResolverEndpoint), }; } function vpcEndpointDnsOptionsToHclTerraform(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 = { dns_record_ip_type: { value: cdktf.stringToHclTerraform(struct.dnsRecordIpType), isBlock: false, type: "simple", storageClassType: "string", }, private_dns_only_for_inbound_resolver_endpoint: { value: cdktf.booleanToHclTerraform(struct.privateDnsOnlyForInboundResolverEndpoint), isBlock: false, type: "simple", storageClassType: "boolean", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class VpcEndpointDnsOptionsOutputReference 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._dnsRecordIpType !== undefined) { hasAnyValues = true; internalValueResult.dnsRecordIpType = this._dnsRecordIpType; } if (this._privateDnsOnlyForInboundResolverEndpoint !== undefined) { hasAnyValues = true; internalValueResult.privateDnsOnlyForInboundResolverEndpoint = this._privateDnsOnlyForInboundResolverEndpoint; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._dnsRecordIpType = undefined; this._privateDnsOnlyForInboundResolverEndpoint = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._dnsRecordIpType = value.dnsRecordIpType; this._privateDnsOnlyForInboundResolverEndpoint = value.privateDnsOnlyForInboundResolverEndpoint; } } get dnsRecordIpType() { return this.getStringAttribute('dns_record_ip_type'); } set dnsRecordIpType(value) { this._dnsRecordIpType = value; } resetDnsRecordIpType() { this._dnsRecordIpType = undefined; } // Temporarily expose input value. Use with caution. get dnsRecordIpTypeInput() { return this._dnsRecordIpType; } get privateDnsOnlyForInboundResolverEndpoint() { return this.getBooleanAttribute('private_dns_only_for_inbound_resolver_endpoint'); } set privateDnsOnlyForInboundResolverEndpoint(value) { this._privateDnsOnlyForInboundResolverEndpoint = value; } resetPrivateDnsOnlyForInboundResolverEndpoint() { this._privateDnsOnlyForInboundResolverEndpoint = undefined; } // Temporarily expose input value. Use with caution. get privateDnsOnlyForInboundResolverEndpointInput() { return this._privateDnsOnlyForInboundResolverEndpoint; } } exports.VpcEndpointDnsOptionsOutputReference = VpcEndpointDnsOptionsOutputReference; _c = JSII_RTTI_SYMBOL_1; VpcEndpointDnsOptionsOutputReference[_c] = { fqn: "@cdktf/provider-aws.vpcEndpoint.VpcEndpointDnsOptionsOutputReference", version: "21.22.1" }; function vpcEndpointSubnetConfigurationToTerraform(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 { ipv4: cdktf.stringToTerraform(struct.ipv4), ipv6: cdktf.stringToTerraform(struct.ipv6), subnet_id: cdktf.stringToTerraform(struct.subnetId), }; } function vpcEndpointSubnetConfigurationToHclTerraform(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 = { ipv4: { value: cdktf.stringToHclTerraform(struct.ipv4), isBlock: false, type: "simple", storageClassType: "string", }, ipv6: { value: cdktf.stringToHclTerraform(struct.ipv6), isBlock: false, type: "simple", storageClassType: "string", }, subnet_id: { value: cdktf.stringToHclTerraform(struct.subnetId), isBlock: false, type: "simple", storageClassType: "string", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class VpcEndpointSubnetConfigurationOutputReference 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._ipv4 !== undefined) { hasAnyValues = true; internalValueResult.ipv4 = this._ipv4; } if (this._ipv6 !== undefined) { hasAnyValues = true; internalValueResult.ipv6 = this._ipv6; } if (this._subnetId !== undefined) { hasAnyValues = true; internalValueResult.subnetId = this._subnetId; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this.resolvableValue = undefined; this._ipv4 = undefined; this._ipv6 = undefined; this._subnetId = 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._ipv4 = value.ipv4; this._ipv6 = value.ipv6; this._subnetId = value.subnetId; } } get ipv4() { return this.getStringAttribute('ipv4'); } set ipv4(value) { this._ipv4 = value; } resetIpv4() { this._ipv4 = undefined; } // Temporarily expose input value. Use with caution. get ipv4Input() { return this._ipv4; } get ipv6() { return this.getStringAttribute('ipv6'); } set ipv6(value) { this._ipv6 = value; } resetIpv6() { this._ipv6 = undefined; } // Temporarily expose input value. Use with caution. get ipv6Input() { return this._ipv6; } get subnetId() { return this.getStringAttribute('subnet_id'); } set subnetId(value) { this._subnetId = value; } resetSubnetId() { this._subnetId = undefined; } // Temporarily expose input value. Use with caution. get subnetIdInput() { return this._subnetId; } } exports.VpcEndpointSubnetConfigurationOutputReference = VpcEndpointSubnetConfigurationOutputReference; _d = JSII_RTTI_SYMBOL_1; VpcEndpointSubnetConfigurationOutputReference[_d] = { fqn: "@cdktf/provider-aws.vpcEndpoint.VpcEndpointSubnetConfigurationOutputReference", version: "21.22.1" }; class VpcEndpointSubnetConfigurationList 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 VpcEndpointSubnetConfigurationOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet); } } exports.VpcEndpointSubnetConfigurationList = VpcEndpointSubnetConfigurationList; _e = JSII_RTTI_SYMBOL_1; VpcEndpointSubnetConfigurationList[_e] = { fqn: "@cdktf/provider-aws.vpcEndpoint.VpcEndpointSubnetConfigurationList", version: "21.22.1" }; function vpcEndpointTimeoutsToTerraform(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 { create: cdktf.stringToTerraform(struct.create), delete: cdktf.stringToTerraform(struct.delete), update: cdktf.stringToTerraform(struct.update), }; } function vpcEndpointTimeoutsToHclTerraform(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 = { create: { value: cdktf.stringToHclTerraform(struct.create), isBlock: false, type: "simple", storageClassType: "string", }, delete: { value: cdktf.stringToHclTerraform(struct.delete), isBlock: false, type: "simple", storageClassType: "string", }, update: { value: cdktf.stringToHclTerraform(struct.update), isBlock: false, type: "simple", storageClassType: "string", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class VpcEndpointTimeoutsOutputReference 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); this.isEmptyObject = false; } get internalValue() { if (this.resolvableValue) { return this.resolvableValue; } let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; if (this._create !== undefined) { hasAnyValues = true; internalValueResult.create = this._create; } if (this._delete !== undefined) { hasAnyValues = true; internalValueResult.delete = this._delete; } if (this._update !== undefined) { hasAnyValues = true; internalValueResult.update = this._update; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this.resolvableValue = undefined; this._create = undefined; this._delete = undefined; this._update = 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._create = value.create; this._delete = value.delete; this._update = value.update; } } get create() { return this.getStringAttribute('create'); } set create(value) { this._create = value; } resetCreate() { this._create = undefined; } // Temporarily expose input value. Use with caution. get createInput() { return this._create; } get delete() { return this.getStringAttribute('delete'); } set delete(value) { this._delete = value; } resetDelete() { this._delete = undefined; } // Temporarily expose input value. Use with caution. get deleteInput() { return this._delete; } get update() { return this.getStringAttribute('update'); } set update(value) { this._update = value; } resetUpdate() { this._update = undefined; } // Temporarily expose input value. Use with caution. get updateInput() { return this._update; } } exports.VpcEndpointTimeoutsOutputReference = VpcEndpointTimeoutsOutputReference; _f = JSII_RTTI_SYMBOL_1; VpcEndpointTimeoutsOutputReference[_f] = { fqn: "@cdktf/provider-aws.vpcEndpoint.VpcEndpointTimeoutsOutputReference", version: "21.22.1" }; /** * Represents a {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/vpc_endpoint aws_vpc_endpoint} */ class VpcEndpoint extends cdktf.TerraformResource { // ============== // STATIC Methods // ============== /** * Generates CDKTF code for importing a VpcEndpoint 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 VpcEndpoint to import * @param importFromId The id of the existing VpcEndpoint that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/vpc_endpoint#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the VpcEndpoint to import is found */ static generateConfigForImport(scope, importToId, importFromId, provider) { return new cdktf.ImportableResource(scope, importToId, { terraformResourceType: "aws_vpc_endpoint", importId: importFromId, provider }); } // =========== // INITIALIZER // =========== /** * Create a new {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/vpc_endpoint aws_vpc_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 VpcEndpointConfig */ constructor(scope, id, config) { super(scope, id, { terraformResourceType: 'aws_vpc_endpoint', terraformGeneratorMetadata: { providerName: 'aws', providerVersion: '6.25.0', providerVersionConstraint: '~> 6.0' }, provider: config.provider, dependsOn: config.dependsOn, count: config.count, lifecycle: config.lifecycle, provisioners: config.provisioners, connection: config.connection, forEach: config.forEach }); // dns_entry - computed: true, optional: false, required: false this._dnsEntry = new VpcEndpointDnsEntryList(this, "dns_entry", false); // dns_options - computed: false, optional: true, required: false this._dnsOptions = new VpcEndpointDnsOptionsOutputReference(this, "dns_options"); // subnet_configuration - computed: false, optional: true, required: false this._subnetConfiguration = new VpcEndpointSubnetConfigurationList(this, "subnet_configuration", true); // timeouts - computed: false, optional: true, required: false this._timeouts = new VpcEndpointTimeoutsOutputReference(this, "timeouts"); this._autoAccept = config.autoAccept; this._id = config.id; this._ipAddressType = config.ipAddressType; this._policy = config.policy; this._privateDnsEnabled = config.privateDnsEnabled; this._region = config.region; this._resourceConfigurationArn = config.resourceConfigurationArn; this._routeTableIds = config.routeTableIds; this._securityGroupIds = config.securityGroupIds; this._serviceName = config.serviceName; this._serviceNetworkArn = config.serviceNetworkArn; this._serviceRegion = config.serviceRegion; this._subnetIds = config.subnetIds; this._tags = config.tags; this._tagsAll = config.tagsAll; this._vpcEndpointType = config.vpcEndpointType; this._vpcId = config.vpcId; this._dnsOptions.internalValue = config.dnsOptions; this._subnetConfiguration.internalValue = config.subnetConfiguration; this._timeouts.internalValue = config.timeouts; } // ========== // ATTRIBUTES // ========== // arn - computed: true, optional: false, required: false get arn() { return this.getStringAttribute('arn'); } get autoAccept() { return this.getBooleanAttribute('auto_accept'); } set autoAccept(value) { this._autoAccept = value; } resetAutoAccept() { this._autoAccept = undefined; } // Temporarily expose input value. Use with caution. get autoAcceptInput() { return this._autoAccept; } // cidr_blocks - computed: true, optional: false, required: false get cidrBlocks() { return this.getListAttribute('cidr_blocks'); } get dnsEntry() { return this._dnsEntry; } 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 ipAddressType() { return this.getStringAttribute('ip_address_type'); } set ipAddressType(value) { this._ipAddressType = value; } resetIpAddressType() { this._ipAddressType = undefined; } // Temporarily expose input value. Use with caution. get ipAddressTypeInput() { return this._ipAddressType; } // network_interface_ids - computed: true, optional: false, required: false get networkInterfaceIds() { return cdktf.Fn.tolist(this.getListAttribute('network_interface_ids')); } // owner_id - computed: true, optional: false, required: false get ownerId() { return this.getStringAttribute('owner_id'); } get policy() { return this.getStringAttribute('policy'); } set policy(value) { this._policy = value; } resetPolicy() { this._policy = undefined; } // Temporarily expose input value. Use with caution. get policyInput() { return this._policy; } // prefix_list_id - computed: true, optional: false, required: false get prefixListId() { return this.getStringAttribute('prefix_list_id'); } get privateDnsEnabled() { return this.getBooleanAttribute('private_dns_enabled'); } set privateDnsEnabled(value) { this._privateDnsEnabled = value; } resetPrivateDnsEnabled() { this._privateDnsEnabled = undefined; } // Temporarily expose input value. Use with caution. get privateDnsEnabledInput() { return this._privateDnsEnabled; } get region() { return this.getStringAttribute('region'); } set region(value) { this._region = value; } resetRegion() { this._region = undefined; } // Temporarily expose input value. Use with caution. get regionInput() { return this._region; } // requester_managed - computed: true, optional: false, required: false get requesterManaged() { return this.getBooleanAttribute('requester_managed'); } get resourceConfigurationArn() { return this.getStringAttribute('resource_configuration_arn'); } set resourceConfigurationArn(value) { this._resourceConfigurationArn = value; } resetResourceConfigurationArn() { this._resourceConfigurationArn = undefined; } // Temporarily expose input value. Use with caution. get resourceConfigurationArnInput() { return this._resourceConfigurationArn; } get routeTableIds() { return cdktf.Fn.tolist(this.getListAttribute('route_table_ids')); } set routeTableIds(value) { this._routeTableIds = value; } resetRouteTableIds() { this._routeTableIds = undefined; } // Temporarily expose input value. Use with caution. get routeTableIdsInput() { return this._routeTableIds; } 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 serviceName() { return this.getStringAttribute('service_name'); } set serviceName(value) { this._serviceName = value; } resetServiceName() { this._serviceName = undefined; } // Temporarily expose input value. Use with caution. get serviceNameInput() { return this._serviceName; } get serviceNetworkArn() { return this.getStringAttribute('service_network_arn'); } set serviceNetworkArn(value) { this._serviceNetworkArn = value; } resetServiceNetworkArn() { this._serviceNetworkArn = undefined; } // Temporarily expose input value. Use with caution. get serviceNetworkArnInput() { return this._serviceNetworkArn; } get serviceRegion() { return this.getStringAttribute('service_region'); } set serviceRegion(value) { this._serviceRegion = value; } resetServiceRegion() { this._serviceRegion = undefined; } // Temporarily expose input value. Use with caution. get serviceRegionInput() { return this._serviceRegion; } // state - computed: true, optional: false, required: false get state() { return this.getStringAttribute('state'); } get subnetIds() { return cdktf.Fn.tolist(this.getListAttribute('subnet_ids')); } set subnetIds(value) { this._subnetIds = value; } resetSubnetIds() { this._subnetIds = undefined; } // Temporarily expose input value. Use with caution. get subnetIdsInput() { return this._subnetIds; } 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 vpcEndpointType() { return this.getStringAttribute('vpc_endpoint_type'); } set vpcEndpointType(value) { this._vpcEndpointType = value; } resetVpcEndpointType() { this._vpcEndpointType = undefined; } // Temporarily expose input value. Use with caution. get vpcEndpointTypeInput() { return this._vpcEndpointType; } get vpcId() { return this.getStringAttribute('vpc_id'); } set vpcId(value) { this._vpcId = value; } // Temporarily expose input value. Use with caution. get vpcIdInput() { return this._vpcId; } get dnsOptions() { return this._dnsOptions; } putDnsOptions(value) { this._dnsOptions.internalValue = value; } resetDnsOptions() { this._dnsOptions.internalValue = undefined; } // Temporarily expose input value. Use with caution. get dnsOptionsInput() { return this._dnsOptions.internalValue; } get subnetConfiguration() { return this._subnetConfiguration; } putSubnetConfiguration(value) { this._subnetConfiguration.internalValue = value; } resetSubnetConfiguration() { this._subnetConfiguration.internalValue = undefined; } // Temporarily expose input value. Use with caution. get subnetConfigurationInput() { return this._subnetConfiguration.internalValue; } get timeouts() { return this._timeouts; } putTimeouts(value) { this._timeouts.internalValue = value; } resetTimeouts() { this._timeouts.internalValue = undefined; } // Temporarily expose input value. Use with caution. get timeoutsInput() { return this._timeouts.internalValue; } // ========= // SYNTHESIS // ========= synthesizeAttributes() { return { auto_accept: cdktf.booleanToTerraform(this._autoAccept), id: cdktf.stringToTerraform(this._id), ip_address_type: cdktf.stringToTerraform(this._ipAddressType), policy: cdktf.stringToTerraform(this._policy), private_dns_enabled: cdktf.booleanToTerraform(this._privateDnsEnabled), region: cdktf.stringToTerraform(this._region), resource_configuration_arn: cdktf.stringToTerraform(this._resourceConfigurationArn), route_table_ids: cdktf.listMapper(cdktf.stringToTerraform, false)(this._routeTableIds), security_group_ids: cdktf.listMapper(cdktf.stringToTerraform, false)(this._securityGroupIds), service_name: cdktf.stringToTerraform(this._serviceName), service_network_arn: cdktf.stringToTerraform(this._serviceNetworkArn), service_region: cdktf.stringToTerraform(this._serviceRegion), subnet_ids: cdktf.listMapper(cdktf.stringToTerraform, false)(this._subnetIds), tags: cdktf.hashMapper(cdktf.stringToTerraform)(this._tags), tags_all: cdktf.hashMapper(cdktf.stringToTerraform)(this._tagsAll), vpc_endpoint_type: cdktf.stringToTerraform(this._vpcEndpointType), vpc_id: cdktf.stringToTerraform(this._vpcId), dns_options: vpcEndpointDnsOptionsToTerraform(this._dnsOptions.internalValue), subnet_configuration: cdktf.listMapper(vpcEndpointSubnetConfigurationToTerraform, true)(this._subnetConfiguration.internalValue), timeouts: vpcEndpointTimeoutsToTerraform(this._timeouts.internalValue), }; } synthesizeHclAttributes() { const attrs = { auto_accept: { value: cdktf.booleanToHclTerraform(this._autoAccept), isBlock: false, type: "simple", storageClassType: "boolean", }, id: { value: cdktf.stringToHclTerraform(this._id), isBlock: false, type: "simple", storageClassType: "string", }, ip_address_type: { value: cdktf.stringToHclTerraform(this._ipAddressType), isBlock: false, type: "simple", storageClassType: "string", }, policy: { value: cdktf.stringToHclTerraform(this._policy), isBlock: false, type: "simple", storageClassType: "string", }, private_dns_enabled: { value: cdktf.booleanToHclTerraform(this._privateDnsEnabled), isBlock: false, type: "simple", storageClassType: "boolean", }, region: { value: cdktf.stringToHclTerraform(this._region), isBlock: false, type: "simple", storageClassType: "string", }, resource_configuration_arn: { value: cdktf.stringToHclTerraform(this._resourceConfigurationArn), isBlock: false, type: "simple", storageClassType: "string", }, route_table_ids: { value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(this._routeTableIds), isBlock: false, type: "set", storageClassType: "stringList", }, security_group_ids: { value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(this._securityGroupIds), isBlock: false, type: "set", storageClassType: "stringList", }, service_name: { value: cdktf.stringToHclTerraform(this._serviceName), isBlock: false, type: "simple", storageClassType: "string", }, service_network_arn: { value: cdktf.stringToHclTerraform(this._serviceNetworkArn), isBlock: false, type: "simple", storageClassType: "string", }, service_region: { value: cdktf.stringToHclTerraform(this._serviceRegion), isBlock: false, type: "simple", storageClassType: "string", }, subnet_ids: { value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(this._subnetIds), isBlock: false, type: "set", storageClassType: "stringList", }, 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", }, vpc_endpoint_type: { value: cdktf.stringToHclTerraform(this._vpcEndpointType), isBlock: false, type: "simple", storageClassType: "string", }, vpc_id: { value: cdktf.stringToHclTerraform(this._vpcId), isBlock: false, type: "simple", storageClassType: "string", }, dns_options: { value: vpcEndpointDnsOptionsToHclTerraform(this._dnsOptions.internalValue), isBlock: true, type: "list", storageClassType: "VpcEndpointDnsOptionsList", }, subnet_configuration: { value: cdktf.listMapperHcl(vpcEndpointSubnetConfigurationToHclTerraform, true)(this._subnetConfiguration.internalValue), isBlock: true, type: "set", storageClassType: "VpcEndpointSubnetConfigurationList", }, timeouts: { value: vpcEndpointTimeoutsToHclTerraform(this._timeouts.internalValue), isBlock: true, type: "struct", storageClassType: "VpcEndpointTimeouts", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } } exports.VpcEndpoint = VpcEndpoint; _g = JSII_RTTI_SYMBOL_1; VpcEndpoint[_g] = { fqn: "@cdktf/provider-aws.vpcEndpoint.VpcEndpoint", version: "21.22.1" }; // ================= // STATIC PROPERTIES // ================= VpcEndpoint.tfResourceType = "aws_vpc_endpoint"; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdnBjLWVuZHBvaW50L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUE2R0Esd0VBT0M7QUFHRCw4RUFRQztBQXNFRCw0RUFTQztBQUdELGtGQXNCQztBQXVGRCw4RkFVQztBQUdELG9HQTRCQztBQTZJRCx3RUFVQztBQUdELDhFQTRCQzs7QUFwaEJELCtCQUErQjtBQW9HL0IsU0FBZ0IsOEJBQThCLENBQUMsTUFBNEI7SUFDekUsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUFDLE9BQU8sTUFBTSxDQUFDO0lBQUMsQ0FBQztJQUM1RixJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsb0hBQW9ILENBQUMsQ0FBQztJQUN4SSxDQUFDO0lBQ0QsT0FBTyxFQUNOLENBQUE7QUFDSCxDQUFDO0FBR0QsU0FBZ0IsaUNBQWlDLENBQUMsTUFBNEI7SUFDNUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUFDLE9BQU8sTUFBTSxDQUFDO0lBQUMsQ0FBQztJQUM1RixJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsb0hBQW9ILENBQUMsQ0FBQztJQUN4SSxDQUFDO0lBQ0QsTUFBTSxLQUFLLEdBQUcsRUFDYixDQUFDO0lBQ0YsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQsTUFBYSxrQ0FBbUMsU0FBUSxLQUFLLENBQUMsYUFBYTtJQUd6RTs7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