@cdktf/provider-google
Version:
Prebuilt google Provider for Terraform CDK (cdktf)
946 lines • 147 kB
JavaScript
"use strict";
var _a, _b, _c, _d, _e, _f, _g, _h;
Object.defineProperty(exports, "__esModule", { value: true });
exports.AccessContextManagerAccessLevelCondition = exports.AccessContextManagerAccessLevelConditionVpcNetworkSourcesList = exports.AccessContextManagerAccessLevelConditionVpcNetworkSourcesOutputReference = exports.accessContextManagerAccessLevelConditionVpcNetworkSourcesToHclTerraform = exports.accessContextManagerAccessLevelConditionVpcNetworkSourcesToTerraform = exports.AccessContextManagerAccessLevelConditionVpcNetworkSourcesVpcSubnetworkOutputReference = exports.accessContextManagerAccessLevelConditionVpcNetworkSourcesVpcSubnetworkToHclTerraform = exports.accessContextManagerAccessLevelConditionVpcNetworkSourcesVpcSubnetworkToTerraform = exports.AccessContextManagerAccessLevelConditionTimeoutsOutputReference = exports.accessContextManagerAccessLevelConditionTimeoutsToHclTerraform = exports.accessContextManagerAccessLevelConditionTimeoutsToTerraform = exports.AccessContextManagerAccessLevelConditionDevicePolicyOutputReference = exports.accessContextManagerAccessLevelConditionDevicePolicyToHclTerraform = exports.accessContextManagerAccessLevelConditionDevicePolicyToTerraform = exports.AccessContextManagerAccessLevelConditionDevicePolicyOsConstraintsList = exports.AccessContextManagerAccessLevelConditionDevicePolicyOsConstraintsOutputReference = exports.accessContextManagerAccessLevelConditionDevicePolicyOsConstraintsToHclTerraform = exports.accessContextManagerAccessLevelConditionDevicePolicyOsConstraintsToTerraform = void 0;
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
const cdktf = require("cdktf");
function accessContextManagerAccessLevelConditionDevicePolicyOsConstraintsToTerraform(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 {
minimum_version: cdktf.stringToTerraform(struct.minimumVersion),
os_type: cdktf.stringToTerraform(struct.osType),
};
}
exports.accessContextManagerAccessLevelConditionDevicePolicyOsConstraintsToTerraform = accessContextManagerAccessLevelConditionDevicePolicyOsConstraintsToTerraform;
function accessContextManagerAccessLevelConditionDevicePolicyOsConstraintsToHclTerraform(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 = {
minimum_version: {
value: cdktf.stringToHclTerraform(struct.minimumVersion),
isBlock: false,
type: "simple",
storageClassType: "string",
},
os_type: {
value: cdktf.stringToHclTerraform(struct.osType),
isBlock: false,
type: "simple",
storageClassType: "string",
},
};
// remove undefined attributes
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
exports.accessContextManagerAccessLevelConditionDevicePolicyOsConstraintsToHclTerraform = accessContextManagerAccessLevelConditionDevicePolicyOsConstraintsToHclTerraform;
class AccessContextManagerAccessLevelConditionDevicePolicyOsConstraintsOutputReference 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._minimumVersion !== undefined) {
hasAnyValues = true;
internalValueResult.minimumVersion = this._minimumVersion;
}
if (this._osType !== undefined) {
hasAnyValues = true;
internalValueResult.osType = this._osType;
}
return hasAnyValues ? internalValueResult : undefined;
}
set internalValue(value) {
if (value === undefined) {
this.isEmptyObject = false;
this.resolvableValue = undefined;
this._minimumVersion = undefined;
this._osType = 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._minimumVersion = value.minimumVersion;
this._osType = value.osType;
}
}
get minimumVersion() {
return this.getStringAttribute('minimum_version');
}
set minimumVersion(value) {
this._minimumVersion = value;
}
resetMinimumVersion() {
this._minimumVersion = undefined;
}
// Temporarily expose input value. Use with caution.
get minimumVersionInput() {
return this._minimumVersion;
}
get osType() {
return this.getStringAttribute('os_type');
}
set osType(value) {
this._osType = value;
}
// Temporarily expose input value. Use with caution.
get osTypeInput() {
return this._osType;
}
}
exports.AccessContextManagerAccessLevelConditionDevicePolicyOsConstraintsOutputReference = AccessContextManagerAccessLevelConditionDevicePolicyOsConstraintsOutputReference;
_a = JSII_RTTI_SYMBOL_1;
AccessContextManagerAccessLevelConditionDevicePolicyOsConstraintsOutputReference[_a] = { fqn: "@cdktf/provider-google.accessContextManagerAccessLevelCondition.AccessContextManagerAccessLevelConditionDevicePolicyOsConstraintsOutputReference", version: "14.12.0" };
class AccessContextManagerAccessLevelConditionDevicePolicyOsConstraintsList 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 AccessContextManagerAccessLevelConditionDevicePolicyOsConstraintsOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet);
}
}
exports.AccessContextManagerAccessLevelConditionDevicePolicyOsConstraintsList = AccessContextManagerAccessLevelConditionDevicePolicyOsConstraintsList;
_b = JSII_RTTI_SYMBOL_1;
AccessContextManagerAccessLevelConditionDevicePolicyOsConstraintsList[_b] = { fqn: "@cdktf/provider-google.accessContextManagerAccessLevelCondition.AccessContextManagerAccessLevelConditionDevicePolicyOsConstraintsList", version: "14.12.0" };
function accessContextManagerAccessLevelConditionDevicePolicyToTerraform(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 {
allowed_device_management_levels: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.allowedDeviceManagementLevels),
allowed_encryption_statuses: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.allowedEncryptionStatuses),
require_admin_approval: cdktf.booleanToTerraform(struct.requireAdminApproval),
require_corp_owned: cdktf.booleanToTerraform(struct.requireCorpOwned),
require_screen_lock: cdktf.booleanToTerraform(struct.requireScreenLock),
os_constraints: cdktf.listMapper(accessContextManagerAccessLevelConditionDevicePolicyOsConstraintsToTerraform, true)(struct.osConstraints),
};
}
exports.accessContextManagerAccessLevelConditionDevicePolicyToTerraform = accessContextManagerAccessLevelConditionDevicePolicyToTerraform;
function accessContextManagerAccessLevelConditionDevicePolicyToHclTerraform(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 = {
allowed_device_management_levels: {
value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.allowedDeviceManagementLevels),
isBlock: false,
type: "list",
storageClassType: "stringList",
},
allowed_encryption_statuses: {
value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.allowedEncryptionStatuses),
isBlock: false,
type: "list",
storageClassType: "stringList",
},
require_admin_approval: {
value: cdktf.booleanToHclTerraform(struct.requireAdminApproval),
isBlock: false,
type: "simple",
storageClassType: "boolean",
},
require_corp_owned: {
value: cdktf.booleanToHclTerraform(struct.requireCorpOwned),
isBlock: false,
type: "simple",
storageClassType: "boolean",
},
require_screen_lock: {
value: cdktf.booleanToHclTerraform(struct.requireScreenLock),
isBlock: false,
type: "simple",
storageClassType: "boolean",
},
os_constraints: {
value: cdktf.listMapperHcl(accessContextManagerAccessLevelConditionDevicePolicyOsConstraintsToHclTerraform, true)(struct.osConstraints),
isBlock: true,
type: "list",
storageClassType: "AccessContextManagerAccessLevelConditionDevicePolicyOsConstraintsList",
},
};
// remove undefined attributes
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
exports.accessContextManagerAccessLevelConditionDevicePolicyToHclTerraform = accessContextManagerAccessLevelConditionDevicePolicyToHclTerraform;
class AccessContextManagerAccessLevelConditionDevicePolicyOutputReference 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;
// os_constraints - computed: false, optional: true, required: false
this._osConstraints = new AccessContextManagerAccessLevelConditionDevicePolicyOsConstraintsList(this, "os_constraints", false);
}
get internalValue() {
let hasAnyValues = this.isEmptyObject;
const internalValueResult = {};
if (this._allowedDeviceManagementLevels !== undefined) {
hasAnyValues = true;
internalValueResult.allowedDeviceManagementLevels = this._allowedDeviceManagementLevels;
}
if (this._allowedEncryptionStatuses !== undefined) {
hasAnyValues = true;
internalValueResult.allowedEncryptionStatuses = this._allowedEncryptionStatuses;
}
if (this._requireAdminApproval !== undefined) {
hasAnyValues = true;
internalValueResult.requireAdminApproval = this._requireAdminApproval;
}
if (this._requireCorpOwned !== undefined) {
hasAnyValues = true;
internalValueResult.requireCorpOwned = this._requireCorpOwned;
}
if (this._requireScreenLock !== undefined) {
hasAnyValues = true;
internalValueResult.requireScreenLock = this._requireScreenLock;
}
if (this._osConstraints?.internalValue !== undefined) {
hasAnyValues = true;
internalValueResult.osConstraints = this._osConstraints?.internalValue;
}
return hasAnyValues ? internalValueResult : undefined;
}
set internalValue(value) {
if (value === undefined) {
this.isEmptyObject = false;
this._allowedDeviceManagementLevels = undefined;
this._allowedEncryptionStatuses = undefined;
this._requireAdminApproval = undefined;
this._requireCorpOwned = undefined;
this._requireScreenLock = undefined;
this._osConstraints.internalValue = undefined;
}
else {
this.isEmptyObject = Object.keys(value).length === 0;
this._allowedDeviceManagementLevels = value.allowedDeviceManagementLevels;
this._allowedEncryptionStatuses = value.allowedEncryptionStatuses;
this._requireAdminApproval = value.requireAdminApproval;
this._requireCorpOwned = value.requireCorpOwned;
this._requireScreenLock = value.requireScreenLock;
this._osConstraints.internalValue = value.osConstraints;
}
}
get allowedDeviceManagementLevels() {
return this.getListAttribute('allowed_device_management_levels');
}
set allowedDeviceManagementLevels(value) {
this._allowedDeviceManagementLevels = value;
}
resetAllowedDeviceManagementLevels() {
this._allowedDeviceManagementLevels = undefined;
}
// Temporarily expose input value. Use with caution.
get allowedDeviceManagementLevelsInput() {
return this._allowedDeviceManagementLevels;
}
get allowedEncryptionStatuses() {
return this.getListAttribute('allowed_encryption_statuses');
}
set allowedEncryptionStatuses(value) {
this._allowedEncryptionStatuses = value;
}
resetAllowedEncryptionStatuses() {
this._allowedEncryptionStatuses = undefined;
}
// Temporarily expose input value. Use with caution.
get allowedEncryptionStatusesInput() {
return this._allowedEncryptionStatuses;
}
get requireAdminApproval() {
return this.getBooleanAttribute('require_admin_approval');
}
set requireAdminApproval(value) {
this._requireAdminApproval = value;
}
resetRequireAdminApproval() {
this._requireAdminApproval = undefined;
}
// Temporarily expose input value. Use with caution.
get requireAdminApprovalInput() {
return this._requireAdminApproval;
}
get requireCorpOwned() {
return this.getBooleanAttribute('require_corp_owned');
}
set requireCorpOwned(value) {
this._requireCorpOwned = value;
}
resetRequireCorpOwned() {
this._requireCorpOwned = undefined;
}
// Temporarily expose input value. Use with caution.
get requireCorpOwnedInput() {
return this._requireCorpOwned;
}
get requireScreenLock() {
return this.getBooleanAttribute('require_screen_lock');
}
set requireScreenLock(value) {
this._requireScreenLock = value;
}
resetRequireScreenLock() {
this._requireScreenLock = undefined;
}
// Temporarily expose input value. Use with caution.
get requireScreenLockInput() {
return this._requireScreenLock;
}
get osConstraints() {
return this._osConstraints;
}
putOsConstraints(value) {
this._osConstraints.internalValue = value;
}
resetOsConstraints() {
this._osConstraints.internalValue = undefined;
}
// Temporarily expose input value. Use with caution.
get osConstraintsInput() {
return this._osConstraints.internalValue;
}
}
exports.AccessContextManagerAccessLevelConditionDevicePolicyOutputReference = AccessContextManagerAccessLevelConditionDevicePolicyOutputReference;
_c = JSII_RTTI_SYMBOL_1;
AccessContextManagerAccessLevelConditionDevicePolicyOutputReference[_c] = { fqn: "@cdktf/provider-google.accessContextManagerAccessLevelCondition.AccessContextManagerAccessLevelConditionDevicePolicyOutputReference", version: "14.12.0" };
function accessContextManagerAccessLevelConditionTimeoutsToTerraform(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.accessContextManagerAccessLevelConditionTimeoutsToTerraform = accessContextManagerAccessLevelConditionTimeoutsToTerraform;
function accessContextManagerAccessLevelConditionTimeoutsToHclTerraform(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.accessContextManagerAccessLevelConditionTimeoutsToHclTerraform = accessContextManagerAccessLevelConditionTimeoutsToHclTerraform;
class AccessContextManagerAccessLevelConditionTimeoutsOutputReference 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.AccessContextManagerAccessLevelConditionTimeoutsOutputReference = AccessContextManagerAccessLevelConditionTimeoutsOutputReference;
_d = JSII_RTTI_SYMBOL_1;
AccessContextManagerAccessLevelConditionTimeoutsOutputReference[_d] = { fqn: "@cdktf/provider-google.accessContextManagerAccessLevelCondition.AccessContextManagerAccessLevelConditionTimeoutsOutputReference", version: "14.12.0" };
function accessContextManagerAccessLevelConditionVpcNetworkSourcesVpcSubnetworkToTerraform(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 {
network: cdktf.stringToTerraform(struct.network),
vpc_ip_subnetworks: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.vpcIpSubnetworks),
};
}
exports.accessContextManagerAccessLevelConditionVpcNetworkSourcesVpcSubnetworkToTerraform = accessContextManagerAccessLevelConditionVpcNetworkSourcesVpcSubnetworkToTerraform;
function accessContextManagerAccessLevelConditionVpcNetworkSourcesVpcSubnetworkToHclTerraform(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 = {
network: {
value: cdktf.stringToHclTerraform(struct.network),
isBlock: false,
type: "simple",
storageClassType: "string",
},
vpc_ip_subnetworks: {
value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.vpcIpSubnetworks),
isBlock: false,
type: "list",
storageClassType: "stringList",
},
};
// remove undefined attributes
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
exports.accessContextManagerAccessLevelConditionVpcNetworkSourcesVpcSubnetworkToHclTerraform = accessContextManagerAccessLevelConditionVpcNetworkSourcesVpcSubnetworkToHclTerraform;
class AccessContextManagerAccessLevelConditionVpcNetworkSourcesVpcSubnetworkOutputReference extends cdktf.ComplexObject {
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
*/
constructor(terraformResource, terraformAttribute) {
super(terraformResource, terraformAttribute, false, 0);
this.isEmptyObject = false;
}
get internalValue() {
let hasAnyValues = this.isEmptyObject;
const internalValueResult = {};
if (this._network !== undefined) {
hasAnyValues = true;
internalValueResult.network = this._network;
}
if (this._vpcIpSubnetworks !== undefined) {
hasAnyValues = true;
internalValueResult.vpcIpSubnetworks = this._vpcIpSubnetworks;
}
return hasAnyValues ? internalValueResult : undefined;
}
set internalValue(value) {
if (value === undefined) {
this.isEmptyObject = false;
this._network = undefined;
this._vpcIpSubnetworks = undefined;
}
else {
this.isEmptyObject = Object.keys(value).length === 0;
this._network = value.network;
this._vpcIpSubnetworks = value.vpcIpSubnetworks;
}
}
get network() {
return this.getStringAttribute('network');
}
set network(value) {
this._network = value;
}
// Temporarily expose input value. Use with caution.
get networkInput() {
return this._network;
}
get vpcIpSubnetworks() {
return this.getListAttribute('vpc_ip_subnetworks');
}
set vpcIpSubnetworks(value) {
this._vpcIpSubnetworks = value;
}
resetVpcIpSubnetworks() {
this._vpcIpSubnetworks = undefined;
}
// Temporarily expose input value. Use with caution.
get vpcIpSubnetworksInput() {
return this._vpcIpSubnetworks;
}
}
exports.AccessContextManagerAccessLevelConditionVpcNetworkSourcesVpcSubnetworkOutputReference = AccessContextManagerAccessLevelConditionVpcNetworkSourcesVpcSubnetworkOutputReference;
_e = JSII_RTTI_SYMBOL_1;
AccessContextManagerAccessLevelConditionVpcNetworkSourcesVpcSubnetworkOutputReference[_e] = { fqn: "@cdktf/provider-google.accessContextManagerAccessLevelCondition.AccessContextManagerAccessLevelConditionVpcNetworkSourcesVpcSubnetworkOutputReference", version: "14.12.0" };
function accessContextManagerAccessLevelConditionVpcNetworkSourcesToTerraform(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 {
vpc_subnetwork: accessContextManagerAccessLevelConditionVpcNetworkSourcesVpcSubnetworkToTerraform(struct.vpcSubnetwork),
};
}
exports.accessContextManagerAccessLevelConditionVpcNetworkSourcesToTerraform = accessContextManagerAccessLevelConditionVpcNetworkSourcesToTerraform;
function accessContextManagerAccessLevelConditionVpcNetworkSourcesToHclTerraform(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 = {
vpc_subnetwork: {
value: accessContextManagerAccessLevelConditionVpcNetworkSourcesVpcSubnetworkToHclTerraform(struct.vpcSubnetwork),
isBlock: true,
type: "list",
storageClassType: "AccessContextManagerAccessLevelConditionVpcNetworkSourcesVpcSubnetworkList",
},
};
// remove undefined attributes
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
exports.accessContextManagerAccessLevelConditionVpcNetworkSourcesToHclTerraform = accessContextManagerAccessLevelConditionVpcNetworkSourcesToHclTerraform;
class AccessContextManagerAccessLevelConditionVpcNetworkSourcesOutputReference 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;
// vpc_subnetwork - computed: false, optional: true, required: false
this._vpcSubnetwork = new AccessContextManagerAccessLevelConditionVpcNetworkSourcesVpcSubnetworkOutputReference(this, "vpc_subnetwork");
}
get internalValue() {
if (this.resolvableValue) {
return this.resolvableValue;
}
let hasAnyValues = this.isEmptyObject;
const internalValueResult = {};
if (this._vpcSubnetwork?.internalValue !== undefined) {
hasAnyValues = true;
internalValueResult.vpcSubnetwork = this._vpcSubnetwork?.internalValue;
}
return hasAnyValues ? internalValueResult : undefined;
}
set internalValue(value) {
if (value === undefined) {
this.isEmptyObject = false;
this.resolvableValue = undefined;
this._vpcSubnetwork.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._vpcSubnetwork.internalValue = value.vpcSubnetwork;
}
}
get vpcSubnetwork() {
return this._vpcSubnetwork;
}
putVpcSubnetwork(value) {
this._vpcSubnetwork.internalValue = value;
}
resetVpcSubnetwork() {
this._vpcSubnetwork.internalValue = undefined;
}
// Temporarily expose input value. Use with caution.
get vpcSubnetworkInput() {
return this._vpcSubnetwork.internalValue;
}
}
exports.AccessContextManagerAccessLevelConditionVpcNetworkSourcesOutputReference = AccessContextManagerAccessLevelConditionVpcNetworkSourcesOutputReference;
_f = JSII_RTTI_SYMBOL_1;
AccessContextManagerAccessLevelConditionVpcNetworkSourcesOutputReference[_f] = { fqn: "@cdktf/provider-google.accessContextManagerAccessLevelCondition.AccessContextManagerAccessLevelConditionVpcNetworkSourcesOutputReference", version: "14.12.0" };
class AccessContextManagerAccessLevelConditionVpcNetworkSourcesList 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 AccessContextManagerAccessLevelConditionVpcNetworkSourcesOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet);
}
}
exports.AccessContextManagerAccessLevelConditionVpcNetworkSourcesList = AccessContextManagerAccessLevelConditionVpcNetworkSourcesList;
_g = JSII_RTTI_SYMBOL_1;
AccessContextManagerAccessLevelConditionVpcNetworkSourcesList[_g] = { fqn: "@cdktf/provider-google.accessContextManagerAccessLevelCondition.AccessContextManagerAccessLevelConditionVpcNetworkSourcesList", version: "14.12.0" };
/**
* Represents a {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/access_context_manager_access_level_condition google_access_context_manager_access_level_condition}
*/
class AccessContextManagerAccessLevelCondition extends cdktf.TerraformResource {
// ==============
// STATIC Methods
// ==============
/**
* Generates CDKTF code for importing a AccessContextManagerAccessLevelCondition 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 AccessContextManagerAccessLevelCondition to import
* @param importFromId The id of the existing AccessContextManagerAccessLevelCondition that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/access_context_manager_access_level_condition#import import section} in the documentation of this resource for the id to use
* @param provider? Optional instance of the provider where the AccessContextManagerAccessLevelCondition to import is found
*/
static generateConfigForImport(scope, importToId, importFromId, provider) {
return new cdktf.ImportableResource(scope, importToId, { terraformResourceType: "google_access_context_manager_access_level_condition", importId: importFromId, provider });
}
// ===========
// INITIALIZER
// ===========
/**
* Create a new {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/access_context_manager_access_level_condition google_access_context_manager_access_level_condition} 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 AccessContextManagerAccessLevelConditionConfig
*/
constructor(scope, id, config) {
super(scope, id, {
terraformResourceType: 'google_access_context_manager_access_level_condition',
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
});
// device_policy - computed: false, optional: true, required: false
this._devicePolicy = new AccessContextManagerAccessLevelConditionDevicePolicyOutputReference(this, "device_policy");
// timeouts - computed: false, optional: true, required: false
this._timeouts = new AccessContextManagerAccessLevelConditionTimeoutsOutputReference(this, "timeouts");
// vpc_network_sources - computed: false, optional: true, required: false
this._vpcNetworkSources = new AccessContextManagerAccessLevelConditionVpcNetworkSourcesList(this, "vpc_network_sources", false);
this._accessLevel = config.accessLevel;
this._id = config.id;
this._ipSubnetworks = config.ipSubnetworks;
this._members = config.members;
this._negate = config.negate;
this._regions = config.regions;
this._requiredAccessLevels = config.requiredAccessLevels;
this._devicePolicy.internalValue = config.devicePolicy;
this._timeouts.internalValue = config.timeouts;
this._vpcNetworkSources.internalValue = config.vpcNetworkSources;
}
get accessLevel() {
return this.getStringAttribute('access_level');
}
set accessLevel(value) {
this._accessLevel = value;
}
// Temporarily expose input value. Use with caution.
get accessLevelInput() {
return this._accessLevel;
}
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 ipSubnetworks() {
return this.getListAttribute('ip_subnetworks');
}
set ipSubnetworks(value) {
this._ipSubnetworks = value;
}
resetIpSubnetworks() {
this._ipSubnetworks = undefined;
}
// Temporarily expose input value. Use with caution.
get ipSubnetworksInput() {
return this._ipSubnetworks;
}
get members() {
return this.getListAttribute('members');
}
set members(value) {
this._members = value;
}
resetMembers() {
this._members = undefined;
}
// Temporarily expose input value. Use with caution.
get membersInput() {
return this._members;
}
get negate() {
return this.getBooleanAttribute('negate');
}
set negate(value) {
this._negate = value;
}
resetNegate() {
this._negate = undefined;
}
// Temporarily expose input value. Use with caution.
get negateInput() {
return this._negate;
}
get regions() {
return this.getListAttribute('regions');
}
set regions(value) {
this._regions = value;
}
resetRegions() {
this._regions = undefined;
}
// Temporarily expose input value. Use with caution.
get regionsInput() {
return this._regions;
}
get requiredAccessLevels() {
return this.getListAttribute('required_access_levels');
}
set requiredAccessLevels(value) {
this._requiredAccessLevels = value;
}
resetRequiredAccessLevels() {
this._requiredAccessLevels = undefined;
}
// Temporarily expose input value. Use with caution.
get requiredAccessLevelsInput() {
return this._requiredAccessLevels;
}
get devicePolicy() {
return this._devicePolicy;
}
putDevicePolicy(value) {
this._devicePolicy.internalValue = value;
}
resetDevicePolicy() {
this._devicePolicy.internalValue = undefined;
}
// Temporarily expose input value. Use with caution.
get devicePolicyInput() {
return this._devicePolicy.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;
}
get vpcNetworkSources() {
return this._vpcNetworkSources;
}
putVpcNetworkSources(value) {
this._vpcNetworkSources.internalValue = value;
}
resetVpcNetworkSources() {
this._vpcNetworkSources.internalValue = undefined;
}
// Temporarily expose input value. Use with caution.
get vpcNetworkSourcesInput() {
return this._vpcNetworkSources.internalValue;
}
// =========
// SYNTHESIS
// =========
synthesizeAttributes() {
return {
access_level: cdktf.stringToTerraform(this._accessLevel),
id: cdktf.stringToTerraform(this._id),
ip_subnetworks: cdktf.listMapper(cdktf.stringToTerraform, false)(this._ipSubnetworks),
members: cdktf.listMapper(cdktf.stringToTerraform, false)(this._members),
negate: cdktf.booleanToTerraform(this._negate),
regions: cdktf.listMapper(cdktf.stringToTerraform, false)(this._regions),
required_access_levels: cdktf.listMapper(cdktf.stringToTerraform, false)(this._requiredAccessLevels),
device_policy: accessContextManagerAccessLevelConditionDevicePolicyToTerraform(this._devicePolicy.internalValue),
timeouts: accessContextManagerAccessLevelConditionTimeoutsToTerraform(this._timeouts.internalValue),
vpc_network_sources: cdktf.listMapper(accessContextManagerAccessLevelConditionVpcNetworkSourcesToTerraform, true)(this._vpcNetworkSources.internalValue),
};
}
synthesizeHclAttributes() {
const attrs = {
access_level: {
value: cdktf.stringToHclTerraform(this._accessLevel),
isBlock: false,
type: "simple",
storageClassType: "string",
},
id: {
value: cdktf.stringToHclTerraform(this._id),
isBlock: false,
type: "simple",
storageClassType: "string",
},
ip_subnetworks: {
value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(this._ipSubnetworks),
isBlock: false,
type: "list",
storageClassType: "stringList",
},
members: {
value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(this._members),
isBlock: false,
type: "list",
storageClassType: "stringList",
},
negate: {
value: cdktf.booleanToHclTerraform(this._negate),
isBlock: false,
type: "simple",
storageClassType: "boolean",
},
regions: {
value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(this._regions),
isBlock: false,
type: "list",
storageClassType: "stringList",
},
required_access_levels: {
value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(this._requiredAccessLevels),
isBlock: false,
type: "list",
storageClassType: "stringList",
},
device_policy: {
value: accessContextManagerAccessLevelConditionDevicePolicyToHclTerraform(this._devicePolicy.internalValue),
isBlock: true,
type: "list",
storageClassType: "AccessContextManagerAccessLevelConditionDevicePolicyList",
},
timeouts: {
value: accessContextManagerAccessLevelConditionTimeoutsToHclTerraform(this._timeouts.internalValue),
isBlock: true,
type: "struct",
storageClassType: "AccessContextManagerAccessLevelConditionTimeouts",
},
vpc_network_sources: {
value: cdktf.listMapperHcl(accessContextManagerAccessLevelConditionVpcNetworkSourcesToHclTerraform, true)(this._vpcNetworkSources.internalValue),
isBlock: true,
type: "list",
storageClassType: "AccessContextManagerAccessLevelConditionVpcNetworkSourcesList",
},
};
// remove undefined attributes
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
}
exports.AccessContextManagerAccessLevelCondition = AccessContextManagerAccessLevelCondition;
_h = JSII_RTTI_SYMBOL_1;
AccessContextManagerAccessLevelCondition[_h] = { fqn: "@cdktf/provider-google.accessContextManagerAccessLevelCondition.AccessContextManagerAccessLevelCondition", version: "14.12.0" };
// =================
// STATIC PROPERTIES
// =================
AccessContextManagerAccessLevelCondition.tfResourceType = "google_access_context_manager_access_level_condition";
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWNjZXNzLWNvbnRleHQtbWFuYWdlci1hY2Nlc3MtbGV2ZWwtY29uZGl0aW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBU0EsK0JBQStCO0FBNEcvQixTQUFnQiw0RUFBNEUsQ0FBQyxNQUE4RjtJQUN6TCxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQUMsT0FBTyxNQUFNLENBQUM7SUFBQyxDQUFDO0lBQzVGLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDbkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxvSEFBb0gsQ0FBQyxDQUFDO0lBQ3hJLENBQUM7SUFDRCxPQUFPO1FBQ0wsZUFBZSxFQUFFLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxNQUFPLENBQUMsY0FBYyxDQUFDO1FBQ2hFLE9BQU8sRUFBRSxLQUFLLENBQUMsaUJBQWlCLENBQUMsTUFBTyxDQUFDLE1BQU0sQ0FBQztLQUNqRCxDQUFBO0FBQ0gsQ0FBQztBQVRELG9LQVNDO0FBR0QsU0FBZ0IsK0VBQStFLENBQUMsTUFBOEY7SUFDNUwsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUFDLE9BQU8sTUFBTSxDQUFDO0lBQUMsQ0FBQztJQUM1RixJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsb0hBQW9ILENBQUMsQ0FBQztJQUN4SSxDQUFDO0lBQ0QsTUFBTSxLQUFLLEdBQUc7UUFDWixlQUFlLEVBQUU7WUFDZixL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