{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.ECS.Types
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.ECS.Types
  ( -- * Service Configuration
    defaultService,

    -- * Errors
    _AccessDeniedException,
    _InvalidParameterException,
    _ServerException,
    _ClusterContainsTasksException,
    _PlatformUnknownException,
    _ClusterContainsServicesException,
    _TaskSetNotFoundException,
    _ClusterContainsContainerInstancesException,
    _ServiceNotActiveException,
    _ClusterNotFoundException,
    _NoUpdateAvailableException,
    _UnsupportedFeatureException,
    _ServiceNotFoundException,
    _PlatformTaskDefinitionIncompatibilityException,
    _MissingVersionException,
    _UpdateInProgressException,
    _TargetNotConnectedException,
    _BlockedException,
    _TargetNotFoundException,
    _AttributeLimitExceededException,
    _ClientException,
    _ResourceNotFoundException,
    _LimitExceededException,
    _ResourceInUseException,

    -- * AgentUpdateStatus
    AgentUpdateStatus (..),

    -- * AssignPublicIp
    AssignPublicIp (..),

    -- * CapacityProviderField
    CapacityProviderField (..),

    -- * CapacityProviderStatus
    CapacityProviderStatus (..),

    -- * CapacityProviderUpdateStatus
    CapacityProviderUpdateStatus (..),

    -- * ClusterField
    ClusterField (..),

    -- * ClusterSettingName
    ClusterSettingName (..),

    -- * Compatibility
    Compatibility (..),

    -- * Connectivity
    Connectivity (..),

    -- * ContainerCondition
    ContainerCondition (..),

    -- * ContainerInstanceField
    ContainerInstanceField (..),

    -- * ContainerInstanceStatus
    ContainerInstanceStatus (..),

    -- * DeploymentControllerType
    DeploymentControllerType (..),

    -- * DeploymentRolloutState
    DeploymentRolloutState (..),

    -- * DesiredStatus
    DesiredStatus (..),

    -- * DeviceCgroupPermission
    DeviceCgroupPermission (..),

    -- * EFSAuthorizationConfigIAM
    EFSAuthorizationConfigIAM (..),

    -- * EFSTransitEncryption
    EFSTransitEncryption (..),

    -- * EnvironmentFileType
    EnvironmentFileType (..),

    -- * ExecuteCommandLogging
    ExecuteCommandLogging (..),

    -- * FirelensConfigurationType
    FirelensConfigurationType (..),

    -- * HealthStatus
    HealthStatus (..),

    -- * IpcMode
    IpcMode (..),

    -- * LaunchType
    LaunchType (..),

    -- * LogDriver
    LogDriver (..),

    -- * ManagedAgentName
    ManagedAgentName (..),

    -- * ManagedScalingStatus
    ManagedScalingStatus (..),

    -- * ManagedTerminationProtection
    ManagedTerminationProtection (..),

    -- * NetworkMode
    NetworkMode (..),

    -- * PidMode
    PidMode (..),

    -- * PlacementConstraintType
    PlacementConstraintType (..),

    -- * PlacementStrategyType
    PlacementStrategyType (..),

    -- * PlatformDeviceType
    PlatformDeviceType (..),

    -- * PropagateTags
    PropagateTags (..),

    -- * ProxyConfigurationType
    ProxyConfigurationType (..),

    -- * ResourceType
    ResourceType (..),

    -- * ScaleUnit
    ScaleUnit (..),

    -- * SchedulingStrategy
    SchedulingStrategy (..),

    -- * Scope
    Scope (..),

    -- * ServiceField
    ServiceField (..),

    -- * SettingName
    SettingName (..),

    -- * SortOrder
    SortOrder (..),

    -- * StabilityStatus
    StabilityStatus (..),

    -- * TargetType
    TargetType (..),

    -- * TaskDefinitionFamilyStatus
    TaskDefinitionFamilyStatus (..),

    -- * TaskDefinitionField
    TaskDefinitionField (..),

    -- * TaskDefinitionPlacementConstraintType
    TaskDefinitionPlacementConstraintType (..),

    -- * TaskDefinitionStatus
    TaskDefinitionStatus (..),

    -- * TaskField
    TaskField (..),

    -- * TaskSetField
    TaskSetField (..),

    -- * TaskStopCode
    TaskStopCode (..),

    -- * TransportProtocol
    TransportProtocol (..),

    -- * UlimitName
    UlimitName (..),

    -- * Attachment
    Attachment (..),
    newAttachment,
    attachment_status,
    attachment_details,
    attachment_id,
    attachment_type,

    -- * AttachmentStateChange
    AttachmentStateChange (..),
    newAttachmentStateChange,
    attachmentStateChange_attachmentArn,
    attachmentStateChange_status,

    -- * Attribute
    Attribute (..),
    newAttribute,
    attribute_targetId,
    attribute_value,
    attribute_targetType,
    attribute_name,

    -- * AutoScalingGroupProvider
    AutoScalingGroupProvider (..),
    newAutoScalingGroupProvider,
    autoScalingGroupProvider_managedScaling,
    autoScalingGroupProvider_managedTerminationProtection,
    autoScalingGroupProvider_autoScalingGroupArn,

    -- * AutoScalingGroupProviderUpdate
    AutoScalingGroupProviderUpdate (..),
    newAutoScalingGroupProviderUpdate,
    autoScalingGroupProviderUpdate_managedScaling,
    autoScalingGroupProviderUpdate_managedTerminationProtection,

    -- * AwsVpcConfiguration
    AwsVpcConfiguration (..),
    newAwsVpcConfiguration,
    awsVpcConfiguration_securityGroups,
    awsVpcConfiguration_assignPublicIp,
    awsVpcConfiguration_subnets,

    -- * CapacityProvider
    CapacityProvider (..),
    newCapacityProvider,
    capacityProvider_status,
    capacityProvider_updateStatusReason,
    capacityProvider_autoScalingGroupProvider,
    capacityProvider_name,
    capacityProvider_updateStatus,
    capacityProvider_capacityProviderArn,
    capacityProvider_tags,

    -- * CapacityProviderStrategyItem
    CapacityProviderStrategyItem (..),
    newCapacityProviderStrategyItem,
    capacityProviderStrategyItem_base,
    capacityProviderStrategyItem_weight,
    capacityProviderStrategyItem_capacityProvider,

    -- * Cluster
    Cluster (..),
    newCluster,
    cluster_status,
    cluster_clusterArn,
    cluster_attachments,
    cluster_runningTasksCount,
    cluster_defaultCapacityProviderStrategy,
    cluster_settings,
    cluster_registeredContainerInstancesCount,
    cluster_pendingTasksCount,
    cluster_clusterName,
    cluster_statistics,
    cluster_configuration,
    cluster_attachmentsStatus,
    cluster_capacityProviders,
    cluster_activeServicesCount,
    cluster_tags,

    -- * ClusterConfiguration
    ClusterConfiguration (..),
    newClusterConfiguration,
    clusterConfiguration_executeCommandConfiguration,

    -- * ClusterSetting
    ClusterSetting (..),
    newClusterSetting,
    clusterSetting_value,
    clusterSetting_name,

    -- * Container
    Container (..),
    newContainer,
    container_gpuIds,
    container_networkBindings,
    container_managedAgents,
    container_image,
    container_containerArn,
    container_networkInterfaces,
    container_taskArn,
    container_lastStatus,
    container_memory,
    container_reason,
    container_name,
    container_imageDigest,
    container_exitCode,
    container_healthStatus,
    container_cpu,
    container_runtimeId,
    container_memoryReservation,

    -- * ContainerDefinition
    ContainerDefinition (..),
    newContainerDefinition,
    containerDefinition_image,
    containerDefinition_command,
    containerDefinition_hostname,
    containerDefinition_repositoryCredentials,
    containerDefinition_dockerSecurityOptions,
    containerDefinition_healthCheck,
    containerDefinition_disableNetworking,
    containerDefinition_secrets,
    containerDefinition_volumesFrom,
    containerDefinition_environment,
    containerDefinition_environmentFiles,
    containerDefinition_entryPoint,
    containerDefinition_workingDirectory,
    containerDefinition_ulimits,
    containerDefinition_stopTimeout,
    containerDefinition_privileged,
    containerDefinition_portMappings,
    containerDefinition_resourceRequirements,
    containerDefinition_dockerLabels,
    containerDefinition_extraHosts,
    containerDefinition_memory,
    containerDefinition_systemControls,
    containerDefinition_user,
    containerDefinition_firelensConfiguration,
    containerDefinition_dnsSearchDomains,
    containerDefinition_logConfiguration,
    containerDefinition_linuxParameters,
    containerDefinition_pseudoTerminal,
    containerDefinition_dependsOn,
    containerDefinition_name,
    containerDefinition_dnsServers,
    containerDefinition_mountPoints,
    containerDefinition_interactive,
    containerDefinition_startTimeout,
    containerDefinition_links,
    containerDefinition_readonlyRootFilesystem,
    containerDefinition_essential,
    containerDefinition_cpu,
    containerDefinition_memoryReservation,

    -- * ContainerDependency
    ContainerDependency (..),
    newContainerDependency,
    containerDependency_containerName,
    containerDependency_condition,

    -- * ContainerInstance
    ContainerInstance (..),
    newContainerInstance,
    containerInstance_status,
    containerInstance_attachments,
    containerInstance_runningTasksCount,
    containerInstance_remainingResources,
    containerInstance_ec2InstanceId,
    containerInstance_containerInstanceArn,
    containerInstance_agentConnected,
    containerInstance_versionInfo,
    containerInstance_agentUpdateStatus,
    containerInstance_attributes,
    containerInstance_version,
    containerInstance_pendingTasksCount,
    containerInstance_capacityProviderName,
    containerInstance_registeredAt,
    containerInstance_statusReason,
    containerInstance_tags,
    containerInstance_registeredResources,

    -- * ContainerOverride
    ContainerOverride (..),
    newContainerOverride,
    containerOverride_command,
    containerOverride_environment,
    containerOverride_environmentFiles,
    containerOverride_resourceRequirements,
    containerOverride_memory,
    containerOverride_name,
    containerOverride_cpu,
    containerOverride_memoryReservation,

    -- * ContainerService
    ContainerService (..),
    newContainerService,
    containerService_taskSets,
    containerService_runningCount,
    containerService_status,
    containerService_clusterArn,
    containerService_propagateTags,
    containerService_createdAt,
    containerService_platformVersion,
    containerService_enableECSManagedTags,
    containerService_createdBy,
    containerService_desiredCount,
    containerService_loadBalancers,
    containerService_pendingCount,
    containerService_placementConstraints,
    containerService_events,
    containerService_placementStrategy,
    containerService_deployments,
    containerService_serviceName,
    containerService_deploymentController,
    containerService_launchType,
    containerService_serviceArn,
    containerService_taskDefinition,
    containerService_schedulingStrategy,
    containerService_healthCheckGracePeriodSeconds,
    containerService_networkConfiguration,
    containerService_serviceRegistries,
    containerService_capacityProviderStrategy,
    containerService_enableExecuteCommand,
    containerService_tags,
    containerService_roleArn,
    containerService_deploymentConfiguration,

    -- * ContainerStateChange
    ContainerStateChange (..),
    newContainerStateChange,
    containerStateChange_networkBindings,
    containerStateChange_status,
    containerStateChange_containerName,
    containerStateChange_reason,
    containerStateChange_imageDigest,
    containerStateChange_exitCode,
    containerStateChange_runtimeId,

    -- * Deployment
    Deployment (..),
    newDeployment,
    deployment_rolloutState,
    deployment_runningCount,
    deployment_status,
    deployment_createdAt,
    deployment_platformVersion,
    deployment_desiredCount,
    deployment_pendingCount,
    deployment_id,
    deployment_failedTasks,
    deployment_launchType,
    deployment_updatedAt,
    deployment_taskDefinition,
    deployment_rolloutStateReason,
    deployment_networkConfiguration,
    deployment_capacityProviderStrategy,

    -- * DeploymentCircuitBreaker
    DeploymentCircuitBreaker (..),
    newDeploymentCircuitBreaker,
    deploymentCircuitBreaker_enable,
    deploymentCircuitBreaker_rollback,

    -- * DeploymentConfiguration
    DeploymentConfiguration (..),
    newDeploymentConfiguration,
    deploymentConfiguration_minimumHealthyPercent,
    deploymentConfiguration_maximumPercent,
    deploymentConfiguration_deploymentCircuitBreaker,

    -- * DeploymentController
    DeploymentController (..),
    newDeploymentController,
    deploymentController_type,

    -- * Device
    Device (..),
    newDevice,
    device_containerPath,
    device_permissions,
    device_hostPath,

    -- * DockerVolumeConfiguration
    DockerVolumeConfiguration (..),
    newDockerVolumeConfiguration,
    dockerVolumeConfiguration_driverOpts,
    dockerVolumeConfiguration_driver,
    dockerVolumeConfiguration_scope,
    dockerVolumeConfiguration_labels,
    dockerVolumeConfiguration_autoprovision,

    -- * EFSAuthorizationConfig
    EFSAuthorizationConfig (..),
    newEFSAuthorizationConfig,
    eFSAuthorizationConfig_accessPointId,
    eFSAuthorizationConfig_iam,

    -- * EFSVolumeConfiguration
    EFSVolumeConfiguration (..),
    newEFSVolumeConfiguration,
    eFSVolumeConfiguration_rootDirectory,
    eFSVolumeConfiguration_transitEncryption,
    eFSVolumeConfiguration_authorizationConfig,
    eFSVolumeConfiguration_transitEncryptionPort,
    eFSVolumeConfiguration_fileSystemId,

    -- * EnvironmentFile
    EnvironmentFile (..),
    newEnvironmentFile,
    environmentFile_value,
    environmentFile_type,

    -- * EphemeralStorage
    EphemeralStorage (..),
    newEphemeralStorage,
    ephemeralStorage_sizeInGiB,

    -- * ExecuteCommandConfiguration
    ExecuteCommandConfiguration (..),
    newExecuteCommandConfiguration,
    executeCommandConfiguration_logConfiguration,
    executeCommandConfiguration_kmsKeyId,
    executeCommandConfiguration_logging,

    -- * ExecuteCommandLogConfiguration
    ExecuteCommandLogConfiguration (..),
    newExecuteCommandLogConfiguration,
    executeCommandLogConfiguration_cloudWatchLogGroupName,
    executeCommandLogConfiguration_s3KeyPrefix,
    executeCommandLogConfiguration_cloudWatchEncryptionEnabled,
    executeCommandLogConfiguration_s3EncryptionEnabled,
    executeCommandLogConfiguration_s3BucketName,

    -- * FSxWindowsFileServerAuthorizationConfig
    FSxWindowsFileServerAuthorizationConfig (..),
    newFSxWindowsFileServerAuthorizationConfig,
    fSxWindowsFileServerAuthorizationConfig_credentialsParameter,
    fSxWindowsFileServerAuthorizationConfig_domain,

    -- * FSxWindowsFileServerVolumeConfiguration
    FSxWindowsFileServerVolumeConfiguration (..),
    newFSxWindowsFileServerVolumeConfiguration,
    fSxWindowsFileServerVolumeConfiguration_fileSystemId,
    fSxWindowsFileServerVolumeConfiguration_rootDirectory,
    fSxWindowsFileServerVolumeConfiguration_authorizationConfig,

    -- * Failure
    Failure (..),
    newFailure,
    failure_arn,
    failure_reason,
    failure_detail,

    -- * FirelensConfiguration
    FirelensConfiguration (..),
    newFirelensConfiguration,
    firelensConfiguration_options,
    firelensConfiguration_type,

    -- * HealthCheck
    HealthCheck (..),
    newHealthCheck,
    healthCheck_startPeriod,
    healthCheck_retries,
    healthCheck_interval,
    healthCheck_timeout,
    healthCheck_command,

    -- * HostEntry
    HostEntry (..),
    newHostEntry,
    hostEntry_hostname,
    hostEntry_ipAddress,

    -- * HostVolumeProperties
    HostVolumeProperties (..),
    newHostVolumeProperties,
    hostVolumeProperties_sourcePath,

    -- * InferenceAccelerator
    InferenceAccelerator (..),
    newInferenceAccelerator,
    inferenceAccelerator_deviceName,
    inferenceAccelerator_deviceType,

    -- * InferenceAcceleratorOverride
    InferenceAcceleratorOverride (..),
    newInferenceAcceleratorOverride,
    inferenceAcceleratorOverride_deviceName,
    inferenceAcceleratorOverride_deviceType,

    -- * KernelCapabilities
    KernelCapabilities (..),
    newKernelCapabilities,
    kernelCapabilities_drop,
    kernelCapabilities_add,

    -- * KeyValuePair
    KeyValuePair (..),
    newKeyValuePair,
    keyValuePair_value,
    keyValuePair_name,

    -- * LinuxParameters
    LinuxParameters (..),
    newLinuxParameters,
    linuxParameters_sharedMemorySize,
    linuxParameters_initProcessEnabled,
    linuxParameters_tmpfs,
    linuxParameters_swappiness,
    linuxParameters_devices,
    linuxParameters_capabilities,
    linuxParameters_maxSwap,

    -- * LoadBalancer
    LoadBalancer (..),
    newLoadBalancer,
    loadBalancer_loadBalancerName,
    loadBalancer_containerName,
    loadBalancer_targetGroupArn,
    loadBalancer_containerPort,

    -- * LogConfiguration
    LogConfiguration (..),
    newLogConfiguration,
    logConfiguration_options,
    logConfiguration_secretOptions,
    logConfiguration_logDriver,

    -- * ManagedAgent
    ManagedAgent (..),
    newManagedAgent,
    managedAgent_lastStatus,
    managedAgent_reason,
    managedAgent_name,
    managedAgent_lastStartedAt,

    -- * ManagedAgentStateChange
    ManagedAgentStateChange (..),
    newManagedAgentStateChange,
    managedAgentStateChange_reason,
    managedAgentStateChange_containerName,
    managedAgentStateChange_managedAgentName,
    managedAgentStateChange_status,

    -- * ManagedScaling
    ManagedScaling (..),
    newManagedScaling,
    managedScaling_status,
    managedScaling_maximumScalingStepSize,
    managedScaling_targetCapacity,
    managedScaling_minimumScalingStepSize,
    managedScaling_instanceWarmupPeriod,

    -- * MountPoint
    MountPoint (..),
    newMountPoint,
    mountPoint_containerPath,
    mountPoint_sourceVolume,
    mountPoint_readOnly,

    -- * NetworkBinding
    NetworkBinding (..),
    newNetworkBinding,
    networkBinding_bindIP,
    networkBinding_protocol,
    networkBinding_hostPort,
    networkBinding_containerPort,

    -- * NetworkConfiguration
    NetworkConfiguration (..),
    newNetworkConfiguration,
    networkConfiguration_awsvpcConfiguration,

    -- * NetworkInterface
    NetworkInterface (..),
    newNetworkInterface,
    networkInterface_ipv6Address,
    networkInterface_privateIpv4Address,
    networkInterface_attachmentId,

    -- * PlacementConstraint
    PlacementConstraint (..),
    newPlacementConstraint,
    placementConstraint_expression,
    placementConstraint_type,

    -- * PlacementStrategy
    PlacementStrategy (..),
    newPlacementStrategy,
    placementStrategy_field,
    placementStrategy_type,

    -- * PlatformDevice
    PlatformDevice (..),
    newPlatformDevice,
    platformDevice_id,
    platformDevice_type,

    -- * PortMapping
    PortMapping (..),
    newPortMapping,
    portMapping_protocol,
    portMapping_hostPort,
    portMapping_containerPort,

    -- * ProxyConfiguration
    ProxyConfiguration (..),
    newProxyConfiguration,
    proxyConfiguration_type,
    proxyConfiguration_properties,
    proxyConfiguration_containerName,

    -- * RepositoryCredentials
    RepositoryCredentials (..),
    newRepositoryCredentials,
    repositoryCredentials_credentialsParameter,

    -- * Resource
    Resource (..),
    newResource,
    resource_stringSetValue,
    resource_integerValue,
    resource_doubleValue,
    resource_longValue,
    resource_name,
    resource_type,

    -- * ResourceRequirement
    ResourceRequirement (..),
    newResourceRequirement,
    resourceRequirement_value,
    resourceRequirement_type,

    -- * Scale
    Scale (..),
    newScale,
    scale_value,
    scale_unit,

    -- * Secret
    Secret (..),
    newSecret,
    secret_name,
    secret_valueFrom,

    -- * ServiceEvent
    ServiceEvent (..),
    newServiceEvent,
    serviceEvent_createdAt,
    serviceEvent_id,
    serviceEvent_message,

    -- * ServiceRegistry
    ServiceRegistry (..),
    newServiceRegistry,
    serviceRegistry_registryArn,
    serviceRegistry_containerName,
    serviceRegistry_containerPort,
    serviceRegistry_port,

    -- * Session
    Session (..),
    newSession,
    session_streamUrl,
    session_tokenValue,
    session_sessionId,

    -- * Setting
    Setting (..),
    newSetting,
    setting_value,
    setting_name,
    setting_principalArn,

    -- * SystemControl
    SystemControl (..),
    newSystemControl,
    systemControl_value,
    systemControl_namespace,

    -- * Tag
    Tag (..),
    newTag,
    tag_value,
    tag_key,

    -- * Task
    Task (..),
    newTask,
    task_stoppedAt,
    task_desiredStatus,
    task_overrides,
    task_inferenceAccelerators,
    task_clusterArn,
    task_group,
    task_attachments,
    task_createdAt,
    task_stopCode,
    task_platformVersion,
    task_taskArn,
    task_containerInstanceArn,
    task_executionStoppedAt,
    task_ephemeralStorage,
    task_lastStatus,
    task_memory,
    task_pullStoppedAt,
    task_containers,
    task_startedAt,
    task_availabilityZone,
    task_attributes,
    task_version,
    task_capacityProviderName,
    task_startedBy,
    task_stoppedReason,
    task_connectivity,
    task_stoppingAt,
    task_launchType,
    task_taskDefinitionArn,
    task_healthStatus,
    task_connectivityAt,
    task_cpu,
    task_enableExecuteCommand,
    task_pullStartedAt,
    task_tags,

    -- * TaskDefinition
    TaskDefinition (..),
    newTaskDefinition,
    taskDefinition_status,
    taskDefinition_inferenceAccelerators,
    taskDefinition_executionRoleArn,
    taskDefinition_requiresCompatibilities,
    taskDefinition_ephemeralStorage,
    taskDefinition_pidMode,
    taskDefinition_family,
    taskDefinition_ipcMode,
    taskDefinition_containerDefinitions,
    taskDefinition_memory,
    taskDefinition_proxyConfiguration,
    taskDefinition_taskRoleArn,
    taskDefinition_deregisteredAt,
    taskDefinition_placementConstraints,
    taskDefinition_registeredAt,
    taskDefinition_networkMode,
    taskDefinition_taskDefinitionArn,
    taskDefinition_compatibilities,
    taskDefinition_registeredBy,
    taskDefinition_revision,
    taskDefinition_volumes,
    taskDefinition_cpu,
    taskDefinition_requiresAttributes,

    -- * TaskDefinitionPlacementConstraint
    TaskDefinitionPlacementConstraint (..),
    newTaskDefinitionPlacementConstraint,
    taskDefinitionPlacementConstraint_expression,
    taskDefinitionPlacementConstraint_type,

    -- * TaskOverride
    TaskOverride (..),
    newTaskOverride,
    taskOverride_containerOverrides,
    taskOverride_executionRoleArn,
    taskOverride_ephemeralStorage,
    taskOverride_memory,
    taskOverride_taskRoleArn,
    taskOverride_inferenceAcceleratorOverrides,
    taskOverride_cpu,

    -- * TaskSet
    TaskSet (..),
    newTaskSet,
    taskSet_runningCount,
    taskSet_status,
    taskSet_clusterArn,
    taskSet_computedDesiredCount,
    taskSet_createdAt,
    taskSet_platformVersion,
    taskSet_scale,
    taskSet_loadBalancers,
    taskSet_stabilityStatusAt,
    taskSet_pendingCount,
    taskSet_taskSetArn,
    taskSet_startedBy,
    taskSet_id,
    taskSet_launchType,
    taskSet_updatedAt,
    taskSet_serviceArn,
    taskSet_taskDefinition,
    taskSet_externalId,
    taskSet_networkConfiguration,
    taskSet_serviceRegistries,
    taskSet_capacityProviderStrategy,
    taskSet_stabilityStatus,
    taskSet_tags,

    -- * Tmpfs
    Tmpfs (..),
    newTmpfs,
    tmpfs_mountOptions,
    tmpfs_containerPath,
    tmpfs_size,

    -- * Ulimit
    Ulimit (..),
    newUlimit,
    ulimit_name,
    ulimit_softLimit,
    ulimit_hardLimit,

    -- * VersionInfo
    VersionInfo (..),
    newVersionInfo,
    versionInfo_agentHash,
    versionInfo_agentVersion,
    versionInfo_dockerVersion,

    -- * Volume
    Volume (..),
    newVolume,
    volume_dockerVolumeConfiguration,
    volume_fsxWindowsFileServerVolumeConfiguration,
    volume_name,
    volume_efsVolumeConfiguration,
    volume_host,

    -- * VolumeFrom
    VolumeFrom (..),
    newVolumeFrom,
    volumeFrom_sourceContainer,
    volumeFrom_readOnly,
  )
where

import qualified Amazonka.Core as Core
import Amazonka.ECS.Types.AgentUpdateStatus
import Amazonka.ECS.Types.AssignPublicIp
import Amazonka.ECS.Types.Attachment
import Amazonka.ECS.Types.AttachmentStateChange
import Amazonka.ECS.Types.Attribute
import Amazonka.ECS.Types.AutoScalingGroupProvider
import Amazonka.ECS.Types.AutoScalingGroupProviderUpdate
import Amazonka.ECS.Types.AwsVpcConfiguration
import Amazonka.ECS.Types.CapacityProvider
import Amazonka.ECS.Types.CapacityProviderField
import Amazonka.ECS.Types.CapacityProviderStatus
import Amazonka.ECS.Types.CapacityProviderStrategyItem
import Amazonka.ECS.Types.CapacityProviderUpdateStatus
import Amazonka.ECS.Types.Cluster
import Amazonka.ECS.Types.ClusterConfiguration
import Amazonka.ECS.Types.ClusterField
import Amazonka.ECS.Types.ClusterSetting
import Amazonka.ECS.Types.ClusterSettingName
import Amazonka.ECS.Types.Compatibility
import Amazonka.ECS.Types.Connectivity
import Amazonka.ECS.Types.Container
import Amazonka.ECS.Types.ContainerCondition
import Amazonka.ECS.Types.ContainerDefinition
import Amazonka.ECS.Types.ContainerDependency
import Amazonka.ECS.Types.ContainerInstance
import Amazonka.ECS.Types.ContainerInstanceField
import Amazonka.ECS.Types.ContainerInstanceStatus
import Amazonka.ECS.Types.ContainerOverride
import Amazonka.ECS.Types.ContainerService
import Amazonka.ECS.Types.ContainerStateChange
import Amazonka.ECS.Types.Deployment
import Amazonka.ECS.Types.DeploymentCircuitBreaker
import Amazonka.ECS.Types.DeploymentConfiguration
import Amazonka.ECS.Types.DeploymentController
import Amazonka.ECS.Types.DeploymentControllerType
import Amazonka.ECS.Types.DeploymentRolloutState
import Amazonka.ECS.Types.DesiredStatus
import Amazonka.ECS.Types.Device
import Amazonka.ECS.Types.DeviceCgroupPermission
import Amazonka.ECS.Types.DockerVolumeConfiguration
import Amazonka.ECS.Types.EFSAuthorizationConfig
import Amazonka.ECS.Types.EFSAuthorizationConfigIAM
import Amazonka.ECS.Types.EFSTransitEncryption
import Amazonka.ECS.Types.EFSVolumeConfiguration
import Amazonka.ECS.Types.EnvironmentFile
import Amazonka.ECS.Types.EnvironmentFileType
import Amazonka.ECS.Types.EphemeralStorage
import Amazonka.ECS.Types.ExecuteCommandConfiguration
import Amazonka.ECS.Types.ExecuteCommandLogConfiguration
import Amazonka.ECS.Types.ExecuteCommandLogging
import Amazonka.ECS.Types.FSxWindowsFileServerAuthorizationConfig
import Amazonka.ECS.Types.FSxWindowsFileServerVolumeConfiguration
import Amazonka.ECS.Types.Failure
import Amazonka.ECS.Types.FirelensConfiguration
import Amazonka.ECS.Types.FirelensConfigurationType
import Amazonka.ECS.Types.HealthCheck
import Amazonka.ECS.Types.HealthStatus
import Amazonka.ECS.Types.HostEntry
import Amazonka.ECS.Types.HostVolumeProperties
import Amazonka.ECS.Types.InferenceAccelerator
import Amazonka.ECS.Types.InferenceAcceleratorOverride
import Amazonka.ECS.Types.IpcMode
import Amazonka.ECS.Types.KernelCapabilities
import Amazonka.ECS.Types.KeyValuePair
import Amazonka.ECS.Types.LaunchType
import Amazonka.ECS.Types.LinuxParameters
import Amazonka.ECS.Types.LoadBalancer
import Amazonka.ECS.Types.LogConfiguration
import Amazonka.ECS.Types.LogDriver
import Amazonka.ECS.Types.ManagedAgent
import Amazonka.ECS.Types.ManagedAgentName
import Amazonka.ECS.Types.ManagedAgentStateChange
import Amazonka.ECS.Types.ManagedScaling
import Amazonka.ECS.Types.ManagedScalingStatus
import Amazonka.ECS.Types.ManagedTerminationProtection
import Amazonka.ECS.Types.MountPoint
import Amazonka.ECS.Types.NetworkBinding
import Amazonka.ECS.Types.NetworkConfiguration
import Amazonka.ECS.Types.NetworkInterface
import Amazonka.ECS.Types.NetworkMode
import Amazonka.ECS.Types.PidMode
import Amazonka.ECS.Types.PlacementConstraint
import Amazonka.ECS.Types.PlacementConstraintType
import Amazonka.ECS.Types.PlacementStrategy
import Amazonka.ECS.Types.PlacementStrategyType
import Amazonka.ECS.Types.PlatformDevice
import Amazonka.ECS.Types.PlatformDeviceType
import Amazonka.ECS.Types.PortMapping
import Amazonka.ECS.Types.PropagateTags
import Amazonka.ECS.Types.ProxyConfiguration
import Amazonka.ECS.Types.ProxyConfigurationType
import Amazonka.ECS.Types.RepositoryCredentials
import Amazonka.ECS.Types.Resource
import Amazonka.ECS.Types.ResourceRequirement
import Amazonka.ECS.Types.ResourceType
import Amazonka.ECS.Types.Scale
import Amazonka.ECS.Types.ScaleUnit
import Amazonka.ECS.Types.SchedulingStrategy
import Amazonka.ECS.Types.Scope
import Amazonka.ECS.Types.Secret
import Amazonka.ECS.Types.ServiceEvent
import Amazonka.ECS.Types.ServiceField
import Amazonka.ECS.Types.ServiceRegistry
import Amazonka.ECS.Types.Session
import Amazonka.ECS.Types.Setting
import Amazonka.ECS.Types.SettingName
import Amazonka.ECS.Types.SortOrder
import Amazonka.ECS.Types.StabilityStatus
import Amazonka.ECS.Types.SystemControl
import Amazonka.ECS.Types.Tag
import Amazonka.ECS.Types.TargetType
import Amazonka.ECS.Types.Task
import Amazonka.ECS.Types.TaskDefinition
import Amazonka.ECS.Types.TaskDefinitionFamilyStatus
import Amazonka.ECS.Types.TaskDefinitionField
import Amazonka.ECS.Types.TaskDefinitionPlacementConstraint
import Amazonka.ECS.Types.TaskDefinitionPlacementConstraintType
import Amazonka.ECS.Types.TaskDefinitionStatus
import Amazonka.ECS.Types.TaskField
import Amazonka.ECS.Types.TaskOverride
import Amazonka.ECS.Types.TaskSet
import Amazonka.ECS.Types.TaskSetField
import Amazonka.ECS.Types.TaskStopCode
import Amazonka.ECS.Types.Tmpfs
import Amazonka.ECS.Types.TransportProtocol
import Amazonka.ECS.Types.Ulimit
import Amazonka.ECS.Types.UlimitName
import Amazonka.ECS.Types.VersionInfo
import Amazonka.ECS.Types.Volume
import Amazonka.ECS.Types.VolumeFrom
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Sign.V4 as Sign

-- | API version @2014-11-13@ of the Amazon EC2 Container Service SDK configuration.
defaultService :: Core.Service
defaultService :: Service
defaultService =
  Service :: Abbrev
-> Signer
-> ByteString
-> ByteString
-> ByteString
-> (Region -> Endpoint)
-> Maybe Seconds
-> (Status -> Bool)
-> (Status -> [Header] -> ByteStringLazy -> Error)
-> Retry
-> Service
Core.Service
    { $sel:_serviceAbbrev:Service :: Abbrev
Core._serviceAbbrev = Abbrev
"ECS",
      $sel:_serviceSigner:Service :: Signer
Core._serviceSigner = Signer
Sign.v4,
      $sel:_serviceEndpointPrefix:Service :: ByteString
Core._serviceEndpointPrefix = ByteString
"ecs",
      $sel:_serviceSigningName:Service :: ByteString
Core._serviceSigningName = ByteString
"ecs",
      $sel:_serviceVersion:Service :: ByteString
Core._serviceVersion = ByteString
"2014-11-13",
      $sel:_serviceEndpoint:Service :: Region -> Endpoint
Core._serviceEndpoint =
        Service -> Region -> Endpoint
Core.defaultEndpoint Service
defaultService,
      $sel:_serviceTimeout:Service :: Maybe Seconds
Core._serviceTimeout = Seconds -> Maybe Seconds
forall a. a -> Maybe a
Prelude.Just Seconds
70,
      $sel:_serviceCheck:Service :: Status -> Bool
Core._serviceCheck = Status -> Bool
Core.statusSuccess,
      $sel:_serviceError:Service :: Status -> [Header] -> ByteStringLazy -> Error
Core._serviceError = Abbrev -> Status -> [Header] -> ByteStringLazy -> Error
Core.parseJSONError Abbrev
"ECS",
      $sel:_serviceRetry:Service :: Retry
Core._serviceRetry = Retry
retry
    }
  where
    retry :: Retry
retry =
      Exponential :: Double -> Int -> Int -> (ServiceError -> Maybe Text) -> Retry
Core.Exponential
        { $sel:_retryBase:Exponential :: Double
Core._retryBase = Double
5.0e-2,
          $sel:_retryGrowth:Exponential :: Int
Core._retryGrowth = Int
2,
          $sel:_retryAttempts:Exponential :: Int
Core._retryAttempts = Int
5,
          $sel:_retryCheck:Exponential :: ServiceError -> Maybe Text
Core._retryCheck = ServiceError -> Maybe Text
forall a. IsString a => ServiceError -> Maybe a
check
        }
    check :: ServiceError -> Maybe a
check ServiceError
e
      | Getting Any ServiceError ServiceError -> ServiceError -> Bool
forall s a. Getting Any s a -> s -> Bool
Lens.has
          ( ErrorCode -> Getting Any ServiceError ServiceError
forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
ErrorCode -> Optic' p f ServiceError ServiceError
Core.hasCode ErrorCode
"ThrottledException"
              Getting Any ServiceError ServiceError
-> Getting Any ServiceError ServiceError
-> Getting Any ServiceError ServiceError
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. Int -> Getting Any ServiceError ServiceError
forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
Int -> Optic' p f ServiceError ServiceError
Core.hasStatus Int
400
          )
          ServiceError
e =
        a -> Maybe a
forall a. a -> Maybe a
Prelude.Just a
"throttled_exception"
      | Getting Any ServiceError ServiceError -> ServiceError -> Bool
forall s a. Getting Any s a -> s -> Bool
Lens.has (Int -> Getting Any ServiceError ServiceError
forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
Int -> Optic' p f ServiceError ServiceError
Core.hasStatus Int
429) ServiceError
e =
        a -> Maybe a
forall a. a -> Maybe a
Prelude.Just a
"too_many_requests"
      | Getting Any ServiceError ServiceError -> ServiceError -> Bool
forall s a. Getting Any s a -> s -> Bool
Lens.has
          ( ErrorCode -> Getting Any ServiceError ServiceError
forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
ErrorCode -> Optic' p f ServiceError ServiceError
Core.hasCode ErrorCode
"ThrottlingException"
              Getting Any ServiceError ServiceError
-> Getting Any ServiceError ServiceError
-> Getting Any ServiceError ServiceError
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. Int -> Getting Any ServiceError ServiceError
forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
Int -> Optic' p f ServiceError ServiceError
Core.hasStatus Int
400
          )
          ServiceError
e =
        a -> Maybe a
forall a. a -> Maybe a
Prelude.Just a
"throttling_exception"
      | Getting Any ServiceError ServiceError -> ServiceError -> Bool
forall s a. Getting Any s a -> s -> Bool
Lens.has
          ( ErrorCode -> Getting Any ServiceError ServiceError
forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
ErrorCode -> Optic' p f ServiceError ServiceError
Core.hasCode ErrorCode
"Throttling"
              Getting Any ServiceError ServiceError
-> Getting Any ServiceError ServiceError
-> Getting Any ServiceError ServiceError
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. Int -> Getting Any ServiceError ServiceError
forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
Int -> Optic' p f ServiceError ServiceError
Core.hasStatus Int
400
          )
          ServiceError
e =
        a -> Maybe a
forall a. a -> Maybe a
Prelude.Just a
"throttling"
      | Getting Any ServiceError ServiceError -> ServiceError -> Bool
forall s a. Getting Any s a -> s -> Bool
Lens.has
          ( ErrorCode -> Getting Any ServiceError ServiceError
forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
ErrorCode -> Optic' p f ServiceError ServiceError
Core.hasCode
              ErrorCode
"ProvisionedThroughputExceededException"
              Getting Any ServiceError ServiceError
-> Getting Any ServiceError ServiceError
-> Getting Any ServiceError ServiceError
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. Int -> Getting Any ServiceError ServiceError
forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
Int -> Optic' p f ServiceError ServiceError
Core.hasStatus Int
400
          )
          ServiceError
e =
        a -> Maybe a
forall a. a -> Maybe a
Prelude.Just a
"throughput_exceeded"
      | Getting Any ServiceError ServiceError -> ServiceError -> Bool
forall s a. Getting Any s a -> s -> Bool
Lens.has (Int -> Getting Any ServiceError ServiceError
forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
Int -> Optic' p f ServiceError ServiceError
Core.hasStatus Int
504) ServiceError
e =
        a -> Maybe a
forall a. a -> Maybe a
Prelude.Just a
"gateway_timeout"
      | Getting Any ServiceError ServiceError -> ServiceError -> Bool
forall s a. Getting Any s a -> s -> Bool
Lens.has
          ( ErrorCode -> Getting Any ServiceError ServiceError
forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
ErrorCode -> Optic' p f ServiceError ServiceError
Core.hasCode ErrorCode
"RequestThrottledException"
              Getting Any ServiceError ServiceError
-> Getting Any ServiceError ServiceError
-> Getting Any ServiceError ServiceError
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. Int -> Getting Any ServiceError ServiceError
forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
Int -> Optic' p f ServiceError ServiceError
Core.hasStatus Int
400
          )
          ServiceError
e =
        a -> Maybe a
forall a. a -> Maybe a
Prelude.Just a
"request_throttled_exception"
      | Getting Any ServiceError ServiceError -> ServiceError -> Bool
forall s a. Getting Any s a -> s -> Bool
Lens.has (Int -> Getting Any ServiceError ServiceError
forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
Int -> Optic' p f ServiceError ServiceError
Core.hasStatus Int
502) ServiceError
e =
        a -> Maybe a
forall a. a -> Maybe a
Prelude.Just a
"bad_gateway"
      | Getting Any ServiceError ServiceError -> ServiceError -> Bool
forall s a. Getting Any s a -> s -> Bool
Lens.has (Int -> Getting Any ServiceError ServiceError
forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
Int -> Optic' p f ServiceError ServiceError
Core.hasStatus Int
503) ServiceError
e =
        a -> Maybe a
forall a. a -> Maybe a
Prelude.Just a
"service_unavailable"
      | Getting Any ServiceError ServiceError -> ServiceError -> Bool
forall s a. Getting Any s a -> s -> Bool
Lens.has (Int -> Getting Any ServiceError ServiceError
forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
Int -> Optic' p f ServiceError ServiceError
Core.hasStatus Int
500) ServiceError
e =
        a -> Maybe a
forall a. a -> Maybe a
Prelude.Just a
"general_server_error"
      | Getting Any ServiceError ServiceError -> ServiceError -> Bool
forall s a. Getting Any s a -> s -> Bool
Lens.has (Int -> Getting Any ServiceError ServiceError
forall (f :: * -> *) (p :: * -> * -> *).
(Applicative f, Choice p) =>
Int -> Optic' p f ServiceError ServiceError
Core.hasStatus Int
509) ServiceError
e =
        a -> Maybe a
forall a. a -> Maybe a
Prelude.Just a
"limit_exceeded"
      | Bool
Prelude.otherwise = Maybe a
forall a. Maybe a
Prelude.Nothing

-- | You do not have authorization to perform the requested action.
_AccessDeniedException :: Core.AsError a => Lens.Getting (Prelude.First Core.ServiceError) a Core.ServiceError
_AccessDeniedException :: Getting (First ServiceError) a ServiceError
_AccessDeniedException =
  Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
forall a.
AsError a =>
Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
Core._MatchServiceError
    Service
defaultService
    ErrorCode
"AccessDeniedException"

-- | The specified parameter is invalid. Review the available parameters for
-- the API request.
_InvalidParameterException :: Core.AsError a => Lens.Getting (Prelude.First Core.ServiceError) a Core.ServiceError
_InvalidParameterException :: Getting (First ServiceError) a ServiceError
_InvalidParameterException =
  Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
forall a.
AsError a =>
Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
Core._MatchServiceError
    Service
defaultService
    ErrorCode
"InvalidParameterException"

-- | These errors are usually caused by a server issue.
_ServerException :: Core.AsError a => Lens.Getting (Prelude.First Core.ServiceError) a Core.ServiceError
_ServerException :: Getting (First ServiceError) a ServiceError
_ServerException =
  Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
forall a.
AsError a =>
Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
Core._MatchServiceError
    Service
defaultService
    ErrorCode
"ServerException"

-- | You cannot delete a cluster that has active tasks.
_ClusterContainsTasksException :: Core.AsError a => Lens.Getting (Prelude.First Core.ServiceError) a Core.ServiceError
_ClusterContainsTasksException :: Getting (First ServiceError) a ServiceError
_ClusterContainsTasksException =
  Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
forall a.
AsError a =>
Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
Core._MatchServiceError
    Service
defaultService
    ErrorCode
"ClusterContainsTasksException"

-- | The specified platform version does not exist.
_PlatformUnknownException :: Core.AsError a => Lens.Getting (Prelude.First Core.ServiceError) a Core.ServiceError
_PlatformUnknownException :: Getting (First ServiceError) a ServiceError
_PlatformUnknownException =
  Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
forall a.
AsError a =>
Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
Core._MatchServiceError
    Service
defaultService
    ErrorCode
"PlatformUnknownException"

-- | You cannot delete a cluster that contains services. First, update the
-- service to reduce its desired task count to 0 and then delete the
-- service. For more information, see UpdateService and DeleteService.
_ClusterContainsServicesException :: Core.AsError a => Lens.Getting (Prelude.First Core.ServiceError) a Core.ServiceError
_ClusterContainsServicesException :: Getting (First ServiceError) a ServiceError
_ClusterContainsServicesException =
  Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
forall a.
AsError a =>
Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
Core._MatchServiceError
    Service
defaultService
    ErrorCode
"ClusterContainsServicesException"

-- | The specified task set could not be found. You can view your available
-- task sets with DescribeTaskSets. Task sets are specific to each cluster,
-- service and Region.
_TaskSetNotFoundException :: Core.AsError a => Lens.Getting (Prelude.First Core.ServiceError) a Core.ServiceError
_TaskSetNotFoundException :: Getting (First ServiceError) a ServiceError
_TaskSetNotFoundException =
  Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
forall a.
AsError a =>
Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
Core._MatchServiceError
    Service
defaultService
    ErrorCode
"TaskSetNotFoundException"

-- | You cannot delete a cluster that has registered container instances.
-- First, deregister the container instances before you can delete the
-- cluster. For more information, see DeregisterContainerInstance.
_ClusterContainsContainerInstancesException :: Core.AsError a => Lens.Getting (Prelude.First Core.ServiceError) a Core.ServiceError
_ClusterContainsContainerInstancesException :: Getting (First ServiceError) a ServiceError
_ClusterContainsContainerInstancesException =
  Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
forall a.
AsError a =>
Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
Core._MatchServiceError
    Service
defaultService
    ErrorCode
"ClusterContainsContainerInstancesException"

-- | The specified service is not active. You can\'t update a service that is
-- inactive. If you have previously deleted a service, you can re-create it
-- with CreateService.
_ServiceNotActiveException :: Core.AsError a => Lens.Getting (Prelude.First Core.ServiceError) a Core.ServiceError
_ServiceNotActiveException :: Getting (First ServiceError) a ServiceError
_ServiceNotActiveException =
  Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
forall a.
AsError a =>
Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
Core._MatchServiceError
    Service
defaultService
    ErrorCode
"ServiceNotActiveException"

-- | The specified cluster could not be found. You can view your available
-- clusters with ListClusters. Amazon ECS clusters are Region-specific.
_ClusterNotFoundException :: Core.AsError a => Lens.Getting (Prelude.First Core.ServiceError) a Core.ServiceError
_ClusterNotFoundException :: Getting (First ServiceError) a ServiceError
_ClusterNotFoundException =
  Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
forall a.
AsError a =>
Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
Core._MatchServiceError
    Service
defaultService
    ErrorCode
"ClusterNotFoundException"

-- | There is no update available for this Amazon ECS container agent. This
-- could be because the agent is already running the latest version, or it
-- is so old that there is no update path to the current version.
_NoUpdateAvailableException :: Core.AsError a => Lens.Getting (Prelude.First Core.ServiceError) a Core.ServiceError
_NoUpdateAvailableException :: Getting (First ServiceError) a ServiceError
_NoUpdateAvailableException =
  Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
forall a.
AsError a =>
Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
Core._MatchServiceError
    Service
defaultService
    ErrorCode
"NoUpdateAvailableException"

-- | The specified task is not supported in this Region.
_UnsupportedFeatureException :: Core.AsError a => Lens.Getting (Prelude.First Core.ServiceError) a Core.ServiceError
_UnsupportedFeatureException :: Getting (First ServiceError) a ServiceError
_UnsupportedFeatureException =
  Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
forall a.
AsError a =>
Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
Core._MatchServiceError
    Service
defaultService
    ErrorCode
"UnsupportedFeatureException"

-- | The specified service could not be found. You can view your available
-- services with ListServices. Amazon ECS services are cluster-specific and
-- Region-specific.
_ServiceNotFoundException :: Core.AsError a => Lens.Getting (Prelude.First Core.ServiceError) a Core.ServiceError
_ServiceNotFoundException :: Getting (First ServiceError) a ServiceError
_ServiceNotFoundException =
  Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
forall a.
AsError a =>
Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
Core._MatchServiceError
    Service
defaultService
    ErrorCode
"ServiceNotFoundException"

-- | The specified platform version does not satisfy the task definition\'s
-- required capabilities.
_PlatformTaskDefinitionIncompatibilityException :: Core.AsError a => Lens.Getting (Prelude.First Core.ServiceError) a Core.ServiceError
_PlatformTaskDefinitionIncompatibilityException :: Getting (First ServiceError) a ServiceError
_PlatformTaskDefinitionIncompatibilityException =
  Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
forall a.
AsError a =>
Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
Core._MatchServiceError
    Service
defaultService
    ErrorCode
"PlatformTaskDefinitionIncompatibilityException"

-- | Amazon ECS is unable to determine the current version of the Amazon ECS
-- container agent on the container instance and does not have enough
-- information to proceed with an update. This could be because the agent
-- running on the container instance is an older or custom version that
-- does not use our version information.
_MissingVersionException :: Core.AsError a => Lens.Getting (Prelude.First Core.ServiceError) a Core.ServiceError
_MissingVersionException :: Getting (First ServiceError) a ServiceError
_MissingVersionException =
  Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
forall a.
AsError a =>
Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
Core._MatchServiceError
    Service
defaultService
    ErrorCode
"MissingVersionException"

-- | There is already a current Amazon ECS container agent update in progress
-- on the specified container instance. If the container agent becomes
-- disconnected while it is in a transitional stage, such as @PENDING@ or
-- @STAGING@, the update process can get stuck in that state. However, when
-- the agent reconnects, it resumes where it stopped previously.
_UpdateInProgressException :: Core.AsError a => Lens.Getting (Prelude.First Core.ServiceError) a Core.ServiceError
_UpdateInProgressException :: Getting (First ServiceError) a ServiceError
_UpdateInProgressException =
  Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
forall a.
AsError a =>
Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
Core._MatchServiceError
    Service
defaultService
    ErrorCode
"UpdateInProgressException"

-- | The target container is not properly configured with the execute command
-- agent or the container is no longer active or running.
_TargetNotConnectedException :: Core.AsError a => Lens.Getting (Prelude.First Core.ServiceError) a Core.ServiceError
_TargetNotConnectedException :: Getting (First ServiceError) a ServiceError
_TargetNotConnectedException =
  Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
forall a.
AsError a =>
Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
Core._MatchServiceError
    Service
defaultService
    ErrorCode
"TargetNotConnectedException"

-- | Your Amazon Web Services account has been blocked. For more information,
-- contact <http://aws.amazon.com/contact-us/ Amazon Web Services Support>.
_BlockedException :: Core.AsError a => Lens.Getting (Prelude.First Core.ServiceError) a Core.ServiceError
_BlockedException :: Getting (First ServiceError) a ServiceError
_BlockedException =
  Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
forall a.
AsError a =>
Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
Core._MatchServiceError
    Service
defaultService
    ErrorCode
"BlockedException"

-- | The specified target could not be found. You can view your available
-- container instances with ListContainerInstances. Amazon ECS container
-- instances are cluster-specific and Region-specific.
_TargetNotFoundException :: Core.AsError a => Lens.Getting (Prelude.First Core.ServiceError) a Core.ServiceError
_TargetNotFoundException :: Getting (First ServiceError) a ServiceError
_TargetNotFoundException =
  Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
forall a.
AsError a =>
Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
Core._MatchServiceError
    Service
defaultService
    ErrorCode
"TargetNotFoundException"

-- | You can apply up to 10 custom attributes per resource. You can view the
-- attributes of a resource with ListAttributes. You can remove existing
-- attributes on a resource with DeleteAttributes.
_AttributeLimitExceededException :: Core.AsError a => Lens.Getting (Prelude.First Core.ServiceError) a Core.ServiceError
_AttributeLimitExceededException :: Getting (First ServiceError) a ServiceError
_AttributeLimitExceededException =
  Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
forall a.
AsError a =>
Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
Core._MatchServiceError
    Service
defaultService
    ErrorCode
"AttributeLimitExceededException"

-- | These errors are usually caused by a client action, such as using an
-- action or resource on behalf of a user that doesn\'t have permissions to
-- use the action or resource, or specifying an identifier that is not
-- valid.
_ClientException :: Core.AsError a => Lens.Getting (Prelude.First Core.ServiceError) a Core.ServiceError
_ClientException :: Getting (First ServiceError) a ServiceError
_ClientException =
  Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
forall a.
AsError a =>
Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
Core._MatchServiceError
    Service
defaultService
    ErrorCode
"ClientException"

-- | The specified resource could not be found.
_ResourceNotFoundException :: Core.AsError a => Lens.Getting (Prelude.First Core.ServiceError) a Core.ServiceError
_ResourceNotFoundException :: Getting (First ServiceError) a ServiceError
_ResourceNotFoundException =
  Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
forall a.
AsError a =>
Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
Core._MatchServiceError
    Service
defaultService
    ErrorCode
"ResourceNotFoundException"

-- | The limit for the resource has been exceeded.
_LimitExceededException :: Core.AsError a => Lens.Getting (Prelude.First Core.ServiceError) a Core.ServiceError
_LimitExceededException :: Getting (First ServiceError) a ServiceError
_LimitExceededException =
  Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
forall a.
AsError a =>
Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
Core._MatchServiceError
    Service
defaultService
    ErrorCode
"LimitExceededException"

-- | The specified resource is in-use and cannot be removed.
_ResourceInUseException :: Core.AsError a => Lens.Getting (Prelude.First Core.ServiceError) a Core.ServiceError
_ResourceInUseException :: Getting (First ServiceError) a ServiceError
_ResourceInUseException =
  Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
forall a.
AsError a =>
Service -> ErrorCode -> Getting (First ServiceError) a ServiceError
Core._MatchServiceError
    Service
defaultService
    ErrorCode
"ResourceInUseException"