Skip to content

Commit 3eabcc0

Browse files
committed
feat(backup): support S3 advanced backup settings
1 parent 033da72 commit 3eabcc0

File tree

3 files changed

+43
-4
lines changed

3 files changed

+43
-4
lines changed

internal/service/backup/plan.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ func resourcePlan() *schema.Resource {
6969
Required: true,
7070
ValidateFunc: validation.StringInSlice([]string{
7171
"EC2",
72+
"S3",
7273
}, false),
7374
},
7475
},

internal/service/backup/plan_test.go

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -552,12 +552,18 @@ func TestAccBackupPlan_advancedBackupSetting(t *testing.T) {
552552
Check: resource.ComposeTestCheckFunc(
553553
testAccCheckPlanExists(ctx, resourceName, &plan),
554554
resource.TestCheckResourceAttr(resourceName, names.AttrName, rName),
555-
resource.TestCheckResourceAttr(resourceName, "advanced_backup_setting.#", "1"),
555+
resource.TestCheckResourceAttr(resourceName, "advanced_backup_setting.#", "2"),
556556
resource.TestCheckTypeSetElemNestedAttrs(resourceName, "advanced_backup_setting.*", map[string]string{
557557
"backup_options.%": "1",
558558
"backup_options.WindowsVSS": names.AttrEnabled,
559559
names.AttrResourceType: "EC2",
560560
}),
561+
resource.TestCheckTypeSetElemNestedAttrs(resourceName, "advanced_backup_setting.*", map[string]string{
562+
"backup_options.%": "2",
563+
"backup_options.BackupACLs": names.AttrEnabled,
564+
"backup_options.BackupObjectTags": names.AttrEnabled,
565+
names.AttrResourceType: "S3",
566+
}),
561567
),
562568
},
563569
{
@@ -570,12 +576,18 @@ func TestAccBackupPlan_advancedBackupSetting(t *testing.T) {
570576
Check: resource.ComposeTestCheckFunc(
571577
testAccCheckPlanExists(ctx, resourceName, &plan),
572578
resource.TestCheckResourceAttr(resourceName, names.AttrName, rName),
573-
resource.TestCheckResourceAttr(resourceName, "advanced_backup_setting.#", "1"),
579+
resource.TestCheckResourceAttr(resourceName, "advanced_backup_setting.#", "2"),
574580
resource.TestCheckTypeSetElemNestedAttrs(resourceName, "advanced_backup_setting.*", map[string]string{
575581
"backup_options.%": "1",
576582
"backup_options.WindowsVSS": "disabled",
577583
names.AttrResourceType: "EC2",
578584
}),
585+
resource.TestCheckTypeSetElemNestedAttrs(resourceName, "advanced_backup_setting.*", map[string]string{
586+
"backup_options.%": "2",
587+
"backup_options.BackupACLs": names.AttrEnabled,
588+
"backup_options.BackupObjectTags": names.AttrEnabled,
589+
names.AttrResourceType: "S3",
590+
}),
579591
),
580592
},
581593
},
@@ -1133,6 +1145,15 @@ resource "aws_backup_plan" "test" {
11331145
11341146
resource_type = "EC2"
11351147
}
1148+
1149+
advanced_backup_setting {
1150+
backup_options = {
1151+
BackupACLs = "enabled"
1152+
BackupObjectTags = "enabled"
1153+
}
1154+
1155+
resource_type = "S3"
1156+
}
11361157
}
11371158
`, rName)
11381159
}
@@ -1164,6 +1185,15 @@ resource "aws_backup_plan" "test" {
11641185
11651186
resource_type = "EC2"
11661187
}
1188+
1189+
advanced_backup_setting {
1190+
backup_options = {
1191+
BackupACLs = "enabled"
1192+
BackupObjectTags = "enabled"
1193+
}
1194+
1195+
resource_type = "S3"
1196+
}
11671197
}
11681198
`, rName)
11691199
}

website/docs/r/backup_plan.html.markdown

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,14 @@ resource "aws_backup_plan" "example" {
3232
}
3333
resource_type = "EC2"
3434
}
35+
36+
advanced_backup_setting {
37+
backup_options = {
38+
BackupACLs = "enabled"
39+
BackupObjectTags = "enabled"
40+
}
41+
resource_type = "S3"
42+
}
3543
}
3644
```
3745

@@ -79,8 +87,8 @@ This resource supports the following arguments:
7987

8088
`advanced_backup_setting` supports the following arguments:
8189

82-
* `backup_options` - (Required) Specifies the backup option for a selected resource. This option is only available for Windows VSS backup jobs. Set to `{ WindowsVSS = "enabled" }` to enable Windows VSS backup option and create a VSS Windows backup.
83-
* `resource_type` - (Required) The type of AWS resource to be backed up. For VSS Windows backups, the only supported resource type is Amazon EC2. Valid values: `EC2`.
90+
* `backup_options` - (Required) Specifies service-specific backup options for the selected resource. For Windows VSS backups, set to `{ WindowsVSS = "enabled" }` (or `"disabled"`). For Amazon S3 backups, configure `{ BackupACLs = "enabled"|"disabled", BackupObjectTags = "enabled"|"disabled" }` to control inclusion of ACLs and object tags.
91+
* `resource_type` - (Required) The type of AWS resource to be backed up. Valid values: `EC2`, `S3`.
8492

8593
## Attribute Reference
8694

0 commit comments

Comments
 (0)