# Copyright (c) 2012-2025, Mark Peek <mark@peek.org>
# All rights reserved.
#
# See LICENSE file for full license.
#
# *** Do not modify - this file is autogenerated ***
from . import AWSObject, AWSProperty, PropsDictType, Tags
from .validators import boolean, double, integer
from .validators.ecs import LAUNCH_TYPE_EC2 # noqa: F401
from .validators.ecs import LAUNCH_TYPE_FARGATE # noqa: F401
from .validators.ecs import RUNTIME_PLATFORM_CPU_CONFIGURATIONS # noqa: F401
from .validators.ecs import RUNTIME_PLATFORM_OS_FAMILY # noqa: F401
from .validators.ecs import SCHEDULING_STRATEGY_DAEMON # noqa: F401
from .validators.ecs import SCHEDULING_STRATEGY_REPLICA # noqa: F401
from .validators.ecs import (
ecs_efs_encryption_status,
ecs_proxy_type,
launch_type_validator,
placement_constraint_validator,
placement_strategy_validator,
scope_validator,
validate_ephemeral_storage_size,
validate_network_port,
validate_runtime_platform,
validate_scaling_step_size,
validate_target_capacity,
validate_transit_encryption_port,
)
[docs]class ManagedScaling(AWSProperty):
"""
`ManagedScaling <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-managedscaling.html>`__
"""
props: PropsDictType = {
"InstanceWarmupPeriod": (integer, False),
"MaximumScalingStepSize": (validate_scaling_step_size, False),
"MinimumScalingStepSize": (validate_scaling_step_size, False),
"Status": (str, False),
"TargetCapacity": (validate_target_capacity, False),
}
[docs]class AutoScalingGroupProvider(AWSProperty):
"""
`AutoScalingGroupProvider <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-autoscalinggroupprovider.html>`__
"""
props: PropsDictType = {
"AutoScalingGroupArn": (str, True),
"ManagedDraining": (str, False),
"ManagedScaling": (ManagedScaling, False),
"ManagedTerminationProtection": (str, False),
}
[docs]class AutoRepairConfiguration(AWSProperty):
"""
`AutoRepairConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-autorepairconfiguration.html>`__
"""
props: PropsDictType = {
"ActionsStatus": (str, False),
}
[docs]class InfrastructureOptimization(AWSProperty):
"""
`InfrastructureOptimization <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-infrastructureoptimization.html>`__
"""
props: PropsDictType = {
"ScaleInAfter": (integer, False),
}
[docs]class CapacityReservationRequest(AWSProperty):
"""
`CapacityReservationRequest <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-capacityreservationrequest.html>`__
"""
props: PropsDictType = {
"ReservationGroupArn": (str, False),
"ReservationPreference": (str, False),
}
[docs]class AcceleratorCountRequest(AWSProperty):
"""
`AcceleratorCountRequest <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-acceleratorcountrequest.html>`__
"""
props: PropsDictType = {
"Max": (integer, False),
"Min": (integer, False),
}
[docs]class AcceleratorTotalMemoryMiBRequest(AWSProperty):
"""
`AcceleratorTotalMemoryMiBRequest <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-acceleratortotalmemorymibrequest.html>`__
"""
props: PropsDictType = {
"Max": (integer, False),
"Min": (integer, False),
}
[docs]class BaselineEbsBandwidthMbpsRequest(AWSProperty):
"""
`BaselineEbsBandwidthMbpsRequest <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-baselineebsbandwidthmbpsrequest.html>`__
"""
props: PropsDictType = {
"Max": (integer, False),
"Min": (integer, False),
}
[docs]class MemoryGiBPerVCpuRequest(AWSProperty):
"""
`MemoryGiBPerVCpuRequest <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-memorygibpervcpurequest.html>`__
"""
props: PropsDictType = {
"Max": (double, False),
"Min": (double, False),
}
[docs]class MemoryMiBRequest(AWSProperty):
"""
`MemoryMiBRequest <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-memorymibrequest.html>`__
"""
props: PropsDictType = {
"Max": (integer, False),
"Min": (integer, True),
}
[docs]class NetworkBandwidthGbpsRequest(AWSProperty):
"""
`NetworkBandwidthGbpsRequest <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-networkbandwidthgbpsrequest.html>`__
"""
props: PropsDictType = {
"Max": (double, False),
"Min": (double, False),
}
[docs]class NetworkInterfaceCountRequest(AWSProperty):
"""
`NetworkInterfaceCountRequest <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-networkinterfacecountrequest.html>`__
"""
props: PropsDictType = {
"Max": (integer, False),
"Min": (integer, False),
}
[docs]class TotalLocalStorageGBRequest(AWSProperty):
"""
`TotalLocalStorageGBRequest <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-totallocalstoragegbrequest.html>`__
"""
props: PropsDictType = {
"Max": (double, False),
"Min": (double, False),
}
[docs]class VCpuCountRangeRequest(AWSProperty):
"""
`VCpuCountRangeRequest <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-vcpucountrangerequest.html>`__
"""
props: PropsDictType = {
"Max": (integer, False),
"Min": (integer, True),
}
[docs]class InstanceRequirementsRequest(AWSProperty):
"""
`InstanceRequirementsRequest <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-instancerequirementsrequest.html>`__
"""
props: PropsDictType = {
"AcceleratorCount": (AcceleratorCountRequest, False),
"AcceleratorManufacturers": ([str], False),
"AcceleratorNames": ([str], False),
"AcceleratorTotalMemoryMiB": (AcceleratorTotalMemoryMiBRequest, False),
"AcceleratorTypes": ([str], False),
"AllowedInstanceTypes": ([str], False),
"BareMetal": (str, False),
"BaselineEbsBandwidthMbps": (BaselineEbsBandwidthMbpsRequest, False),
"BurstablePerformance": (str, False),
"CpuManufacturers": ([str], False),
"ExcludedInstanceTypes": ([str], False),
"InstanceGenerations": ([str], False),
"LocalStorage": (str, False),
"LocalStorageTypes": ([str], False),
"MaxSpotPriceAsPercentageOfOptimalOnDemandPrice": (integer, False),
"MemoryGiBPerVCpu": (MemoryGiBPerVCpuRequest, False),
"MemoryMiB": (MemoryMiBRequest, True),
"NetworkBandwidthGbps": (NetworkBandwidthGbpsRequest, False),
"NetworkInterfaceCount": (NetworkInterfaceCountRequest, False),
"OnDemandMaxPricePercentageOverLowestPrice": (integer, False),
"RequireHibernateSupport": (boolean, False),
"SpotMaxPricePercentageOverLowestPrice": (integer, False),
"TotalLocalStorageGB": (TotalLocalStorageGBRequest, False),
"VCpuCount": (VCpuCountRangeRequest, True),
}
[docs]class ManagedInstancesLocalStorageConfiguration(AWSProperty):
"""
`ManagedInstancesLocalStorageConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-managedinstanceslocalstorageconfiguration.html>`__
"""
props: PropsDictType = {
"UseLocalStorage": (boolean, False),
}
[docs]class ManagedInstancesNetworkConfiguration(AWSProperty):
"""
`ManagedInstancesNetworkConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-managedinstancesnetworkconfiguration.html>`__
"""
props: PropsDictType = {
"SecurityGroups": ([str], True),
"Subnets": ([str], True),
}
[docs]class ManagedInstancesStorageConfiguration(AWSProperty):
"""
`ManagedInstancesStorageConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-managedinstancesstorageconfiguration.html>`__
"""
props: PropsDictType = {
"StorageSizeGiB": (integer, True),
}
[docs]class InstanceLaunchTemplate(AWSProperty):
"""
`InstanceLaunchTemplate <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-instancelaunchtemplate.html>`__
"""
props: PropsDictType = {
"CapacityOptionType": (str, False),
"CapacityReservations": (CapacityReservationRequest, False),
"Ec2InstanceProfileArn": (str, True),
"FipsEnabled": (boolean, False),
"InstanceMetadataTagsPropagation": (boolean, False),
"InstanceRequirements": (InstanceRequirementsRequest, False),
"LocalStorageConfiguration": (ManagedInstancesLocalStorageConfiguration, False),
"Monitoring": (str, False),
"NetworkConfiguration": (ManagedInstancesNetworkConfiguration, True),
"StorageConfiguration": (ManagedInstancesStorageConfiguration, False),
}
[docs]class ManagedInstancesProvider(AWSProperty):
"""
`ManagedInstancesProvider <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-managedinstancesprovider.html>`__
"""
props: PropsDictType = {
"AutoRepairConfiguration": (AutoRepairConfiguration, False),
"InfrastructureOptimization": (InfrastructureOptimization, False),
"InfrastructureRoleArn": (str, True),
"InstanceLaunchTemplate": (InstanceLaunchTemplate, True),
"PropagateTags": (str, False),
}
[docs]class CapacityProvider(AWSObject):
"""
`CapacityProvider <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-capacityprovider.html>`__
"""
resource_type = "AWS::ECS::CapacityProvider"
props: PropsDictType = {
"AutoScalingGroupProvider": (AutoScalingGroupProvider, False),
"ClusterName": (str, False),
"ManagedInstancesProvider": (ManagedInstancesProvider, False),
"Name": (str, False),
"Tags": (Tags, False),
}
[docs]class CapacityProviderStrategyItem(AWSProperty):
"""
`CapacityProviderStrategyItem <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskset-capacityproviderstrategyitem.html>`__
"""
props: PropsDictType = {
"Base": (integer, False),
"CapacityProvider": (str, False),
"Weight": (integer, False),
}
[docs]class ExecuteCommandLogConfiguration(AWSProperty):
"""
`ExecuteCommandLogConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-executecommandlogconfiguration.html>`__
"""
props: PropsDictType = {
"CloudWatchEncryptionEnabled": (boolean, False),
"CloudWatchLogGroupName": (str, False),
"S3BucketName": (str, False),
"S3EncryptionEnabled": (boolean, False),
"S3KeyPrefix": (str, False),
}
[docs]class ExecuteCommandConfiguration(AWSProperty):
"""
`ExecuteCommandConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-executecommandconfiguration.html>`__
"""
props: PropsDictType = {
"KmsKeyId": (str, False),
"LogConfiguration": (ExecuteCommandLogConfiguration, False),
"Logging": (str, False),
}
[docs]class ManagedStorageConfiguration(AWSProperty):
"""
`ManagedStorageConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-managedstorageconfiguration.html>`__
"""
props: PropsDictType = {
"FargateEphemeralStorageKmsKeyId": (str, False),
"KmsKeyId": (str, False),
}
[docs]class ClusterConfiguration(AWSProperty):
"""
`ClusterConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-clusterconfiguration.html>`__
"""
props: PropsDictType = {
"ExecuteCommandConfiguration": (ExecuteCommandConfiguration, False),
"ManagedStorageConfiguration": (ManagedStorageConfiguration, False),
}
[docs]class ClusterSetting(AWSProperty):
"""
`ClusterSetting <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-clustersettings.html>`__
"""
props: PropsDictType = {
"Name": (str, False),
"Value": (str, False),
}
[docs]class ServiceConnectDefaults(AWSProperty):
"""
`ServiceConnectDefaults <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-serviceconnectdefaults.html>`__
"""
props: PropsDictType = {
"Namespace": (str, False),
}
[docs]class Cluster(AWSObject):
"""
`Cluster <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-cluster.html>`__
"""
resource_type = "AWS::ECS::Cluster"
props: PropsDictType = {
"CapacityProviders": ([str], False),
"ClusterName": (str, False),
"ClusterSettings": ([ClusterSetting], False),
"Configuration": (ClusterConfiguration, False),
"DefaultCapacityProviderStrategy": ([CapacityProviderStrategyItem], False),
"ServiceConnectDefaults": (ServiceConnectDefaults, False),
"Tags": (Tags, False),
}
[docs]class CapacityProviderStrategy(AWSProperty):
"""
`CapacityProviderStrategy <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-clustercapacityproviderassociations-capacityproviderstrategy.html>`__
"""
props: PropsDictType = {
"Base": (integer, False),
"CapacityProvider": (str, True),
"Weight": (integer, False),
}
[docs]class ClusterCapacityProviderAssociations(AWSObject):
"""
`ClusterCapacityProviderAssociations <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-clustercapacityproviderassociations.html>`__
"""
resource_type = "AWS::ECS::ClusterCapacityProviderAssociations"
props: PropsDictType = {
"CapacityProviders": ([str], False),
"Cluster": (str, True),
"DefaultCapacityProviderStrategy": ([CapacityProviderStrategy], True),
}
[docs]class DaemonAlarmConfiguration(AWSProperty):
"""
`DaemonAlarmConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-daemon-daemonalarmconfiguration.html>`__
"""
props: PropsDictType = {
"AlarmNames": ([str], False),
"Enable": (boolean, False),
}
[docs]class DaemonDeploymentConfiguration(AWSProperty):
"""
`DaemonDeploymentConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-daemon-daemondeploymentconfiguration.html>`__
"""
props: PropsDictType = {
"Alarms": (DaemonAlarmConfiguration, False),
"BakeTimeInMinutes": (integer, False),
"DrainPercent": (double, False),
}
[docs]class Daemon(AWSObject):
"""
`Daemon <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-daemon.html>`__
"""
resource_type = "AWS::ECS::Daemon"
props: PropsDictType = {
"CapacityProviderArns": ([str], False),
"ClusterArn": (str, False),
"DaemonName": (str, False),
"DaemonTaskDefinitionArn": (str, False),
"DeploymentConfiguration": (DaemonDeploymentConfiguration, False),
"EnableECSManagedTags": (boolean, False),
"EnableExecuteCommand": (boolean, False),
"PropagateTags": (str, False),
"Tags": (Tags, False),
}
[docs]class ContainerDependency(AWSProperty):
"""
`ContainerDependency <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdependency.html>`__
"""
props: PropsDictType = {
"Condition": (str, False),
"ContainerName": (str, False),
}
[docs]class EnvironmentFile(AWSProperty):
"""
`EnvironmentFile <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-environmentfile.html>`__
"""
props: PropsDictType = {
"Type": (str, False),
"Value": (str, False),
}
[docs]class FirelensConfiguration(AWSProperty):
"""
`FirelensConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-firelensconfiguration.html>`__
"""
props: PropsDictType = {
"Options": (dict, False),
"Type": (str, False),
}
[docs]class HealthCheck(AWSProperty):
"""
`HealthCheck <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-healthcheck.html>`__
"""
props: PropsDictType = {
"Command": ([str], False),
"Interval": (integer, False),
"Retries": (integer, False),
"StartPeriod": (integer, False),
"Timeout": (integer, False),
}
[docs]class KeyValuePair(AWSProperty):
"""
`KeyValuePair <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-expressgatewayservice-keyvaluepair.html>`__
"""
props: PropsDictType = {
"Name": (str, True),
"Value": (str, True),
}
[docs]class Device(AWSProperty):
"""
`Device <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-device.html>`__
"""
props: PropsDictType = {
"ContainerPath": (str, False),
"HostPath": (str, False),
"Permissions": ([str], False),
}
[docs]class KernelCapabilities(AWSProperty):
"""
`KernelCapabilities <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-kernelcapabilities.html>`__
"""
props: PropsDictType = {
"Add": ([str], False),
"Drop": ([str], False),
}
[docs]class Tmpfs(AWSProperty):
"""
`Tmpfs <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-tmpfs.html>`__
"""
props: PropsDictType = {
"ContainerPath": (str, False),
"MountOptions": ([str], False),
"Size": (integer, True),
}
[docs]class LinuxParameters(AWSProperty):
"""
`LinuxParameters <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-linuxparameters.html>`__
"""
props: PropsDictType = {
"Capabilities": (KernelCapabilities, False),
"Devices": ([Device], False),
"InitProcessEnabled": (boolean, False),
"MaxSwap": (integer, False),
"SharedMemorySize": (integer, False),
"Swappiness": (integer, False),
"Tmpfs": ([Tmpfs], False),
}
[docs]class Secret(AWSProperty):
"""
`Secret <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-secret.html>`__
"""
props: PropsDictType = {
"Name": (str, True),
"ValueFrom": (str, True),
}
[docs]class LogConfiguration(AWSProperty):
"""
`LogConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-logconfiguration.html>`__
"""
props: PropsDictType = {
"LogDriver": (str, True),
"Options": (dict, False),
"SecretOptions": ([Secret], False),
}
[docs]class MountPoint(AWSProperty):
"""
`MountPoint <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-mountpoint.html>`__
"""
props: PropsDictType = {
"ContainerPath": (str, False),
"ReadOnly": (boolean, False),
"SourceVolume": (str, False),
}
[docs]class RepositoryCredentials(AWSProperty):
"""
`RepositoryCredentials <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-repositorycredentials.html>`__
"""
props: PropsDictType = {
"CredentialsParameter": (str, False),
}
[docs]class RestartPolicy(AWSProperty):
"""
`RestartPolicy <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-restartpolicy.html>`__
"""
props: PropsDictType = {
"Enabled": (boolean, False),
"IgnoredExitCodes": ([integer], False),
"RestartAttemptPeriod": (integer, False),
}
[docs]class SystemControl(AWSProperty):
"""
`SystemControl <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-systemcontrol.html>`__
"""
props: PropsDictType = {
"Namespace": (str, False),
"Value": (str, False),
}
[docs]class Ulimit(AWSProperty):
"""
`Ulimit <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-ulimit.html>`__
"""
props: PropsDictType = {
"HardLimit": (integer, True),
"Name": (str, True),
"SoftLimit": (integer, True),
}
[docs]class DaemonContainerDefinition(AWSProperty):
"""
`DaemonContainerDefinition <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-daemontaskdefinition-daemoncontainerdefinition.html>`__
"""
props: PropsDictType = {
"Command": ([str], False),
"Cpu": (integer, False),
"DependsOn": ([ContainerDependency], False),
"EntryPoint": ([str], False),
"Environment": ([KeyValuePair], False),
"EnvironmentFiles": ([EnvironmentFile], False),
"Essential": (boolean, False),
"FirelensConfiguration": (FirelensConfiguration, False),
"HealthCheck": (HealthCheck, False),
"Image": (str, True),
"Interactive": (boolean, False),
"LinuxParameters": (LinuxParameters, False),
"LogConfiguration": (LogConfiguration, False),
"Memory": (integer, False),
"MemoryReservation": (integer, False),
"MountPoints": ([MountPoint], False),
"Name": (str, True),
"Privileged": (boolean, False),
"PseudoTerminal": (boolean, False),
"ReadonlyRootFilesystem": (boolean, False),
"RepositoryCredentials": (RepositoryCredentials, False),
"RestartPolicy": (RestartPolicy, False),
"Secrets": ([Secret], False),
"StartTimeout": (integer, False),
"StopTimeout": (integer, False),
"SystemControls": ([SystemControl], False),
"Ulimits": ([Ulimit], False),
"User": (str, False),
"WorkingDirectory": (str, False),
}
[docs]class DockerVolumeConfiguration(AWSProperty):
"""
`DockerVolumeConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-dockervolumeconfiguration.html>`__
"""
props: PropsDictType = {
"Autoprovision": (boolean, False),
"Driver": (str, False),
"DriverOpts": (dict, False),
"Labels": (dict, False),
"Scope": (scope_validator, False),
}
[docs]class AuthorizationConfig(AWSProperty):
"""
`AuthorizationConfig <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-authorizationconfig.html>`__
"""
props: PropsDictType = {
"AccessPointId": (str, False),
"IAM": (str, False),
}
[docs]class EFSVolumeConfiguration(AWSProperty):
"""
`EFSVolumeConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-efsvolumeconfiguration.html>`__
"""
props: PropsDictType = {
"AuthorizationConfig": (AuthorizationConfig, False),
"FilesystemId": (str, True),
"RootDirectory": (str, False),
"TransitEncryption": (ecs_efs_encryption_status, False),
"TransitEncryptionPort": (validate_transit_encryption_port, False),
}
[docs]class FSxAuthorizationConfig(AWSProperty):
"""
`FSxAuthorizationConfig <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-fsxauthorizationconfig.html>`__
"""
props: PropsDictType = {
"CredentialsParameter": (str, True),
"Domain": (str, True),
}
[docs]class FSxWindowsFileServerVolumeConfiguration(AWSProperty):
"""
`FSxWindowsFileServerVolumeConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-fsxwindowsfileservervolumeconfiguration.html>`__
"""
props: PropsDictType = {
"AuthorizationConfig": (FSxAuthorizationConfig, False),
"FileSystemId": (str, True),
"RootDirectory": (str, True),
}
[docs]class Host(AWSProperty):
"""
`Host <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-hostvolumeproperties.html>`__
"""
props: PropsDictType = {
"SourcePath": (str, False),
}
[docs]class S3FilesVolumeConfiguration(AWSProperty):
"""
`S3FilesVolumeConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-s3filesvolumeconfiguration.html>`__
"""
props: PropsDictType = {
"AccessPointArn": (str, False),
"FileSystemArn": (str, True),
"RootDirectory": (str, False),
"TransitEncryptionPort": (integer, False),
}
[docs]class Volume(AWSProperty):
"""
`Volume <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-volume.html>`__
"""
props: PropsDictType = {
"ConfiguredAtLaunch": (boolean, False),
"DockerVolumeConfiguration": (DockerVolumeConfiguration, False),
"EFSVolumeConfiguration": (EFSVolumeConfiguration, False),
"FSxWindowsFileServerVolumeConfiguration": (
FSxWindowsFileServerVolumeConfiguration,
False,
),
"Host": (Host, False),
"Name": (str, False),
"S3FilesVolumeConfiguration": (S3FilesVolumeConfiguration, False),
}
[docs]class DaemonTaskDefinition(AWSObject):
"""
`DaemonTaskDefinition <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-daemontaskdefinition.html>`__
"""
resource_type = "AWS::ECS::DaemonTaskDefinition"
props: PropsDictType = {
"ContainerDefinitions": ([DaemonContainerDefinition], False),
"Cpu": (str, False),
"ExecutionRoleArn": (str, False),
"Family": (str, False),
"Memory": (str, False),
"Tags": (Tags, False),
"TaskRoleArn": (str, False),
"Volumes": ([Volume], False),
}
[docs]class ExpressGatewayRepositoryCredentials(AWSProperty):
"""
`ExpressGatewayRepositoryCredentials <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-expressgatewayservice-expressgatewayrepositorycredentials.html>`__
"""
props: PropsDictType = {
"CredentialsParameter": (str, True),
}
[docs]class ExpressGatewayServiceAwsLogsConfiguration(AWSProperty):
"""
`ExpressGatewayServiceAwsLogsConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-expressgatewayservice-expressgatewayserviceawslogsconfiguration.html>`__
"""
props: PropsDictType = {
"LogGroup": (str, True),
"LogStreamPrefix": (str, True),
}
[docs]class ExpressGatewayContainer(AWSProperty):
"""
`ExpressGatewayContainer <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-expressgatewayservice-expressgatewaycontainer.html>`__
"""
props: PropsDictType = {
"AwsLogsConfiguration": (ExpressGatewayServiceAwsLogsConfiguration, False),
"Command": ([str], False),
"ContainerPort": (integer, False),
"Environment": ([KeyValuePair], False),
"Image": (str, True),
"RepositoryCredentials": (ExpressGatewayRepositoryCredentials, False),
"Secrets": ([Secret], False),
}
[docs]class ExpressGatewayScalingTarget(AWSProperty):
"""
`ExpressGatewayScalingTarget <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-expressgatewayservice-expressgatewayscalingtarget.html>`__
"""
props: PropsDictType = {
"AutoScalingMetric": (str, False),
"AutoScalingTargetValue": (integer, False),
"MaxTaskCount": (integer, False),
"MinTaskCount": (integer, False),
}
[docs]class ExpressGatewayServiceNetworkConfiguration(AWSProperty):
"""
`ExpressGatewayServiceNetworkConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-expressgatewayservice-expressgatewayservicenetworkconfiguration.html>`__
"""
props: PropsDictType = {
"SecurityGroups": ([str], False),
"Subnets": ([str], False),
}
[docs]class ExpressGatewayService(AWSObject):
"""
`ExpressGatewayService <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-expressgatewayservice.html>`__
"""
resource_type = "AWS::ECS::ExpressGatewayService"
props: PropsDictType = {
"Cluster": (str, False),
"Cpu": (str, False),
"ExecutionRoleArn": (str, True),
"HealthCheckPath": (str, False),
"InfrastructureRoleArn": (str, True),
"Memory": (str, False),
"NetworkConfiguration": (ExpressGatewayServiceNetworkConfiguration, False),
"PrimaryContainer": (ExpressGatewayContainer, True),
"ScalingTarget": (ExpressGatewayScalingTarget, False),
"ServiceName": (str, False),
"Tags": (Tags, False),
"TaskRoleArn": (str, False),
}
[docs]class PrimaryTaskSet(AWSObject):
"""
`PrimaryTaskSet <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-primarytaskset.html>`__
"""
resource_type = "AWS::ECS::PrimaryTaskSet"
props: PropsDictType = {
"Cluster": (str, True),
"Service": (str, True),
"TaskSetId": (str, True),
}
[docs]class CanaryConfiguration(AWSProperty):
"""
`CanaryConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-canaryconfiguration.html>`__
"""
props: PropsDictType = {
"CanaryBakeTimeInMinutes": (integer, False),
"CanaryPercent": (double, False),
}
[docs]class DeploymentAlarms(AWSProperty):
"""
`DeploymentAlarms <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-deploymentalarms.html>`__
"""
props: PropsDictType = {
"AlarmNames": ([str], True),
"Enable": (boolean, True),
"Rollback": (boolean, True),
}
[docs]class DeploymentCircuitBreaker(AWSProperty):
"""
`DeploymentCircuitBreaker <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-deploymentcircuitbreaker.html>`__
"""
props: PropsDictType = {
"Enable": (boolean, True),
"Rollback": (boolean, True),
}
[docs]class DeploymentLifecycleHook(AWSProperty):
"""
`DeploymentLifecycleHook <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-deploymentlifecyclehook.html>`__
"""
props: PropsDictType = {
"HookDetails": (dict, False),
"HookTargetArn": (str, False),
"LifecycleStages": ([str], True),
"RoleArn": (str, False),
"TimeoutConfiguration": (dict, False),
}
[docs]class LinearConfiguration(AWSProperty):
"""
`LinearConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-linearconfiguration.html>`__
"""
props: PropsDictType = {
"StepBakeTimeInMinutes": (integer, False),
"StepPercent": (double, False),
}
[docs]class DeploymentConfiguration(AWSProperty):
"""
`DeploymentConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-deploymentconfiguration.html>`__
"""
props: PropsDictType = {
"Alarms": (DeploymentAlarms, False),
"BakeTimeInMinutes": (integer, False),
"CanaryConfiguration": (CanaryConfiguration, False),
"DeploymentCircuitBreaker": (DeploymentCircuitBreaker, False),
"LifecycleHooks": ([DeploymentLifecycleHook], False),
"LinearConfiguration": (LinearConfiguration, False),
"MaximumPercent": (integer, False),
"MinimumHealthyPercent": (integer, False),
"Strategy": (str, False),
}
[docs]class DeploymentController(AWSProperty):
"""
`DeploymentController <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-deploymentcontroller.html>`__
"""
props: PropsDictType = {
"Type": (str, False),
}
[docs]class ForceNewDeployment(AWSProperty):
"""
`ForceNewDeployment <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-forcenewdeployment.html>`__
"""
props: PropsDictType = {
"EnableForceNewDeployment": (boolean, True),
"ForceNewDeploymentNonce": (str, False),
}
[docs]class AdvancedConfiguration(AWSProperty):
"""
`AdvancedConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-advancedconfiguration.html>`__
"""
props: PropsDictType = {
"AlternateTargetGroupArn": (str, True),
"ProductionListenerRule": (str, False),
"RoleArn": (str, False),
"TestListenerRule": (str, False),
}
[docs]class LoadBalancer(AWSProperty):
"""
`LoadBalancer <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-loadbalancer.html>`__
"""
props: PropsDictType = {
"AdvancedConfiguration": (AdvancedConfiguration, False),
"ContainerName": (str, False),
"ContainerPort": (validate_network_port, False),
"LoadBalancerName": (str, False),
"TargetGroupArn": (str, False),
}
[docs]class AwsvpcConfiguration(AWSProperty):
"""
`AwsvpcConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-awsvpcconfiguration.html>`__
"""
props: PropsDictType = {
"AssignPublicIp": (str, False),
"SecurityGroups": ([str], False),
"Subnets": ([str], False),
}
[docs]class NetworkConfiguration(AWSProperty):
"""
`NetworkConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-networkconfiguration.html>`__
"""
props: PropsDictType = {
"AwsvpcConfiguration": (AwsvpcConfiguration, False),
}
[docs]class PlacementConstraint(AWSProperty):
"""
`PlacementConstraint <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-taskdefinitionplacementconstraint.html>`__
"""
props: PropsDictType = {
"Expression": (str, False),
"Type": (placement_constraint_validator, True),
}
[docs]class PlacementStrategy(AWSProperty):
"""
`PlacementStrategy <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-placementstrategy.html>`__
"""
props: PropsDictType = {
"Field": (str, False),
"Type": (placement_strategy_validator, True),
}
[docs]class ServiceConnectAccessLogConfiguration(AWSProperty):
"""
`ServiceConnectAccessLogConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-serviceconnectaccesslogconfiguration.html>`__
"""
props: PropsDictType = {
"Format": (str, True),
"IncludeQueryParameters": (str, False),
}
[docs]class ServiceConnectTestTrafficRules(AWSProperty):
"""
`ServiceConnectTestTrafficRules <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-serviceconnecttesttrafficrules.html>`__
"""
props: PropsDictType = {
"Header": (ServiceConnectTestTrafficRulesHeader, True),
}
[docs]class ServiceConnectClientAlias(AWSProperty):
"""
`ServiceConnectClientAlias <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-serviceconnectclientalias.html>`__
"""
props: PropsDictType = {
"DnsName": (str, False),
"Port": (integer, True),
"TestTrafficRules": (ServiceConnectTestTrafficRules, False),
}
[docs]class ServiceConnectTlsCertificateAuthority(AWSProperty):
"""
`ServiceConnectTlsCertificateAuthority <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-serviceconnecttlscertificateauthority.html>`__
"""
props: PropsDictType = {
"AwsPcaAuthorityArn": (str, False),
}
[docs]class ServiceConnectTlsConfiguration(AWSProperty):
"""
`ServiceConnectTlsConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-serviceconnecttlsconfiguration.html>`__
"""
props: PropsDictType = {
"IssuerCertificateAuthority": (ServiceConnectTlsCertificateAuthority, True),
"KmsKey": (str, False),
"RoleArn": (str, False),
}
[docs]class TimeoutConfiguration(AWSProperty):
"""
`TimeoutConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-timeoutconfiguration.html>`__
"""
props: PropsDictType = {
"IdleTimeoutSeconds": (integer, False),
"PerRequestTimeoutSeconds": (integer, False),
}
[docs]class ServiceConnectService(AWSProperty):
"""
`ServiceConnectService <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-serviceconnectservice.html>`__
"""
props: PropsDictType = {
"ClientAliases": ([ServiceConnectClientAlias], False),
"DiscoveryName": (str, False),
"IngressPortOverride": (integer, False),
"PortName": (str, True),
"Timeout": (TimeoutConfiguration, False),
"Tls": (ServiceConnectTlsConfiguration, False),
}
[docs]class ServiceConnectConfiguration(AWSProperty):
"""
`ServiceConnectConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-serviceconnectconfiguration.html>`__
"""
props: PropsDictType = {
"AccessLogConfiguration": (ServiceConnectAccessLogConfiguration, False),
"Enabled": (boolean, True),
"LogConfiguration": (LogConfiguration, False),
"Namespace": (str, False),
"Services": ([ServiceConnectService], False),
}
[docs]class ServiceRegistry(AWSProperty):
"""
`ServiceRegistry <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskset-serviceregistry.html>`__
"""
props: PropsDictType = {
"ContainerName": (str, False),
"ContainerPort": (integer, False),
"Port": (integer, False),
"RegistryArn": (str, False),
}
[docs]class ServiceManagedEBSVolumeConfiguration(AWSProperty):
"""
`ServiceManagedEBSVolumeConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-servicemanagedebsvolumeconfiguration.html>`__
"""
props: PropsDictType = {
"Encrypted": (boolean, False),
"FilesystemType": (str, False),
"Iops": (integer, False),
"KmsKeyId": (str, False),
"RoleArn": (str, True),
"SizeInGiB": (integer, False),
"SnapshotId": (str, False),
"TagSpecifications": ([EBSTagSpecification], False),
"Throughput": (integer, False),
"VolumeInitializationRate": (integer, False),
"VolumeType": (str, False),
}
[docs]class ServiceVolumeConfiguration(AWSProperty):
"""
`ServiceVolumeConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-servicevolumeconfiguration.html>`__
"""
props: PropsDictType = {
"ManagedEBSVolume": (ServiceManagedEBSVolumeConfiguration, False),
"Name": (str, True),
}
[docs]class VpcLatticeConfiguration(AWSProperty):
"""
`VpcLatticeConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-vpclatticeconfiguration.html>`__
"""
props: PropsDictType = {
"PortName": (str, True),
"RoleArn": (str, True),
"TargetGroupArn": (str, True),
}
[docs]class Service(AWSObject):
"""
`Service <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html>`__
"""
resource_type = "AWS::ECS::Service"
props: PropsDictType = {
"AvailabilityZoneRebalancing": (str, False),
"CapacityProviderStrategy": ([CapacityProviderStrategyItem], False),
"Cluster": (str, False),
"DeploymentConfiguration": (DeploymentConfiguration, False),
"DeploymentController": (DeploymentController, False),
"DesiredCount": (integer, False),
"EnableECSManagedTags": (boolean, False),
"EnableExecuteCommand": (boolean, False),
"ForceNewDeployment": (ForceNewDeployment, False),
"HealthCheckGracePeriodSeconds": (integer, False),
"LaunchType": (launch_type_validator, False),
"LoadBalancers": ([LoadBalancer], False),
"NetworkConfiguration": (NetworkConfiguration, False),
"PlacementConstraints": ([PlacementConstraint], False),
"PlacementStrategies": ([PlacementStrategy], False),
"PlatformVersion": (str, False),
"PropagateTags": (str, False),
"Role": (str, False),
"SchedulingStrategy": (str, False),
"ServiceConnectConfiguration": (ServiceConnectConfiguration, False),
"ServiceName": (str, False),
"ServiceRegistries": ([ServiceRegistry], False),
"Tags": (Tags, False),
"TaskDefinition": (str, False),
"VolumeConfigurations": ([ServiceVolumeConfiguration], False),
"VpcLatticeConfigurations": ([VpcLatticeConfiguration], False),
}
[docs]class Environment(AWSProperty):
"""
`Environment <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-keyvaluepair.html>`__
"""
props: PropsDictType = {
"Name": (str, False),
"Value": (str, False),
}
[docs]class HostEntry(AWSProperty):
"""
`HostEntry <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-hostentry.html>`__
"""
props: PropsDictType = {
"Hostname": (str, False),
"IpAddress": (str, False),
}
[docs]class PortMapping(AWSProperty):
"""
`PortMapping <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-portmapping.html>`__
"""
props: PropsDictType = {
"AppProtocol": (str, False),
"ContainerPort": (validate_network_port, False),
"ContainerPortRange": (str, False),
"HostPort": (validate_network_port, False),
"Name": (str, False),
"Protocol": (str, False),
}
[docs]class ResourceRequirement(AWSProperty):
"""
`ResourceRequirement <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-resourcerequirement.html>`__
"""
props: PropsDictType = {
"Type": (str, True),
"Value": (str, True),
}
[docs]class VolumesFrom(AWSProperty):
"""
`VolumesFrom <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-volumefrom.html>`__
"""
props: PropsDictType = {
"ReadOnly": (boolean, False),
"SourceContainer": (str, False),
}
[docs]class ContainerDefinition(AWSProperty):
"""
`ContainerDefinition <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinition.html>`__
"""
props: PropsDictType = {
"Command": ([str], False),
"Cpu": (integer, False),
"CredentialSpecs": ([str], False),
"DependsOn": ([ContainerDependency], False),
"DisableNetworking": (boolean, False),
"DnsSearchDomains": ([str], False),
"DnsServers": ([str], False),
"DockerLabels": (dict, False),
"DockerSecurityOptions": ([str], False),
"EntryPoint": ([str], False),
"Environment": ([Environment], False),
"EnvironmentFiles": ([EnvironmentFile], False),
"Essential": (boolean, False),
"ExtraHosts": ([HostEntry], False),
"FirelensConfiguration": (FirelensConfiguration, False),
"HealthCheck": (HealthCheck, False),
"Hostname": (str, False),
"Image": (str, True),
"Interactive": (boolean, False),
"Links": ([str], False),
"LinuxParameters": (LinuxParameters, False),
"LogConfiguration": (LogConfiguration, False),
"Memory": (integer, False),
"MemoryReservation": (integer, False),
"MountPoints": ([MountPoint], False),
"Name": (str, True),
"PortMappings": ([PortMapping], False),
"Privileged": (boolean, False),
"PseudoTerminal": (boolean, False),
"ReadonlyRootFilesystem": (boolean, False),
"RepositoryCredentials": (RepositoryCredentials, False),
"ResourceRequirements": ([ResourceRequirement], False),
"RestartPolicy": (RestartPolicy, False),
"Secrets": ([Secret], False),
"StartTimeout": (integer, False),
"StopTimeout": (integer, False),
"SystemControls": ([SystemControl], False),
"Ulimits": ([Ulimit], False),
"User": (str, False),
"VersionConsistency": (str, False),
"VolumesFrom": ([VolumesFrom], False),
"WorkingDirectory": (str, False),
}
[docs]class EphemeralStorage(AWSProperty):
"""
`EphemeralStorage <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-ephemeralstorage.html>`__
"""
props: PropsDictType = {
"SizeInGiB": (validate_ephemeral_storage_size, False),
}
[docs]class ProxyConfiguration(AWSProperty):
"""
`ProxyConfiguration <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-proxyconfiguration.html>`__
"""
props: PropsDictType = {
"ContainerName": (str, True),
"ProxyConfigurationProperties": (list, False),
"Type": (ecs_proxy_type, False),
}
[docs]class TaskDefinition(AWSObject):
"""
`TaskDefinition <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html>`__
"""
resource_type = "AWS::ECS::TaskDefinition"
props: PropsDictType = {
"ContainerDefinitions": ([ContainerDefinition], False),
"Cpu": (str, False),
"EnableFaultInjection": (boolean, False),
"EphemeralStorage": (EphemeralStorage, False),
"ExecutionRoleArn": (str, False),
"Family": (str, False),
"IpcMode": (str, False),
"Memory": (str, False),
"NetworkMode": (str, False),
"PidMode": (str, False),
"PlacementConstraints": ([PlacementConstraint], False),
"ProxyConfiguration": (ProxyConfiguration, False),
"RequiresCompatibilities": ([str], False),
"RuntimePlatform": (RuntimePlatform, False),
"Tags": (Tags, False),
"TaskRoleArn": (str, False),
"Volumes": ([Volume], False),
}
[docs]class Scale(AWSProperty):
"""
`Scale <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskset-scale.html>`__
"""
props: PropsDictType = {
"Unit": (str, False),
"Value": (double, False),
}
[docs]class TaskSet(AWSObject):
"""
`TaskSet <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskset.html>`__
"""
resource_type = "AWS::ECS::TaskSet"
props: PropsDictType = {
"CapacityProviderStrategy": ([CapacityProviderStrategyItem], False),
"Cluster": (str, True),
"ExternalId": (str, False),
"LaunchType": (str, False),
"LoadBalancers": ([LoadBalancer], False),
"NetworkConfiguration": (NetworkConfiguration, False),
"PlatformVersion": (str, False),
"Scale": (Scale, False),
"Service": (str, True),
"ServiceRegistries": ([ServiceRegistry], False),
"Tags": (Tags, False),
"TaskDefinition": (str, True),
}
[docs]class AutoScalingArns(AWSProperty):
"""
`AutoScalingArns <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-expressgatewayservice-autoscalingarns.html>`__
"""
props: PropsDictType = {
"ApplicationAutoScalingPolicies": ([str], False),
"ScalableTarget": (str, False),
}
[docs]class ExpressGatewayServiceStatus(AWSProperty):
"""
`ExpressGatewayServiceStatus <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-expressgatewayservice-expressgatewayservicestatus.html>`__
"""
props: PropsDictType = {
"StatusCode": (str, False),
}
[docs]class HostVolumeProperties(AWSProperty):
"""
`HostVolumeProperties <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-daemontaskdefinition-hostvolumeproperties.html>`__
"""
props: PropsDictType = {
"SourcePath": (str, False),
}
[docs]class IngressPathArns(AWSProperty):
"""
`IngressPathArns <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-expressgatewayservice-ingresspatharns.html>`__
"""
props: PropsDictType = {
"CertificateArn": (str, False),
"ListenerArn": (str, False),
"ListenerRuleArn": (str, False),
"LoadBalancerArn": (str, False),
"LoadBalancerSecurityGroups": ([str], False),
"TargetGroupArns": ([str], False),
}
[docs]class IngressPathSummary(AWSProperty):
"""
`IngressPathSummary <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-expressgatewayservice-ingresspathsummary.html>`__
"""
props: PropsDictType = {
"AccessType": (str, False),
"Endpoint": (str, False),
}