UNPKG

@cdktf/provider-google

Version:

Prebuilt google Provider for Terraform CDK (cdktf)

982 lines 141 kB
"use strict"; var _a, _b, _c, _d, _e, _f, _g; Object.defineProperty(exports, "__esModule", { value: true }); exports.BackupDrBackupPlan = exports.BackupDrBackupPlanTimeoutsOutputReference = exports.BackupDrBackupPlanBackupRulesList = exports.BackupDrBackupPlanBackupRulesOutputReference = exports.BackupDrBackupPlanBackupRulesStandardScheduleOutputReference = exports.BackupDrBackupPlanBackupRulesStandardScheduleWeekDayOfMonthOutputReference = exports.BackupDrBackupPlanBackupRulesStandardScheduleBackupWindowOutputReference = void 0; exports.backupDrBackupPlanBackupRulesStandardScheduleBackupWindowToTerraform = backupDrBackupPlanBackupRulesStandardScheduleBackupWindowToTerraform; exports.backupDrBackupPlanBackupRulesStandardScheduleBackupWindowToHclTerraform = backupDrBackupPlanBackupRulesStandardScheduleBackupWindowToHclTerraform; exports.backupDrBackupPlanBackupRulesStandardScheduleWeekDayOfMonthToTerraform = backupDrBackupPlanBackupRulesStandardScheduleWeekDayOfMonthToTerraform; exports.backupDrBackupPlanBackupRulesStandardScheduleWeekDayOfMonthToHclTerraform = backupDrBackupPlanBackupRulesStandardScheduleWeekDayOfMonthToHclTerraform; exports.backupDrBackupPlanBackupRulesStandardScheduleToTerraform = backupDrBackupPlanBackupRulesStandardScheduleToTerraform; exports.backupDrBackupPlanBackupRulesStandardScheduleToHclTerraform = backupDrBackupPlanBackupRulesStandardScheduleToHclTerraform; exports.backupDrBackupPlanBackupRulesToTerraform = backupDrBackupPlanBackupRulesToTerraform; exports.backupDrBackupPlanBackupRulesToHclTerraform = backupDrBackupPlanBackupRulesToHclTerraform; exports.backupDrBackupPlanTimeoutsToTerraform = backupDrBackupPlanTimeoutsToTerraform; exports.backupDrBackupPlanTimeoutsToHclTerraform = backupDrBackupPlanTimeoutsToHclTerraform; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const cdktf = require("cdktf"); function backupDrBackupPlanBackupRulesStandardScheduleBackupWindowToTerraform(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_hour_of_day: cdktf.numberToTerraform(struct.endHourOfDay), start_hour_of_day: cdktf.numberToTerraform(struct.startHourOfDay), }; } function backupDrBackupPlanBackupRulesStandardScheduleBackupWindowToHclTerraform(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_hour_of_day: { value: cdktf.numberToHclTerraform(struct.endHourOfDay), isBlock: false, type: "simple", storageClassType: "number", }, start_hour_of_day: { value: cdktf.numberToHclTerraform(struct.startHourOfDay), isBlock: false, type: "simple", storageClassType: "number", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class BackupDrBackupPlanBackupRulesStandardScheduleBackupWindowOutputReference 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._endHourOfDay !== undefined) { hasAnyValues = true; internalValueResult.endHourOfDay = this._endHourOfDay; } if (this._startHourOfDay !== undefined) { hasAnyValues = true; internalValueResult.startHourOfDay = this._startHourOfDay; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._endHourOfDay = undefined; this._startHourOfDay = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._endHourOfDay = value.endHourOfDay; this._startHourOfDay = value.startHourOfDay; } } get endHourOfDay() { return this.getNumberAttribute('end_hour_of_day'); } set endHourOfDay(value) { this._endHourOfDay = value; } resetEndHourOfDay() { this._endHourOfDay = undefined; } // Temporarily expose input value. Use with caution. get endHourOfDayInput() { return this._endHourOfDay; } get startHourOfDay() { return this.getNumberAttribute('start_hour_of_day'); } set startHourOfDay(value) { this._startHourOfDay = value; } // Temporarily expose input value. Use with caution. get startHourOfDayInput() { return this._startHourOfDay; } } exports.BackupDrBackupPlanBackupRulesStandardScheduleBackupWindowOutputReference = BackupDrBackupPlanBackupRulesStandardScheduleBackupWindowOutputReference; _a = JSII_RTTI_SYMBOL_1; BackupDrBackupPlanBackupRulesStandardScheduleBackupWindowOutputReference[_a] = { fqn: "@cdktf/provider-google.backupDrBackupPlan.BackupDrBackupPlanBackupRulesStandardScheduleBackupWindowOutputReference", version: "14.35.1" }; function backupDrBackupPlanBackupRulesStandardScheduleWeekDayOfMonthToTerraform(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_of_week: cdktf.stringToTerraform(struct.dayOfWeek), week_of_month: cdktf.stringToTerraform(struct.weekOfMonth), }; } function backupDrBackupPlanBackupRulesStandardScheduleWeekDayOfMonthToHclTerraform(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_of_week: { value: cdktf.stringToHclTerraform(struct.dayOfWeek), isBlock: false, type: "simple", storageClassType: "string", }, week_of_month: { value: cdktf.stringToHclTerraform(struct.weekOfMonth), isBlock: false, type: "simple", storageClassType: "string", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class BackupDrBackupPlanBackupRulesStandardScheduleWeekDayOfMonthOutputReference 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._dayOfWeek !== undefined) { hasAnyValues = true; internalValueResult.dayOfWeek = this._dayOfWeek; } if (this._weekOfMonth !== undefined) { hasAnyValues = true; internalValueResult.weekOfMonth = this._weekOfMonth; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._dayOfWeek = undefined; this._weekOfMonth = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._dayOfWeek = value.dayOfWeek; this._weekOfMonth = value.weekOfMonth; } } get dayOfWeek() { return this.getStringAttribute('day_of_week'); } set dayOfWeek(value) { this._dayOfWeek = value; } // Temporarily expose input value. Use with caution. get dayOfWeekInput() { return this._dayOfWeek; } get weekOfMonth() { return this.getStringAttribute('week_of_month'); } set weekOfMonth(value) { this._weekOfMonth = value; } // Temporarily expose input value. Use with caution. get weekOfMonthInput() { return this._weekOfMonth; } } exports.BackupDrBackupPlanBackupRulesStandardScheduleWeekDayOfMonthOutputReference = BackupDrBackupPlanBackupRulesStandardScheduleWeekDayOfMonthOutputReference; _b = JSII_RTTI_SYMBOL_1; BackupDrBackupPlanBackupRulesStandardScheduleWeekDayOfMonthOutputReference[_b] = { fqn: "@cdktf/provider-google.backupDrBackupPlan.BackupDrBackupPlanBackupRulesStandardScheduleWeekDayOfMonthOutputReference", version: "14.35.1" }; function backupDrBackupPlanBackupRulesStandardScheduleToTerraform(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 { days_of_month: cdktf.listMapper(cdktf.numberToTerraform, false)(struct.daysOfMonth), days_of_week: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.daysOfWeek), hourly_frequency: cdktf.numberToTerraform(struct.hourlyFrequency), months: cdktf.listMapper(cdktf.stringToTerraform, false)(struct.months), recurrence_type: cdktf.stringToTerraform(struct.recurrenceType), time_zone: cdktf.stringToTerraform(struct.timeZone), backup_window: backupDrBackupPlanBackupRulesStandardScheduleBackupWindowToTerraform(struct.backupWindow), week_day_of_month: backupDrBackupPlanBackupRulesStandardScheduleWeekDayOfMonthToTerraform(struct.weekDayOfMonth), }; } function backupDrBackupPlanBackupRulesStandardScheduleToHclTerraform(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 = { days_of_month: { value: cdktf.listMapperHcl(cdktf.numberToHclTerraform, false)(struct.daysOfMonth), isBlock: false, type: "list", storageClassType: "numberList", }, days_of_week: { value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.daysOfWeek), isBlock: false, type: "list", storageClassType: "stringList", }, hourly_frequency: { value: cdktf.numberToHclTerraform(struct.hourlyFrequency), isBlock: false, type: "simple", storageClassType: "number", }, months: { value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(struct.months), isBlock: false, type: "list", storageClassType: "stringList", }, recurrence_type: { value: cdktf.stringToHclTerraform(struct.recurrenceType), isBlock: false, type: "simple", storageClassType: "string", }, time_zone: { value: cdktf.stringToHclTerraform(struct.timeZone), isBlock: false, type: "simple", storageClassType: "string", }, backup_window: { value: backupDrBackupPlanBackupRulesStandardScheduleBackupWindowToHclTerraform(struct.backupWindow), isBlock: true, type: "list", storageClassType: "BackupDrBackupPlanBackupRulesStandardScheduleBackupWindowList", }, week_day_of_month: { value: backupDrBackupPlanBackupRulesStandardScheduleWeekDayOfMonthToHclTerraform(struct.weekDayOfMonth), isBlock: true, type: "list", storageClassType: "BackupDrBackupPlanBackupRulesStandardScheduleWeekDayOfMonthList", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class BackupDrBackupPlanBackupRulesStandardScheduleOutputReference 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; // backup_window - computed: false, optional: true, required: false this._backupWindow = new BackupDrBackupPlanBackupRulesStandardScheduleBackupWindowOutputReference(this, "backup_window"); // week_day_of_month - computed: false, optional: true, required: false this._weekDayOfMonth = new BackupDrBackupPlanBackupRulesStandardScheduleWeekDayOfMonthOutputReference(this, "week_day_of_month"); } get internalValue() { let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; if (this._daysOfMonth !== undefined) { hasAnyValues = true; internalValueResult.daysOfMonth = this._daysOfMonth; } if (this._daysOfWeek !== undefined) { hasAnyValues = true; internalValueResult.daysOfWeek = this._daysOfWeek; } if (this._hourlyFrequency !== undefined) { hasAnyValues = true; internalValueResult.hourlyFrequency = this._hourlyFrequency; } if (this._months !== undefined) { hasAnyValues = true; internalValueResult.months = this._months; } if (this._recurrenceType !== undefined) { hasAnyValues = true; internalValueResult.recurrenceType = this._recurrenceType; } if (this._timeZone !== undefined) { hasAnyValues = true; internalValueResult.timeZone = this._timeZone; } if (this._backupWindow?.internalValue !== undefined) { hasAnyValues = true; internalValueResult.backupWindow = this._backupWindow?.internalValue; } if (this._weekDayOfMonth?.internalValue !== undefined) { hasAnyValues = true; internalValueResult.weekDayOfMonth = this._weekDayOfMonth?.internalValue; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this._daysOfMonth = undefined; this._daysOfWeek = undefined; this._hourlyFrequency = undefined; this._months = undefined; this._recurrenceType = undefined; this._timeZone = undefined; this._backupWindow.internalValue = undefined; this._weekDayOfMonth.internalValue = undefined; } else { this.isEmptyObject = Object.keys(value).length === 0; this._daysOfMonth = value.daysOfMonth; this._daysOfWeek = value.daysOfWeek; this._hourlyFrequency = value.hourlyFrequency; this._months = value.months; this._recurrenceType = value.recurrenceType; this._timeZone = value.timeZone; this._backupWindow.internalValue = value.backupWindow; this._weekDayOfMonth.internalValue = value.weekDayOfMonth; } } get daysOfMonth() { return this.getNumberListAttribute('days_of_month'); } set daysOfMonth(value) { this._daysOfMonth = value; } resetDaysOfMonth() { this._daysOfMonth = undefined; } // Temporarily expose input value. Use with caution. get daysOfMonthInput() { return this._daysOfMonth; } get daysOfWeek() { return this.getListAttribute('days_of_week'); } set daysOfWeek(value) { this._daysOfWeek = value; } resetDaysOfWeek() { this._daysOfWeek = undefined; } // Temporarily expose input value. Use with caution. get daysOfWeekInput() { return this._daysOfWeek; } get hourlyFrequency() { return this.getNumberAttribute('hourly_frequency'); } set hourlyFrequency(value) { this._hourlyFrequency = value; } resetHourlyFrequency() { this._hourlyFrequency = undefined; } // Temporarily expose input value. Use with caution. get hourlyFrequencyInput() { return this._hourlyFrequency; } get months() { return this.getListAttribute('months'); } set months(value) { this._months = value; } resetMonths() { this._months = undefined; } // Temporarily expose input value. Use with caution. get monthsInput() { return this._months; } get recurrenceType() { return this.getStringAttribute('recurrence_type'); } set recurrenceType(value) { this._recurrenceType = value; } // Temporarily expose input value. Use with caution. get recurrenceTypeInput() { return this._recurrenceType; } get timeZone() { return this.getStringAttribute('time_zone'); } set timeZone(value) { this._timeZone = value; } // Temporarily expose input value. Use with caution. get timeZoneInput() { return this._timeZone; } get backupWindow() { return this._backupWindow; } putBackupWindow(value) { this._backupWindow.internalValue = value; } resetBackupWindow() { this._backupWindow.internalValue = undefined; } // Temporarily expose input value. Use with caution. get backupWindowInput() { return this._backupWindow.internalValue; } get weekDayOfMonth() { return this._weekDayOfMonth; } putWeekDayOfMonth(value) { this._weekDayOfMonth.internalValue = value; } resetWeekDayOfMonth() { this._weekDayOfMonth.internalValue = undefined; } // Temporarily expose input value. Use with caution. get weekDayOfMonthInput() { return this._weekDayOfMonth.internalValue; } } exports.BackupDrBackupPlanBackupRulesStandardScheduleOutputReference = BackupDrBackupPlanBackupRulesStandardScheduleOutputReference; _c = JSII_RTTI_SYMBOL_1; BackupDrBackupPlanBackupRulesStandardScheduleOutputReference[_c] = { fqn: "@cdktf/provider-google.backupDrBackupPlan.BackupDrBackupPlanBackupRulesStandardScheduleOutputReference", version: "14.35.1" }; function backupDrBackupPlanBackupRulesToTerraform(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 { backup_retention_days: cdktf.numberToTerraform(struct.backupRetentionDays), rule_id: cdktf.stringToTerraform(struct.ruleId), standard_schedule: backupDrBackupPlanBackupRulesStandardScheduleToTerraform(struct.standardSchedule), }; } function backupDrBackupPlanBackupRulesToHclTerraform(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 = { backup_retention_days: { value: cdktf.numberToHclTerraform(struct.backupRetentionDays), isBlock: false, type: "simple", storageClassType: "number", }, rule_id: { value: cdktf.stringToHclTerraform(struct.ruleId), isBlock: false, type: "simple", storageClassType: "string", }, standard_schedule: { value: backupDrBackupPlanBackupRulesStandardScheduleToHclTerraform(struct.standardSchedule), isBlock: true, type: "list", storageClassType: "BackupDrBackupPlanBackupRulesStandardScheduleList", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } class BackupDrBackupPlanBackupRulesOutputReference 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; // standard_schedule - computed: false, optional: false, required: true this._standardSchedule = new BackupDrBackupPlanBackupRulesStandardScheduleOutputReference(this, "standard_schedule"); } get internalValue() { if (this.resolvableValue) { return this.resolvableValue; } let hasAnyValues = this.isEmptyObject; const internalValueResult = {}; if (this._backupRetentionDays !== undefined) { hasAnyValues = true; internalValueResult.backupRetentionDays = this._backupRetentionDays; } if (this._ruleId !== undefined) { hasAnyValues = true; internalValueResult.ruleId = this._ruleId; } if (this._standardSchedule?.internalValue !== undefined) { hasAnyValues = true; internalValueResult.standardSchedule = this._standardSchedule?.internalValue; } return hasAnyValues ? internalValueResult : undefined; } set internalValue(value) { if (value === undefined) { this.isEmptyObject = false; this.resolvableValue = undefined; this._backupRetentionDays = undefined; this._ruleId = undefined; this._standardSchedule.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._backupRetentionDays = value.backupRetentionDays; this._ruleId = value.ruleId; this._standardSchedule.internalValue = value.standardSchedule; } } get backupRetentionDays() { return this.getNumberAttribute('backup_retention_days'); } set backupRetentionDays(value) { this._backupRetentionDays = value; } // Temporarily expose input value. Use with caution. get backupRetentionDaysInput() { return this._backupRetentionDays; } get ruleId() { return this.getStringAttribute('rule_id'); } set ruleId(value) { this._ruleId = value; } // Temporarily expose input value. Use with caution. get ruleIdInput() { return this._ruleId; } get standardSchedule() { return this._standardSchedule; } putStandardSchedule(value) { this._standardSchedule.internalValue = value; } // Temporarily expose input value. Use with caution. get standardScheduleInput() { return this._standardSchedule.internalValue; } } exports.BackupDrBackupPlanBackupRulesOutputReference = BackupDrBackupPlanBackupRulesOutputReference; _d = JSII_RTTI_SYMBOL_1; BackupDrBackupPlanBackupRulesOutputReference[_d] = { fqn: "@cdktf/provider-google.backupDrBackupPlan.BackupDrBackupPlanBackupRulesOutputReference", version: "14.35.1" }; class BackupDrBackupPlanBackupRulesList 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 BackupDrBackupPlanBackupRulesOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet); } } exports.BackupDrBackupPlanBackupRulesList = BackupDrBackupPlanBackupRulesList; _e = JSII_RTTI_SYMBOL_1; BackupDrBackupPlanBackupRulesList[_e] = { fqn: "@cdktf/provider-google.backupDrBackupPlan.BackupDrBackupPlanBackupRulesList", version: "14.35.1" }; function backupDrBackupPlanTimeoutsToTerraform(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 backupDrBackupPlanTimeoutsToHclTerraform(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 BackupDrBackupPlanTimeoutsOutputReference 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.BackupDrBackupPlanTimeoutsOutputReference = BackupDrBackupPlanTimeoutsOutputReference; _f = JSII_RTTI_SYMBOL_1; BackupDrBackupPlanTimeoutsOutputReference[_f] = { fqn: "@cdktf/provider-google.backupDrBackupPlan.BackupDrBackupPlanTimeoutsOutputReference", version: "14.35.1" }; /** * Represents a {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/backup_dr_backup_plan google_backup_dr_backup_plan} */ class BackupDrBackupPlan extends cdktf.TerraformResource { // ============== // STATIC Methods // ============== /** * Generates CDKTF code for importing a BackupDrBackupPlan 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 BackupDrBackupPlan to import * @param importFromId The id of the existing BackupDrBackupPlan that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/backup_dr_backup_plan#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the BackupDrBackupPlan to import is found */ static generateConfigForImport(scope, importToId, importFromId, provider) { return new cdktf.ImportableResource(scope, importToId, { terraformResourceType: "google_backup_dr_backup_plan", importId: importFromId, provider }); } // =========== // INITIALIZER // =========== /** * Create a new {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/backup_dr_backup_plan google_backup_dr_backup_plan} 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 BackupDrBackupPlanConfig */ constructor(scope, id, config) { super(scope, id, { terraformResourceType: 'google_backup_dr_backup_plan', 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 }); // backup_rules - computed: false, optional: false, required: true this._backupRules = new BackupDrBackupPlanBackupRulesList(this, "backup_rules", false); // timeouts - computed: false, optional: true, required: false this._timeouts = new BackupDrBackupPlanTimeoutsOutputReference(this, "timeouts"); this._backupPlanId = config.backupPlanId; this._backupVault = config.backupVault; this._description = config.description; this._id = config.id; this._location = config.location; this._project = config.project; this._resourceType = config.resourceType; this._backupRules.internalValue = config.backupRules; this._timeouts.internalValue = config.timeouts; } get backupPlanId() { return this.getStringAttribute('backup_plan_id'); } set backupPlanId(value) { this._backupPlanId = value; } // Temporarily expose input value. Use with caution. get backupPlanIdInput() { return this._backupPlanId; } get backupVault() { return this.getStringAttribute('backup_vault'); } set backupVault(value) { this._backupVault = value; } // Temporarily expose input value. Use with caution. get backupVaultInput() { return this._backupVault; } // backup_vault_service_account - computed: true, optional: false, required: false get backupVaultServiceAccount() { return this.getStringAttribute('backup_vault_service_account'); } // create_time - computed: true, optional: false, required: false get createTime() { return this.getStringAttribute('create_time'); } get description() { return this.getStringAttribute('description'); } set description(value) { this._description = value; } resetDescription() { this._description = undefined; } // Temporarily expose input value. Use with caution. get descriptionInput() { return this._description; } 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 location() { return this.getStringAttribute('location'); } set location(value) { this._location = value; } // Temporarily expose input value. Use with caution. get locationInput() { return this._location; } // name - computed: true, optional: false, required: false get name() { return this.getStringAttribute('name'); } get project() { return this.getStringAttribute('project'); } set project(value) { this._project = value; } resetProject() { this._project = undefined; } // Temporarily expose input value. Use with caution. get projectInput() { return this._project; } get resourceType() { return this.getStringAttribute('resource_type'); } set resourceType(value) { this._resourceType = value; } // Temporarily expose input value. Use with caution. get resourceTypeInput() { return this._resourceType; } // update_time - computed: true, optional: false, required: false get updateTime() { return this.getStringAttribute('update_time'); } get backupRules() { return this._backupRules; } putBackupRules(value) { this._backupRules.internalValue = value; } // Temporarily expose input value. Use with caution. get backupRulesInput() { return this._backupRules.internalValue; } get timeouts() { return this._timeouts; } putTimeouts(value) { this._timeouts.internalValue = value; } resetTimeouts() { this._timeouts.internalValue = undefined; } // Temporarily expose input value. Use with caution. get timeoutsInput() { return this._timeouts.internalValue; } // ========= // SYNTHESIS // ========= synthesizeAttributes() { return { backup_plan_id: cdktf.stringToTerraform(this._backupPlanId), backup_vault: cdktf.stringToTerraform(this._backupVault), description: cdktf.stringToTerraform(this._description), id: cdktf.stringToTerraform(this._id), location: cdktf.stringToTerraform(this._location), project: cdktf.stringToTerraform(this._project), resource_type: cdktf.stringToTerraform(this._resourceType), backup_rules: cdktf.listMapper(backupDrBackupPlanBackupRulesToTerraform, true)(this._backupRules.internalValue), timeouts: backupDrBackupPlanTimeoutsToTerraform(this._timeouts.internalValue), }; } synthesizeHclAttributes() { const attrs = { backup_plan_id: { value: cdktf.stringToHclTerraform(this._backupPlanId), isBlock: false, type: "simple", storageClassType: "string", }, backup_vault: { value: cdktf.stringToHclTerraform(this._backupVault), isBlock: false, type: "simple", storageClassType: "string", }, description: { value: cdktf.stringToHclTerraform(this._description), isBlock: false, type: "simple", storageClassType: "string", }, id: { value: cdktf.stringToHclTerraform(this._id), isBlock: false, type: "simple", storageClassType: "string", }, location: { value: cdktf.stringToHclTerraform(this._location), isBlock: false, type: "simple", storageClassType: "string", }, project: { value: cdktf.stringToHclTerraform(this._project), isBlock: false, type: "simple", storageClassType: "string", }, resource_type: { value: cdktf.stringToHclTerraform(this._resourceType), isBlock: false, type: "simple", storageClassType: "string", }, backup_rules: { value: cdktf.listMapperHcl(backupDrBackupPlanBackupRulesToHclTerraform, true)(this._backupRules.internalValue), isBlock: true, type: "list", storageClassType: "BackupDrBackupPlanBackupRulesList", }, timeouts: { value: backupDrBackupPlanTimeoutsToHclTerraform(this._timeouts.internalValue), isBlock: true, type: "struct", storageClassType: "BackupDrBackupPlanTimeouts", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } } exports.BackupDrBackupPlan = BackupDrBackupPlan; _g = JSII_RTTI_SYMBOL_1; BackupDrBackupPlan[_g] = { fqn: "@cdktf/provider-google.backupDrBackupPlan.BackupDrBackupPlan", version: "14.35.1" }; // ================= // STATIC PROPERTIES // ================= BackupDrBackupPlan.tfResourceType = "google_backup_dr_backup_plan"; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYmFja3VwLWRyLWJhY2t1cC1wbGFuL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFvRkEsb0pBU0M7QUFHRCwwSkFzQkM7QUFvRkQsd0pBU0M7QUFHRCw4SkFzQkM7QUFzSEQsNEhBZUM7QUFHRCxrSUEwREM7QUEyTkQsNEZBVUM7QUFHRCxrR0E0QkM7QUFnSUQsc0ZBU0M7QUFHRCw0RkFzQkM7O0FBMzBCRCwrQkFBK0I7QUEyRS9CLFNBQWdCLG9FQUFvRSxDQUFDLE1BQTZJO0lBQ2hPLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFBQyxPQUFPLE1BQU0sQ0FBQztJQUFDLENBQUM7SUFDNUYsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLG9IQUFvSCxDQUFDLENBQUM7SUFDeEksQ0FBQztJQUNELE9BQU87UUFDTCxlQUFlLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixDQUFDLE1BQU8sQ0FBQyxZQUFZLENBQUM7UUFDOUQsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixDQUFDLE1BQU8sQ0FBQyxjQUFjLENBQUM7S0FDbkUsQ0FBQTtBQUNILENBQUM7QUFHRCxTQUFnQix1RUFBdUUsQ0FBQyxNQUE2STtJQUNuTyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQUMsT0FBTyxNQUFNLENBQUM7SUFBQyxDQUFDO0lBQzVGLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDbkMs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