@cdktf/provider-google
Version:
Prebuilt google Provider for Terraform CDK (cdktf)
982 lines • 141 kB
JavaScript
"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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