@cdktf/provider-aws
Version:
Prebuilt aws Provider for Terraform CDK (cdktf)
1,067 lines • 150 kB
JavaScript
"use strict";
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
Object.defineProperty(exports, "__esModule", { value: true });
exports.BackupPlan = exports.BackupPlanRuleList = exports.BackupPlanRuleOutputReference = exports.backupPlanRuleToHclTerraform = exports.backupPlanRuleToTerraform = exports.BackupPlanRuleLifecycleOutputReference = exports.backupPlanRuleLifecycleToHclTerraform = exports.backupPlanRuleLifecycleToTerraform = exports.BackupPlanRuleCopyActionList = exports.BackupPlanRuleCopyActionOutputReference = exports.backupPlanRuleCopyActionToHclTerraform = exports.backupPlanRuleCopyActionToTerraform = exports.BackupPlanRuleCopyActionLifecycleOutputReference = exports.backupPlanRuleCopyActionLifecycleToHclTerraform = exports.backupPlanRuleCopyActionLifecycleToTerraform = exports.BackupPlanAdvancedBackupSettingList = exports.BackupPlanAdvancedBackupSettingOutputReference = exports.backupPlanAdvancedBackupSettingToHclTerraform = exports.backupPlanAdvancedBackupSettingToTerraform = void 0;
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
const cdktf = require("cdktf");
function backupPlanAdvancedBackupSettingToTerraform(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_options: cdktf.hashMapper(cdktf.stringToTerraform)(struct.backupOptions),
resource_type: cdktf.stringToTerraform(struct.resourceType),
};
}
exports.backupPlanAdvancedBackupSettingToTerraform = backupPlanAdvancedBackupSettingToTerraform;
function backupPlanAdvancedBackupSettingToHclTerraform(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_options: {
value: cdktf.hashMapperHcl(cdktf.stringToHclTerraform)(struct.backupOptions),
isBlock: false,
type: "map",
storageClassType: "stringMap",
},
resource_type: {
value: cdktf.stringToHclTerraform(struct.resourceType),
isBlock: false,
type: "simple",
storageClassType: "string",
},
};
// remove undefined attributes
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
exports.backupPlanAdvancedBackupSettingToHclTerraform = backupPlanAdvancedBackupSettingToHclTerraform;
class BackupPlanAdvancedBackupSettingOutputReference 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._backupOptions !== undefined) {
hasAnyValues = true;
internalValueResult.backupOptions = this._backupOptions;
}
if (this._resourceType !== undefined) {
hasAnyValues = true;
internalValueResult.resourceType = this._resourceType;
}
return hasAnyValues ? internalValueResult : undefined;
}
set internalValue(value) {
if (value === undefined) {
this.isEmptyObject = false;
this.resolvableValue = undefined;
this._backupOptions = undefined;
this._resourceType = 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._backupOptions = value.backupOptions;
this._resourceType = value.resourceType;
}
}
get backupOptions() {
return this.getStringMapAttribute('backup_options');
}
set backupOptions(value) {
this._backupOptions = value;
}
// Temporarily expose input value. Use with caution.
get backupOptionsInput() {
return this._backupOptions;
}
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;
}
}
exports.BackupPlanAdvancedBackupSettingOutputReference = BackupPlanAdvancedBackupSettingOutputReference;
_a = JSII_RTTI_SYMBOL_1;
BackupPlanAdvancedBackupSettingOutputReference[_a] = { fqn: "@cdktf/provider-aws.backupPlan.BackupPlanAdvancedBackupSettingOutputReference", version: "19.50.0" };
class BackupPlanAdvancedBackupSettingList 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 BackupPlanAdvancedBackupSettingOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet);
}
}
exports.BackupPlanAdvancedBackupSettingList = BackupPlanAdvancedBackupSettingList;
_b = JSII_RTTI_SYMBOL_1;
BackupPlanAdvancedBackupSettingList[_b] = { fqn: "@cdktf/provider-aws.backupPlan.BackupPlanAdvancedBackupSettingList", version: "19.50.0" };
function backupPlanRuleCopyActionLifecycleToTerraform(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 {
cold_storage_after: cdktf.numberToTerraform(struct.coldStorageAfter),
delete_after: cdktf.numberToTerraform(struct.deleteAfter),
opt_in_to_archive_for_supported_resources: cdktf.booleanToTerraform(struct.optInToArchiveForSupportedResources),
};
}
exports.backupPlanRuleCopyActionLifecycleToTerraform = backupPlanRuleCopyActionLifecycleToTerraform;
function backupPlanRuleCopyActionLifecycleToHclTerraform(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 = {
cold_storage_after: {
value: cdktf.numberToHclTerraform(struct.coldStorageAfter),
isBlock: false,
type: "simple",
storageClassType: "number",
},
delete_after: {
value: cdktf.numberToHclTerraform(struct.deleteAfter),
isBlock: false,
type: "simple",
storageClassType: "number",
},
opt_in_to_archive_for_supported_resources: {
value: cdktf.booleanToHclTerraform(struct.optInToArchiveForSupportedResources),
isBlock: false,
type: "simple",
storageClassType: "boolean",
},
};
// remove undefined attributes
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
exports.backupPlanRuleCopyActionLifecycleToHclTerraform = backupPlanRuleCopyActionLifecycleToHclTerraform;
class BackupPlanRuleCopyActionLifecycleOutputReference 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._coldStorageAfter !== undefined) {
hasAnyValues = true;
internalValueResult.coldStorageAfter = this._coldStorageAfter;
}
if (this._deleteAfter !== undefined) {
hasAnyValues = true;
internalValueResult.deleteAfter = this._deleteAfter;
}
if (this._optInToArchiveForSupportedResources !== undefined) {
hasAnyValues = true;
internalValueResult.optInToArchiveForSupportedResources = this._optInToArchiveForSupportedResources;
}
return hasAnyValues ? internalValueResult : undefined;
}
set internalValue(value) {
if (value === undefined) {
this.isEmptyObject = false;
this._coldStorageAfter = undefined;
this._deleteAfter = undefined;
this._optInToArchiveForSupportedResources = undefined;
}
else {
this.isEmptyObject = Object.keys(value).length === 0;
this._coldStorageAfter = value.coldStorageAfter;
this._deleteAfter = value.deleteAfter;
this._optInToArchiveForSupportedResources = value.optInToArchiveForSupportedResources;
}
}
get coldStorageAfter() {
return this.getNumberAttribute('cold_storage_after');
}
set coldStorageAfter(value) {
this._coldStorageAfter = value;
}
resetColdStorageAfter() {
this._coldStorageAfter = undefined;
}
// Temporarily expose input value. Use with caution.
get coldStorageAfterInput() {
return this._coldStorageAfter;
}
get deleteAfter() {
return this.getNumberAttribute('delete_after');
}
set deleteAfter(value) {
this._deleteAfter = value;
}
resetDeleteAfter() {
this._deleteAfter = undefined;
}
// Temporarily expose input value. Use with caution.
get deleteAfterInput() {
return this._deleteAfter;
}
get optInToArchiveForSupportedResources() {
return this.getBooleanAttribute('opt_in_to_archive_for_supported_resources');
}
set optInToArchiveForSupportedResources(value) {
this._optInToArchiveForSupportedResources = value;
}
resetOptInToArchiveForSupportedResources() {
this._optInToArchiveForSupportedResources = undefined;
}
// Temporarily expose input value. Use with caution.
get optInToArchiveForSupportedResourcesInput() {
return this._optInToArchiveForSupportedResources;
}
}
exports.BackupPlanRuleCopyActionLifecycleOutputReference = BackupPlanRuleCopyActionLifecycleOutputReference;
_c = JSII_RTTI_SYMBOL_1;
BackupPlanRuleCopyActionLifecycleOutputReference[_c] = { fqn: "@cdktf/provider-aws.backupPlan.BackupPlanRuleCopyActionLifecycleOutputReference", version: "19.50.0" };
function backupPlanRuleCopyActionToTerraform(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 {
destination_vault_arn: cdktf.stringToTerraform(struct.destinationVaultArn),
lifecycle: backupPlanRuleCopyActionLifecycleToTerraform(struct.lifecycle),
};
}
exports.backupPlanRuleCopyActionToTerraform = backupPlanRuleCopyActionToTerraform;
function backupPlanRuleCopyActionToHclTerraform(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 = {
destination_vault_arn: {
value: cdktf.stringToHclTerraform(struct.destinationVaultArn),
isBlock: false,
type: "simple",
storageClassType: "string",
},
lifecycle: {
value: backupPlanRuleCopyActionLifecycleToHclTerraform(struct.lifecycle),
isBlock: true,
type: "list",
storageClassType: "BackupPlanRuleCopyActionLifecycleList",
},
};
// remove undefined attributes
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
exports.backupPlanRuleCopyActionToHclTerraform = backupPlanRuleCopyActionToHclTerraform;
class BackupPlanRuleCopyActionOutputReference 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;
// lifecycle - computed: false, optional: true, required: false
this._lifecycle = new BackupPlanRuleCopyActionLifecycleOutputReference(this, "lifecycle");
}
get internalValue() {
if (this.resolvableValue) {
return this.resolvableValue;
}
let hasAnyValues = this.isEmptyObject;
const internalValueResult = {};
if (this._destinationVaultArn !== undefined) {
hasAnyValues = true;
internalValueResult.destinationVaultArn = this._destinationVaultArn;
}
if (this._lifecycle?.internalValue !== undefined) {
hasAnyValues = true;
internalValueResult.lifecycle = this._lifecycle?.internalValue;
}
return hasAnyValues ? internalValueResult : undefined;
}
set internalValue(value) {
if (value === undefined) {
this.isEmptyObject = false;
this.resolvableValue = undefined;
this._destinationVaultArn = undefined;
this._lifecycle.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._destinationVaultArn = value.destinationVaultArn;
this._lifecycle.internalValue = value.lifecycle;
}
}
get destinationVaultArn() {
return this.getStringAttribute('destination_vault_arn');
}
set destinationVaultArn(value) {
this._destinationVaultArn = value;
}
// Temporarily expose input value. Use with caution.
get destinationVaultArnInput() {
return this._destinationVaultArn;
}
get lifecycle() {
return this._lifecycle;
}
putLifecycle(value) {
this._lifecycle.internalValue = value;
}
resetLifecycle() {
this._lifecycle.internalValue = undefined;
}
// Temporarily expose input value. Use with caution.
get lifecycleInput() {
return this._lifecycle.internalValue;
}
}
exports.BackupPlanRuleCopyActionOutputReference = BackupPlanRuleCopyActionOutputReference;
_d = JSII_RTTI_SYMBOL_1;
BackupPlanRuleCopyActionOutputReference[_d] = { fqn: "@cdktf/provider-aws.backupPlan.BackupPlanRuleCopyActionOutputReference", version: "19.50.0" };
class BackupPlanRuleCopyActionList 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 BackupPlanRuleCopyActionOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet);
}
}
exports.BackupPlanRuleCopyActionList = BackupPlanRuleCopyActionList;
_e = JSII_RTTI_SYMBOL_1;
BackupPlanRuleCopyActionList[_e] = { fqn: "@cdktf/provider-aws.backupPlan.BackupPlanRuleCopyActionList", version: "19.50.0" };
function backupPlanRuleLifecycleToTerraform(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 {
cold_storage_after: cdktf.numberToTerraform(struct.coldStorageAfter),
delete_after: cdktf.numberToTerraform(struct.deleteAfter),
opt_in_to_archive_for_supported_resources: cdktf.booleanToTerraform(struct.optInToArchiveForSupportedResources),
};
}
exports.backupPlanRuleLifecycleToTerraform = backupPlanRuleLifecycleToTerraform;
function backupPlanRuleLifecycleToHclTerraform(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 = {
cold_storage_after: {
value: cdktf.numberToHclTerraform(struct.coldStorageAfter),
isBlock: false,
type: "simple",
storageClassType: "number",
},
delete_after: {
value: cdktf.numberToHclTerraform(struct.deleteAfter),
isBlock: false,
type: "simple",
storageClassType: "number",
},
opt_in_to_archive_for_supported_resources: {
value: cdktf.booleanToHclTerraform(struct.optInToArchiveForSupportedResources),
isBlock: false,
type: "simple",
storageClassType: "boolean",
},
};
// remove undefined attributes
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
exports.backupPlanRuleLifecycleToHclTerraform = backupPlanRuleLifecycleToHclTerraform;
class BackupPlanRuleLifecycleOutputReference 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._coldStorageAfter !== undefined) {
hasAnyValues = true;
internalValueResult.coldStorageAfter = this._coldStorageAfter;
}
if (this._deleteAfter !== undefined) {
hasAnyValues = true;
internalValueResult.deleteAfter = this._deleteAfter;
}
if (this._optInToArchiveForSupportedResources !== undefined) {
hasAnyValues = true;
internalValueResult.optInToArchiveForSupportedResources = this._optInToArchiveForSupportedResources;
}
return hasAnyValues ? internalValueResult : undefined;
}
set internalValue(value) {
if (value === undefined) {
this.isEmptyObject = false;
this._coldStorageAfter = undefined;
this._deleteAfter = undefined;
this._optInToArchiveForSupportedResources = undefined;
}
else {
this.isEmptyObject = Object.keys(value).length === 0;
this._coldStorageAfter = value.coldStorageAfter;
this._deleteAfter = value.deleteAfter;
this._optInToArchiveForSupportedResources = value.optInToArchiveForSupportedResources;
}
}
get coldStorageAfter() {
return this.getNumberAttribute('cold_storage_after');
}
set coldStorageAfter(value) {
this._coldStorageAfter = value;
}
resetColdStorageAfter() {
this._coldStorageAfter = undefined;
}
// Temporarily expose input value. Use with caution.
get coldStorageAfterInput() {
return this._coldStorageAfter;
}
get deleteAfter() {
return this.getNumberAttribute('delete_after');
}
set deleteAfter(value) {
this._deleteAfter = value;
}
resetDeleteAfter() {
this._deleteAfter = undefined;
}
// Temporarily expose input value. Use with caution.
get deleteAfterInput() {
return this._deleteAfter;
}
get optInToArchiveForSupportedResources() {
return this.getBooleanAttribute('opt_in_to_archive_for_supported_resources');
}
set optInToArchiveForSupportedResources(value) {
this._optInToArchiveForSupportedResources = value;
}
resetOptInToArchiveForSupportedResources() {
this._optInToArchiveForSupportedResources = undefined;
}
// Temporarily expose input value. Use with caution.
get optInToArchiveForSupportedResourcesInput() {
return this._optInToArchiveForSupportedResources;
}
}
exports.BackupPlanRuleLifecycleOutputReference = BackupPlanRuleLifecycleOutputReference;
_f = JSII_RTTI_SYMBOL_1;
BackupPlanRuleLifecycleOutputReference[_f] = { fqn: "@cdktf/provider-aws.backupPlan.BackupPlanRuleLifecycleOutputReference", version: "19.50.0" };
function backupPlanRuleToTerraform(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 {
completion_window: cdktf.numberToTerraform(struct.completionWindow),
enable_continuous_backup: cdktf.booleanToTerraform(struct.enableContinuousBackup),
recovery_point_tags: cdktf.hashMapper(cdktf.stringToTerraform)(struct.recoveryPointTags),
rule_name: cdktf.stringToTerraform(struct.ruleName),
schedule: cdktf.stringToTerraform(struct.schedule),
schedule_expression_timezone: cdktf.stringToTerraform(struct.scheduleExpressionTimezone),
start_window: cdktf.numberToTerraform(struct.startWindow),
target_vault_name: cdktf.stringToTerraform(struct.targetVaultName),
copy_action: cdktf.listMapper(backupPlanRuleCopyActionToTerraform, true)(struct.copyAction),
lifecycle: backupPlanRuleLifecycleToTerraform(struct.lifecycle),
};
}
exports.backupPlanRuleToTerraform = backupPlanRuleToTerraform;
function backupPlanRuleToHclTerraform(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 = {
completion_window: {
value: cdktf.numberToHclTerraform(struct.completionWindow),
isBlock: false,
type: "simple",
storageClassType: "number",
},
enable_continuous_backup: {
value: cdktf.booleanToHclTerraform(struct.enableContinuousBackup),
isBlock: false,
type: "simple",
storageClassType: "boolean",
},
recovery_point_tags: {
value: cdktf.hashMapperHcl(cdktf.stringToHclTerraform)(struct.recoveryPointTags),
isBlock: false,
type: "map",
storageClassType: "stringMap",
},
rule_name: {
value: cdktf.stringToHclTerraform(struct.ruleName),
isBlock: false,
type: "simple",
storageClassType: "string",
},
schedule: {
value: cdktf.stringToHclTerraform(struct.schedule),
isBlock: false,
type: "simple",
storageClassType: "string",
},
schedule_expression_timezone: {
value: cdktf.stringToHclTerraform(struct.scheduleExpressionTimezone),
isBlock: false,
type: "simple",
storageClassType: "string",
},
start_window: {
value: cdktf.numberToHclTerraform(struct.startWindow),
isBlock: false,
type: "simple",
storageClassType: "number",
},
target_vault_name: {
value: cdktf.stringToHclTerraform(struct.targetVaultName),
isBlock: false,
type: "simple",
storageClassType: "string",
},
copy_action: {
value: cdktf.listMapperHcl(backupPlanRuleCopyActionToHclTerraform, true)(struct.copyAction),
isBlock: true,
type: "set",
storageClassType: "BackupPlanRuleCopyActionList",
},
lifecycle: {
value: backupPlanRuleLifecycleToHclTerraform(struct.lifecycle),
isBlock: true,
type: "list",
storageClassType: "BackupPlanRuleLifecycleList",
},
};
// remove undefined attributes
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
exports.backupPlanRuleToHclTerraform = backupPlanRuleToHclTerraform;
class BackupPlanRuleOutputReference 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;
// copy_action - computed: false, optional: true, required: false
this._copyAction = new BackupPlanRuleCopyActionList(this, "copy_action", true);
// lifecycle - computed: false, optional: true, required: false
this._lifecycle = new BackupPlanRuleLifecycleOutputReference(this, "lifecycle");
}
get internalValue() {
if (this.resolvableValue) {
return this.resolvableValue;
}
let hasAnyValues = this.isEmptyObject;
const internalValueResult = {};
if (this._completionWindow !== undefined) {
hasAnyValues = true;
internalValueResult.completionWindow = this._completionWindow;
}
if (this._enableContinuousBackup !== undefined) {
hasAnyValues = true;
internalValueResult.enableContinuousBackup = this._enableContinuousBackup;
}
if (this._recoveryPointTags !== undefined) {
hasAnyValues = true;
internalValueResult.recoveryPointTags = this._recoveryPointTags;
}
if (this._ruleName !== undefined) {
hasAnyValues = true;
internalValueResult.ruleName = this._ruleName;
}
if (this._schedule !== undefined) {
hasAnyValues = true;
internalValueResult.schedule = this._schedule;
}
if (this._scheduleExpressionTimezone !== undefined) {
hasAnyValues = true;
internalValueResult.scheduleExpressionTimezone = this._scheduleExpressionTimezone;
}
if (this._startWindow !== undefined) {
hasAnyValues = true;
internalValueResult.startWindow = this._startWindow;
}
if (this._targetVaultName !== undefined) {
hasAnyValues = true;
internalValueResult.targetVaultName = this._targetVaultName;
}
if (this._copyAction?.internalValue !== undefined) {
hasAnyValues = true;
internalValueResult.copyAction = this._copyAction?.internalValue;
}
if (this._lifecycle?.internalValue !== undefined) {
hasAnyValues = true;
internalValueResult.lifecycle = this._lifecycle?.internalValue;
}
return hasAnyValues ? internalValueResult : undefined;
}
set internalValue(value) {
if (value === undefined) {
this.isEmptyObject = false;
this.resolvableValue = undefined;
this._completionWindow = undefined;
this._enableContinuousBackup = undefined;
this._recoveryPointTags = undefined;
this._ruleName = undefined;
this._schedule = undefined;
this._scheduleExpressionTimezone = undefined;
this._startWindow = undefined;
this._targetVaultName = undefined;
this._copyAction.internalValue = undefined;
this._lifecycle.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._completionWindow = value.completionWindow;
this._enableContinuousBackup = value.enableContinuousBackup;
this._recoveryPointTags = value.recoveryPointTags;
this._ruleName = value.ruleName;
this._schedule = value.schedule;
this._scheduleExpressionTimezone = value.scheduleExpressionTimezone;
this._startWindow = value.startWindow;
this._targetVaultName = value.targetVaultName;
this._copyAction.internalValue = value.copyAction;
this._lifecycle.internalValue = value.lifecycle;
}
}
get completionWindow() {
return this.getNumberAttribute('completion_window');
}
set completionWindow(value) {
this._completionWindow = value;
}
resetCompletionWindow() {
this._completionWindow = undefined;
}
// Temporarily expose input value. Use with caution.
get completionWindowInput() {
return this._completionWindow;
}
get enableContinuousBackup() {
return this.getBooleanAttribute('enable_continuous_backup');
}
set enableContinuousBackup(value) {
this._enableContinuousBackup = value;
}
resetEnableContinuousBackup() {
this._enableContinuousBackup = undefined;
}
// Temporarily expose input value. Use with caution.
get enableContinuousBackupInput() {
return this._enableContinuousBackup;
}
get recoveryPointTags() {
return this.getStringMapAttribute('recovery_point_tags');
}
set recoveryPointTags(value) {
this._recoveryPointTags = value;
}
resetRecoveryPointTags() {
this._recoveryPointTags = undefined;
}
// Temporarily expose input value. Use with caution.
get recoveryPointTagsInput() {
return this._recoveryPointTags;
}
get ruleName() {
return this.getStringAttribute('rule_name');
}
set ruleName(value) {
this._ruleName = value;
}
// Temporarily expose input value. Use with caution.
get ruleNameInput() {
return this._ruleName;
}
get schedule() {
return this.getStringAttribute('schedule');
}
set schedule(value) {
this._schedule = value;
}
resetSchedule() {
this._schedule = undefined;
}
// Temporarily expose input value. Use with caution.
get scheduleInput() {
return this._schedule;
}
get scheduleExpressionTimezone() {
return this.getStringAttribute('schedule_expression_timezone');
}
set scheduleExpressionTimezone(value) {
this._scheduleExpressionTimezone = value;
}
resetScheduleExpressionTimezone() {
this._scheduleExpressionTimezone = undefined;
}
// Temporarily expose input value. Use with caution.
get scheduleExpressionTimezoneInput() {
return this._scheduleExpressionTimezone;
}
get startWindow() {
return this.getNumberAttribute('start_window');
}
set startWindow(value) {
this._startWindow = value;
}
resetStartWindow() {
this._startWindow = undefined;
}
// Temporarily expose input value. Use with caution.
get startWindowInput() {
return this._startWindow;
}
get targetVaultName() {
return this.getStringAttribute('target_vault_name');
}
set targetVaultName(value) {
this._targetVaultName = value;
}
// Temporarily expose input value. Use with caution.
get targetVaultNameInput() {
return this._targetVaultName;
}
get copyAction() {
return this._copyAction;
}
putCopyAction(value) {
this._copyAction.internalValue = value;
}
resetCopyAction() {
this._copyAction.internalValue = undefined;
}
// Temporarily expose input value. Use with caution.
get copyActionInput() {
return this._copyAction.internalValue;
}
get lifecycle() {
return this._lifecycle;
}
putLifecycle(value) {
this._lifecycle.internalValue = value;
}
resetLifecycle() {
this._lifecycle.internalValue = undefined;
}
// Temporarily expose input value. Use with caution.
get lifecycleInput() {
return this._lifecycle.internalValue;
}
}
exports.BackupPlanRuleOutputReference = BackupPlanRuleOutputReference;
_g = JSII_RTTI_SYMBOL_1;
BackupPlanRuleOutputReference[_g] = { fqn: "@cdktf/provider-aws.backupPlan.BackupPlanRuleOutputReference", version: "19.50.0" };
class BackupPlanRuleList 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 BackupPlanRuleOutputReference(this.terraformResource, this.terraformAttribute, index, this.wrapsSet);
}
}
exports.BackupPlanRuleList = BackupPlanRuleList;
_h = JSII_RTTI_SYMBOL_1;
BackupPlanRuleList[_h] = { fqn: "@cdktf/provider-aws.backupPlan.BackupPlanRuleList", version: "19.50.0" };
/**
* Represents a {@link https://registry.terraform.io/providers/hashicorp/aws/5.84.0/docs/resources/backup_plan aws_backup_plan}
*/
class BackupPlan extends cdktf.TerraformResource {
// ==============
// STATIC Methods
// ==============
/**
* Generates CDKTF code for importing a BackupPlan 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 BackupPlan to import
* @param importFromId The id of the existing BackupPlan that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/aws/5.84.0/docs/resources/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 BackupPlan to import is found
*/
static generateConfigForImport(scope, importToId, importFromId, provider) {
return new cdktf.ImportableResource(scope, importToId, { terraformResourceType: "aws_backup_plan", importId: importFromId, provider });
}
// ===========
// INITIALIZER
// ===========
/**
* Create a new {@link https://registry.terraform.io/providers/hashicorp/aws/5.84.0/docs/resources/backup_plan aws_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 BackupPlanConfig
*/
constructor(scope, id, config) {
super(scope, id, {
terraformResourceType: 'aws_backup_plan',
terraformGeneratorMetadata: {
providerName: 'aws',
providerVersion: '5.84.0',
providerVersionConstraint: '~> 5.0'
},
provider: config.provider,
dependsOn: config.dependsOn,
count: config.count,
lifecycle: config.lifecycle,
provisioners: config.provisioners,
connection: config.connection,
forEach: config.forEach
});
// advanced_backup_setting - computed: false, optional: true, required: false
this._advancedBackupSetting = new BackupPlanAdvancedBackupSettingList(this, "advanced_backup_setting", true);
// rule - computed: false, optional: false, required: true
this._rule = new BackupPlanRuleList(this, "rule", true);
this._id = config.id;
this._name = config.name;
this._tags = config.tags;
this._tagsAll = config.tagsAll;
this._advancedBackupSetting.internalValue = config.advancedBackupSetting;
this._rule.internalValue = config.rule;
}
// ==========
// ATTRIBUTES
// ==========
// arn - computed: true, optional: false, required: false
get arn() {
return this.getStringAttribute('arn');
}
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 name() {
return this.getStringAttribute('name');
}
set name(value) {
this._name = value;
}
// Temporarily expose input value. Use with caution.
get nameInput() {
return this._name;
}
get tags() {
return this.getStringMapAttribute('tags');
}
set tags(value) {
this._tags = value;
}
resetTags() {
this._tags = undefined;
}
// Temporarily expose input value. Use with caution.
get tagsInput() {
return this._tags;
}
get tagsAll() {
return this.getStringMapAttribute('tags_all');
}
set tagsAll(value) {
this._tagsAll = value;
}
resetTagsAll() {
this._tagsAll = undefined;
}
// Temporarily expose input value. Use with caution.
get tagsAllInput() {
return this._tagsAll;
}
// version - computed: true, optional: false, required: false
get version() {
return this.getStringAttribute('version');
}
get advancedBackupSetting() {
return this._advancedBackupSetting;
}
putAdvancedBackupSetting(value) {
this._advancedBackupSetting.internalValue = value;
}
resetAdvancedBackupSetting() {
this._advancedBackupSetting.internalValue = undefined;
}
// Temporarily expose input value. Use with caution.
get advancedBackupSettingInput() {
return this._advancedBackupSetting.internalValue;
}
get rule() {
return this._rule;
}
putRule(value) {
this._rule.internalValue = value;
}
// Temporarily expose input value. Use with caution.
get ruleInput() {
return this._rule.internalValue;
}
// =========
// SYNTHESIS
// =========
synthesizeAttributes() {
return {
id: cdktf.stringToTerraform(this._id),
name: cdktf.stringToTerraform(this._name),
tags: cdktf.hashMapper(cdktf.stringToTerraform)(this._tags),
tags_all: cdktf.hashMapper(cdktf.stringToTerraform)(this._tagsAll),
advanced_backup_setting: cdktf.listMapper(backupPlanAdvancedBackupSettingToTerraform, true)(this._advancedBackupSetting.internalValue),
rule: cdktf.listMapper(backupPlanRuleToTerraform, true)(this._rule.internalValue),
};
}
synthesizeHclAttributes() {
const attrs = {
id: {
value: cdktf.stringToHclTerraform(this._id),
isBlock: false,
type: "simple",
storageClassType: "string",
},
name: {
value: cdktf.stringToHclTerraform(this._name),
isBlock: false,
type: "simple",
storageClassType: "string",
},
tags: {
value: cdktf.hashMapperHcl(cdktf.stringToHclTerraform)(this._tags),
isBlock: false,
type: "map",
storageClassType: "stringMap",
},
tags_all: {
value: cdktf.hashMapperHcl(cdktf.stringToHclTerraform)(this._tagsAll),
isBlock: false,
type: "map",
storageClassType: "stringMap",
},
advanced_backup_setting: {
value: cdktf.listMapperHcl(backupPlanAdvancedBackupSettingToHclTerraform, true)(this._advancedBackupSetting.internalValue),
isBlock: true,
type: "set",
storageClassType: "BackupPlanAdvancedBackupSettingList",
},
rule: {
value: cdktf.listMapperHcl(backupPlanRuleToHclTerraform, true)(this._rule.internalValue),
isBlock: true,
type: "set",
storageClassType: "BackupPlanRuleList",
},
};
// remove undefined attributes
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
}
exports.BackupPlan = BackupPlan;
_j = JSII_RTTI_SYMBOL_1;
BackupPlan[_j] = { fqn: "@cdktf/provider-aws.backupPlan.BackupPlan", version: "19.50.0" };
// =================
// STATIC PROPERTIES
// =================
BackupPlan.tfResourceType = "aws_backup_plan";
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYmFja3VwLXBsYW4vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFTQSwrQkFBK0I7QUFnRC9CLFNBQWdCLDBDQUEwQyxDQUFDLE1BQTREO0lBQ3JILElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFBQyxPQUFPLE1BQU0sQ0FBQztJQUFDLENBQUM7SUFDNUYsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLG9IQUFvSCxDQUFDLENBQUM7SUFDeEksQ0FBQztJQUNELE9BQU87UUFDTCxjQUFjLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxNQUFPLENBQUMsYUFBYSxDQUFDO1FBQ2hGLGFBQWEsRUFBRSxLQUFLLENBQUMsaUJBQWlCLENBQUMsTUFBTyxDQUFDLFlBQVksQ0FBQztLQUM3RCxDQUFBO0FBQ0gsQ0FBQztBQVRELGdHQVNDO0FBR0QsU0FBZ0IsNkNBQTZDLENBQUMsTUFBNEQ7SUFDeEgsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUFDLE9BQU8sTUFBTSxDQUFDO0lBQUMsQ0FBQztJQUM1RixJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsb0hBQW9ILENBQUMsQ0FBQztJQUN4SSxDQUFDO0lBQ0QsTUFBTSxLQUFLLEdBQUc7UUFDWixjQUFjLEVBQUU7WUFDZCxLQUFLLEVBQUUs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