Framework class
Provides an AWS Backup Framework resource.
> Note: For the Deployment Status of the Framework to be successful, please turn on resource tracking to enable AWS Config recording to track configuration changes of your backup resources. This can be done from the AWS Console.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const example = new aws.backup.Framework("Example", {
controls: [
{
inputParameters: [{
name: "requiredRetentionDays",
value: "35",
}],
name: "BACKUP_RECOVERY_POINT_MINIMUM_RETENTION_CHECK",
},
{
inputParameters: [
{
name: "requiredFrequencyUnit",
value: "hours",
},
{
name: "requiredRetentionDays",
value: "35",
},
{
name: "requiredFrequencyValue",
value: "1",
},
],
name: "BACKUP_PLAN_MIN_FREQUENCY_AND_MIN_RETENTION_CHECK",
},
{
name: "BACKUP_RECOVERY_POINT_ENCRYPTED",
},
{
scope: {
complianceResourceTypes: ["EBS"],
},
name: "BACKUP_RESOURCES_PROTECTED_BY_BACKUP_PLAN",
},
{
name: "BACKUP_RECOVERY_POINT_MANUAL_DELETION_DISABLED",
},
{
scope: {
complianceResourceTypes: ["EBS"],
},
inputParameters: [
{
name: "maxRetentionDays",
value: "100",
},
{
name: "minRetentionDays",
value: "1",
},
],
name: "BACKUP_RESOURCES_PROTECTED_BY_BACKUP_VAULT_LOCK",
},
{
scope: {
complianceResourceTypes: ["EBS"],
},
inputParameters: [
{
name: "recoveryPointAgeUnit",
value: "days",
},
{
name: "recoveryPointAgeValue",
value: "1",
},
],
name: "BACKUP_LAST_RECOVERY_POINT_CREATED",
},
],
name: "exampleFramework",
description: "this is an example framework",
tags: {
Name: "Example Framework",
},
});
import pulumi
import pulumi_aws as aws
example = aws.backup.Framework("Example",
controls=[
{
"input_parameters": [{
"name": "requiredRetentionDays",
"value": "35",
}],
"name": "BACKUP_RECOVERY_POINT_MINIMUM_RETENTION_CHECK",
},
{
"input_parameters": [
{
"name": "requiredFrequencyUnit",
"value": "hours",
},
{
"name": "requiredRetentionDays",
"value": "35",
},
{
"name": "requiredFrequencyValue",
"value": "1",
},
],
"name": "BACKUP_PLAN_MIN_FREQUENCY_AND_MIN_RETENTION_CHECK",
},
{
"name": "BACKUP_RECOVERY_POINT_ENCRYPTED",
},
{
"scope": {
"compliance_resource_types": ["EBS"],
},
"name": "BACKUP_RESOURCES_PROTECTED_BY_BACKUP_PLAN",
},
{
"name": "BACKUP_RECOVERY_POINT_MANUAL_DELETION_DISABLED",
},
{
"scope": {
"compliance_resource_types": ["EBS"],
},
"input_parameters": [
{
"name": "maxRetentionDays",
"value": "100",
},
{
"name": "minRetentionDays",
"value": "1",
},
],
"name": "BACKUP_RESOURCES_PROTECTED_BY_BACKUP_VAULT_LOCK",
},
{
"scope": {
"compliance_resource_types": ["EBS"],
},
"input_parameters": [
{
"name": "recoveryPointAgeUnit",
"value": "days",
},
{
"name": "recoveryPointAgeValue",
"value": "1",
},
],
"name": "BACKUP_LAST_RECOVERY_POINT_CREATED",
},
],
name="exampleFramework",
description="this is an example framework",
tags={
"Name": "Example Framework",
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var example = new Aws.Backup.Framework("Example", new()
{
Controls = new[]
{
new Aws.Backup.Inputs.FrameworkControlArgs
{
InputParameters = new[]
{
new Aws.Backup.Inputs.FrameworkControlInputParameterArgs
{
Name = "requiredRetentionDays",
Value = "35",
},
},
Name = "BACKUP_RECOVERY_POINT_MINIMUM_RETENTION_CHECK",
},
new Aws.Backup.Inputs.FrameworkControlArgs
{
InputParameters = new[]
{
new Aws.Backup.Inputs.FrameworkControlInputParameterArgs
{
Name = "requiredFrequencyUnit",
Value = "hours",
},
new Aws.Backup.Inputs.FrameworkControlInputParameterArgs
{
Name = "requiredRetentionDays",
Value = "35",
},
new Aws.Backup.Inputs.FrameworkControlInputParameterArgs
{
Name = "requiredFrequencyValue",
Value = "1",
},
},
Name = "BACKUP_PLAN_MIN_FREQUENCY_AND_MIN_RETENTION_CHECK",
},
new Aws.Backup.Inputs.FrameworkControlArgs
{
Name = "BACKUP_RECOVERY_POINT_ENCRYPTED",
},
new Aws.Backup.Inputs.FrameworkControlArgs
{
Scope = new Aws.Backup.Inputs.FrameworkControlScopeArgs
{
ComplianceResourceTypes = new[]
{
"EBS",
},
},
Name = "BACKUP_RESOURCES_PROTECTED_BY_BACKUP_PLAN",
},
new Aws.Backup.Inputs.FrameworkControlArgs
{
Name = "BACKUP_RECOVERY_POINT_MANUAL_DELETION_DISABLED",
},
new Aws.Backup.Inputs.FrameworkControlArgs
{
Scope = new Aws.Backup.Inputs.FrameworkControlScopeArgs
{
ComplianceResourceTypes = new[]
{
"EBS",
},
},
InputParameters = new[]
{
new Aws.Backup.Inputs.FrameworkControlInputParameterArgs
{
Name = "maxRetentionDays",
Value = "100",
},
new Aws.Backup.Inputs.FrameworkControlInputParameterArgs
{
Name = "minRetentionDays",
Value = "1",
},
},
Name = "BACKUP_RESOURCES_PROTECTED_BY_BACKUP_VAULT_LOCK",
},
new Aws.Backup.Inputs.FrameworkControlArgs
{
Scope = new Aws.Backup.Inputs.FrameworkControlScopeArgs
{
ComplianceResourceTypes = new[]
{
"EBS",
},
},
InputParameters = new[]
{
new Aws.Backup.Inputs.FrameworkControlInputParameterArgs
{
Name = "recoveryPointAgeUnit",
Value = "days",
},
new Aws.Backup.Inputs.FrameworkControlInputParameterArgs
{
Name = "recoveryPointAgeValue",
Value = "1",
},
},
Name = "BACKUP_LAST_RECOVERY_POINT_CREATED",
},
},
Name = "exampleFramework",
Description = "this is an example framework",
Tags =
{
{ "Name", "Example Framework" },
},
});
});
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/backup"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := backup.NewFramework(ctx, "Example", &backup.FrameworkArgs{
Controls: backup.FrameworkControlArray{
&backup.FrameworkControlArgs{
InputParameters: backup.FrameworkControlInputParameterArray{
&backup.FrameworkControlInputParameterArgs{
Name: pulumi.String("requiredRetentionDays"),
Value: pulumi.String("35"),
},
},
Name: pulumi.String("BACKUP_RECOVERY_POINT_MINIMUM_RETENTION_CHECK"),
},
&backup.FrameworkControlArgs{
InputParameters: backup.FrameworkControlInputParameterArray{
&backup.FrameworkControlInputParameterArgs{
Name: pulumi.String("requiredFrequencyUnit"),
Value: pulumi.String("hours"),
},
&backup.FrameworkControlInputParameterArgs{
Name: pulumi.String("requiredRetentionDays"),
Value: pulumi.String("35"),
},
&backup.FrameworkControlInputParameterArgs{
Name: pulumi.String("requiredFrequencyValue"),
Value: pulumi.String("1"),
},
},
Name: pulumi.String("BACKUP_PLAN_MIN_FREQUENCY_AND_MIN_RETENTION_CHECK"),
},
&backup.FrameworkControlArgs{
Name: pulumi.String("BACKUP_RECOVERY_POINT_ENCRYPTED"),
},
&backup.FrameworkControlArgs{
Scope: &backup.FrameworkControlScopeArgs{
ComplianceResourceTypes: pulumi.StringArray{
pulumi.String("EBS"),
},
},
Name: pulumi.String("BACKUP_RESOURCES_PROTECTED_BY_BACKUP_PLAN"),
},
&backup.FrameworkControlArgs{
Name: pulumi.String("BACKUP_RECOVERY_POINT_MANUAL_DELETION_DISABLED"),
},
&backup.FrameworkControlArgs{
Scope: &backup.FrameworkControlScopeArgs{
ComplianceResourceTypes: pulumi.StringArray{
pulumi.String("EBS"),
},
},
InputParameters: backup.FrameworkControlInputParameterArray{
&backup.FrameworkControlInputParameterArgs{
Name: pulumi.String("maxRetentionDays"),
Value: pulumi.String("100"),
},
&backup.FrameworkControlInputParameterArgs{
Name: pulumi.String("minRetentionDays"),
Value: pulumi.String("1"),
},
},
Name: pulumi.String("BACKUP_RESOURCES_PROTECTED_BY_BACKUP_VAULT_LOCK"),
},
&backup.FrameworkControlArgs{
Scope: &backup.FrameworkControlScopeArgs{
ComplianceResourceTypes: pulumi.StringArray{
pulumi.String("EBS"),
},
},
InputParameters: backup.FrameworkControlInputParameterArray{
&backup.FrameworkControlInputParameterArgs{
Name: pulumi.String("recoveryPointAgeUnit"),
Value: pulumi.String("days"),
},
&backup.FrameworkControlInputParameterArgs{
Name: pulumi.String("recoveryPointAgeValue"),
Value: pulumi.String("1"),
},
},
Name: pulumi.String("BACKUP_LAST_RECOVERY_POINT_CREATED"),
},
},
Name: pulumi.String("exampleFramework"),
Description: pulumi.String("this is an example framework"),
Tags: pulumi.StringMap{
"Name": pulumi.String("Example Framework"),
},
})
if err != nil {
return err
}
return nil
})
}
pulumi {
required_providers {
aws = {
source = "pulumi/aws"
}
}
}
resource "aws_backup_framework" "Example" {
controls {
input_parameters {
name = "requiredRetentionDays"
value = "35"
}
name = "BACKUP_RECOVERY_POINT_MINIMUM_RETENTION_CHECK"
}
controls {
input_parameters {
name = "requiredFrequencyUnit"
value = "hours"
}
input_parameters {
name = "requiredRetentionDays"
value = "35"
}
input_parameters {
name = "requiredFrequencyValue"
value = "1"
}
name = "BACKUP_PLAN_MIN_FREQUENCY_AND_MIN_RETENTION_CHECK"
}
controls {
name = "BACKUP_RECOVERY_POINT_ENCRYPTED"
}
controls {
scope = {
compliance_resource_types = ["EBS"]
}
name = "BACKUP_RESOURCES_PROTECTED_BY_BACKUP_PLAN"
}
controls {
name = "BACKUP_RECOVERY_POINT_MANUAL_DELETION_DISABLED"
}
controls {
scope = {
compliance_resource_types = ["EBS"]
}
input_parameters {
name = "maxRetentionDays"
value = "100"
}
input_parameters {
name = "minRetentionDays"
value = "1"
}
name = "BACKUP_RESOURCES_PROTECTED_BY_BACKUP_VAULT_LOCK"
}
controls {
scope = {
compliance_resource_types = ["EBS"]
}
input_parameters {
name = "recoveryPointAgeUnit"
value = "days"
}
input_parameters {
name = "recoveryPointAgeValue"
value = "1"
}
name = "BACKUP_LAST_RECOVERY_POINT_CREATED"
}
name = "exampleFramework"
description = "this is an example framework"
tags = {
"Name" = "Example Framework"
}
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.backup.Framework;
import com.pulumi.aws.backup.FrameworkArgs;
import com.pulumi.aws.backup.inputs.FrameworkControlArgs;
import com.pulumi.aws.backup.inputs.FrameworkControlInputParameterArgs;
import com.pulumi.aws.backup.inputs.FrameworkControlScopeArgs;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var example = new Framework("example", FrameworkArgs.builder()
.controls(
FrameworkControlArgs.builder()
.inputParameters(FrameworkControlInputParameterArgs.builder()
.name("requiredRetentionDays")
.value("35")
.build())
.name("BACKUP_RECOVERY_POINT_MINIMUM_RETENTION_CHECK")
.build(),
FrameworkControlArgs.builder()
.inputParameters(
FrameworkControlInputParameterArgs.builder()
.name("requiredFrequencyUnit")
.value("hours")
.build(),
FrameworkControlInputParameterArgs.builder()
.name("requiredRetentionDays")
.value("35")
.build(),
FrameworkControlInputParameterArgs.builder()
.name("requiredFrequencyValue")
.value("1")
.build())
.name("BACKUP_PLAN_MIN_FREQUENCY_AND_MIN_RETENTION_CHECK")
.build(),
FrameworkControlArgs.builder()
.name("BACKUP_RECOVERY_POINT_ENCRYPTED")
.build(),
FrameworkControlArgs.builder()
.scope(FrameworkControlScopeArgs.builder()
.complianceResourceTypes("EBS")
.build())
.name("BACKUP_RESOURCES_PROTECTED_BY_BACKUP_PLAN")
.build(),
FrameworkControlArgs.builder()
.name("BACKUP_RECOVERY_POINT_MANUAL_DELETION_DISABLED")
.build(),
FrameworkControlArgs.builder()
.scope(FrameworkControlScopeArgs.builder()
.complianceResourceTypes("EBS")
.build())
.inputParameters(
FrameworkControlInputParameterArgs.builder()
.name("maxRetentionDays")
.value("100")
.build(),
FrameworkControlInputParameterArgs.builder()
.name("minRetentionDays")
.value("1")
.build())
.name("BACKUP_RESOURCES_PROTECTED_BY_BACKUP_VAULT_LOCK")
.build(),
FrameworkControlArgs.builder()
.scope(FrameworkControlScopeArgs.builder()
.complianceResourceTypes("EBS")
.build())
.inputParameters(
FrameworkControlInputParameterArgs.builder()
.name("recoveryPointAgeUnit")
.value("days")
.build(),
FrameworkControlInputParameterArgs.builder()
.name("recoveryPointAgeValue")
.value("1")
.build())
.name("BACKUP_LAST_RECOVERY_POINT_CREATED")
.build())
.name("exampleFramework")
.description("this is an example framework")
.tags(Map.of("Name", "Example Framework"))
.build());
}
}
resources:
example:
type: aws:backup:Framework
name: Example
properties:
controls:
- inputParameters:
- name: requiredRetentionDays
value: '35'
name: BACKUP_RECOVERY_POINT_MINIMUM_RETENTION_CHECK
- inputParameters:
- name: requiredFrequencyUnit
value: hours
- name: requiredRetentionDays
value: '35'
- name: requiredFrequencyValue
value: '1'
name: BACKUP_PLAN_MIN_FREQUENCY_AND_MIN_RETENTION_CHECK
- name: BACKUP_RECOVERY_POINT_ENCRYPTED
- scope:
complianceResourceTypes:
- EBS
name: BACKUP_RESOURCES_PROTECTED_BY_BACKUP_PLAN
- name: BACKUP_RECOVERY_POINT_MANUAL_DELETION_DISABLED
- scope:
complianceResourceTypes:
- EBS
inputParameters:
- name: maxRetentionDays
value: '100'
- name: minRetentionDays
value: '1'
name: BACKUP_RESOURCES_PROTECTED_BY_BACKUP_VAULT_LOCK
- scope:
complianceResourceTypes:
- EBS
inputParameters:
- name: recoveryPointAgeUnit
value: days
- name: recoveryPointAgeValue
value: '1'
name: BACKUP_LAST_RECOVERY_POINT_CREATED
name: exampleFramework
description: this is an example framework
tags:
Name: Example Framework
Import
Using pulumi import, import Backup Framework using the id which corresponds to the name of the Backup Framework. For example:
$ pulumi import aws:backup/framework:Framework test <id>
Constructors
- Framework(String name, {FrameworkArgs? args, CustomResourceOptions? options})
-
Creates a new Framework.
nameThe Pulumi resource name.argsArguments used to configure this Framework. The set of arguments for Framework.optionsResource options controlling this resource's behavior. - Framework.reference(String urn)
- Creates a typed reference to an existing Framework resource.
Properties
-
arn
↔ Output<
String> -
The ARN of the backup framework.
latefinal
-
childResources
→ Set<
Resource> -
finalinherited
-
completionSources
↔ Map<
String, IOutputCompletionSource> -
latefinalinherited
-
controls
↔ Output<
List< FrameworkControl> > -
One or more control blocks that make up the framework. Each control in the list has a name, input parameters, and scope. Detailed below.
latefinal
-
creationTime
↔ Output<
String> -
The date and time that a framework is created, in Unix format and Coordinated Universal Time (UTC).
latefinal
-
deploymentStatus
↔ Output<
String> -
The deployment status of a framework. The statuses are:
CREATE_IN_PROGRESS|UPDATE_IN_PROGRESS|DELETE_IN_PROGRESS|COMPLETED|FAILED.latefinal -
description
↔ Output<
String?> -
The description of the framework with a maximum of 1,024 characters
latefinal
- hashCode → int
-
The hash code for this object.
no setterinherited
-
id
↔ Output<
String> -
getter/setter pairinherited
- isCustom → bool
-
Returns whether this resource is provider-managed.
no setterinherited
- isProtected → bool
-
Returns whether this resource is protected from deletion.
no setterinherited
- isRemote → bool
-
Whether this resource is registered as remote.
no setterinherited
- isResourceReference → bool
-
Whether this instance represents a resource value returned over RPC.
finalinherited
-
name
↔ Output<
String> -
The unique name of the framework. The name must be between 1 and 256 characters, starting with a letter, and consisting of letters, numbers, and underscores.
latefinal
-
region
↔ Output<
String> -
Region where this resource will be managed. Defaults to the Region set in the provider configuration.
latefinal
-
resourceTransforms
→ List<
ResourceTransform> -
Inherited/explicit async transforms.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
-
status
↔ Output<
String> -
A framework consists of one or more controls. Each control governs a resource, such as backup plans, backup selections, backup vaults, or recovery points. You can also turn AWS Config recording on or off for each resource. For more information refer to the AWS documentation for Framework Status
latefinal
-
Metadata that you can assign to help organize the frameworks you create. If configured with a provider
defaultTagsconfiguration block present, tags with matching keys will overwrite those defined at the provider-level.latefinal -
A map of tags assigned to the resource, including those inherited from the provider
defaultTagsconfiguration block.latefinal -
transformations
→ List<
ResourceTransformation> -
Inherited/explicit legacy transformations.
no setterinherited
-
urn
↔ Output<
String> -
latefinalinherited
Methods
-
failId(
Object error) → void -
Completes this resource ID with an error when registration fails.
inherited
-
failOutputs(
Object error) → void -
Completes all output properties with
error.inherited -
failUrn(
Object error) → void -
Completes this resource URN with an error when registration fails.
inherited
-
getProvider(
String moduleMember) → ProviderResource? -
Returns provider for
moduleMember's package, if configured.inherited -
getResourceName(
) → String -
Returns this resource's logical name.
inherited
-
getResourceType(
) → String -
Returns this resource's Pulumi type token.
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
registerOutput<
T> (String propertyName, {Object? decoder(Object?)?, bool isSecret = false}) → Output< T> -
Registers a dynamic output property for this resource.
inherited
-
resolveId(
String? value, {required bool isKnown}) → void -
Resolves the provider-assigned ID for this resource.
inherited
-
resolveOutputs(
Struct outputs) → void -
Resolves all output properties from a monitor response payload.
inherited
-
resolveUrn(
String value) → void -
Resolves this resource's URN once assigned by the engine.
inherited
-
serializeProperties(
Map< String, dynamic> properties) → Future<Struct> -
Serializes resource properties for RPC transmission.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited