@cdktf/provider-upcloud
Version:
Prebuilt upcloud Provider for Terraform CDK (cdktf)
902 lines • 125 kB
JavaScript
"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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