UNPKG

@cdktf/provider-aws

Version:

Prebuilt aws Provider for Terraform CDK (cdktf)

1,067 lines 150 kB
"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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