Skip to content

Commit c1d14b7

Browse files
author
AWS
committed
ARC - Region switch Update: Automatic Plan Execution Reports allow customers to maintain a concise record of their Region switch Plan executions. This enables customer SREs and leadership to have a clear view of their recovery posture based on the generated reports for their Plan executions.
1 parent aada703 commit c1d14b7

File tree

2 files changed

+216
-3
lines changed

2 files changed

+216
-3
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"type": "feature",
3+
"category": "ARC - Region switch",
4+
"contributor": "",
5+
"description": "Automatic Plan Execution Reports allow customers to maintain a concise record of their Region switch Plan executions. This enables customer SREs and leadership to have a clear view of their recovery posture based on the generated reports for their Plan executions."
6+
}

services/arcregionswitch/src/main/resources/codegen-resources/service-2.json

Lines changed: 210 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -728,6 +728,7 @@
728728
"shape":"TriggerList",
729729
"documentation":"<p>The triggers associated with a Region switch plan.</p>"
730730
},
731+
"reportConfiguration":{"shape":"ReportConfiguration"},
731732
"name":{
732733
"shape":"PlanName",
733734
"documentation":"<p>The name of a Region switch plan.</p>"
@@ -815,6 +816,83 @@
815816
"type":"structure",
816817
"members":{}
817818
},
819+
"DocumentDbClusterArn":{
820+
"type":"string",
821+
"pattern":"arn:aws[a-zA-Z-]*:rds:[a-z0-9-]+:\\d{12}:cluster:[a-zA-Z0-9][a-zA-Z0-9-_]{0,99}"
822+
},
823+
"DocumentDbClusterArns":{
824+
"type":"list",
825+
"member":{"shape":"DocumentDbClusterArn"}
826+
},
827+
"DocumentDbConfiguration":{
828+
"type":"structure",
829+
"required":[
830+
"behavior",
831+
"globalClusterIdentifier",
832+
"databaseClusterArns"
833+
],
834+
"members":{
835+
"timeoutMinutes":{
836+
"shape":"DocumentDbConfigurationTimeoutMinutesInteger",
837+
"documentation":"<p>The timeout value specified for the configuration.</p>"
838+
},
839+
"crossAccountRole":{
840+
"shape":"IamRoleArn",
841+
"documentation":"<p>The cross account role for the configuration.</p>"
842+
},
843+
"externalId":{
844+
"shape":"String",
845+
"documentation":"<p>The external ID (secret key) for the configuration.</p>"
846+
},
847+
"behavior":{
848+
"shape":"DocumentDbDefaultBehavior",
849+
"documentation":"<p>The behavior for a global cluster, that is, only allow switchover or also allow failover.</p>"
850+
},
851+
"ungraceful":{
852+
"shape":"DocumentDbUngraceful",
853+
"documentation":"<p>The settings for ungraceful execution.</p>"
854+
},
855+
"globalClusterIdentifier":{
856+
"shape":"DocumentDbGlobalClusterIdentifier",
857+
"documentation":"<p>The global cluster identifier for a DocumentDB global cluster.</p>"
858+
},
859+
"databaseClusterArns":{
860+
"shape":"DocumentDbClusterArns",
861+
"documentation":"<p>The database cluster Amazon Resource Names (ARNs) for a DocumentDB global cluster.</p>"
862+
}
863+
},
864+
"documentation":"<p>Configuration for Amazon DocumentDB global clusters used in a Region switch plan.</p>"
865+
},
866+
"DocumentDbConfigurationTimeoutMinutesInteger":{
867+
"type":"integer",
868+
"box":true,
869+
"min":1
870+
},
871+
"DocumentDbDefaultBehavior":{
872+
"type":"string",
873+
"enum":[
874+
"switchoverOnly",
875+
"failover"
876+
]
877+
},
878+
"DocumentDbGlobalClusterIdentifier":{
879+
"type":"string",
880+
"pattern":"[A-Za-z][0-9A-Za-z-:._]*"
881+
},
882+
"DocumentDbUngraceful":{
883+
"type":"structure",
884+
"members":{
885+
"ungraceful":{
886+
"shape":"DocumentDbUngracefulBehavior",
887+
"documentation":"<p>The settings for ungraceful execution.</p>"
888+
}
889+
},
890+
"documentation":"<p>Configuration for handling failures when performing operations on DocumentDB global clusters.</p>"
891+
},
892+
"DocumentDbUngracefulBehavior":{
893+
"type":"string",
894+
"enum":["failover"]
895+
},
818896
"Duration":{
819897
"type":"string",
820898
"pattern":"P(?!$)(\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+S)?)?"
@@ -1111,7 +1189,8 @@
11111189
"route53HealthCheckConfig":{
11121190
"shape":"Route53HealthCheckConfiguration",
11131191
"documentation":"<p>The Amazon Route 53 health check configuration.</p>"
1114-
}
1192+
},
1193+
"documentDbConfig":{"shape":"DocumentDbConfiguration"}
11151194
},
11161195
"documentation":"<p>Execution block configurations for a workflow in a Region switch plan. An execution block represents a specific type of action to perform during a Region switch.</p>",
11171196
"union":true
@@ -1128,7 +1207,8 @@
11281207
"Parallel",
11291208
"ECSServiceScaling",
11301209
"EKSResourceScaling",
1131-
"Route53HealthCheck"
1210+
"Route53HealthCheck",
1211+
"DocumentDb"
11321212
]
11331213
},
11341214
"ExecutionComment":{
@@ -1210,7 +1290,8 @@
12101290
"stepCanceled",
12111291
"stepPendingApproval",
12121292
"stepExecutionBehaviorChangedToUngraceful",
1213-
"stepPendingApplicationHealthMonitor"
1293+
"stepPendingApplicationHealthMonitor",
1294+
"planEvaluationWarning"
12141295
]
12151296
},
12161297
"ExecutionId":{"type":"string"},
@@ -1237,10 +1318,52 @@
12371318
"completedMonitoringApplicationHealth"
12381319
]
12391320
},
1321+
"FailedReportErrorCode":{
1322+
"type":"string",
1323+
"enum":[
1324+
"insufficientPermissions",
1325+
"invalidResource",
1326+
"configurationError"
1327+
]
1328+
},
1329+
"FailedReportOutput":{
1330+
"type":"structure",
1331+
"members":{
1332+
"errorCode":{
1333+
"shape":"FailedReportErrorCode",
1334+
"documentation":"<p>The error code for the failed report generation.</p>"
1335+
},
1336+
"errorMessage":{
1337+
"shape":"String",
1338+
"documentation":"<p>The error message for the failed report generation.</p>"
1339+
}
1340+
},
1341+
"documentation":"<p>Information about a report generation that failed.</p>"
1342+
},
12401343
"Float":{
12411344
"type":"float",
12421345
"box":true
12431346
},
1347+
"GeneratedReport":{
1348+
"type":"structure",
1349+
"members":{
1350+
"reportGenerationTime":{
1351+
"shape":"Timestamp",
1352+
"documentation":"<p>The timestamp when the report was generated.</p>"
1353+
},
1354+
"reportOutput":{
1355+
"shape":"ReportOutput",
1356+
"documentation":"<p>The output location or cause of a failure in report generation.</p>"
1357+
}
1358+
},
1359+
"documentation":"<p>Information about a generated execution report.</p>"
1360+
},
1361+
"GeneratedReportDetails":{
1362+
"type":"list",
1363+
"member":{"shape":"GeneratedReport"},
1364+
"max":1,
1365+
"min":0
1366+
},
12441367
"GetPlanEvaluationStatusRequest":{
12451368
"type":"structure",
12461369
"required":["planArn"],
@@ -1386,6 +1509,10 @@
13861509
"shape":"Duration",
13871510
"documentation":"<p>The actual recovery time that Region switch calculates for a plan execution. Actual recovery time includes the time for the plan to run added to the time elapsed until the application health alarms that you've specified are healthy again.</p>"
13881511
},
1512+
"generatedReportDetails":{
1513+
"shape":"GeneratedReportDetails",
1514+
"documentation":"<p>Information about the location of a generated report, or the cause of its failure.</p>"
1515+
},
13891516
"nextToken":{
13901517
"shape":"String",
13911518
"documentation":"<p>Specifies that you want to receive the next page of results. Valid only if you received a <code>nextToken</code> response in the previous request. If you did, it indicates that more output is available. Set this parameter to the value provided by the previous call's <code>nextToken</code> response to request the next page of results.</p>"
@@ -1966,6 +2093,10 @@
19662093
"shape":"TriggerList",
19672094
"documentation":"<p>The triggers for a plan.</p>"
19682095
},
2096+
"reportConfiguration":{
2097+
"shape":"ReportConfiguration",
2098+
"documentation":"<p>The report configuration for a plan.</p>"
2099+
},
19692100
"name":{
19702101
"shape":"PlanName",
19712102
"documentation":"<p>The name for a plan.</p>"
@@ -2074,6 +2205,48 @@
20742205
"key":{"shape":"Region"},
20752206
"value":{"shape":"KubernetesScalingResource"}
20762207
},
2208+
"ReportConfiguration":{
2209+
"type":"structure",
2210+
"members":{
2211+
"reportOutput":{
2212+
"shape":"ReportOutputList",
2213+
"documentation":"<p>The output configuration for the report.</p>"
2214+
}
2215+
},
2216+
"documentation":"<p>Configuration for automatic report generation for plan executions. When configured, Region switch automatically generates a report after each plan execution that includes execution events, plan configuration, and CloudWatch alarm states.</p>"
2217+
},
2218+
"ReportOutput":{
2219+
"type":"structure",
2220+
"members":{
2221+
"s3ReportOutput":{
2222+
"shape":"S3ReportOutput",
2223+
"documentation":"<p>Information about a report delivered to Amazon S3.</p>"
2224+
},
2225+
"failedReportOutput":{
2226+
"shape":"FailedReportOutput",
2227+
"documentation":"<p>The details about a failed report generation.</p>"
2228+
}
2229+
},
2230+
"documentation":"<p>The output location or cause of a failure in report generation.</p>",
2231+
"union":true
2232+
},
2233+
"ReportOutputConfiguration":{
2234+
"type":"structure",
2235+
"members":{
2236+
"s3Configuration":{
2237+
"shape":"S3ReportOutputConfiguration",
2238+
"documentation":"<p>Configuration for delivering reports to an Amazon S3 bucket.</p>"
2239+
}
2240+
},
2241+
"documentation":"<p>Configuration for report output destinations used in a Region switch plan.</p>",
2242+
"union":true
2243+
},
2244+
"ReportOutputList":{
2245+
"type":"list",
2246+
"member":{"shape":"ReportOutputConfiguration"},
2247+
"max":1,
2248+
"min":1
2249+
},
20772250
"ResourceArn":{"type":"string"},
20782251
"ResourceNotFoundException":{
20792252
"type":"structure",
@@ -2268,6 +2441,36 @@
22682441
"Off"
22692442
]
22702443
},
2444+
"S3ReportOutput":{
2445+
"type":"structure",
2446+
"members":{
2447+
"s3ObjectKey":{
2448+
"shape":"String",
2449+
"documentation":"<p>The S3 object key where the generated report is stored.</p>"
2450+
}
2451+
},
2452+
"documentation":"<p>Information about a report delivered to Amazon S3.</p>"
2453+
},
2454+
"S3ReportOutputConfiguration":{
2455+
"type":"structure",
2456+
"members":{
2457+
"bucketPath":{
2458+
"shape":"S3ReportOutputConfigurationBucketPathString",
2459+
"documentation":"<p>The S3 bucket name and optional prefix where reports are stored. Format: bucket-name or bucket-name/prefix.</p>"
2460+
},
2461+
"bucketOwner":{
2462+
"shape":"AccountId",
2463+
"documentation":"<p>The Amazon Web Services account ID that owns the S3 bucket. Required to ensure the bucket is still owned by the same expected owner at generation time.</p>"
2464+
}
2465+
},
2466+
"documentation":"<p>Configuration for delivering generated reports to an Amazon S3 bucket.</p>"
2467+
},
2468+
"S3ReportOutputConfigurationBucketPathString":{
2469+
"type":"string",
2470+
"max":512,
2471+
"min":3,
2472+
"pattern":"(?:s3://)?[a-z0-9][a-z0-9-]{1,61}[a-z0-9](?:/[^/ ][^/]*)*/?"
2473+
},
22712474
"Service":{
22722475
"type":"structure",
22732476
"members":{
@@ -2673,6 +2876,10 @@
26732876
"triggers":{
26742877
"shape":"TriggerList",
26752878
"documentation":"<p>The updated conditions that can automatically trigger the execution of the plan.</p>"
2879+
},
2880+
"reportConfiguration":{
2881+
"shape":"ReportConfiguration",
2882+
"documentation":"<p>The updated report configuration for the plan.</p>"
26762883
}
26772884
}
26782885
},

0 commit comments

Comments
 (0)