ARC-REGION-SWITCH

ApprovePlanExecutionStep

enum_Approval := [ "approve", "decline" ]

valid {
    input.Body.planArn == STRING
    input.Body.executionId == STRING
    input.Body.stepName == STRING
    input.Body.approval == enum_Approval[_]
    input.Body.comment == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CancelPlanExecution

valid {
    input.Body.planArn == STRING
    input.Body.executionId == STRING
    input.Body.comment == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreatePlan

enum_AlarmCondition := [ "red", "green" ]
enum_AlarmType := [ "applicationHealth", "trigger" ]
enum_Ec2AsgCapacityMonitoringApproach := [ "sampledMaxInLast24Hours", "autoscalingMaxInLast24Hours" ]
enum_EcsCapacityMonitoringApproach := [ "sampledMaxInLast24Hours", "containerInsightsMaxInLast24Hours" ]
enum_EksCapacityMonitoringApproach := [ "sampledMaxInLast24Hours" ]
enum_ExecutionBlockType := [ "CustomActionLambda", "ManualApproval", "AuroraGlobalDatabase", "EC2AutoScaling", "ARCRoutingControl", "ARCRegionSwitchPlan", "Parallel", "ECSServiceScaling", "EKSResourceScaling", "Route53HealthCheck" ]
enum_GlobalAuroraDefaultBehavior := [ "switchoverOnly", "failover" ]
enum_GlobalAuroraUngracefulBehavior := [ "failover" ]
enum_LambdaUngracefulBehavior := [ "skip" ]
enum_RecoveryApproach := [ "activeActive", "activePassive" ]
enum_RegionToRunIn := [ "activatingRegion", "deactivatingRegion" ]
enum_RoutingControlStateChange := [ "On", "Off" ]
enum_WorkflowTargetAction := [ "activate", "deactivate" ]

valid {
    input.Body.description == STRING
    input.Body.workflows[_].steps[_].name == STRING
    input.Body.workflows[_].steps[_].description == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.customActionLambdaConfig.timeoutMinutes == INTEGER
    input.Body.workflows[_].steps[_].executionBlockConfiguration.customActionLambdaConfig.lambdas[_].crossAccountRole == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.customActionLambdaConfig.lambdas[_].externalId == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.customActionLambdaConfig.lambdas[_].arn == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.customActionLambdaConfig.retryIntervalMinutes == FLOAT
    input.Body.workflows[_].steps[_].executionBlockConfiguration.customActionLambdaConfig.regionToRun == enum_RegionToRunIn[_]
    input.Body.workflows[_].steps[_].executionBlockConfiguration.customActionLambdaConfig.ungraceful.behavior == enum_LambdaUngracefulBehavior[_]
    input.Body.workflows[_].steps[_].executionBlockConfiguration.ec2AsgCapacityIncreaseConfig.timeoutMinutes == INTEGER
    input.Body.workflows[_].steps[_].executionBlockConfiguration.ec2AsgCapacityIncreaseConfig.asgs[_].crossAccountRole == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.ec2AsgCapacityIncreaseConfig.asgs[_].externalId == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.ec2AsgCapacityIncreaseConfig.asgs[_].arn == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.ec2AsgCapacityIncreaseConfig.ungraceful.minimumSuccessPercentage == INTEGER
    input.Body.workflows[_].steps[_].executionBlockConfiguration.ec2AsgCapacityIncreaseConfig.targetPercent == INTEGER
    input.Body.workflows[_].steps[_].executionBlockConfiguration.ec2AsgCapacityIncreaseConfig.capacityMonitoringApproach == enum_Ec2AsgCapacityMonitoringApproach[_]
    input.Body.workflows[_].steps[_].executionBlockConfiguration.executionApprovalConfig.timeoutMinutes == INTEGER
    input.Body.workflows[_].steps[_].executionBlockConfiguration.executionApprovalConfig.approvalRole == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.arcRoutingControlConfig.timeoutMinutes == INTEGER
    input.Body.workflows[_].steps[_].executionBlockConfiguration.arcRoutingControlConfig.crossAccountRole == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.arcRoutingControlConfig.externalId == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.arcRoutingControlConfig.regionAndRoutingControls.STRING[_].routingControlArn == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.arcRoutingControlConfig.regionAndRoutingControls.STRING[_].state == enum_RoutingControlStateChange[_]
    input.Body.workflows[_].steps[_].executionBlockConfiguration.globalAuroraConfig.timeoutMinutes == INTEGER
    input.Body.workflows[_].steps[_].executionBlockConfiguration.globalAuroraConfig.crossAccountRole == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.globalAuroraConfig.externalId == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.globalAuroraConfig.behavior == enum_GlobalAuroraDefaultBehavior[_]
    input.Body.workflows[_].steps[_].executionBlockConfiguration.globalAuroraConfig.ungraceful.ungraceful == enum_GlobalAuroraUngracefulBehavior[_]
    input.Body.workflows[_].steps[_].executionBlockConfiguration.globalAuroraConfig.globalClusterIdentifier == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.globalAuroraConfig.databaseClusterArns[_] == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.parallelConfig.steps == NESTED
    input.Body.workflows[_].steps[_].executionBlockConfiguration.regionSwitchPlanConfig.crossAccountRole == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.regionSwitchPlanConfig.externalId == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.regionSwitchPlanConfig.arn == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.ecsCapacityIncreaseConfig.timeoutMinutes == INTEGER
    input.Body.workflows[_].steps[_].executionBlockConfiguration.ecsCapacityIncreaseConfig.services[_].crossAccountRole == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.ecsCapacityIncreaseConfig.services[_].externalId == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.ecsCapacityIncreaseConfig.services[_].clusterArn == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.ecsCapacityIncreaseConfig.services[_].serviceArn == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.ecsCapacityIncreaseConfig.ungraceful.minimumSuccessPercentage == INTEGER
    input.Body.workflows[_].steps[_].executionBlockConfiguration.ecsCapacityIncreaseConfig.targetPercent == INTEGER
    input.Body.workflows[_].steps[_].executionBlockConfiguration.ecsCapacityIncreaseConfig.capacityMonitoringApproach == enum_EcsCapacityMonitoringApproach[_]
    input.Body.workflows[_].steps[_].executionBlockConfiguration.eksResourceScalingConfig.timeoutMinutes == INTEGER
    input.Body.workflows[_].steps[_].executionBlockConfiguration.eksResourceScalingConfig.kubernetesResourceType.apiVersion == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.eksResourceScalingConfig.kubernetesResourceType.kind == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.eksResourceScalingConfig.scalingResources[_].STRING.STRING.namespace == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.eksResourceScalingConfig.scalingResources[_].STRING.STRING.name == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.eksResourceScalingConfig.scalingResources[_].STRING.STRING.hpaName == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.eksResourceScalingConfig.eksClusters[_].crossAccountRole == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.eksResourceScalingConfig.eksClusters[_].externalId == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.eksResourceScalingConfig.eksClusters[_].clusterArn == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.eksResourceScalingConfig.ungraceful.minimumSuccessPercentage == INTEGER
    input.Body.workflows[_].steps[_].executionBlockConfiguration.eksResourceScalingConfig.targetPercent == INTEGER
    input.Body.workflows[_].steps[_].executionBlockConfiguration.eksResourceScalingConfig.capacityMonitoringApproach == enum_EksCapacityMonitoringApproach[_]
    input.Body.workflows[_].steps[_].executionBlockConfiguration.route53HealthCheckConfig.timeoutMinutes == INTEGER
    input.Body.workflows[_].steps[_].executionBlockConfiguration.route53HealthCheckConfig.crossAccountRole == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.route53HealthCheckConfig.externalId == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.route53HealthCheckConfig.hostedZoneId == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.route53HealthCheckConfig.recordName == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.route53HealthCheckConfig.recordSets[_].recordSetIdentifier == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.route53HealthCheckConfig.recordSets[_].region == STRING
    input.Body.workflows[_].steps[_].executionBlockType == enum_ExecutionBlockType[_]
    input.Body.workflows[_].workflowTargetAction == enum_WorkflowTargetAction[_]
    input.Body.workflows[_].workflowTargetRegion == STRING
    input.Body.workflows[_].workflowDescription == STRING
    input.Body.executionRole == STRING
    input.Body.recoveryTimeObjectiveMinutes == INTEGER
    input.Body.associatedAlarms.STRING.crossAccountRole == STRING
    input.Body.associatedAlarms.STRING.externalId == STRING
    input.Body.associatedAlarms.STRING.resourceIdentifier == STRING
    input.Body.associatedAlarms.STRING.alarmType == enum_AlarmType[_]
    input.Body.triggers[_].description == STRING
    input.Body.triggers[_].targetRegion == STRING
    input.Body.triggers[_].action == enum_WorkflowTargetAction[_]
    input.Body.triggers[_].conditions[_].associatedAlarmName == STRING
    input.Body.triggers[_].conditions[_].condition == enum_AlarmCondition[_]
    input.Body.triggers[_].minDelayMinutesBetweenExecutions == INTEGER
    input.Body.name == STRING
    input.Body.regions[_] == STRING
    input.Body.recoveryApproach == enum_RecoveryApproach[_]
    input.Body.primaryRegion == STRING
    input.Body.tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeletePlan

valid {
    input.Body.arn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetPlan

valid {
    input.Body.arn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetPlanEvaluationStatus

valid {
    input.Body.planArn == STRING
    input.Body.maxResults == INTEGER
    input.Body.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetPlanExecution

valid {
    input.Body.planArn == STRING
    input.Body.executionId == STRING
    input.Body.maxResults == INTEGER
    input.Body.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetPlanInRegion

valid {
    input.Body.arn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListPlanExecutionEvents

valid {
    input.Body.planArn == STRING
    input.Body.executionId == STRING
    input.Body.maxResults == INTEGER
    input.Body.nextToken == STRING
    input.Body.name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListPlanExecutions

enum_ExecutionState := [ "inProgress", "pausedByFailedStep", "pausedByOperator", "completed", "completedWithExceptions", "canceled", "planExecutionTimedOut", "pendingManualApproval", "failed", "pending", "completedMonitoringApplicationHealth" ]

valid {
    input.Body.planArn == STRING
    input.Body.maxResults == INTEGER
    input.Body.nextToken == STRING
    input.Body.state == enum_ExecutionState[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListPlans

valid {
    input.Body.maxResults == INTEGER
    input.Body.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListPlansInRegion

valid {
    input.Body.maxResults == INTEGER
    input.Body.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListRoute53HealthChecks

valid {
    input.Body.arn == STRING
    input.Body.hostedZoneId == STRING
    input.Body.recordName == STRING
    input.Body.maxResults == INTEGER
    input.Body.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListTagsForResource

valid {
    input.Body.arn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartPlanExecution

enum_ExecutionAction := [ "activate", "deactivate" ]
enum_ExecutionMode := [ "graceful", "ungraceful" ]

valid {
    input.Body.planArn == STRING
    input.Body.targetRegion == STRING
    input.Body.action == enum_ExecutionAction[_]
    input.Body.mode == enum_ExecutionMode[_]
    input.Body.comment == STRING
    input.Body.latestVersion == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

TagResource

valid {
    input.Body.arn == STRING
    input.Body.tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UntagResource

valid {
    input.Body.arn == STRING
    input.Body.resourceTagKeys[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdatePlan

enum_AlarmCondition := [ "red", "green" ]
enum_AlarmType := [ "applicationHealth", "trigger" ]
enum_Ec2AsgCapacityMonitoringApproach := [ "sampledMaxInLast24Hours", "autoscalingMaxInLast24Hours" ]
enum_EcsCapacityMonitoringApproach := [ "sampledMaxInLast24Hours", "containerInsightsMaxInLast24Hours" ]
enum_EksCapacityMonitoringApproach := [ "sampledMaxInLast24Hours" ]
enum_ExecutionBlockType := [ "CustomActionLambda", "ManualApproval", "AuroraGlobalDatabase", "EC2AutoScaling", "ARCRoutingControl", "ARCRegionSwitchPlan", "Parallel", "ECSServiceScaling", "EKSResourceScaling", "Route53HealthCheck" ]
enum_GlobalAuroraDefaultBehavior := [ "switchoverOnly", "failover" ]
enum_GlobalAuroraUngracefulBehavior := [ "failover" ]
enum_LambdaUngracefulBehavior := [ "skip" ]
enum_RegionToRunIn := [ "activatingRegion", "deactivatingRegion" ]
enum_RoutingControlStateChange := [ "On", "Off" ]
enum_WorkflowTargetAction := [ "activate", "deactivate" ]

valid {
    input.Body.arn == STRING
    input.Body.description == STRING
    input.Body.workflows[_].steps[_].name == STRING
    input.Body.workflows[_].steps[_].description == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.customActionLambdaConfig.timeoutMinutes == INTEGER
    input.Body.workflows[_].steps[_].executionBlockConfiguration.customActionLambdaConfig.lambdas[_].crossAccountRole == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.customActionLambdaConfig.lambdas[_].externalId == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.customActionLambdaConfig.lambdas[_].arn == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.customActionLambdaConfig.retryIntervalMinutes == FLOAT
    input.Body.workflows[_].steps[_].executionBlockConfiguration.customActionLambdaConfig.regionToRun == enum_RegionToRunIn[_]
    input.Body.workflows[_].steps[_].executionBlockConfiguration.customActionLambdaConfig.ungraceful.behavior == enum_LambdaUngracefulBehavior[_]
    input.Body.workflows[_].steps[_].executionBlockConfiguration.ec2AsgCapacityIncreaseConfig.timeoutMinutes == INTEGER
    input.Body.workflows[_].steps[_].executionBlockConfiguration.ec2AsgCapacityIncreaseConfig.asgs[_].crossAccountRole == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.ec2AsgCapacityIncreaseConfig.asgs[_].externalId == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.ec2AsgCapacityIncreaseConfig.asgs[_].arn == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.ec2AsgCapacityIncreaseConfig.ungraceful.minimumSuccessPercentage == INTEGER
    input.Body.workflows[_].steps[_].executionBlockConfiguration.ec2AsgCapacityIncreaseConfig.targetPercent == INTEGER
    input.Body.workflows[_].steps[_].executionBlockConfiguration.ec2AsgCapacityIncreaseConfig.capacityMonitoringApproach == enum_Ec2AsgCapacityMonitoringApproach[_]
    input.Body.workflows[_].steps[_].executionBlockConfiguration.executionApprovalConfig.timeoutMinutes == INTEGER
    input.Body.workflows[_].steps[_].executionBlockConfiguration.executionApprovalConfig.approvalRole == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.arcRoutingControlConfig.timeoutMinutes == INTEGER
    input.Body.workflows[_].steps[_].executionBlockConfiguration.arcRoutingControlConfig.crossAccountRole == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.arcRoutingControlConfig.externalId == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.arcRoutingControlConfig.regionAndRoutingControls.STRING[_].routingControlArn == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.arcRoutingControlConfig.regionAndRoutingControls.STRING[_].state == enum_RoutingControlStateChange[_]
    input.Body.workflows[_].steps[_].executionBlockConfiguration.globalAuroraConfig.timeoutMinutes == INTEGER
    input.Body.workflows[_].steps[_].executionBlockConfiguration.globalAuroraConfig.crossAccountRole == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.globalAuroraConfig.externalId == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.globalAuroraConfig.behavior == enum_GlobalAuroraDefaultBehavior[_]
    input.Body.workflows[_].steps[_].executionBlockConfiguration.globalAuroraConfig.ungraceful.ungraceful == enum_GlobalAuroraUngracefulBehavior[_]
    input.Body.workflows[_].steps[_].executionBlockConfiguration.globalAuroraConfig.globalClusterIdentifier == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.globalAuroraConfig.databaseClusterArns[_] == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.parallelConfig.steps == NESTED
    input.Body.workflows[_].steps[_].executionBlockConfiguration.regionSwitchPlanConfig.crossAccountRole == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.regionSwitchPlanConfig.externalId == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.regionSwitchPlanConfig.arn == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.ecsCapacityIncreaseConfig.timeoutMinutes == INTEGER
    input.Body.workflows[_].steps[_].executionBlockConfiguration.ecsCapacityIncreaseConfig.services[_].crossAccountRole == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.ecsCapacityIncreaseConfig.services[_].externalId == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.ecsCapacityIncreaseConfig.services[_].clusterArn == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.ecsCapacityIncreaseConfig.services[_].serviceArn == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.ecsCapacityIncreaseConfig.ungraceful.minimumSuccessPercentage == INTEGER
    input.Body.workflows[_].steps[_].executionBlockConfiguration.ecsCapacityIncreaseConfig.targetPercent == INTEGER
    input.Body.workflows[_].steps[_].executionBlockConfiguration.ecsCapacityIncreaseConfig.capacityMonitoringApproach == enum_EcsCapacityMonitoringApproach[_]
    input.Body.workflows[_].steps[_].executionBlockConfiguration.eksResourceScalingConfig.timeoutMinutes == INTEGER
    input.Body.workflows[_].steps[_].executionBlockConfiguration.eksResourceScalingConfig.kubernetesResourceType.apiVersion == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.eksResourceScalingConfig.kubernetesResourceType.kind == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.eksResourceScalingConfig.scalingResources[_].STRING.STRING.namespace == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.eksResourceScalingConfig.scalingResources[_].STRING.STRING.name == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.eksResourceScalingConfig.scalingResources[_].STRING.STRING.hpaName == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.eksResourceScalingConfig.eksClusters[_].crossAccountRole == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.eksResourceScalingConfig.eksClusters[_].externalId == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.eksResourceScalingConfig.eksClusters[_].clusterArn == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.eksResourceScalingConfig.ungraceful.minimumSuccessPercentage == INTEGER
    input.Body.workflows[_].steps[_].executionBlockConfiguration.eksResourceScalingConfig.targetPercent == INTEGER
    input.Body.workflows[_].steps[_].executionBlockConfiguration.eksResourceScalingConfig.capacityMonitoringApproach == enum_EksCapacityMonitoringApproach[_]
    input.Body.workflows[_].steps[_].executionBlockConfiguration.route53HealthCheckConfig.timeoutMinutes == INTEGER
    input.Body.workflows[_].steps[_].executionBlockConfiguration.route53HealthCheckConfig.crossAccountRole == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.route53HealthCheckConfig.externalId == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.route53HealthCheckConfig.hostedZoneId == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.route53HealthCheckConfig.recordName == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.route53HealthCheckConfig.recordSets[_].recordSetIdentifier == STRING
    input.Body.workflows[_].steps[_].executionBlockConfiguration.route53HealthCheckConfig.recordSets[_].region == STRING
    input.Body.workflows[_].steps[_].executionBlockType == enum_ExecutionBlockType[_]
    input.Body.workflows[_].workflowTargetAction == enum_WorkflowTargetAction[_]
    input.Body.workflows[_].workflowTargetRegion == STRING
    input.Body.workflows[_].workflowDescription == STRING
    input.Body.executionRole == STRING
    input.Body.recoveryTimeObjectiveMinutes == INTEGER
    input.Body.associatedAlarms.STRING.crossAccountRole == STRING
    input.Body.associatedAlarms.STRING.externalId == STRING
    input.Body.associatedAlarms.STRING.resourceIdentifier == STRING
    input.Body.associatedAlarms.STRING.alarmType == enum_AlarmType[_]
    input.Body.triggers[_].description == STRING
    input.Body.triggers[_].targetRegion == STRING
    input.Body.triggers[_].action == enum_WorkflowTargetAction[_]
    input.Body.triggers[_].conditions[_].associatedAlarmName == STRING
    input.Body.triggers[_].conditions[_].condition == enum_AlarmCondition[_]
    input.Body.triggers[_].minDelayMinutesBetweenExecutions == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdatePlanExecution

enum_UpdatePlanExecutionAction := [ "switchToGraceful", "switchToUngraceful", "pause", "resume" ]

valid {
    input.Body.planArn == STRING
    input.Body.executionId == STRING
    input.Body.action == enum_UpdatePlanExecutionAction[_]
    input.Body.comment == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdatePlanExecutionStep

enum_UpdatePlanExecutionStepAction := [ "switchToUngraceful", "skip" ]

valid {
    input.Body.planArn == STRING
    input.Body.executionId == STRING
    input.Body.comment == STRING
    input.Body.stepName == STRING
    input.Body.actionToTake == enum_UpdatePlanExecutionStepAction[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}