@cdktf/provider-google
Version:
Prebuilt google Provider for Terraform CDK (cdktf)
1,222 lines • 226 kB
JavaScript
"use strict";
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
Object.defineProperty(exports, "__esModule", { value: true });
exports.BillingBudget = exports.BillingBudgetTimeoutsOutputReference = exports.billingBudgetTimeoutsToHclTerraform = exports.billingBudgetTimeoutsToTerraform = exports.BillingBudgetThresholdRulesList = exports.BillingBudgetThresholdRulesOutputReference = exports.billingBudgetThresholdRulesToHclTerraform = exports.billingBudgetThresholdRulesToTerraform = exports.BillingBudgetBudgetFilterOutputReference = exports.billingBudgetBudgetFilterToHclTerraform = exports.billingBudgetBudgetFilterToTerraform = exports.BillingBudgetBudgetFilterCustomPeriodOutputReference = exports.billingBudgetBudgetFilterCustomPeriodToHclTerraform = exports.billingBudgetBudgetFilterCustomPeriodToTerraform = exports.BillingBudgetBudgetFilterCustomPeriodStartDateOutputReference = exports.billingBudgetBudgetFilterCustomPeriodStartDateToHclTerraform = exports.billingBudgetBudgetFilterCustomPeriodStartDateToTerraform = exports.BillingBudgetBudgetFilterCustomPeriodEndDateOutputReference = exports.billingBudgetBudgetFilterCustomPeriodEndDateToHclTerraform = exports.billingBudgetBudgetFilterCustomPeriodEndDateToTerraform = exports.BillingBudgetAmountOutputReference = exports.billingBudgetAmountToHclTerraform = exports.billingBudgetAmountToTerraform = exports.BillingBudgetAmountSpecifiedAmountOutputReference = exports.billingBudgetAmountSpecifiedAmountToHclTerraform = exports.billingBudgetAmountSpecifiedAmountToTerraform = exports.BillingBudgetAllUpdatesRuleOutputReference = exports.billingBudgetAllUpdatesRuleToHclTerraform = exports.billingBudgetAllUpdatesRuleToTerraform = void 0;
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
const cdktf = require("cdktf");
function billingBudgetAllUpdatesRuleToTerraform(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 {
disable_default_iam_recipients: cdktf.booleanToTerraform(struct.disableDefaultIamRecipients),
enable_project_level_recipients: cdktf.booleanToTerraform(struct.enableProjectLevelRecipients),
monitoring_notification_channels: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.monitoringNotificationChannels),
pubsub_topic: cdktf.stringToTerraform(struct.pubsubTopic),
schema_version: cdktf.stringToTerraform(struct.schemaVersion),
};
}
exports.billingBudgetAllUpdatesRuleToTerraform = billingBudgetAllUpdatesRuleToTerraform;
function billingBudgetAllUpdatesRuleToHclTerraform(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 = {
disable_default_iam_recipients: {
value: cdktf.booleanToHclTerraform(struct.disableDefaultIamRecipients),
isBlock: false,
type: "simple",
storageClassType: "boolean",
},
enable_project_level_recipients: {
value: cdktf.booleanToHclTerraform(struct.enableProjectLevelRecipients),
isBlock: false,
type: "simple",
storageClassType: "boolean",
},
monitoring_notification_channels: {
value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.monitoringNotificationChannels),
isBlock: false,
type: "list",
storageClassType: "stringList",
},
pubsub_topic: {
value: cdktf.stringToHclTerraform(struct.pubsubTopic),
isBlock: false,
type: "simple",
storageClassType: "string",
},
schema_version: {
value: cdktf.stringToHclTerraform(struct.schemaVersion),
isBlock: false,
type: "simple",
storageClassType: "string",
},
};
// remove undefined attributes
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
exports.billingBudgetAllUpdatesRuleToHclTerraform = billingBudgetAllUpdatesRuleToHclTerraform;
class BillingBudgetAllUpdatesRuleOutputReference 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._disableDefaultIamRecipients !== undefined) {
hasAnyValues = true;
internalValueResult.disableDefaultIamRecipients = this._disableDefaultIamRecipients;
}
if (this._enableProjectLevelRecipients !== undefined) {
hasAnyValues = true;
internalValueResult.enableProjectLevelRecipients = this._enableProjectLevelRecipients;
}
if (this._monitoringNotificationChannels !== undefined) {
hasAnyValues = true;
internalValueResult.monitoringNotificationChannels = this._monitoringNotificationChannels;
}
if (this._pubsubTopic !== undefined) {
hasAnyValues = true;
internalValueResult.pubsubTopic = this._pubsubTopic;
}
if (this._schemaVersion !== undefined) {
hasAnyValues = true;
internalValueResult.schemaVersion = this._schemaVersion;
}
return hasAnyValues ? internalValueResult : undefined;
}
set internalValue(value) {
if (value === undefined) {
this.isEmptyObject = false;
this._disableDefaultIamRecipients = undefined;
this._enableProjectLevelRecipients = undefined;
this._monitoringNotificationChannels = undefined;
this._pubsubTopic = undefined;
this._schemaVersion = undefined;
}
else {
this.isEmptyObject = Object.keys(value).length === 0;
this._disableDefaultIamRecipients = value.disableDefaultIamRecipients;
this._enableProjectLevelRecipients = value.enableProjectLevelRecipients;
this._monitoringNotificationChannels = value.monitoringNotificationChannels;
this._pubsubTopic = value.pubsubTopic;
this._schemaVersion = value.schemaVersion;
}
}
get disableDefaultIamRecipients() {
return this.getBooleanAttribute('disable_default_iam_recipients');
}
set disableDefaultIamRecipients(value) {
this._disableDefaultIamRecipients = value;
}
resetDisableDefaultIamRecipients() {
this._disableDefaultIamRecipients = undefined;
}
// Temporarily expose input value. Use with caution.
get disableDefaultIamRecipientsInput() {
return this._disableDefaultIamRecipients;
}
get enableProjectLevelRecipients() {
return this.getBooleanAttribute('enable_project_level_recipients');
}
set enableProjectLevelRecipients(value) {
this._enableProjectLevelRecipients = value;
}
resetEnableProjectLevelRecipients() {
this._enableProjectLevelRecipients = undefined;
}
// Temporarily expose input value. Use with caution.
get enableProjectLevelRecipientsInput() {
return this._enableProjectLevelRecipients;
}
get monitoringNotificationChannels() {
return this.getListAttribute('monitoring_notification_channels');
}
set monitoringNotificationChannels(value) {
this._monitoringNotificationChannels = value;
}
resetMonitoringNotificationChannels() {
this._monitoringNotificationChannels = undefined;
}
// Temporarily expose input value. Use with caution.
get monitoringNotificationChannelsInput() {
return this._monitoringNotificationChannels;
}
get pubsubTopic() {
return this.getStringAttribute('pubsub_topic');
}
set pubsubTopic(value) {
this._pubsubTopic = value;
}
resetPubsubTopic() {
this._pubsubTopic = undefined;
}
// Temporarily expose input value. Use with caution.
get pubsubTopicInput() {
return this._pubsubTopic;
}
get schemaVersion() {
return this.getStringAttribute('schema_version');
}
set schemaVersion(value) {
this._schemaVersion = value;
}
resetSchemaVersion() {
this._schemaVersion = undefined;
}
// Temporarily expose input value. Use with caution.
get schemaVersionInput() {
return this._schemaVersion;
}
}
exports.BillingBudgetAllUpdatesRuleOutputReference = BillingBudgetAllUpdatesRuleOutputReference;
_a = JSII_RTTI_SYMBOL_1;
BillingBudgetAllUpdatesRuleOutputReference[_a] = { fqn: "@cdktf/provider-google.billingBudget.BillingBudgetAllUpdatesRuleOutputReference", version: "14.12.0" };
function billingBudgetAmountSpecifiedAmountToTerraform(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 {
currency_code: cdktf.stringToTerraform(struct.currencyCode),
nanos: cdktf.numberToTerraform(struct.nanos),
units: cdktf.stringToTerraform(struct.units),
};
}
exports.billingBudgetAmountSpecifiedAmountToTerraform = billingBudgetAmountSpecifiedAmountToTerraform;
function billingBudgetAmountSpecifiedAmountToHclTerraform(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 = {
currency_code: {
value: cdktf.stringToHclTerraform(struct.currencyCode),
isBlock: false,
type: "simple",
storageClassType: "string",
},
nanos: {
value: cdktf.numberToHclTerraform(struct.nanos),
isBlock: false,
type: "simple",
storageClassType: "number",
},
units: {
value: cdktf.stringToHclTerraform(struct.units),
isBlock: false,
type: "simple",
storageClassType: "string",
},
};
// remove undefined attributes
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
exports.billingBudgetAmountSpecifiedAmountToHclTerraform = billingBudgetAmountSpecifiedAmountToHclTerraform;
class BillingBudgetAmountSpecifiedAmountOutputReference 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._currencyCode !== undefined) {
hasAnyValues = true;
internalValueResult.currencyCode = this._currencyCode;
}
if (this._nanos !== undefined) {
hasAnyValues = true;
internalValueResult.nanos = this._nanos;
}
if (this._units !== undefined) {
hasAnyValues = true;
internalValueResult.units = this._units;
}
return hasAnyValues ? internalValueResult : undefined;
}
set internalValue(value) {
if (value === undefined) {
this.isEmptyObject = false;
this._currencyCode = undefined;
this._nanos = undefined;
this._units = undefined;
}
else {
this.isEmptyObject = Object.keys(value).length === 0;
this._currencyCode = value.currencyCode;
this._nanos = value.nanos;
this._units = value.units;
}
}
get currencyCode() {
return this.getStringAttribute('currency_code');
}
set currencyCode(value) {
this._currencyCode = value;
}
resetCurrencyCode() {
this._currencyCode = undefined;
}
// Temporarily expose input value. Use with caution.
get currencyCodeInput() {
return this._currencyCode;
}
get nanos() {
return this.getNumberAttribute('nanos');
}
set nanos(value) {
this._nanos = value;
}
resetNanos() {
this._nanos = undefined;
}
// Temporarily expose input value. Use with caution.
get nanosInput() {
return this._nanos;
}
get units() {
return this.getStringAttribute('units');
}
set units(value) {
this._units = value;
}
resetUnits() {
this._units = undefined;
}
// Temporarily expose input value. Use with caution.
get unitsInput() {
return this._units;
}
}
exports.BillingBudgetAmountSpecifiedAmountOutputReference = BillingBudgetAmountSpecifiedAmountOutputReference;
_b = JSII_RTTI_SYMBOL_1;
BillingBudgetAmountSpecifiedAmountOutputReference[_b] = { fqn: "@cdktf/provider-google.billingBudget.BillingBudgetAmountSpecifiedAmountOutputReference", version: "14.12.0" };
function billingBudgetAmountToTerraform(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 {
last_period_amount: cdktf.booleanToTerraform(struct.lastPeriodAmount),
specified_amount: billingBudgetAmountSpecifiedAmountToTerraform(struct.specifiedAmount),
};
}
exports.billingBudgetAmountToTerraform = billingBudgetAmountToTerraform;
function billingBudgetAmountToHclTerraform(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 = {
last_period_amount: {
value: cdktf.booleanToHclTerraform(struct.lastPeriodAmount),
isBlock: false,
type: "simple",
storageClassType: "boolean",
},
specified_amount: {
value: billingBudgetAmountSpecifiedAmountToHclTerraform(struct.specifiedAmount),
isBlock: true,
type: "list",
storageClassType: "BillingBudgetAmountSpecifiedAmountList",
},
};
// remove undefined attributes
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
exports.billingBudgetAmountToHclTerraform = billingBudgetAmountToHclTerraform;
class BillingBudgetAmountOutputReference 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;
// specified_amount - computed: false, optional: true, required: false
this._specifiedAmount = new BillingBudgetAmountSpecifiedAmountOutputReference(this, "specified_amount");
}
get internalValue() {
let hasAnyValues = this.isEmptyObject;
const internalValueResult = {};
if (this._lastPeriodAmount !== undefined) {
hasAnyValues = true;
internalValueResult.lastPeriodAmount = this._lastPeriodAmount;
}
if (this._specifiedAmount?.internalValue !== undefined) {
hasAnyValues = true;
internalValueResult.specifiedAmount = this._specifiedAmount?.internalValue;
}
return hasAnyValues ? internalValueResult : undefined;
}
set internalValue(value) {
if (value === undefined) {
this.isEmptyObject = false;
this._lastPeriodAmount = undefined;
this._specifiedAmount.internalValue = undefined;
}
else {
this.isEmptyObject = Object.keys(value).length === 0;
this._lastPeriodAmount = value.lastPeriodAmount;
this._specifiedAmount.internalValue = value.specifiedAmount;
}
}
get lastPeriodAmount() {
return this.getBooleanAttribute('last_period_amount');
}
set lastPeriodAmount(value) {
this._lastPeriodAmount = value;
}
resetLastPeriodAmount() {
this._lastPeriodAmount = undefined;
}
// Temporarily expose input value. Use with caution.
get lastPeriodAmountInput() {
return this._lastPeriodAmount;
}
get specifiedAmount() {
return this._specifiedAmount;
}
putSpecifiedAmount(value) {
this._specifiedAmount.internalValue = value;
}
resetSpecifiedAmount() {
this._specifiedAmount.internalValue = undefined;
}
// Temporarily expose input value. Use with caution.
get specifiedAmountInput() {
return this._specifiedAmount.internalValue;
}
}
exports.BillingBudgetAmountOutputReference = BillingBudgetAmountOutputReference;
_c = JSII_RTTI_SYMBOL_1;
BillingBudgetAmountOutputReference[_c] = { fqn: "@cdktf/provider-google.billingBudget.BillingBudgetAmountOutputReference", version: "14.12.0" };
function billingBudgetBudgetFilterCustomPeriodEndDateToTerraform(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 {
day: cdktf.numberToTerraform(struct.day),
month: cdktf.numberToTerraform(struct.month),
year: cdktf.numberToTerraform(struct.year),
};
}
exports.billingBudgetBudgetFilterCustomPeriodEndDateToTerraform = billingBudgetBudgetFilterCustomPeriodEndDateToTerraform;
function billingBudgetBudgetFilterCustomPeriodEndDateToHclTerraform(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 = {
day: {
value: cdktf.numberToHclTerraform(struct.day),
isBlock: false,
type: "simple",
storageClassType: "number",
},
month: {
value: cdktf.numberToHclTerraform(struct.month),
isBlock: false,
type: "simple",
storageClassType: "number",
},
year: {
value: cdktf.numberToHclTerraform(struct.year),
isBlock: false,
type: "simple",
storageClassType: "number",
},
};
// remove undefined attributes
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
exports.billingBudgetBudgetFilterCustomPeriodEndDateToHclTerraform = billingBudgetBudgetFilterCustomPeriodEndDateToHclTerraform;
class BillingBudgetBudgetFilterCustomPeriodEndDateOutputReference 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._day !== undefined) {
hasAnyValues = true;
internalValueResult.day = this._day;
}
if (this._month !== undefined) {
hasAnyValues = true;
internalValueResult.month = this._month;
}
if (this._year !== undefined) {
hasAnyValues = true;
internalValueResult.year = this._year;
}
return hasAnyValues ? internalValueResult : undefined;
}
set internalValue(value) {
if (value === undefined) {
this.isEmptyObject = false;
this._day = undefined;
this._month = undefined;
this._year = undefined;
}
else {
this.isEmptyObject = Object.keys(value).length === 0;
this._day = value.day;
this._month = value.month;
this._year = value.year;
}
}
get day() {
return this.getNumberAttribute('day');
}
set day(value) {
this._day = value;
}
// Temporarily expose input value. Use with caution.
get dayInput() {
return this._day;
}
get month() {
return this.getNumberAttribute('month');
}
set month(value) {
this._month = value;
}
// Temporarily expose input value. Use with caution.
get monthInput() {
return this._month;
}
get year() {
return this.getNumberAttribute('year');
}
set year(value) {
this._year = value;
}
// Temporarily expose input value. Use with caution.
get yearInput() {
return this._year;
}
}
exports.BillingBudgetBudgetFilterCustomPeriodEndDateOutputReference = BillingBudgetBudgetFilterCustomPeriodEndDateOutputReference;
_d = JSII_RTTI_SYMBOL_1;
BillingBudgetBudgetFilterCustomPeriodEndDateOutputReference[_d] = { fqn: "@cdktf/provider-google.billingBudget.BillingBudgetBudgetFilterCustomPeriodEndDateOutputReference", version: "14.12.0" };
function billingBudgetBudgetFilterCustomPeriodStartDateToTerraform(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 {
day: cdktf.numberToTerraform(struct.day),
month: cdktf.numberToTerraform(struct.month),
year: cdktf.numberToTerraform(struct.year),
};
}
exports.billingBudgetBudgetFilterCustomPeriodStartDateToTerraform = billingBudgetBudgetFilterCustomPeriodStartDateToTerraform;
function billingBudgetBudgetFilterCustomPeriodStartDateToHclTerraform(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 = {
day: {
value: cdktf.numberToHclTerraform(struct.day),
isBlock: false,
type: "simple",
storageClassType: "number",
},
month: {
value: cdktf.numberToHclTerraform(struct.month),
isBlock: false,
type: "simple",
storageClassType: "number",
},
year: {
value: cdktf.numberToHclTerraform(struct.year),
isBlock: false,
type: "simple",
storageClassType: "number",
},
};
// remove undefined attributes
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
exports.billingBudgetBudgetFilterCustomPeriodStartDateToHclTerraform = billingBudgetBudgetFilterCustomPeriodStartDateToHclTerraform;
class BillingBudgetBudgetFilterCustomPeriodStartDateOutputReference 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._day !== undefined) {
hasAnyValues = true;
internalValueResult.day = this._day;
}
if (this._month !== undefined) {
hasAnyValues = true;
internalValueResult.month = this._month;
}
if (this._year !== undefined) {
hasAnyValues = true;
internalValueResult.year = this._year;
}
return hasAnyValues ? internalValueResult : undefined;
}
set internalValue(value) {
if (value === undefined) {
this.isEmptyObject = false;
this._day = undefined;
this._month = undefined;
this._year = undefined;
}
else {
this.isEmptyObject = Object.keys(value).length === 0;
this._day = value.day;
this._month = value.month;
this._year = value.year;
}
}
get day() {
return this.getNumberAttribute('day');
}
set day(value) {
this._day = value;
}
// Temporarily expose input value. Use with caution.
get dayInput() {
return this._day;
}
get month() {
return this.getNumberAttribute('month');
}
set month(value) {
this._month = value;
}
// Temporarily expose input value. Use with caution.
get monthInput() {
return this._month;
}
get year() {
return this.getNumberAttribute('year');
}
set year(value) {
this._year = value;
}
// Temporarily expose input value. Use with caution.
get yearInput() {
return this._year;
}
}
exports.BillingBudgetBudgetFilterCustomPeriodStartDateOutputReference = BillingBudgetBudgetFilterCustomPeriodStartDateOutputReference;
_e = JSII_RTTI_SYMBOL_1;
BillingBudgetBudgetFilterCustomPeriodStartDateOutputReference[_e] = { fqn: "@cdktf/provider-google.billingBudget.BillingBudgetBudgetFilterCustomPeriodStartDateOutputReference", version: "14.12.0" };
function billingBudgetBudgetFilterCustomPeriodToTerraform(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 {
end_date: billingBudgetBudgetFilterCustomPeriodEndDateToTerraform(struct.endDate),
start_date: billingBudgetBudgetFilterCustomPeriodStartDateToTerraform(struct.startDate),
};
}
exports.billingBudgetBudgetFilterCustomPeriodToTerraform = billingBudgetBudgetFilterCustomPeriodToTerraform;
function billingBudgetBudgetFilterCustomPeriodToHclTerraform(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 = {
end_date: {
value: billingBudgetBudgetFilterCustomPeriodEndDateToHclTerraform(struct.endDate),
isBlock: true,
type: "list",
storageClassType: "BillingBudgetBudgetFilterCustomPeriodEndDateList",
},
start_date: {
value: billingBudgetBudgetFilterCustomPeriodStartDateToHclTerraform(struct.startDate),
isBlock: true,
type: "list",
storageClassType: "BillingBudgetBudgetFilterCustomPeriodStartDateList",
},
};
// remove undefined attributes
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
exports.billingBudgetBudgetFilterCustomPeriodToHclTerraform = billingBudgetBudgetFilterCustomPeriodToHclTerraform;
class BillingBudgetBudgetFilterCustomPeriodOutputReference 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;
// end_date - computed: false, optional: true, required: false
this._endDate = new BillingBudgetBudgetFilterCustomPeriodEndDateOutputReference(this, "end_date");
// start_date - computed: false, optional: false, required: true
this._startDate = new BillingBudgetBudgetFilterCustomPeriodStartDateOutputReference(this, "start_date");
}
get internalValue() {
let hasAnyValues = this.isEmptyObject;
const internalValueResult = {};
if (this._endDate?.internalValue !== undefined) {
hasAnyValues = true;
internalValueResult.endDate = this._endDate?.internalValue;
}
if (this._startDate?.internalValue !== undefined) {
hasAnyValues = true;
internalValueResult.startDate = this._startDate?.internalValue;
}
return hasAnyValues ? internalValueResult : undefined;
}
set internalValue(value) {
if (value === undefined) {
this.isEmptyObject = false;
this._endDate.internalValue = undefined;
this._startDate.internalValue = undefined;
}
else {
this.isEmptyObject = Object.keys(value).length === 0;
this._endDate.internalValue = value.endDate;
this._startDate.internalValue = value.startDate;
}
}
get endDate() {
return this._endDate;
}
putEndDate(value) {
this._endDate.internalValue = value;
}
resetEndDate() {
this._endDate.internalValue = undefined;
}
// Temporarily expose input value. Use with caution.
get endDateInput() {
return this._endDate.internalValue;
}
get startDate() {
return this._startDate;
}
putStartDate(value) {
this._startDate.internalValue = value;
}
// Temporarily expose input value. Use with caution.
get startDateInput() {
return this._startDate.internalValue;
}
}
exports.BillingBudgetBudgetFilterCustomPeriodOutputReference = BillingBudgetBudgetFilterCustomPeriodOutputReference;
_f = JSII_RTTI_SYMBOL_1;
BillingBudgetBudgetFilterCustomPeriodOutputReference[_f] = { fqn: "@cdktf/provider-google.billingBudget.BillingBudgetBudgetFilterCustomPeriodOutputReference", version: "14.12.0" };
function billingBudgetBudgetFilterToTerraform(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 {
calendar_period: cdktf.stringToTerraform(struct.calendarPeriod),
credit_types: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.creditTypes),
credit_types_treatment: cdktf.stringToTerraform(struct.creditTypesTreatment),
labels: cdktf.hashMapper(cdktf.stringToTerraform)(struct.labels),
projects: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.projects),
resource_ancestors: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.resourceAncestors),
services: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.services),
subaccounts: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.subaccounts),
custom_period: billingBudgetBudgetFilterCustomPeriodToTerraform(struct.customPeriod),
};
}
exports.billingBudgetBudgetFilterToTerraform = billingBudgetBudgetFilterToTerraform;
function billingBudgetBudgetFilterToHclTerraform(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 = {
calendar_period: {
value: cdktf.stringToHclTerraform(struct.calendarPeriod),
isBlock: false,
type: "simple",
storageClassType: "string",
},
credit_types: {
value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.creditTypes),
isBlock: false,
type: "list",
storageClassType: "stringList",
},
credit_types_treatment: {
value: cdktf.stringToHclTerraform(struct.creditTypesTreatment),
isBlock: false,
type: "simple",
storageClassType: "string",
},
labels: {
value: cdktf.hashMapperHcl(cdktf.stringToHclTerraform)(struct.labels),
isBlock: false,
type: "map",
storageClassType: "stringMap",
},
projects: {
value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.projects),
isBlock: false,
type: "set",
storageClassType: "stringList",
},
resource_ancestors: {
value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.resourceAncestors),
isBlock: false,
type: "set",
storageClassType: "stringList",
},
services: {
value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.services),
isBlock: false,
type: "list",
storageClassType: "stringList",
},
subaccounts: {
value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.subaccounts),
isBlock: false,
type: "list",
storageClassType: "stringList",
},
custom_period: {
value: billingBudgetBudgetFilterCustomPeriodToHclTerraform(struct.customPeriod),
isBlock: true,
type: "list",
storageClassType: "BillingBudgetBudgetFilterCustomPeriodList",
},
};
// remove undefined attributes
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
exports.billingBudgetBudgetFilterToHclTerraform = billingBudgetBudgetFilterToHclTerraform;
class BillingBudgetBudgetFilterOutputReference 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;
// custom_period - computed: false, optional: true, required: false
this._customPeriod = new BillingBudgetBudgetFilterCustomPeriodOutputReference(this, "custom_period");
}
get internalValue() {
let hasAnyValues = this.isEmptyObject;
const internalValueResult = {};
if (this._calendarPeriod !== undefined) {
hasAnyValues = true;
internalValueResult.calendarPeriod = this._calendarPeriod;
}
if (this._creditTypes !== undefined) {
hasAnyValues = true;
internalValueResult.creditTypes = this._creditTypes;
}
if (this._creditTypesTreatment !== undefined) {
hasAnyValues = true;
internalValueResult.creditTypesTreatment = this._creditTypesTreatment;
}
if (this._labels !== undefined) {
hasAnyValues = true;
internalValueResult.labels = this._labels;
}
if (this._projects !== undefined) {
hasAnyValues = true;
internalValueResult.projects = this._projects;
}
if (this._resourceAncestors !== undefined) {
hasAnyValues = true;
internalValueResult.resourceAncestors = this._resourceAncestors;
}
if (this._services !== undefined) {
hasAnyValues = true;
internalValueResult.services = this._services;
}
if (this._subaccounts !== undefined) {
hasAnyValues = true;
internalValueResult.subaccounts = this._subaccounts;
}
if (this._customPeriod?.internalValue !== undefined) {
hasAnyValues = true;
internalValueResult.customPeriod = this._customPeriod?.internalValue;
}
return hasAnyValues ? internalValueResult : undefined;
}
set internalValue(value) {
if (value === undefined) {
this.isEmptyObject = false;
this._calendarPeriod = undefined;
this._creditTypes = undefined;
this._creditTypesTreatment = undefined;
this._labels = undefined;
this._projects = undefined;
this._resourceAncestors = undefined;
this._services = undefined;
this._subaccounts = undefined;
this._customPeriod.internalValue = undefined;
}
else {
this.isEmptyObject = Object.keys(value).length === 0;
this._calendarPeriod = value.calendarPeriod;
this._creditTypes = value.creditTypes;
this._creditTypesTreatment = value.creditTypesTreatment;
this._labels = value.labels;
this._projects = value.projects;
this._resourceAncestors = value.resourceAncestors;
this._services = value.services;
this._subaccounts = value.subaccounts;
this._customPeriod.internalValue = value.customPeriod;
}
}
get calendarPeriod() {
return this.getStringAttribute('calendar_period');
}
set calendarPeriod(value) {
this._calendarPeriod = value;
}
resetCalendarPeriod() {
this._calendarPeriod = undefined;
}
// Temporarily expose input value. Use with caution.
get calendarPeriodInput() {
return this._calendarPeriod;
}
get creditTypes() {
return this.getListAttribute('credit_types');
}
set creditTypes(value) {
this._creditTypes = value;
}
resetCreditTypes() {
this._creditTypes = undefined;
}
// Temporarily expose input value. Use with caution.
get creditTypesInput() {
return this._creditTypes;
}
get creditTypesTreatment() {
return this.getStringAttribute('credit_types_treatment');
}
set creditTypesTreatment(value) {
this._creditTypesTreatment = value;
}
resetCreditTypesTreatment() {
this._creditTypesTreatment = undefined;
}
// Temporarily expose input value. Use with caution.
get creditTypesTreatmentInput() {
return this._creditTypesTreatment;
}
get labels() {
return this.getStringMapAttribute('labels');
}
set labels(value) {
this._labels = value;
}
resetLabels() {
this._labels = undefined;
}
// Temporarily expose input value. Use with caution.
get labelsInput() {
return this._labels;
}
get projects() {
return cdktf.Fn.tolist(this.getListAttribute('projects'));
}
set projects(value) {
this._projects = value;
}
resetProjects() {
this._projects = undefined;
}
// Temporarily expose input value. Use with caution.
get projectsInput() {
return this._projects;
}
get resourceAncestors() {
return cdktf.Fn.tolist(this.getListAttribute('resource_ancestors'));
}
set resourceAncestors(value) {
this._resourceAncestors = value;
}
resetResourceAncestors() {
this._resourceAncestors = undefined;
}
// Temporarily expose input value. Use with caution.
get resourceAncestorsInput() {
return this._resourceAncestors;
}
get services() {
return this.getListAttribute('services');
}
set services(value) {
this._services = value;
}
resetServices() {
this._services = undefined;
}
// Temporarily expose input value. Use with caution.
get servicesInput() {
return this._services;
}
get subaccounts() {
return this.getListAttribute('subaccounts');
}
set subaccounts(value) {
this._subaccounts = value;
}
resetSubaccounts() {
this._subaccounts = undefined;
}
// Temporarily expose input value. Use with caution.
get subaccountsInput() {
return this._subaccounts;
}
get customPeriod() {
return this._customPeriod;
}
putCustomPeriod(value) {
this._customPeriod.internalValue = value;
}
resetCustomPeriod() {
this._customPeriod.internalValue = undefined;
}
// Temporarily expose input value. Use with caution.
get customPeriodInput() {
return this._customPeriod.internalValue;
}
}
exports.BillingBudgetBudgetFilterOutputReference = BillingBudgetBudgetFilterOutputReference;
_g = JSII_RTTI_SYMBOL_1;
BillingBudgetBudgetFilterOutputReference[_g] = { fqn: "@cdktf/provider-google.billingBudget.BillingBudgetBudgetFilterOutputReference", version: "14.12.0" };
function billingBudgetThresholdRulesToTerraform(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 {
spend_basis: cdktf.stringToTerraform(struct.spendBasis),
threshold_percent: cdktf.numberToTerraform(struct.thresholdPercent),
};
}
exports.billingBudgetThresholdRulesToTerraform = billingBudgetThresholdRulesToTerraform;
function billingBudgetThresholdRulesToHclTerraform(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 = {
spend_basis: {
value: cdktf.stringToHclTerraform(struct.spendBasis),
isBlock: false,
type: "simple",
storageClassType: "string",
},
threshold_percent: {
value: cdktf.numberToHclTerraform(struct.thresholdPercent),
isBlock: false,
type: "simple",
storageClassType: "number",
},
};
// remove undefined attributes
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
exports.billingBudgetThresholdRulesToHclTerraform = billingBudgetThresholdRulesToHclTerraform;
class BillingBudgetThresholdRulesOutputReference 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._spendBasis !== undefined) {
hasAnyValues = true;
internalValueResult.spendBasis = this._spendBasis;
}
if (this._thresholdPercent !== undefined) {
hasAnyValues = true;
internalValueResult.thresholdPercent = this._thresholdPercent;
}
return hasAnyValues ? internalValueResult : undefined;
}
set internalValue(value) {
if (value === undefined) {
this.isEmptyObject = false;
this.resolvableValue = undefined;
this._spendBasis = undefined;
this._thresholdPercent = 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._spendBasis = value.spendBasis;
this._thresholdPercent = value.thresholdPercent;
}
}
get spendBasis() {
return this.getStringAttribute('spend_basis');
}
set spendBasis(value) {
this._spendBasis = value;
}
resetSpendBasis() {
this._spendBasis = undefined;
}
// Temporarily expose input value. Use with caution.
get spendBasisInput() {
return this._spendBasis;
}
get thresholdPercent() {
return this.getNumberAttribute('threshold_percent');
}
set thresholdPercent(value) {
this._thresholdPercent = value;
}
// Temporarily expose input value. Use with caution.
get thresholdPercentInput() {
return this._thresholdPercent;
}
}
exports.BillingBudgetThresholdRulesOutputReference = BillingBudgetThresholdRulesOutputReference;
_h = JSII_RTTI_SYMBOL_1;
BillingBudgetThresholdRulesOutputReference[_h] = { fqn: "@cdktf/provider-google.billingBudget.BillingBudgetThresholdRulesOutputReference", version: "14.12.0" };
class BillingBudgetThresholdRulesList 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 BillingBudgetThresholdRulesOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet);
}
}
exports.BillingBudgetThresholdRulesList = BillingBudgetThresholdRulesList;
_j = JSII_RTTI_SYMBOL_1;
BillingBudgetThresholdRulesList[_j] = { fqn: "@cdktf/provider-google.billingBudget.BillingBudgetThresholdRulesList", version: "14.12.0" };
function billingBudgetTimeoutsToTerraform(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),
update: cdktf.stringToTerraform(struct.update),
};
}
exports.billingBudgetTimeoutsToTerraform = billingBudgetTimeoutsToTerraform;
function billingBudgetTimeoutsToHclTerraform(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",
},
update: {
value: cdktf.stringToHclTerraform(struct.update),
isBlock: false,
type: "simple",
storageClassType: "string",
},
};
// remove undefined attributes
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
exports.billingBudgetT