@cdktf/provider-google
Version:
Prebuilt google Provider for Terraform CDK (cdktf)
950 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.AccessContextManagerAccessLevelConditionVpcNetworkSourcesVpcSubnetworkOutputReference = exports.AccessContextManagerAccessLevelConditionTimeoutsOutputReference = exports.AccessContextManagerAccessLevelConditionDevicePolicyOutputReference = exports.AccessContextManagerAccessLevelConditionDevicePolicyOsConstraintsList = exports.AccessContextManagerAccessLevelConditionDevicePolicyOsConstraintsOutputReference = void 0;
exports.accessContextManagerAccessLevelConditionDevicePolicyOsConstraintsToTerraform = accessContextManagerAccessLevelConditionDevicePolicyOsConstraintsToTerraform;
exports.accessContextManagerAccessLevelConditionDevicePolicyOsConstraintsToHclTerraform = accessContextManagerAccessLevelConditionDevicePolicyOsConstraintsToHclTerraform;
exports.accessContextManagerAccessLevelConditionDevicePolicyToTerraform = accessContextManagerAccessLevelConditionDevicePolicyToTerraform;
exports.accessContextManagerAccessLevelConditionDevicePolicyToHclTerraform = accessContextManagerAccessLevelConditionDevicePolicyToHclTerraform;
exports.accessContextManagerAccessLevelConditionTimeoutsToTerraform = accessContextManagerAccessLevelConditionTimeoutsToTerraform;
exports.accessContextManagerAccessLevelConditionTimeoutsToHclTerraform = accessContextManagerAccessLevelConditionTimeoutsToHclTerraform;
exports.accessContextManagerAccessLevelConditionVpcNetworkSourcesVpcSubnetworkToTerraform = accessContextManagerAccessLevelConditionVpcNetworkSourcesVpcSubnetworkToTerraform;
exports.accessContextManagerAccessLevelConditionVpcNetworkSourcesVpcSubnetworkToHclTerraform = accessContextManagerAccessLevelConditionVpcNetworkSourcesVpcSubnetworkToHclTerraform;
exports.accessContextManagerAccessLevelConditionVpcNetworkSourcesToTerraform = accessContextManagerAccessLevelConditionVpcNetworkSourcesToTerraform;
exports.accessContextManagerAccessLevelConditionVpcNetworkSourcesToHclTerraform = accessContextManagerAccessLevelConditionVpcNetworkSourcesToHclTerraform;
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),
};
}
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));
}
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.35.1" };
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.35.1" };
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),
};
}
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));
}
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.35.1" };
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),
};
}
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));
}
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.35.1" };
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),
};
}
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));
}
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.35.1" };
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),
};
}
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));
}
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.35.1" };
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.35.1" };
/**
* Represents a {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/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.36.1/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.36.1/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.36.1',
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;
}
// access_policy_id - computed: true, optional: false, required: false
get accessPolicyId() {
return this.getStringAttribute('access_policy_id');
}
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.35.1" };
// =================
// STATIC PROPERTIES
// =================
AccessContextManagerAccessLevelCondition.tfResourceType = "google_access_context_manager_access_level_condition";
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWNjZXNzLWNvbnRleHQtbWFuYWdlci1hY2Nlc3MtbGV2ZWwtY29uZGl0aW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFxSEEsb0tBU0M7QUFHRCwwS0FzQkM7QUErSUQsMElBYUM7QUFHRCxnSkE4Q0M7QUEyS0Qsa0lBU0M7QUFHRCx3SUFzQkM7QUFpR0QsOEtBU0M7QUFHRCxvTEFzQkM7QUE4RUQsb0pBUUM7QUFHRCwwSkFnQkM7O0FBcHhCRCwrQkFBK0I7QUE0Ry9CLFNBQWdCLDRFQUE0RSxDQUFDLE1BQThGO0lBQ3pMLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFBQyxPQUFPLE1BQU0sQ0FBQztJQUFDLENBQUM7SUFDNUYsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLG9IQUFvSCxDQUFDLENBQUM7SUFDeEksQ0FBQztJQUNELE9BQU87UUFDTCxlQUFlLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixDQUFDLE1BQU8sQ0FBQyxjQUFjLENBQUM7UUFDaEUsT0FBTyxFQUFFLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxNQUFPLENBQUMsTUFBTSxDQUFDO0tBQ2pELENBQUE7QUFDSCxDQUFDO0FBR0QsU0FBZ0IsK0VBQStFLENBQUMsTUFBOEY7SUFDNUwsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUFDLE9BQU8sTUFBTSxDQUFDO0lBQUMsQ0FBQztJQUM1RixJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFN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