UNPKG

@cdktf/provider-upcloud

Version:

Prebuilt upcloud Provider for Terraform CDK (cdktf)

902 lines 125 kB
"use strict"; var _a, _b, _c, _d, _e, _f, _g, _h, _j; Object.defineProperty(exports, "__esModule", { value: true }); exports.Network = exports.NetworkIpNetworkList = exports.NetworkIpNetworkOutputReference = exports.NetworkIpNetworkDhcpRoutesConfigurationOutputReference = exports.NetworkIpNetworkDhcpRoutesConfigurationEffectiveRoutesAutoPopulationOutputReference = exports.NetworkIpNetworkDhcpEffectiveRoutesList = exports.NetworkIpNetworkDhcpEffectiveRoutesOutputReference = exports.NetworkEffectiveRoutesList = exports.NetworkEffectiveRoutesOutputReference = void 0; exports.networkEffectiveRoutesToTerraform = networkEffectiveRoutesToTerraform; exports.networkEffectiveRoutesToHclTerraform = networkEffectiveRoutesToHclTerraform; exports.networkIpNetworkDhcpEffectiveRoutesToTerraform = networkIpNetworkDhcpEffectiveRoutesToTerraform; exports.networkIpNetworkDhcpEffectiveRoutesToHclTerraform = networkIpNetworkDhcpEffectiveRoutesToHclTerraform; exports.networkIpNetworkDhcpRoutesConfigurationEffectiveRoutesAutoPopulationToTerraform = networkIpNetworkDhcpRoutesConfigurationEffectiveRoutesAutoPopulationToTerraform; exports.networkIpNetworkDhcpRoutesConfigurationEffectiveRoutesAutoPopulationToHclTerraform = networkIpNetworkDhcpRoutesConfigurationEffectiveRoutesAutoPopulationToHclTerraform; exports.networkIpNetworkDhcpRoutesConfigurationToTerraform = networkIpNetworkDhcpRoutesConfigurationToTerraform; exports.networkIpNetworkDhcpRoutesConfigurationToHclTerraform = networkIpNetworkDhcpRoutesConfigurationToHclTerraform; exports.networkIpNetworkToTerraform = networkIpNetworkToTerraform; exports.networkIpNetworkToHclTerraform = networkIpNetworkToHclTerraform; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const cdktf = require("cdktf"); function networkEffectiveRoutesToTerraform(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 networkEffectiveRoutesToHclTerraform(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 NetworkEffectiveRoutesOutputReference 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; } } // nexthop - computed: true, optional: false, required: false get nexthop() { return this.getStringAttribute('nexthop'); } // route - computed: true, optional: false, required: false get route() { return this.getStringAttribute('route'); } // source - computed: true, optional: false, required: false get source() { return this.getStringAttribute('source'); } // source_resource_id - computed: true, optional: false, required: false get sourceResourceId() { return this.getStringAttribute('source_resource_id'); } // type - computed: true, optional: false, required: false get type() { return this.getStringAttribute('type'); } } exports.NetworkEffectiveRoutesOutputReference = NetworkEffectiveRoutesOutputReference; _a = JSII_RTTI_SYMBOL_1; NetworkEffectiveRoutesOutputReference[_a] = { fqn: "@cdktf/provider-upcloud.network.NetworkEffectiveRoutesOutputReference", version: "15.9.1" }; class NetworkEffectiveRoutesList 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 NetworkEffectiveRoutesOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet); } } exports.NetworkEffectiveRoutesList = NetworkEffectiveRoutesList; _b = JSII_RTTI_SYMBOL_1; NetworkEffectiveRoutesList[_b] = { fqn: "@cdktf/provider-upcloud.network.NetworkEffectiveRoutesList", version: "15.9.1" }; function networkIpNetworkDhcpEffectiveRoutesToTerraform(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 networkIpNetworkDhcpEffectiveRoutesToHclTerraform(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 NetworkIpNetworkDhcpEffectiveRoutesOutputReference 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; } } // auto_populated - computed: true, optional: false, required: false get autoPopulated() { return this.getBooleanAttribute('auto_populated'); } // nexthop - computed: true, optional: false, required: false get nexthop() { return this.getStringAttribute('nexthop'); } // route - computed: true, optional: false, required: false get route() { return this.getStringAttribute('route'); } } exports.NetworkIpNetworkDhcpEffectiveRoutesOutputReference = NetworkIpNetworkDhcpEffectiveRoutesOutputReference; _c = JSII_RTTI_SYMBOL_1; NetworkIpNetworkDhcpEffectiveRoutesOutputReference[_c] = { fqn: "@cdktf/provider-upcloud.network.NetworkIpNetworkDhcpEffectiveRoutesOutputReference", version: "15.9.1" }; class NetworkIpNetworkDhcpEffectiveRoutesList 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 NetworkIpNetworkDhcpEffectiveRoutesOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet); } } exports.NetworkIpNetworkDhcpEffectiveRoutesList = NetworkIpNetworkDhcpEffectiveRoutesList; _d = JSII_RTTI_SYMBOL_1; NetworkIpNetworkDhcpEffectiveRoutesList[_d] = { fqn: "@cdktf/provider-upcloud.network.NetworkIpNetworkDhcpEffectiveRoutesList", version: "15.9.1" }; function networkIpNetworkDhcpRoutesConfigurationEffectiveRoutesAutoPopulationToTerraform(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), exclude_by_source: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.excludeBySource), filter_by_destination: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.filterByDestination), filter_by_route_type: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.filterByRouteType), }; } function networkIpNetworkDhcpRoutesConfigurationEffectiveRoutesAutoPopulationToHclTerraform(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", }, exclude_by_source: { value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.excludeBySource), isBlock: false, type: "set", storageClassType: "stringList", }, filter_by_destination: { value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.filterByDestination), isBlock: false, type: "set", storageClassType: "stringList", }, filter_by_route_type: { value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.filterByRouteType), isBlock: false, type: "set", storageClassType: "stringList", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class NetworkIpNetworkDhcpRoutesConfigurationEffectiveRoutesAutoPopulationOutputReference 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._enabled !== undefined) { hasAnyValues = true; internalValueResult.enabled = this._enabled; } if (this._excludeBySource !== undefined) { hasAnyValues = true; internalValueResult.excludeBySource = this._excludeBySource; } if (this._filterByDestination !== undefined) { hasAnyValues = true; internalValueResult.filterByDestination = this._filterByDestination; } if (this._filterByRouteType !== undefined) { hasAnyValues = true; internalValueResult.filterByRouteType = this._filterByRouteType; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this.resolvableValue = undefined; this._enabled = undefined; this._excludeBySource = undefined; this._filterByDestination = undefined; this._filterByRouteType = 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._enabled = value.enabled; this._excludeBySource = value.excludeBySource; this._filterByDestination = value.filterByDestination; this._filterByRouteType = value.filterByRouteType; } } 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 excludeBySource() { return cdktf.Fn.tolist(this.getListAttribute('exclude_by_source')); } set excludeBySource(value) { this._excludeBySource = value; } resetExcludeBySource() { this._excludeBySource = undefined; } // Temporarily expose input value. Use with caution. get excludeBySourceInput() { return this._excludeBySource; } get filterByDestination() { return cdktf.Fn.tolist(this.getListAttribute('filter_by_destination')); } set filterByDestination(value) { this._filterByDestination = value; } resetFilterByDestination() { this._filterByDestination = undefined; } // Temporarily expose input value. Use with caution. get filterByDestinationInput() { return this._filterByDestination; } get filterByRouteType() { return cdktf.Fn.tolist(this.getListAttribute('filter_by_route_type')); } set filterByRouteType(value) { this._filterByRouteType = value; } resetFilterByRouteType() { this._filterByRouteType = undefined; } // Temporarily expose input value. Use with caution. get filterByRouteTypeInput() { return this._filterByRouteType; } } exports.NetworkIpNetworkDhcpRoutesConfigurationEffectiveRoutesAutoPopulationOutputReference = NetworkIpNetworkDhcpRoutesConfigurationEffectiveRoutesAutoPopulationOutputReference; _e = JSII_RTTI_SYMBOL_1; NetworkIpNetworkDhcpRoutesConfigurationEffectiveRoutesAutoPopulationOutputReference[_e] = { fqn: "@cdktf/provider-upcloud.network.NetworkIpNetworkDhcpRoutesConfigurationEffectiveRoutesAutoPopulationOutputReference", version: "15.9.1" }; function networkIpNetworkDhcpRoutesConfigurationToTerraform(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 { effective_routes_auto_population: networkIpNetworkDhcpRoutesConfigurationEffectiveRoutesAutoPopulationToTerraform(struct.effectiveRoutesAutoPopulation), }; } function networkIpNetworkDhcpRoutesConfigurationToHclTerraform(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 = { effective_routes_auto_population: { value: networkIpNetworkDhcpRoutesConfigurationEffectiveRoutesAutoPopulationToHclTerraform(struct.effectiveRoutesAutoPopulation), isBlock: true, type: "struct", storageClassType: "NetworkIpNetworkDhcpRoutesConfigurationEffectiveRoutesAutoPopulation", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class NetworkIpNetworkDhcpRoutesConfigurationOutputReference 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; // effective_routes_auto_population - computed: false, optional: true, required: false this._effectiveRoutesAutoPopulation = new NetworkIpNetworkDhcpRoutesConfigurationEffectiveRoutesAutoPopulationOutputReference(this, "effective_routes_auto_population"); } get internalValue() { if (this.resolvableValue) { return this.resolvableValue; } let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; if (this._effectiveRoutesAutoPopulation?.internalValue !== undefined) { hasAnyValues = true; internalValueResult.effectiveRoutesAutoPopulation = this._effectiveRoutesAutoPopulation?.internalValue; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this.resolvableValue = undefined; this._effectiveRoutesAutoPopulation.internalValue = 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._effectiveRoutesAutoPopulation.internalValue = value.effectiveRoutesAutoPopulation; } } get effectiveRoutesAutoPopulation() { return this._effectiveRoutesAutoPopulation; } putEffectiveRoutesAutoPopulation(value) { this._effectiveRoutesAutoPopulation.internalValue = value; } resetEffectiveRoutesAutoPopulation() { this._effectiveRoutesAutoPopulation.internalValue = undefined; } // Temporarily expose input value. Use with caution. get effectiveRoutesAutoPopulationInput() { return this._effectiveRoutesAutoPopulation.internalValue; } } exports.NetworkIpNetworkDhcpRoutesConfigurationOutputReference = NetworkIpNetworkDhcpRoutesConfigurationOutputReference; _f = JSII_RTTI_SYMBOL_1; NetworkIpNetworkDhcpRoutesConfigurationOutputReference[_f] = { fqn: "@cdktf/provider-upcloud.network.NetworkIpNetworkDhcpRoutesConfigurationOutputReference", version: "15.9.1" }; function networkIpNetworkToTerraform(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 { address: cdktf.stringToTerraform(struct.address), dhcp: cdktf.booleanToTerraform(struct.dhcp), dhcp_default_route: cdktf.booleanToTerraform(struct.dhcpDefaultRoute), dhcp_dns: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.dhcpDns), dhcp_routes: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.dhcpRoutes), dhcp_routes_configuration: networkIpNetworkDhcpRoutesConfigurationToTerraform(struct.dhcpRoutesConfiguration), family: cdktf.stringToTerraform(struct.family), gateway: cdktf.stringToTerraform(struct.gateway), }; } function networkIpNetworkToHclTerraform(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 = { address: { value: cdktf.stringToHclTerraform(struct.address), isBlock: false, type: "simple", storageClassType: "string", }, dhcp: { value: cdktf.booleanToHclTerraform(struct.dhcp), isBlock: false, type: "simple", storageClassType: "boolean", }, dhcp_default_route: { value: cdktf.booleanToHclTerraform(struct.dhcpDefaultRoute), isBlock: false, type: "simple", storageClassType: "boolean", }, dhcp_dns: { value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.dhcpDns), isBlock: false, type: "set", storageClassType: "stringList", }, dhcp_routes: { value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.dhcpRoutes), isBlock: false, type: "set", storageClassType: "stringList", }, dhcp_routes_configuration: { value: networkIpNetworkDhcpRoutesConfigurationToHclTerraform(struct.dhcpRoutesConfiguration), isBlock: true, type: "struct", storageClassType: "NetworkIpNetworkDhcpRoutesConfiguration", }, family: { value: cdktf.stringToHclTerraform(struct.family), isBlock: false, type: "simple", storageClassType: "string", }, gateway: { value: cdktf.stringToHclTerraform(struct.gateway), isBlock: false, type: "simple", storageClassType: "string", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class NetworkIpNetworkOutputReference 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; // dhcp_effective_routes - computed: true, optional: false, required: false this._dhcpEffectiveRoutes = new NetworkIpNetworkDhcpEffectiveRoutesList(this, "dhcp_effective_routes", true); // dhcp_routes_configuration - computed: false, optional: true, required: false this._dhcpRoutesConfiguration = new NetworkIpNetworkDhcpRoutesConfigurationOutputReference(this, "dhcp_routes_configuration"); } get internalValue() { if (this.resolvableValue) { return this.resolvableValue; } let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; if (this._address !== undefined) { hasAnyValues = true; internalValueResult.address = this._address; } if (this._dhcp !== undefined) { hasAnyValues = true; internalValueResult.dhcp = this._dhcp; } if (this._dhcpDefaultRoute !== undefined) { hasAnyValues = true; internalValueResult.dhcpDefaultRoute = this._dhcpDefaultRoute; } if (this._dhcpDns !== undefined) { hasAnyValues = true; internalValueResult.dhcpDns = this._dhcpDns; } if (this._dhcpRoutes !== undefined) { hasAnyValues = true; internalValueResult.dhcpRoutes = this._dhcpRoutes; } if (this._dhcpRoutesConfiguration?.internalValue !== undefined) { hasAnyValues = true; internalValueResult.dhcpRoutesConfiguration = this._dhcpRoutesConfiguration?.internalValue; } if (this._family !== undefined) { hasAnyValues = true; internalValueResult.family = this._family; } if (this._gateway !== undefined) { hasAnyValues = true; internalValueResult.gateway = this._gateway; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this.resolvableValue = undefined; this._address = undefined; this._dhcp = undefined; this._dhcpDefaultRoute = undefined; this._dhcpDns = undefined; this._dhcpRoutes = undefined; this._dhcpRoutesConfiguration.internalValue = undefined; this._family = undefined; this._gateway = 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._address = value.address; this._dhcp = value.dhcp; this._dhcpDefaultRoute = value.dhcpDefaultRoute; this._dhcpDns = value.dhcpDns; this._dhcpRoutes = value.dhcpRoutes; this._dhcpRoutesConfiguration.internalValue = value.dhcpRoutesConfiguration; this._family = value.family; this._gateway = value.gateway; } } get address() { return this.getStringAttribute('address'); } set address(value) { this._address = value; } // Temporarily expose input value. Use with caution. get addressInput() { return this._address; } get dhcp() { return this.getBooleanAttribute('dhcp'); } set dhcp(value) { this._dhcp = value; } // Temporarily expose input value. Use with caution. get dhcpInput() { return this._dhcp; } get dhcpDefaultRoute() { return this.getBooleanAttribute('dhcp_default_route'); } set dhcpDefaultRoute(value) { this._dhcpDefaultRoute = value; } resetDhcpDefaultRoute() { this._dhcpDefaultRoute = undefined; } // Temporarily expose input value. Use with caution. get dhcpDefaultRouteInput() { return this._dhcpDefaultRoute; } get dhcpDns() { return cdktf.Fn.tolist(this.getListAttribute('dhcp_dns')); } set dhcpDns(value) { this._dhcpDns = value; } resetDhcpDns() { this._dhcpDns = undefined; } // Temporarily expose input value. Use with caution. get dhcpDnsInput() { return this._dhcpDns; } get dhcpEffectiveRoutes() { return this._dhcpEffectiveRoutes; } get dhcpRoutes() { return cdktf.Fn.tolist(this.getListAttribute('dhcp_routes')); } set dhcpRoutes(value) { this._dhcpRoutes = value; } resetDhcpRoutes() { this._dhcpRoutes = undefined; } // Temporarily expose input value. Use with caution. get dhcpRoutesInput() { return this._dhcpRoutes; } get dhcpRoutesConfiguration() { return this._dhcpRoutesConfiguration; } putDhcpRoutesConfiguration(value) { this._dhcpRoutesConfiguration.internalValue = value; } resetDhcpRoutesConfiguration() { this._dhcpRoutesConfiguration.internalValue = undefined; } // Temporarily expose input value. Use with caution. get dhcpRoutesConfigurationInput() { return this._dhcpRoutesConfiguration.internalValue; } get family() { return this.getStringAttribute('family'); } set family(value) { this._family = value; } // Temporarily expose input value. Use with caution. get familyInput() { return this._family; } get gateway() { return this.getStringAttribute('gateway'); } set gateway(value) { this._gateway = value; } resetGateway() { this._gateway = undefined; } // Temporarily expose input value. Use with caution. get gatewayInput() { return this._gateway; } } exports.NetworkIpNetworkOutputReference = NetworkIpNetworkOutputReference; _g = JSII_RTTI_SYMBOL_1; NetworkIpNetworkOutputReference[_g] = { fqn: "@cdktf/provider-upcloud.network.NetworkIpNetworkOutputReference", version: "15.9.1" }; class NetworkIpNetworkList 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 NetworkIpNetworkOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet); } } exports.NetworkIpNetworkList = NetworkIpNetworkList; _h = JSII_RTTI_SYMBOL_1; NetworkIpNetworkList[_h] = { fqn: "@cdktf/provider-upcloud.network.NetworkIpNetworkList", version: "15.9.1" }; /** * Represents a {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.32.0/docs/resources/network upcloud_network} */ class Network extends cdktf.TerraformResource { // ============== // STATIC Methods // ============== /** * Generates CDKTF code for importing a Network 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 Network to import * @param importFromId The id of the existing Network that should be imported. Refer to the {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.32.0/docs/resources/network#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the Network to import is found */ static generateConfigForImport(scope, importToId, importFromId, provider) { return new cdktf.ImportableResource(scope, importToId, { terraformResourceType: "upcloud_network", importId: importFromId, provider }); } // =========== // INITIALIZER // =========== /** * Create a new {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.32.0/docs/resources/network upcloud_network} 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 NetworkConfig */ constructor(scope, id, config) { super(scope, id, { terraformResourceType: 'upcloud_network', terraformGeneratorMetadata: { providerName: 'upcloud', providerVersion: '5.32.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 }); // ========== // ATTRIBUTES // ========== // effective_routes - computed: true, optional: false, required: false this._effectiveRoutes = new NetworkEffectiveRoutesList(this, "effective_routes", true); // ip_network - computed: false, optional: true, required: false this._ipNetwork = new NetworkIpNetworkList(this, "ip_network", false); this._labels = config.labels; this._name = config.name; this._router = config.router; this._zone = config.zone; this._ipNetwork.internalValue = config.ipNetwork; } get effectiveRoutes() { return this._effectiveRoutes; } // id - computed: true, optional: false, required: false get id() { return this.getStringAttribute('id'); } get labels() { return this.getStringMapAttribute('labels'); } set labels(value) { this._labels = value; } resetLabels() { this._labels = undefined; } // Temporarily expose input value. Use with caution. get labelsInput() { return this._labels; } get name() { return this.getStringAttribute('name'); } set name(value) { this._name = value; } // Temporarily expose input value. Use with caution. get nameInput() { return this._name; } get router() { return this.getStringAttribute('router'); } set router(value) { this._router = value; } resetRouter() { this._router = undefined; } // Temporarily expose input value. Use with caution. get routerInput() { return this._router; } // type - computed: true, optional: false, required: false get type() { return this.getStringAttribute('type'); } get zone() { return this.getStringAttribute('zone'); } set zone(value) { this._zone = value; } // Temporarily expose input value. Use with caution. get zoneInput() { return this._zone; } get ipNetwork() { return this._ipNetwork; } putIpNetwork(value) { this._ipNetwork.internalValue = value; } resetIpNetwork() { this._ipNetwork.internalValue = undefined; } // Temporarily expose input value. Use with caution. get ipNetworkInput() { return this._ipNetwork.internalValue; } // ========= // SYNTHESIS // ========= synthesizeAttributes() { return { labels: cdktf.hashMapper(cdktf.stringToTerraform)(this._labels), name: cdktf.stringToTerraform(this._name), router: cdktf.stringToTerraform(this._router), zone: cdktf.stringToTerraform(this._zone), ip_network: cdktf.listMapper(networkIpNetworkToTerraform, true)(this._ipNetwork.internalValue), }; } synthesizeHclAttributes() { const attrs = { labels: { value: cdktf.hashMapperHcl(cdktf.stringToHclTerraform)(this._labels), isBlock: false, type: "map", storageClassType: "stringMap", }, name: { value: cdktf.stringToHclTerraform(this._name), isBlock: false, type: "simple", storageClassType: "string", }, router: { value: cdktf.stringToHclTerraform(this._router), isBlock: false, type: "simple", storageClassType: "string", }, zone: { value: cdktf.stringToHclTerraform(this._zone), isBlock: false, type: "simple", storageClassType: "string", }, ip_network: { value: cdktf.listMapperHcl(networkIpNetworkToHclTerraform, true)(this._ipNetwork.internalValue), isBlock: true, type: "list", storageClassType: "NetworkIpNetworkList", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } } exports.Network = Network; _j = JSII_RTTI_SYMBOL_1; Network[_j] = { fqn: "@cdktf/provider-upcloud.network.Network", version: "15.9.1" }; // ================= // STATIC PROPERTIES // ================= Network.tfResourceType = "upcloud_network"; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmV0d29yay9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBZ0RBLDhFQU9DO0FBR0Qsb0ZBUUM7QUE2RUQsd0dBT0M7QUFHRCw4R0FRQztBQTJGRCwwS0FXQztBQUdELGdMQWtDQztBQXVJRCxnSEFRQztBQUdELHNIQWdCQztBQStHRCxrRUFlQztBQUdELHdFQTBEQzs7QUFob0JELCtCQUErQjtBQXVDL0IsU0FBZ0IsaUNBQWlDLENBQUMsTUFBK0I7SUFDL0UsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUFDLE9BQU8sTUFBTSxDQUFDO0lBQUMsQ0FBQztJQUM1RixJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsb0hBQW9ILENBQUMsQ0FBQztJQUN4SSxDQUFDO0lBQ0QsT0FBTyxFQUNOLENBQUE7QUFDSCxDQUFDO0FBR0QsU0FBZ0Isb0NBQW9DLENBQUMsTUFBK0I7SUFDbEYsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUFDLE9BQU8sTUFBTSxDQUFDO0lBQUMsQ0FBQztJQUM1RixJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsb0hBQW9ILENBQUMsQ0FBQztJQUN4SSxDQUFDO0lBQ0QsTUFBTSxLQUFLLEdBQUcsRUFDYixDQUFDO0lBQ0YsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQsTUFBYSxxQ0FBc0MsU0FBUSxLQUFL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