UNPKG

@cdktf/provider-google

Version:

Prebuilt google Provider for Terraform CDK (cdktf)

932 lines 146 kB
"use strict"; var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k; Object.defineProperty(exports, "__esModule", { value: true }); exports.AccessContextManagerServicePerimeterIngressPolicy = exports.AccessContextManagerServicePerimeterIngressPolicyTimeoutsOutputReference = exports.accessContextManagerServicePerimeterIngressPolicyTimeoutsToHclTerraform = exports.accessContextManagerServicePerimeterIngressPolicyTimeoutsToTerraform = exports.AccessContextManagerServicePerimeterIngressPolicyIngressToOutputReference = exports.accessContextManagerServicePerimeterIngressPolicyIngressToToHclTerraform = exports.accessContextManagerServicePerimeterIngressPolicyIngressToToTerraform = exports.AccessContextManagerServicePerimeterIngressPolicyIngressToOperationsList = exports.AccessContextManagerServicePerimeterIngressPolicyIngressToOperationsOutputReference = exports.accessContextManagerServicePerimeterIngressPolicyIngressToOperationsToHclTerraform = exports.accessContextManagerServicePerimeterIngressPolicyIngressToOperationsToTerraform = exports.AccessContextManagerServicePerimeterIngressPolicyIngressToOperationsMethodSelectorsList = exports.AccessContextManagerServicePerimeterIngressPolicyIngressToOperationsMethodSelectorsOutputReference = exports.accessContextManagerServicePerimeterIngressPolicyIngressToOperationsMethodSelectorsToHclTerraform = exports.accessContextManagerServicePerimeterIngressPolicyIngressToOperationsMethodSelectorsToTerraform = exports.AccessContextManagerServicePerimeterIngressPolicyIngressFromOutputReference = exports.accessContextManagerServicePerimeterIngressPolicyIngressFromToHclTerraform = exports.accessContextManagerServicePerimeterIngressPolicyIngressFromToTerraform = exports.AccessContextManagerServicePerimeterIngressPolicyIngressFromSourcesList = exports.AccessContextManagerServicePerimeterIngressPolicyIngressFromSourcesOutputReference = exports.accessContextManagerServicePerimeterIngressPolicyIngressFromSourcesToHclTerraform = exports.accessContextManagerServicePerimeterIngressPolicyIngressFromSourcesToTerraform = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const cdktf = require("cdktf"); function accessContextManagerServicePerimeterIngressPolicyIngressFromSourcesToTerraform(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 { access_level: cdktf.stringToTerraform(struct.accessLevel), resource: cdktf.stringToTerraform(struct.resource), }; } exports.accessContextManagerServicePerimeterIngressPolicyIngressFromSourcesToTerraform = accessContextManagerServicePerimeterIngressPolicyIngressFromSourcesToTerraform; function accessContextManagerServicePerimeterIngressPolicyIngressFromSourcesToHclTerraform(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 = { access_level: { value: cdktf.stringToHclTerraform(struct.accessLevel), isBlock: false, type: "simple", storageClassType: "string", }, resource: { value: cdktf.stringToHclTerraform(struct.resource), isBlock: false, type: "simple", storageClassType: "string", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } exports.accessContextManagerServicePerimeterIngressPolicyIngressFromSourcesToHclTerraform = accessContextManagerServicePerimeterIngressPolicyIngressFromSourcesToHclTerraform; class AccessContextManagerServicePerimeterIngressPolicyIngressFromSourcesOutputReference extends cdktf.ComplexObject { /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing * @param complexObjectIndex the index of this item in the list * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index) */ constructor(terraformResource, terraformAttribute, complexObjectIndex, complexObjectIsFromSet) { super(terraformResource, terraformAttribute, complexObjectIsFromSet, complexObjectIndex); this.isEmptyObject = false; } get internalValue() { if (this.resolvableValue) { return this.resolvableValue; } let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; if (this._accessLevel !== undefined) { hasAnyValues = true; internalValueResult.accessLevel = this._accessLevel; } if (this._resource !== undefined) { hasAnyValues = true; internalValueResult.resource = this._resource; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this.resolvableValue = undefined; this._accessLevel = undefined; this._resource = 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._accessLevel = value.accessLevel; this._resource = value.resource; } } get accessLevel() { return this.getStringAttribute('access_level'); } set accessLevel(value) { this._accessLevel = value; } resetAccessLevel() { this._accessLevel = undefined; } // Temporarily expose input value. Use with caution. get accessLevelInput() { return this._accessLevel; } get resource() { return this.getStringAttribute('resource'); } set resource(value) { this._resource = value; } resetResource() { this._resource = undefined; } // Temporarily expose input value. Use with caution. get resourceInput() { return this._resource; } } exports.AccessContextManagerServicePerimeterIngressPolicyIngressFromSourcesOutputReference = AccessContextManagerServicePerimeterIngressPolicyIngressFromSourcesOutputReference; _a = JSII_RTTI_SYMBOL_1; AccessContextManagerServicePerimeterIngressPolicyIngressFromSourcesOutputReference[_a] = { fqn: "@cdktf/provider-google.accessContextManagerServicePerimeterIngressPolicy.AccessContextManagerServicePerimeterIngressPolicyIngressFromSourcesOutputReference", version: "14.12.0" }; class AccessContextManagerServicePerimeterIngressPolicyIngressFromSourcesList 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 AccessContextManagerServicePerimeterIngressPolicyIngressFromSourcesOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet); } } exports.AccessContextManagerServicePerimeterIngressPolicyIngressFromSourcesList = AccessContextManagerServicePerimeterIngressPolicyIngressFromSourcesList; _b = JSII_RTTI_SYMBOL_1; AccessContextManagerServicePerimeterIngressPolicyIngressFromSourcesList[_b] = { fqn: "@cdktf/provider-google.accessContextManagerServicePerimeterIngressPolicy.AccessContextManagerServicePerimeterIngressPolicyIngressFromSourcesList", version: "14.12.0" }; function accessContextManagerServicePerimeterIngressPolicyIngressFromToTerraform(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 { identities: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.identities), identity_type: cdktf.stringToTerraform(struct.identityType), sources: cdktf.listMapper(accessContextManagerServicePerimeterIngressPolicyIngressFromSourcesToTerraform, true)(struct.sources), }; } exports.accessContextManagerServicePerimeterIngressPolicyIngressFromToTerraform = accessContextManagerServicePerimeterIngressPolicyIngressFromToTerraform; function accessContextManagerServicePerimeterIngressPolicyIngressFromToHclTerraform(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 = { identities: { value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.identities), isBlock: false, type: "list", storageClassType: "stringList", }, identity_type: { value: cdktf.stringToHclTerraform(struct.identityType), isBlock: false, type: "simple", storageClassType: "string", }, sources: { value: cdktf.listMapperHcl(accessContextManagerServicePerimeterIngressPolicyIngressFromSourcesToHclTerraform, true)(struct.sources), isBlock: true, type: "list", storageClassType: "AccessContextManagerServicePerimeterIngressPolicyIngressFromSourcesList", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } exports.accessContextManagerServicePerimeterIngressPolicyIngressFromToHclTerraform = accessContextManagerServicePerimeterIngressPolicyIngressFromToHclTerraform; class AccessContextManagerServicePerimeterIngressPolicyIngressFromOutputReference 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; // sources - computed: false, optional: true, required: false this._sources = new AccessContextManagerServicePerimeterIngressPolicyIngressFromSourcesList(this, "sources", false); } get internalValue() { let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; if (this._identities !== undefined) { hasAnyValues = true; internalValueResult.identities = this._identities; } if (this._identityType !== undefined) { hasAnyValues = true; internalValueResult.identityType = this._identityType; } if (this._sources?.internalValue !== undefined) { hasAnyValues = true; internalValueResult.sources = this._sources?.internalValue; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._identities = undefined; this._identityType = undefined; this._sources.internalValue = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._identities = value.identities; this._identityType = value.identityType; this._sources.internalValue = value.sources; } } get identities() { return this.getListAttribute('identities'); } set identities(value) { this._identities = value; } resetIdentities() { this._identities = undefined; } // Temporarily expose input value. Use with caution. get identitiesInput() { return this._identities; } get identityType() { return this.getStringAttribute('identity_type'); } set identityType(value) { this._identityType = value; } resetIdentityType() { this._identityType = undefined; } // Temporarily expose input value. Use with caution. get identityTypeInput() { return this._identityType; } get sources() { return this._sources; } putSources(value) { this._sources.internalValue = value; } resetSources() { this._sources.internalValue = undefined; } // Temporarily expose input value. Use with caution. get sourcesInput() { return this._sources.internalValue; } } exports.AccessContextManagerServicePerimeterIngressPolicyIngressFromOutputReference = AccessContextManagerServicePerimeterIngressPolicyIngressFromOutputReference; _c = JSII_RTTI_SYMBOL_1; AccessContextManagerServicePerimeterIngressPolicyIngressFromOutputReference[_c] = { fqn: "@cdktf/provider-google.accessContextManagerServicePerimeterIngressPolicy.AccessContextManagerServicePerimeterIngressPolicyIngressFromOutputReference", version: "14.12.0" }; function accessContextManagerServicePerimeterIngressPolicyIngressToOperationsMethodSelectorsToTerraform(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 { method: cdktf.stringToTerraform(struct.method), permission: cdktf.stringToTerraform(struct.permission), }; } exports.accessContextManagerServicePerimeterIngressPolicyIngressToOperationsMethodSelectorsToTerraform = accessContextManagerServicePerimeterIngressPolicyIngressToOperationsMethodSelectorsToTerraform; function accessContextManagerServicePerimeterIngressPolicyIngressToOperationsMethodSelectorsToHclTerraform(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 = { method: { value: cdktf.stringToHclTerraform(struct.method), isBlock: false, type: "simple", storageClassType: "string", }, permission: { value: cdktf.stringToHclTerraform(struct.permission), isBlock: false, type: "simple", storageClassType: "string", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } exports.accessContextManagerServicePerimeterIngressPolicyIngressToOperationsMethodSelectorsToHclTerraform = accessContextManagerServicePerimeterIngressPolicyIngressToOperationsMethodSelectorsToHclTerraform; class AccessContextManagerServicePerimeterIngressPolicyIngressToOperationsMethodSelectorsOutputReference extends cdktf.ComplexObject { /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing * @param complexObjectIndex the index of this item in the list * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index) */ constructor(terraformResource, terraformAttribute, complexObjectIndex, complexObjectIsFromSet) { super(terraformResource, terraformAttribute, complexObjectIsFromSet, complexObjectIndex); this.isEmptyObject = false; } get internalValue() { if (this.resolvableValue) { return this.resolvableValue; } let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; if (this._method !== undefined) { hasAnyValues = true; internalValueResult.method = this._method; } if (this._permission !== undefined) { hasAnyValues = true; internalValueResult.permission = this._permission; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this.resolvableValue = undefined; this._method = undefined; this._permission = 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._method = value.method; this._permission = value.permission; } } get method() { return this.getStringAttribute('method'); } set method(value) { this._method = value; } resetMethod() { this._method = undefined; } // Temporarily expose input value. Use with caution. get methodInput() { return this._method; } get permission() { return this.getStringAttribute('permission'); } set permission(value) { this._permission = value; } resetPermission() { this._permission = undefined; } // Temporarily expose input value. Use with caution. get permissionInput() { return this._permission; } } exports.AccessContextManagerServicePerimeterIngressPolicyIngressToOperationsMethodSelectorsOutputReference = AccessContextManagerServicePerimeterIngressPolicyIngressToOperationsMethodSelectorsOutputReference; _d = JSII_RTTI_SYMBOL_1; AccessContextManagerServicePerimeterIngressPolicyIngressToOperationsMethodSelectorsOutputReference[_d] = { fqn: "@cdktf/provider-google.accessContextManagerServicePerimeterIngressPolicy.AccessContextManagerServicePerimeterIngressPolicyIngressToOperationsMethodSelectorsOutputReference", version: "14.12.0" }; class AccessContextManagerServicePerimeterIngressPolicyIngressToOperationsMethodSelectorsList 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 AccessContextManagerServicePerimeterIngressPolicyIngressToOperationsMethodSelectorsOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet); } } exports.AccessContextManagerServicePerimeterIngressPolicyIngressToOperationsMethodSelectorsList = AccessContextManagerServicePerimeterIngressPolicyIngressToOperationsMethodSelectorsList; _e = JSII_RTTI_SYMBOL_1; AccessContextManagerServicePerimeterIngressPolicyIngressToOperationsMethodSelectorsList[_e] = { fqn: "@cdktf/provider-google.accessContextManagerServicePerimeterIngressPolicy.AccessContextManagerServicePerimeterIngressPolicyIngressToOperationsMethodSelectorsList", version: "14.12.0" }; function accessContextManagerServicePerimeterIngressPolicyIngressToOperationsToTerraform(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 { service_name: cdktf.stringToTerraform(struct.serviceName), method_selectors: cdktf.listMapper(accessContextManagerServicePerimeterIngressPolicyIngressToOperationsMethodSelectorsToTerraform, true)(struct.methodSelectors), }; } exports.accessContextManagerServicePerimeterIngressPolicyIngressToOperationsToTerraform = accessContextManagerServicePerimeterIngressPolicyIngressToOperationsToTerraform; function accessContextManagerServicePerimeterIngressPolicyIngressToOperationsToHclTerraform(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 = { service_name: { value: cdktf.stringToHclTerraform(struct.serviceName), isBlock: false, type: "simple", storageClassType: "string", }, method_selectors: { value: cdktf.listMapperHcl(accessContextManagerServicePerimeterIngressPolicyIngressToOperationsMethodSelectorsToHclTerraform, true)(struct.methodSelectors), isBlock: true, type: "list", storageClassType: "AccessContextManagerServicePerimeterIngressPolicyIngressToOperationsMethodSelectorsList", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } exports.accessContextManagerServicePerimeterIngressPolicyIngressToOperationsToHclTerraform = accessContextManagerServicePerimeterIngressPolicyIngressToOperationsToHclTerraform; class AccessContextManagerServicePerimeterIngressPolicyIngressToOperationsOutputReference 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; // method_selectors - computed: false, optional: true, required: false this._methodSelectors = new AccessContextManagerServicePerimeterIngressPolicyIngressToOperationsMethodSelectorsList(this, "method_selectors", false); } get internalValue() { if (this.resolvableValue) { return this.resolvableValue; } let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; if (this._serviceName !== undefined) { hasAnyValues = true; internalValueResult.serviceName = this._serviceName; } if (this._methodSelectors?.internalValue !== undefined) { hasAnyValues = true; internalValueResult.methodSelectors = this._methodSelectors?.internalValue; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this.resolvableValue = undefined; this._serviceName = undefined; this._methodSelectors.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._serviceName = value.serviceName; this._methodSelectors.internalValue = value.methodSelectors; } } get serviceName() { return this.getStringAttribute('service_name'); } set serviceName(value) { this._serviceName = value; } resetServiceName() { this._serviceName = undefined; } // Temporarily expose input value. Use with caution. get serviceNameInput() { return this._serviceName; } get methodSelectors() { return this._methodSelectors; } putMethodSelectors(value) { this._methodSelectors.internalValue = value; } resetMethodSelectors() { this._methodSelectors.internalValue = undefined; } // Temporarily expose input value. Use with caution. get methodSelectorsInput() { return this._methodSelectors.internalValue; } } exports.AccessContextManagerServicePerimeterIngressPolicyIngressToOperationsOutputReference = AccessContextManagerServicePerimeterIngressPolicyIngressToOperationsOutputReference; _f = JSII_RTTI_SYMBOL_1; AccessContextManagerServicePerimeterIngressPolicyIngressToOperationsOutputReference[_f] = { fqn: "@cdktf/provider-google.accessContextManagerServicePerimeterIngressPolicy.AccessContextManagerServicePerimeterIngressPolicyIngressToOperationsOutputReference", version: "14.12.0" }; class AccessContextManagerServicePerimeterIngressPolicyIngressToOperationsList 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 AccessContextManagerServicePerimeterIngressPolicyIngressToOperationsOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet); } } exports.AccessContextManagerServicePerimeterIngressPolicyIngressToOperationsList = AccessContextManagerServicePerimeterIngressPolicyIngressToOperationsList; _g = JSII_RTTI_SYMBOL_1; AccessContextManagerServicePerimeterIngressPolicyIngressToOperationsList[_g] = { fqn: "@cdktf/provider-google.accessContextManagerServicePerimeterIngressPolicy.AccessContextManagerServicePerimeterIngressPolicyIngressToOperationsList", version: "14.12.0" }; function accessContextManagerServicePerimeterIngressPolicyIngressToToTerraform(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 { resources: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.resources), operations: cdktf.listMapper(accessContextManagerServicePerimeterIngressPolicyIngressToOperationsToTerraform, true)(struct.operations), }; } exports.accessContextManagerServicePerimeterIngressPolicyIngressToToTerraform = accessContextManagerServicePerimeterIngressPolicyIngressToToTerraform; function accessContextManagerServicePerimeterIngressPolicyIngressToToHclTerraform(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 = { resources: { value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.resources), isBlock: false, type: "list", storageClassType: "stringList", }, operations: { value: cdktf.listMapperHcl(accessContextManagerServicePerimeterIngressPolicyIngressToOperationsToHclTerraform, true)(struct.operations), isBlock: true, type: "list", storageClassType: "AccessContextManagerServicePerimeterIngressPolicyIngressToOperationsList", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } exports.accessContextManagerServicePerimeterIngressPolicyIngressToToHclTerraform = accessContextManagerServicePerimeterIngressPolicyIngressToToHclTerraform; class AccessContextManagerServicePerimeterIngressPolicyIngressToOutputReference 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; // operations - computed: false, optional: true, required: false this._operations = new AccessContextManagerServicePerimeterIngressPolicyIngressToOperationsList(this, "operations", false); } get internalValue() { let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; if (this._resources !== undefined) { hasAnyValues = true; internalValueResult.resources = this._resources; } if (this._operations?.internalValue !== undefined) { hasAnyValues = true; internalValueResult.operations = this._operations?.internalValue; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._resources = undefined; this._operations.internalValue = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._resources = value.resources; this._operations.internalValue = value.operations; } } get resources() { return this.getListAttribute('resources'); } set resources(value) { this._resources = value; } resetResources() { this._resources = undefined; } // Temporarily expose input value. Use with caution. get resourcesInput() { return this._resources; } get operations() { return this._operations; } putOperations(value) { this._operations.internalValue = value; } resetOperations() { this._operations.internalValue = undefined; } // Temporarily expose input value. Use with caution. get operationsInput() { return this._operations.internalValue; } } exports.AccessContextManagerServicePerimeterIngressPolicyIngressToOutputReference = AccessContextManagerServicePerimeterIngressPolicyIngressToOutputReference; _h = JSII_RTTI_SYMBOL_1; AccessContextManagerServicePerimeterIngressPolicyIngressToOutputReference[_h] = { fqn: "@cdktf/provider-google.accessContextManagerServicePerimeterIngressPolicy.AccessContextManagerServicePerimeterIngressPolicyIngressToOutputReference", version: "14.12.0" }; function accessContextManagerServicePerimeterIngressPolicyTimeoutsToTerraform(struct) { if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) { return struct; } if (cdktf.isComplexElement(struct)) { throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration"); } return { create: cdktf.stringToTerraform(struct.create), delete: cdktf.stringToTerraform(struct.delete), }; } exports.accessContextManagerServicePerimeterIngressPolicyTimeoutsToTerraform = accessContextManagerServicePerimeterIngressPolicyTimeoutsToTerraform; function accessContextManagerServicePerimeterIngressPolicyTimeoutsToHclTerraform(struct) { if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) { return struct; } if (cdktf.isComplexElement(struct)) { throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration"); } const attrs = { create: { value: cdktf.stringToHclTerraform(struct.create), isBlock: false, type: "simple", storageClassType: "string", }, delete: { value: cdktf.stringToHclTerraform(struct.delete), isBlock: false, type: "simple", storageClassType: "string", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } exports.accessContextManagerServicePerimeterIngressPolicyTimeoutsToHclTerraform = accessContextManagerServicePerimeterIngressPolicyTimeoutsToHclTerraform; class AccessContextManagerServicePerimeterIngressPolicyTimeoutsOutputReference extends cdktf.ComplexObject { /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing */ constructor(terraformResource, terraformAttribute) { super(terraformResource, terraformAttribute, false); this.isEmptyObject = false; } get internalValue() { if (this.resolvableValue) { return this.resolvableValue; } let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; if (this._create !== undefined) { hasAnyValues = true; internalValueResult.create = this._create; } if (this._delete !== undefined) { hasAnyValues = true; internalValueResult.delete = this._delete; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this.resolvableValue = undefined; this._create = undefined; this._delete = undefined; } else if (cdktf.Tokenization.isResolvable(value)) { this.isEmptyObject = false; this.resolvableValue = value; } else { this.isEmptyObject = Object.keys(value).length === 0; this.resolvableValue = undefined; this._create = value.create; this._delete = value.delete; } } get create() { return this.getStringAttribute('create'); } set create(value) { this._create = value; } resetCreate() { this._create = undefined; } // Temporarily expose input value. Use with caution. get createInput() { return this._create; } get delete() { return this.getStringAttribute('delete'); } set delete(value) { this._delete = value; } resetDelete() { this._delete = undefined; } // Temporarily expose input value. Use with caution. get deleteInput() { return this._delete; } } exports.AccessContextManagerServicePerimeterIngressPolicyTimeoutsOutputReference = AccessContextManagerServicePerimeterIngressPolicyTimeoutsOutputReference; _j = JSII_RTTI_SYMBOL_1; AccessContextManagerServicePerimeterIngressPolicyTimeoutsOutputReference[_j] = { fqn: "@cdktf/provider-google.accessContextManagerServicePerimeterIngressPolicy.AccessContextManagerServicePerimeterIngressPolicyTimeoutsOutputReference", version: "14.12.0" }; /** * Represents a {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/access_context_manager_service_perimeter_ingress_policy google_access_context_manager_service_perimeter_ingress_policy} */ class AccessContextManagerServicePerimeterIngressPolicy extends cdktf.TerraformResource { // ============== // STATIC Methods // ============== /** * Generates CDKTF code for importing a AccessContextManagerServicePerimeterIngressPolicy 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 AccessContextManagerServicePerimeterIngressPolicy to import * @param importFromId The id of the existing AccessContextManagerServicePerimeterIngressPolicy that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/access_context_manager_service_perimeter_ingress_policy#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the AccessContextManagerServicePerimeterIngressPolicy to import is found */ static generateConfigForImport(scope, importToId, importFromId, provider) { return new cdktf.ImportableResource(scope, importToId, { terraformResourceType: "google_access_context_manager_service_perimeter_ingress_policy", importId: importFromId, provider }); } // =========== // INITIALIZER // =========== /** * Create a new {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/access_context_manager_service_perimeter_ingress_policy google_access_context_manager_service_perimeter_ingress_policy} 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 AccessContextManagerServicePerimeterIngressPolicyConfig */ constructor(scope, id, config) { super(scope, id, { terraformResourceType: 'google_access_context_manager_service_perimeter_ingress_policy', terraformGeneratorMetadata: { providerName: 'google', providerVersion: '6.13.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 }); // ingress_from - computed: false, optional: true, required: false this._ingressFrom = new AccessContextManagerServicePerimeterIngressPolicyIngressFromOutputReference(this, "ingress_from"); // ingress_to - computed: false, optional: true, required: false this._ingressTo = new AccessContextManagerServicePerimeterIngressPolicyIngressToOutputReference(this, "ingress_to"); // timeouts - computed: false, optional: true, required: false this._timeouts = new AccessContextManagerServicePerimeterIngressPolicyTimeoutsOutputReference(this, "timeouts"); this._id = config.id; this._perimeter = config.perimeter; this._ingressFrom.internalValue = config.ingressFrom; this._ingressTo.internalValue = config.ingressTo; this._timeouts.internalValue = config.timeouts; } 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 perimeter() { return this.getStringAttribute('perimeter'); } set perimeter(value) { this._perimeter = value; } // Temporarily expose input value. Use with caution. get perimeterInput() { return this._perimeter; } get ingressFrom() { return this._ingressFrom; } putIngressFrom(value) { this._ingressFrom.internalValue = value; } resetIngressFrom() { this._ingressFrom.internalValue = undefined; } // Temporarily expose input value. Use with caution. get ingressFromInput() { return this._ingressFrom.internalValue; } get ingressTo() { return this._ingressTo; } putIngressTo(value) { this._ingressTo.internalValue = value; } resetIngressTo() { this._ingressTo.internalValue = undefined; } // Temporarily expose input value. Use with caution. get ingressToInput() { return this._ingressTo.internalValue; } get timeouts() { return this._timeouts; } putTimeouts(value) { this._timeouts.internalValue = value; } resetTimeouts() { this._timeouts.internalValue = undefined; } // Temporarily expose input value. Use with caution. get timeoutsInput() { return this._timeouts.internalValue; } // ========= // SYNTHESIS // ========= synthesizeAttributes() { return { id: cdktf.stringToTerraform(this._id), perimeter: cdktf.stringToTerraform(this._perimeter), ingress_from: accessContextManagerServicePerimeterIngressPolicyIngressFromToTerraform(this._ingressFrom.internalValue), ingress_to: accessContextManagerServicePerimeterIngressPolicyIngressToToTerraform(this._ingressTo.internalValue), timeouts: accessContextManagerServicePerimeterIngressPolicyTimeoutsToTerraform(this._timeouts.internalValue), }; } synthesizeHclAttributes() { const attrs = { id: { value: cdktf.stringToHclTerraform(this._id), isBlock: false, type: "simple", storageClassType: "string", }, perimeter: { value: cdktf.stringToHclTerraform(this._perimeter), isBlock: false, type: "simple", storageClassType: "string", }, ingress_from: { value: accessContextManagerServicePerimeterIngressPolicyIngressFromToHclTerraform(this._ingressFrom.internalValue), isBlock: true, type: "list", storageClassType: "AccessContextManagerServicePerimeterIngressPolicyIngressFromList", }, ingress_to: { value: accessContextManagerServicePerimeterIngressPolicyIngressToToHclTerraform(this._ingressTo.internalValue), isBlock: true, type: "list", storageClassType: "AccessContextManagerServicePerimeterIngressPolicyIngressToList", }, timeouts: { value: accessContextManagerServicePerimeterIngressPolicyTimeoutsToHclTerraform(this._timeouts.internalValue), isBlock: true, type: "struct", storageClassType: "AccessContextManagerServicePerimeterIngressPolicyTimeouts", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } } exports.AccessContextManagerServicePerimeterIngressPolicy = AccessContextManagerServicePerimeterIngressPolicy; _k = JSII_RTTI_SYMBOL_1; AccessContextManagerServicePerimeterIngressPolicy[_k] = { fqn: "@cdktf/provider-google.accessContextManagerServicePerimeterIngressPolicy.AccessContextManagerServicePerimeterIngressPolicy", version: "14.12.0" }; // ================= // STATIC PROPERTIES // ================= AccessContextManagerServicePerimeterIngressPolicy.tfResourceType = "google_access_context_manager_service_perimeter_ingress_policy"; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWNjZXNzLWNvbnRleHQtbWFuYWdlci1zZXJ2aWNlLXBlcmltZXRlci1pbmdyZXNzLXBvbGljeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQVNBLCtCQUErQjtBQW1FL0IsU0FBZ0IsOEVBQThFLENBQUMsTUFBZ0c7SUFDN0wsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUFDLE9BQU8sTUFBTSxDQUFDO0lBQUMsQ0FBQztJQUM1RixJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsb0hBQW9ILENBQUMsQ0FBQztJQUN4SSxDQUFDO0lBQ0QsT0FBTztRQUNMLFlBQVksRUFBRSxLQUFLLENBQUMsaUJBQWlCLENBQUMsTUFBTyxDQUFDLFdBQVcsQ0FBQztRQUMxRCxRQUFRLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixDQUFDLE1BQU8sQ0FBQyxRQUFRLENBQUM7S0FDcEQsQ0FBQTtBQUNILENBQUM7QUFURCx3S0FTQztBQUdELFNBQWdCLGlGQUFpRixDQUFDLE1BQWdHO0lBQ2hNLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFBQyxPQUFPLE1BQU0sQ0FBQztJQUFDLENBQUM7SUFDNUYsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLG9IQUFvSCxDQUFDLENBQUM7SUFDeEksQ0FBQztJQUNELE1BQU0sS0FBSyxHQUFHO1FBQ1osWUFBWSxF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