UNPKG

@cdktf/provider-google

Version:

Prebuilt google Provider for Terraform CDK (cdktf)

1,222 lines 226 kB
"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