Interface CfnPlan.WorkflowProperty

All Superinterfaces:
software.amazon.jsii.JsiiSerializable
All Known Implementing Classes:
CfnPlan.WorkflowProperty.Jsii$Proxy
Enclosing class:
CfnPlan

@Stability(Stable) public static interface CfnPlan.WorkflowProperty extends software.amazon.jsii.JsiiSerializable
Represents a workflow in a Region switch plan.

A workflow defines a sequence of steps to execute during a Region switch.

Example:

 // The code below shows an example of how to instantiate this type.
 // The values are placeholders you should change.
 import software.amazon.awscdk.services.arcregionswitch.*;
 StepProperty stepProperty_;
 WorkflowProperty workflowProperty = WorkflowProperty.builder()
         .workflowTargetAction("workflowTargetAction")
         // the properties below are optional
         .steps(List.of(StepProperty.builder()
                 .executionBlockConfiguration(ExecutionBlockConfigurationProperty.builder()
                         .arcRoutingControlConfig(ArcRoutingControlConfigurationProperty.builder()
                                 .regionAndRoutingControls(Map.of(
                                         "regionAndRoutingControlsKey", List.of(ArcRoutingControlStateProperty.builder()
                                                 .routingControlArn("routingControlArn")
                                                 .state("state")
                                                 .build())))
                                 // the properties below are optional
                                 .crossAccountRole("crossAccountRole")
                                 .externalId("externalId")
                                 .timeoutMinutes(123)
                                 .build())
                         .customActionLambdaConfig(CustomActionLambdaConfigurationProperty.builder()
                                 .lambdas(List.of(LambdasProperty.builder()
                                         .arn("arn")
                                         .crossAccountRole("crossAccountRole")
                                         .externalId("externalId")
                                         .build()))
                                 .regionToRun("regionToRun")
                                 .retryIntervalMinutes(123)
                                 // the properties below are optional
                                 .timeoutMinutes(123)
                                 .ungraceful(LambdaUngracefulProperty.builder()
                                         .behavior("behavior")
                                         .build())
                                 .build())
                         .ec2AsgCapacityIncreaseConfig(Ec2AsgCapacityIncreaseConfigurationProperty.builder()
                                 .asgs(List.of(AsgProperty.builder()
                                         .arn("arn")
                                         .crossAccountRole("crossAccountRole")
                                         .externalId("externalId")
                                         .build()))
                                 // the properties below are optional
                                 .capacityMonitoringApproach("capacityMonitoringApproach")
                                 .targetPercent(123)
                                 .timeoutMinutes(123)
                                 .ungraceful(Ec2UngracefulProperty.builder()
                                         .minimumSuccessPercentage(123)
                                         .build())
                                 .build())
                         .ecsCapacityIncreaseConfig(EcsCapacityIncreaseConfigurationProperty.builder()
                                 .services(List.of(ServiceProperty.builder()
                                         .clusterArn("clusterArn")
                                         .crossAccountRole("crossAccountRole")
                                         .externalId("externalId")
                                         .serviceArn("serviceArn")
                                         .build()))
                                 // the properties below are optional
                                 .capacityMonitoringApproach("capacityMonitoringApproach")
                                 .targetPercent(123)
                                 .timeoutMinutes(123)
                                 .ungraceful(EcsUngracefulProperty.builder()
                                         .minimumSuccessPercentage(123)
                                         .build())
                                 .build())
                         .eksResourceScalingConfig(EksResourceScalingConfigurationProperty.builder()
                                 .kubernetesResourceType(KubernetesResourceTypeProperty.builder()
                                         .apiVersion("apiVersion")
                                         .kind("kind")
                                         .build())
                                 // the properties below are optional
                                 .capacityMonitoringApproach("capacityMonitoringApproach")
                                 .eksClusters(List.of(EksClusterProperty.builder()
                                         .clusterArn("clusterArn")
                                         // the properties below are optional
                                         .crossAccountRole("crossAccountRole")
                                         .externalId("externalId")
                                         .build()))
                                 .scalingResources(List.of(Map.of(
                                         "scalingResourcesKey", Map.of(
                                                 "scalingResourcesKey", KubernetesScalingResourceProperty.builder()
                                                         .name("name")
                                                         .namespace("namespace")
                                                         // the properties below are optional
                                                         .hpaName("hpaName")
                                                         .build()))))
                                 .targetPercent(123)
                                 .timeoutMinutes(123)
                                 .ungraceful(EksResourceScalingUngracefulProperty.builder()
                                         .minimumSuccessPercentage(123)
                                         .build())
                                 .build())
                         .executionApprovalConfig(ExecutionApprovalConfigurationProperty.builder()
                                 .approvalRole("approvalRole")
                                 // the properties below are optional
                                 .timeoutMinutes(123)
                                 .build())
                         .globalAuroraConfig(GlobalAuroraConfigurationProperty.builder()
                                 .behavior("behavior")
                                 .databaseClusterArns(List.of("databaseClusterArns"))
                                 .globalClusterIdentifier("globalClusterIdentifier")
                                 // the properties below are optional
                                 .crossAccountRole("crossAccountRole")
                                 .externalId("externalId")
                                 .timeoutMinutes(123)
                                 .ungraceful(GlobalAuroraUngracefulProperty.builder()
                                         .ungraceful("ungraceful")
                                         .build())
                                 .build())
                         .parallelConfig(ParallelExecutionBlockConfigurationProperty.builder()
                                 .steps(List.of(stepProperty_))
                                 .build())
                         .regionSwitchPlanConfig(RegionSwitchPlanConfigurationProperty.builder()
                                 .arn("arn")
                                 // the properties below are optional
                                 .crossAccountRole("crossAccountRole")
                                 .externalId("externalId")
                                 .build())
                         .route53HealthCheckConfig(Route53HealthCheckConfigurationProperty.builder()
                                 .hostedZoneId("hostedZoneId")
                                 .recordName("recordName")
                                 // the properties below are optional
                                 .crossAccountRole("crossAccountRole")
                                 .externalId("externalId")
                                 .recordSets(List.of(Route53ResourceRecordSetProperty.builder()
                                         .recordSetIdentifier("recordSetIdentifier")
                                         .region("region")
                                         .build()))
                                 .timeoutMinutes(123)
                                 .build())
                         .build())
                 .executionBlockType("executionBlockType")
                 .name("name")
                 // the properties below are optional
                 .description("description")
                 .build()))
         .workflowDescription("workflowDescription")
         .workflowTargetRegion("workflowTargetRegion")
         .build();
 

See Also: