from . import AWSAttribute, AWSProperty, PropsDictType, validate_pausetime
from .validators import boolean, integer, positive_integer
[docs]class AutoScalingRollingUpdate(AWSProperty):
props: PropsDictType = {
"MaxBatchSize": (positive_integer, False),
"MinInstancesInService": (integer, False),
"MinSuccessfulInstancesPercent": (integer, False),
"PauseTime": (validate_pausetime, False),
"SuspendProcesses": ([str], False),
"WaitOnResourceSignals": (boolean, False),
}
[docs]class AutoScalingScheduledAction(AWSProperty):
props: PropsDictType = {
"IgnoreUnmodifiedGroupSizeProperties": (boolean, False),
}
[docs]class AutoScalingReplacingUpdate(AWSProperty):
props: PropsDictType = {
"WillReplace": (boolean, False),
}
[docs]class CodeDeployLambdaAliasUpdate(AWSProperty):
props: PropsDictType = {
"AfterAllowTrafficHook": (str, False),
"ApplicationName": (boolean, True),
"BeforeAllowTrafficHook": (str, False),
"DeploymentGroupName": (boolean, True),
}
[docs]class UpdatePolicy(AWSAttribute):
props: PropsDictType = {
"AutoScalingRollingUpdate": (AutoScalingRollingUpdate, False),
"AutoScalingScheduledAction": (AutoScalingScheduledAction, False),
"AutoScalingReplacingUpdate": (AutoScalingReplacingUpdate, False),
"CodeDeployLambdaAliasUpdate": (CodeDeployLambdaAliasUpdate, False),
"UseOnlineResharding": (boolean, False),
"EnableVersionUpgrade": (boolean, False),
}
[docs]class ResourceSignal(AWSProperty):
props: PropsDictType = {
"Count": (positive_integer, False),
"Timeout": (validate_pausetime, False),
}
[docs]class AutoScalingCreationPolicy(AWSProperty):
props: PropsDictType = {
"MinSuccessfulInstancesPercent": (integer, False),
}
[docs]class CreationPolicy(AWSAttribute):
props: PropsDictType = {
"AutoScalingCreationPolicy": (AutoScalingCreationPolicy, False),
"ResourceSignal": (ResourceSignal, True),
}