UNPKG

@cdktf/provider-aws

Version:

Prebuilt aws Provider for Terraform CDK (cdktf)

1,061 lines 150 kB
"use strict"; var _a, _b, _c, _d, _e, _f, _g; Object.defineProperty(exports, "__esModule", { value: true }); exports.Ec2NetworkInsightsPath = exports.Ec2NetworkInsightsPathFilterAtSourceOutputReference = exports.Ec2NetworkInsightsPathFilterAtSourceSourcePortRangeOutputReference = exports.Ec2NetworkInsightsPathFilterAtSourceDestinationPortRangeOutputReference = exports.Ec2NetworkInsightsPathFilterAtDestinationOutputReference = exports.Ec2NetworkInsightsPathFilterAtDestinationSourcePortRangeOutputReference = exports.Ec2NetworkInsightsPathFilterAtDestinationDestinationPortRangeOutputReference = void 0; exports.ec2NetworkInsightsPathFilterAtDestinationDestinationPortRangeToTerraform = ec2NetworkInsightsPathFilterAtDestinationDestinationPortRangeToTerraform; exports.ec2NetworkInsightsPathFilterAtDestinationDestinationPortRangeToHclTerraform = ec2NetworkInsightsPathFilterAtDestinationDestinationPortRangeToHclTerraform; exports.ec2NetworkInsightsPathFilterAtDestinationSourcePortRangeToTerraform = ec2NetworkInsightsPathFilterAtDestinationSourcePortRangeToTerraform; exports.ec2NetworkInsightsPathFilterAtDestinationSourcePortRangeToHclTerraform = ec2NetworkInsightsPathFilterAtDestinationSourcePortRangeToHclTerraform; exports.ec2NetworkInsightsPathFilterAtDestinationToTerraform = ec2NetworkInsightsPathFilterAtDestinationToTerraform; exports.ec2NetworkInsightsPathFilterAtDestinationToHclTerraform = ec2NetworkInsightsPathFilterAtDestinationToHclTerraform; exports.ec2NetworkInsightsPathFilterAtSourceDestinationPortRangeToTerraform = ec2NetworkInsightsPathFilterAtSourceDestinationPortRangeToTerraform; exports.ec2NetworkInsightsPathFilterAtSourceDestinationPortRangeToHclTerraform = ec2NetworkInsightsPathFilterAtSourceDestinationPortRangeToHclTerraform; exports.ec2NetworkInsightsPathFilterAtSourceSourcePortRangeToTerraform = ec2NetworkInsightsPathFilterAtSourceSourcePortRangeToTerraform; exports.ec2NetworkInsightsPathFilterAtSourceSourcePortRangeToHclTerraform = ec2NetworkInsightsPathFilterAtSourceSourcePortRangeToHclTerraform; exports.ec2NetworkInsightsPathFilterAtSourceToTerraform = ec2NetworkInsightsPathFilterAtSourceToTerraform; exports.ec2NetworkInsightsPathFilterAtSourceToHclTerraform = ec2NetworkInsightsPathFilterAtSourceToHclTerraform; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const cdktf = require("cdktf"); function ec2NetworkInsightsPathFilterAtDestinationDestinationPortRangeToTerraform(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 { from_port: cdktf.numberToTerraform(struct.fromPort), to_port: cdktf.numberToTerraform(struct.toPort), }; } function ec2NetworkInsightsPathFilterAtDestinationDestinationPortRangeToHclTerraform(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 = { from_port: { value: cdktf.numberToHclTerraform(struct.fromPort), isBlock: false, type: "simple", storageClassType: "number", }, to_port: { value: cdktf.numberToHclTerraform(struct.toPort), isBlock: false, type: "simple", storageClassType: "number", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class Ec2NetworkInsightsPathFilterAtDestinationDestinationPortRangeOutputReference 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._fromPort !== undefined) { hasAnyValues = true; internalValueResult.fromPort = this._fromPort; } if (this._toPort !== undefined) { hasAnyValues = true; internalValueResult.toPort = this._toPort; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._fromPort = undefined; this._toPort = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._fromPort = value.fromPort; this._toPort = value.toPort; } } get fromPort() { return this.getNumberAttribute('from_port'); } set fromPort(value) { this._fromPort = value; } resetFromPort() { this._fromPort = undefined; } // Temporarily expose input value. Use with caution. get fromPortInput() { return this._fromPort; } get toPort() { return this.getNumberAttribute('to_port'); } set toPort(value) { this._toPort = value; } resetToPort() { this._toPort = undefined; } // Temporarily expose input value. Use with caution. get toPortInput() { return this._toPort; } } exports.Ec2NetworkInsightsPathFilterAtDestinationDestinationPortRangeOutputReference = Ec2NetworkInsightsPathFilterAtDestinationDestinationPortRangeOutputReference; _a = JSII_RTTI_SYMBOL_1; Ec2NetworkInsightsPathFilterAtDestinationDestinationPortRangeOutputReference[_a] = { fqn: "@cdktf/provider-aws.ec2NetworkInsightsPath.Ec2NetworkInsightsPathFilterAtDestinationDestinationPortRangeOutputReference", version: "21.22.1" }; function ec2NetworkInsightsPathFilterAtDestinationSourcePortRangeToTerraform(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 { from_port: cdktf.numberToTerraform(struct.fromPort), to_port: cdktf.numberToTerraform(struct.toPort), }; } function ec2NetworkInsightsPathFilterAtDestinationSourcePortRangeToHclTerraform(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 = { from_port: { value: cdktf.numberToHclTerraform(struct.fromPort), isBlock: false, type: "simple", storageClassType: "number", }, to_port: { value: cdktf.numberToHclTerraform(struct.toPort), isBlock: false, type: "simple", storageClassType: "number", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class Ec2NetworkInsightsPathFilterAtDestinationSourcePortRangeOutputReference 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._fromPort !== undefined) { hasAnyValues = true; internalValueResult.fromPort = this._fromPort; } if (this._toPort !== undefined) { hasAnyValues = true; internalValueResult.toPort = this._toPort; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._fromPort = undefined; this._toPort = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._fromPort = value.fromPort; this._toPort = value.toPort; } } get fromPort() { return this.getNumberAttribute('from_port'); } set fromPort(value) { this._fromPort = value; } resetFromPort() { this._fromPort = undefined; } // Temporarily expose input value. Use with caution. get fromPortInput() { return this._fromPort; } get toPort() { return this.getNumberAttribute('to_port'); } set toPort(value) { this._toPort = value; } resetToPort() { this._toPort = undefined; } // Temporarily expose input value. Use with caution. get toPortInput() { return this._toPort; } } exports.Ec2NetworkInsightsPathFilterAtDestinationSourcePortRangeOutputReference = Ec2NetworkInsightsPathFilterAtDestinationSourcePortRangeOutputReference; _b = JSII_RTTI_SYMBOL_1; Ec2NetworkInsightsPathFilterAtDestinationSourcePortRangeOutputReference[_b] = { fqn: "@cdktf/provider-aws.ec2NetworkInsightsPath.Ec2NetworkInsightsPathFilterAtDestinationSourcePortRangeOutputReference", version: "21.22.1" }; function ec2NetworkInsightsPathFilterAtDestinationToTerraform(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 { destination_address: cdktf.stringToTerraform(struct.destinationAddress), source_address: cdktf.stringToTerraform(struct.sourceAddress), destination_port_range: ec2NetworkInsightsPathFilterAtDestinationDestinationPortRangeToTerraform(struct.destinationPortRange), source_port_range: ec2NetworkInsightsPathFilterAtDestinationSourcePortRangeToTerraform(struct.sourcePortRange), }; } function ec2NetworkInsightsPathFilterAtDestinationToHclTerraform(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 = { destination_address: { value: cdktf.stringToHclTerraform(struct.destinationAddress), isBlock: false, type: "simple", storageClassType: "string", }, source_address: { value: cdktf.stringToHclTerraform(struct.sourceAddress), isBlock: false, type: "simple", storageClassType: "string", }, destination_port_range: { value: ec2NetworkInsightsPathFilterAtDestinationDestinationPortRangeToHclTerraform(struct.destinationPortRange), isBlock: true, type: "list", storageClassType: "Ec2NetworkInsightsPathFilterAtDestinationDestinationPortRangeList", }, source_port_range: { value: ec2NetworkInsightsPathFilterAtDestinationSourcePortRangeToHclTerraform(struct.sourcePortRange), isBlock: true, type: "list", storageClassType: "Ec2NetworkInsightsPathFilterAtDestinationSourcePortRangeList", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class Ec2NetworkInsightsPathFilterAtDestinationOutputReference 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; // destination_port_range - computed: false, optional: true, required: false this._destinationPortRange = new Ec2NetworkInsightsPathFilterAtDestinationDestinationPortRangeOutputReference(this, "destination_port_range"); // source_port_range - computed: false, optional: true, required: false this._sourcePortRange = new Ec2NetworkInsightsPathFilterAtDestinationSourcePortRangeOutputReference(this, "source_port_range"); } get internalValue() { let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; if (this._destinationAddress !== undefined) { hasAnyValues = true; internalValueResult.destinationAddress = this._destinationAddress; } if (this._sourceAddress !== undefined) { hasAnyValues = true; internalValueResult.sourceAddress = this._sourceAddress; } if (this._destinationPortRange?.internalValue !== undefined) { hasAnyValues = true; internalValueResult.destinationPortRange = this._destinationPortRange?.internalValue; } if (this._sourcePortRange?.internalValue !== undefined) { hasAnyValues = true; internalValueResult.sourcePortRange = this._sourcePortRange?.internalValue; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._destinationAddress = undefined; this._sourceAddress = undefined; this._destinationPortRange.internalValue = undefined; this._sourcePortRange.internalValue = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._destinationAddress = value.destinationAddress; this._sourceAddress = value.sourceAddress; this._destinationPortRange.internalValue = value.destinationPortRange; this._sourcePortRange.internalValue = value.sourcePortRange; } } get destinationAddress() { return this.getStringAttribute('destination_address'); } set destinationAddress(value) { this._destinationAddress = value; } resetDestinationAddress() { this._destinationAddress = undefined; } // Temporarily expose input value. Use with caution. get destinationAddressInput() { return this._destinationAddress; } get sourceAddress() { return this.getStringAttribute('source_address'); } set sourceAddress(value) { this._sourceAddress = value; } resetSourceAddress() { this._sourceAddress = undefined; } // Temporarily expose input value. Use with caution. get sourceAddressInput() { return this._sourceAddress; } get destinationPortRange() { return this._destinationPortRange; } putDestinationPortRange(value) { this._destinationPortRange.internalValue = value; } resetDestinationPortRange() { this._destinationPortRange.internalValue = undefined; } // Temporarily expose input value. Use with caution. get destinationPortRangeInput() { return this._destinationPortRange.internalValue; } get sourcePortRange() { return this._sourcePortRange; } putSourcePortRange(value) { this._sourcePortRange.internalValue = value; } resetSourcePortRange() { this._sourcePortRange.internalValue = undefined; } // Temporarily expose input value. Use with caution. get sourcePortRangeInput() { return this._sourcePortRange.internalValue; } } exports.Ec2NetworkInsightsPathFilterAtDestinationOutputReference = Ec2NetworkInsightsPathFilterAtDestinationOutputReference; _c = JSII_RTTI_SYMBOL_1; Ec2NetworkInsightsPathFilterAtDestinationOutputReference[_c] = { fqn: "@cdktf/provider-aws.ec2NetworkInsightsPath.Ec2NetworkInsightsPathFilterAtDestinationOutputReference", version: "21.22.1" }; function ec2NetworkInsightsPathFilterAtSourceDestinationPortRangeToTerraform(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 { from_port: cdktf.numberToTerraform(struct.fromPort), to_port: cdktf.numberToTerraform(struct.toPort), }; } function ec2NetworkInsightsPathFilterAtSourceDestinationPortRangeToHclTerraform(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 = { from_port: { value: cdktf.numberToHclTerraform(struct.fromPort), isBlock: false, type: "simple", storageClassType: "number", }, to_port: { value: cdktf.numberToHclTerraform(struct.toPort), isBlock: false, type: "simple", storageClassType: "number", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class Ec2NetworkInsightsPathFilterAtSourceDestinationPortRangeOutputReference 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._fromPort !== undefined) { hasAnyValues = true; internalValueResult.fromPort = this._fromPort; } if (this._toPort !== undefined) { hasAnyValues = true; internalValueResult.toPort = this._toPort; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._fromPort = undefined; this._toPort = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._fromPort = value.fromPort; this._toPort = value.toPort; } } get fromPort() { return this.getNumberAttribute('from_port'); } set fromPort(value) { this._fromPort = value; } resetFromPort() { this._fromPort = undefined; } // Temporarily expose input value. Use with caution. get fromPortInput() { return this._fromPort; } get toPort() { return this.getNumberAttribute('to_port'); } set toPort(value) { this._toPort = value; } resetToPort() { this._toPort = undefined; } // Temporarily expose input value. Use with caution. get toPortInput() { return this._toPort; } } exports.Ec2NetworkInsightsPathFilterAtSourceDestinationPortRangeOutputReference = Ec2NetworkInsightsPathFilterAtSourceDestinationPortRangeOutputReference; _d = JSII_RTTI_SYMBOL_1; Ec2NetworkInsightsPathFilterAtSourceDestinationPortRangeOutputReference[_d] = { fqn: "@cdktf/provider-aws.ec2NetworkInsightsPath.Ec2NetworkInsightsPathFilterAtSourceDestinationPortRangeOutputReference", version: "21.22.1" }; function ec2NetworkInsightsPathFilterAtSourceSourcePortRangeToTerraform(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 { from_port: cdktf.numberToTerraform(struct.fromPort), to_port: cdktf.numberToTerraform(struct.toPort), }; } function ec2NetworkInsightsPathFilterAtSourceSourcePortRangeToHclTerraform(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 = { from_port: { value: cdktf.numberToHclTerraform(struct.fromPort), isBlock: false, type: "simple", storageClassType: "number", }, to_port: { value: cdktf.numberToHclTerraform(struct.toPort), isBlock: false, type: "simple", storageClassType: "number", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class Ec2NetworkInsightsPathFilterAtSourceSourcePortRangeOutputReference 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._fromPort !== undefined) { hasAnyValues = true; internalValueResult.fromPort = this._fromPort; } if (this._toPort !== undefined) { hasAnyValues = true; internalValueResult.toPort = this._toPort; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._fromPort = undefined; this._toPort = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._fromPort = value.fromPort; this._toPort = value.toPort; } } get fromPort() { return this.getNumberAttribute('from_port'); } set fromPort(value) { this._fromPort = value; } resetFromPort() { this._fromPort = undefined; } // Temporarily expose input value. Use with caution. get fromPortInput() { return this._fromPort; } get toPort() { return this.getNumberAttribute('to_port'); } set toPort(value) { this._toPort = value; } resetToPort() { this._toPort = undefined; } // Temporarily expose input value. Use with caution. get toPortInput() { return this._toPort; } } exports.Ec2NetworkInsightsPathFilterAtSourceSourcePortRangeOutputReference = Ec2NetworkInsightsPathFilterAtSourceSourcePortRangeOutputReference; _e = JSII_RTTI_SYMBOL_1; Ec2NetworkInsightsPathFilterAtSourceSourcePortRangeOutputReference[_e] = { fqn: "@cdktf/provider-aws.ec2NetworkInsightsPath.Ec2NetworkInsightsPathFilterAtSourceSourcePortRangeOutputReference", version: "21.22.1" }; function ec2NetworkInsightsPathFilterAtSourceToTerraform(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 { destination_address: cdktf.stringToTerraform(struct.destinationAddress), source_address: cdktf.stringToTerraform(struct.sourceAddress), destination_port_range: ec2NetworkInsightsPathFilterAtSourceDestinationPortRangeToTerraform(struct.destinationPortRange), source_port_range: ec2NetworkInsightsPathFilterAtSourceSourcePortRangeToTerraform(struct.sourcePortRange), }; } function ec2NetworkInsightsPathFilterAtSourceToHclTerraform(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 = { destination_address: { value: cdktf.stringToHclTerraform(struct.destinationAddress), isBlock: false, type: "simple", storageClassType: "string", }, source_address: { value: cdktf.stringToHclTerraform(struct.sourceAddress), isBlock: false, type: "simple", storageClassType: "string", }, destination_port_range: { value: ec2NetworkInsightsPathFilterAtSourceDestinationPortRangeToHclTerraform(struct.destinationPortRange), isBlock: true, type: "list", storageClassType: "Ec2NetworkInsightsPathFilterAtSourceDestinationPortRangeList", }, source_port_range: { value: ec2NetworkInsightsPathFilterAtSourceSourcePortRangeToHclTerraform(struct.sourcePortRange), isBlock: true, type: "list", storageClassType: "Ec2NetworkInsightsPathFilterAtSourceSourcePortRangeList", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class Ec2NetworkInsightsPathFilterAtSourceOutputReference 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; // destination_port_range - computed: false, optional: true, required: false this._destinationPortRange = new Ec2NetworkInsightsPathFilterAtSourceDestinationPortRangeOutputReference(this, "destination_port_range"); // source_port_range - computed: false, optional: true, required: false this._sourcePortRange = new Ec2NetworkInsightsPathFilterAtSourceSourcePortRangeOutputReference(this, "source_port_range"); } get internalValue() { let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; if (this._destinationAddress !== undefined) { hasAnyValues = true; internalValueResult.destinationAddress = this._destinationAddress; } if (this._sourceAddress !== undefined) { hasAnyValues = true; internalValueResult.sourceAddress = this._sourceAddress; } if (this._destinationPortRange?.internalValue !== undefined) { hasAnyValues = true; internalValueResult.destinationPortRange = this._destinationPortRange?.internalValue; } if (this._sourcePortRange?.internalValue !== undefined) { hasAnyValues = true; internalValueResult.sourcePortRange = this._sourcePortRange?.internalValue; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._destinationAddress = undefined; this._sourceAddress = undefined; this._destinationPortRange.internalValue = undefined; this._sourcePortRange.internalValue = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._destinationAddress = value.destinationAddress; this._sourceAddress = value.sourceAddress; this._destinationPortRange.internalValue = value.destinationPortRange; this._sourcePortRange.internalValue = value.sourcePortRange; } } get destinationAddress() { return this.getStringAttribute('destination_address'); } set destinationAddress(value) { this._destinationAddress = value; } resetDestinationAddress() { this._destinationAddress = undefined; } // Temporarily expose input value. Use with caution. get destinationAddressInput() { return this._destinationAddress; } get sourceAddress() { return this.getStringAttribute('source_address'); } set sourceAddress(value) { this._sourceAddress = value; } resetSourceAddress() { this._sourceAddress = undefined; } // Temporarily expose input value. Use with caution. get sourceAddressInput() { return this._sourceAddress; } get destinationPortRange() { return this._destinationPortRange; } putDestinationPortRange(value) { this._destinationPortRange.internalValue = value; } resetDestinationPortRange() { this._destinationPortRange.internalValue = undefined; } // Temporarily expose input value. Use with caution. get destinationPortRangeInput() { return this._destinationPortRange.internalValue; } get sourcePortRange() { return this._sourcePortRange; } putSourcePortRange(value) { this._sourcePortRange.internalValue = value; } resetSourcePortRange() { this._sourcePortRange.internalValue = undefined; } // Temporarily expose input value. Use with caution. get sourcePortRangeInput() { return this._sourcePortRange.internalValue; } } exports.Ec2NetworkInsightsPathFilterAtSourceOutputReference = Ec2NetworkInsightsPathFilterAtSourceOutputReference; _f = JSII_RTTI_SYMBOL_1; Ec2NetworkInsightsPathFilterAtSourceOutputReference[_f] = { fqn: "@cdktf/provider-aws.ec2NetworkInsightsPath.Ec2NetworkInsightsPathFilterAtSourceOutputReference", version: "21.22.1" }; /** * Represents a {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/ec2_network_insights_path aws_ec2_network_insights_path} */ class Ec2NetworkInsightsPath extends cdktf.TerraformResource { // ============== // STATIC Methods // ============== /** * Generates CDKTF code for importing a Ec2NetworkInsightsPath 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 Ec2NetworkInsightsPath to import * @param importFromId The id of the existing Ec2NetworkInsightsPath that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/ec2_network_insights_path#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the Ec2NetworkInsightsPath to import is found */ static generateConfigForImport(scope, importToId, importFromId, provider) { return new cdktf.ImportableResource(scope, importToId, { terraformResourceType: "aws_ec2_network_insights_path", importId: importFromId, provider }); } // =========== // INITIALIZER // =========== /** * Create a new {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/ec2_network_insights_path aws_ec2_network_insights_path} 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 Ec2NetworkInsightsPathConfig */ constructor(scope, id, config) { super(scope, id, { terraformResourceType: 'aws_ec2_network_insights_path', 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 }); // filter_at_destination - computed: false, optional: true, required: false this._filterAtDestination = new Ec2NetworkInsightsPathFilterAtDestinationOutputReference(this, "filter_at_destination"); // filter_at_source - computed: false, optional: true, required: false this._filterAtSource = new Ec2NetworkInsightsPathFilterAtSourceOutputReference(this, "filter_at_source"); this._destination = config.destination; this._destinationIp = config.destinationIp; this._destinationPort = config.destinationPort; this._id = config.id; this._protocol = config.protocol; this._region = config.region; this._source = config.source; this._sourceIp = config.sourceIp; this._tags = config.tags; this._tagsAll = config.tagsAll; this._filterAtDestination.internalValue = config.filterAtDestination; this._filterAtSource.internalValue = config.filterAtSource; } // ========== // ATTRIBUTES // ========== // arn - computed: true, optional: false, required: false get arn() { return this.getStringAttribute('arn'); } get destination() { return this.getStringAttribute('destination'); } set destination(value) { this._destination = value; } resetDestination() { this._destination = undefined; } // Temporarily expose input value. Use with caution. get destinationInput() { return this._destination; } // destination_arn - computed: true, optional: false, required: false get destinationArn() { return this.getStringAttribute('destination_arn'); } get destinationIp() { return this.getStringAttribute('destination_ip'); } set destinationIp(value) { this._destinationIp = value; } resetDestinationIp() { this._destinationIp = undefined; } // Temporarily expose input value. Use with caution. get destinationIpInput() { return this._destinationIp; } get destinationPort() { return this.getNumberAttribute('destination_port'); } set destinationPort(value) { this._destinationPort = value; } resetDestinationPort() { this._destinationPort = undefined; } // Temporarily expose input value. Use with caution. get destinationPortInput() { return this._destinationPort; } 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 protocol() { return this.getStringAttribute('protocol'); } set protocol(value) { this._protocol = value; } // Temporarily expose input value. Use with caution. get protocolInput() { return this._protocol; } 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; } get source() { return this.getStringAttribute('source'); } set source(value) { this._source = value; } // Temporarily expose input value. Use with caution. get sourceInput() { return this._source; } // source_arn - computed: true, optional: false, required: false get sourceArn() { return this.getStringAttribute('source_arn'); } get sourceIp() { return this.getStringAttribute('source_ip'); } set sourceIp(value) { this._sourceIp = value; } resetSourceIp() { this._sourceIp = undefined; } // Temporarily expose input value. Use with caution. get sourceIpInput() { return this._sourceIp; } 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 filterAtDestination() { return this._filterAtDestination; } putFilterAtDestination(value) { this._filterAtDestination.internalValue = value; } resetFilterAtDestination() { this._filterAtDestination.internalValue = undefined; } // Temporarily expose input value. Use with caution. get filterAtDestinationInput() { return this._filterAtDestination.internalValue; } get filterAtSource() { return this._filterAtSource; } putFilterAtSource(value) { this._filterAtSource.internalValue = value; } resetFilterAtSource() { this._filterAtSource.internalValue = undefined; } // Temporarily expose input value. Use with caution. get filterAtSourceInput() { return this._filterAtSource.internalValue; } // ========= // SYNTHESIS // ========= synthesizeAttributes() { return { destination: cdktf.stringToTerraform(this._destination), destination_ip: cdktf.stringToTerraform(this._destinationIp), destination_port: cdktf.numberToTerraform(this._destinationPort), id: cdktf.stringToTerraform(this._id), protocol: cdktf.stringToTerraform(this._protocol), region: cdktf.stringToTerraform(this._region), source: cdktf.stringToTerraform(this._source), source_ip: cdktf.stringToTerraform(this._sourceIp), tags: cdktf.hashMapper(cdktf.stringToTerraform)(this._tags), tags_all: cdktf.hashMapper(cdktf.stringToTerraform)(this._tagsAll), filter_at_destination: ec2NetworkInsightsPathFilterAtDestinationToTerraform(this._filterAtDestination.internalValue), filter_at_source: ec2NetworkInsightsPathFilterAtSourceToTerraform(this._filterAtSource.internalValue), }; } synthesizeHclAttributes() { const attrs = { destination: { value: cdktf.stringToHclTerraform(this._destination), isBlock: false, type: "simple", storageClassType: "string", }, destination_ip: { value: cdktf.stringToHclTerraform(this._destinationIp), isBlock: false, type: "simple", storageClassType: "string", }, destination_port: { value: cdktf.numberToHclTerraform(this._destinationPort), isBlock: false, type: "simple", storageClassType: "number", }, id: { value: cdktf.stringToHclTerraform(this._id), isBlock: false, type: "simple", storageClassType: "string", }, protocol: { value: cdktf.stringToHclTerraform(this._protocol), isBlock: false, type: "simple", storageClassType: "string", }, region: { value: cdktf.stringToHclTerraform(this._region), isBlock: false, type: "simple", storageClassType: "string", }, source: { value: cdktf.stringToHclTerraform(this._source), isBlock: false, type: "simple", storageClassType: "string", }, source_ip: { value: cdktf.stringToHclTerraform(this._sourceIp), isBlock: false, type: "simple", storageClassType: "string", }, 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", }, filter_at_destination: { value: ec2NetworkInsightsPathFilterAtDestinationToHclTerraform(this._filterAtDestination.internalValue), isBlock: true, type: "list", storageClassType: "Ec2NetworkInsightsPathFilterAtDestinationList", }, filter_at_source: { value: ec2NetworkInsightsPathFilterAtSourceToHclTerraform(this._filterAtSource.internalValue), isBlock: true, type: "list", storageClassType: "Ec2NetworkInsightsPathFilterAtSourceList", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } } exports.Ec2NetworkInsightsPath = Ec2NetworkInsightsPath; _g = JSII_RTTI_SYMBOL_1; Ec2NetworkInsightsPath[_g] = { fqn: "@cdktf/provider-aws.ec2NetworkInsightsPath.Ec2NetworkInsightsPath", version: "21.22.1" }; // ================= // STATIC PROPERTIES // ================= Ec2NetworkInsightsPath.tfResourceType = "aws_ec2_network_insights_path"; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZWMyLW5ldHdvcmstaW5zaWdodHMtcGF0aC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBbUZBLDRKQVNDO0FBR0Qsa0tBc0JDO0FBbUZELGtKQVNDO0FBR0Qsd0pBc0JDO0FBK0ZELG9IQVdDO0FBR0QsMEhBa0NDO0FBK0hELGtKQVNDO0FBR0Qsd0pBc0JDO0FBbUZELHdJQVNDO0FBR0QsOElBc0JDO0FBK0ZELDBHQVdDO0FBR0QsZ0hBa0NDOztBQXJ4QkQsK0JBQStCO0FBMEUvQixTQUFnQix3RUFBd0UsQ0FBQyxNQUFxSjtJQUM1TyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQUMsT0FBTyxNQUFNLENBQUM7SUFBQyxDQUFDO0lBQzVGLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDbkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxvSEFBb0gsQ0FBQyxDQUFDO0lBQ3hJLENBQUM7SUFDRCxPQUFPO1FBQ0wsU0FBUyxFQUFFLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxNQUFPLENBQUMsUUFBUSxDQUFDO1FBQ3BELE9BQU8sRUFBRSxLQUFLLENBQUMsaUJBQWlCLENBQUMsTUFBTyxDQUFDLE1BQU0sQ0FBQztLQUNqRCxDQUFBO0FBQ0gsQ0FBQztBQUdELFNBQWdCLDJFQUEyRSxDQUFDLE1BQXFKO0lBQy9PLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFBQyxPQUFPLE1BQU0sQ0FBQztJQUFDLENBQUM7SUFDNUYsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMs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