{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE StrictData #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE NoImplicitPrelude #-} {-# OPTIONS_GHC -fno-warn-unused-binds #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} {-# OPTIONS_GHC -fno-warn-unused-matches #-} -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | -- Module : Amazonka.ECS.CreateService -- 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) -- -- Runs and maintains a desired number of tasks from a specified task -- definition. If the number of tasks running in a service drops below the -- @desiredCount@, Amazon ECS runs another copy of the task in the -- specified cluster. To update an existing service, see the UpdateService -- action. -- -- In addition to maintaining the desired count of tasks in your service, -- you can optionally run your service behind one or more load balancers. -- The load balancers distribute traffic across the tasks that are -- associated with the service. For more information, see -- <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html Service Load Balancing> -- in the /Amazon Elastic Container Service Developer Guide/. -- -- Tasks for services that /do not/ use a load balancer are considered -- healthy if they\'re in the @RUNNING@ state. Tasks for services that /do/ -- use a load balancer are considered healthy if they\'re in the @RUNNING@ -- state and the container instance that they\'re hosted on is reported as -- healthy by the load balancer. -- -- There are two service scheduler strategies available: -- -- - @REPLICA@ - The replica scheduling strategy places and maintains the -- desired number of tasks across your cluster. By default, the service -- scheduler spreads tasks across Availability Zones. You can use task -- placement strategies and constraints to customize task placement -- decisions. For more information, see -- <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html Service Scheduler Concepts> -- in the /Amazon Elastic Container Service Developer Guide/. -- -- - @DAEMON@ - The daemon scheduling strategy deploys exactly one task -- on each active container instance that meets all of the task -- placement constraints that you specify in your cluster. The service -- scheduler also evaluates the task placement constraints for running -- tasks and will stop tasks that do not meet the placement -- constraints. When using this strategy, you don\'t need to specify a -- desired number of tasks, a task placement strategy, or use Service -- Auto Scaling policies. For more information, see -- <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html Service Scheduler Concepts> -- in the /Amazon Elastic Container Service Developer Guide/. -- -- You can optionally specify a deployment configuration for your service. -- The deployment is triggered by changing properties, such as the task -- definition or the desired count of a service, with an UpdateService -- operation. The default value for a replica service for -- @minimumHealthyPercent@ is 100%. The default value for a daemon service -- for @minimumHealthyPercent@ is 0%. -- -- If a service is using the @ECS@ deployment controller, the minimum -- healthy percent represents a lower limit on the number of tasks in a -- service that must remain in the @RUNNING@ state during a deployment, as -- a percentage of the desired number of tasks (rounded up to the nearest -- integer), and while any container instances are in the @DRAINING@ state -- if the service contains tasks using the EC2 launch type. This parameter -- enables you to deploy without using additional cluster capacity. For -- example, if your service has a desired number of four tasks and a -- minimum healthy percent of 50%, the scheduler might stop two existing -- tasks to free up cluster capacity before starting two new tasks. Tasks -- for services that /do not/ use a load balancer are considered healthy if -- they\'re in the @RUNNING@ state. Tasks for services that /do/ use a load -- balancer are considered healthy if they\'re in the @RUNNING@ state and -- they\'re reported as healthy by the load balancer. The default value for -- minimum healthy percent is 100%. -- -- If a service is using the @ECS@ deployment controller, the __maximum -- percent__ parameter represents an upper limit on the number of tasks in -- a service that are allowed in the @RUNNING@ or @PENDING@ state during a -- deployment, as a percentage of the desired number of tasks (rounded down -- to the nearest integer), and while any container instances are in the -- @DRAINING@ state if the service contains tasks using the EC2 launch -- type. This parameter enables you to define the deployment batch size. -- For example, if your service has a desired number of four tasks and a -- maximum percent value of 200%, the scheduler may start four new tasks -- before stopping the four older tasks (provided that the cluster -- resources required to do this are available). The default value for -- maximum percent is 200%. -- -- If a service is using either the @CODE_DEPLOY@ or @EXTERNAL@ deployment -- controller types and tasks that use the EC2 launch type, the __minimum -- healthy percent__ and __maximum percent__ values are used only to define -- the lower and upper limit on the number of the tasks in the service that -- remain in the @RUNNING@ state while the container instances are in the -- @DRAINING@ state. If the tasks in the service use the Fargate launch -- type, the minimum healthy percent and maximum percent values aren\'t -- used, although they\'re currently visible when describing your service. -- -- When creating a service that uses the @EXTERNAL@ deployment controller, -- you can specify only parameters that aren\'t controlled at the task set -- level. The only required parameter is the service name. You control your -- services using the CreateTaskSet operation. For more information, see -- <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html Amazon ECS Deployment Types> -- in the /Amazon Elastic Container Service Developer Guide/. -- -- When the service scheduler launches new tasks, it determines task -- placement in your cluster using the following logic: -- -- - Determine which of the container instances in your cluster can -- support your service\'s task definition (for example, they have the -- required CPU, memory, ports, and container instance attributes). -- -- - By default, the service scheduler attempts to balance tasks across -- Availability Zones in this manner (although you can choose a -- different placement strategy) with the @placementStrategy@ -- parameter): -- -- - Sort the valid container instances, giving priority to instances -- that have the fewest number of running tasks for this service in -- their respective Availability Zone. For example, if zone A has -- one running service task and zones B and C each have zero, valid -- container instances in either zone B or C are considered optimal -- for placement. -- -- - Place the new service task on a valid container instance in an -- optimal Availability Zone (based on the previous steps), -- favoring container instances with the fewest number of running -- tasks for this service. module Amazonka.ECS.CreateService ( -- * Creating a Request CreateService (..), newCreateService, -- * Request Lenses createService_cluster, createService_clientToken, createService_propagateTags, createService_platformVersion, createService_enableECSManagedTags, createService_desiredCount, createService_loadBalancers, createService_role, createService_placementConstraints, createService_placementStrategy, createService_deploymentController, createService_launchType, createService_taskDefinition, createService_schedulingStrategy, createService_healthCheckGracePeriodSeconds, createService_networkConfiguration, createService_serviceRegistries, createService_capacityProviderStrategy, createService_enableExecuteCommand, createService_tags, createService_deploymentConfiguration, createService_serviceName, -- * Destructuring the Response CreateServiceResponse (..), newCreateServiceResponse, -- * Response Lenses createServiceResponse_service, createServiceResponse_httpStatus, ) where import qualified Amazonka.Core as Core import Amazonka.ECS.Types import qualified Amazonka.Lens as Lens import qualified Amazonka.Prelude as Prelude import qualified Amazonka.Request as Request import qualified Amazonka.Response as Response -- | /See:/ 'newCreateService' smart constructor. data CreateService = CreateService' { -- | The short name or full Amazon Resource Name (ARN) of the cluster on -- which to run your service. If you do not specify a cluster, the default -- cluster is assumed. CreateService -> Maybe Text cluster :: Prelude.Maybe Prelude.Text, -- | Unique, case-sensitive identifier that you provide to ensure the -- idempotency of the request. Up to 32 ASCII characters are allowed. CreateService -> Maybe Text clientToken :: Prelude.Maybe Prelude.Text, -- | Specifies whether to propagate the tags from the task definition or the -- service to the tasks in the service. If no value is specified, the tags -- are not propagated. Tags can only be propagated to the tasks within the -- service during service creation. To add tags to a task after service -- creation or task creation, use the TagResource API action. CreateService -> Maybe PropagateTags propagateTags :: Prelude.Maybe PropagateTags, -- | The platform version that your tasks in the service are running on. A -- platform version is specified only for tasks using the Fargate launch -- type. If one isn\'t specified, the @LATEST@ platform version is used by -- default. For more information, see -- <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html Fargate platform versions> -- in the /Amazon Elastic Container Service Developer Guide/. CreateService -> Maybe Text platformVersion :: Prelude.Maybe Prelude.Text, -- | Specifies whether to enable Amazon ECS managed tags for the tasks within -- the service. For more information, see -- <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html Tagging Your Amazon ECS Resources> -- in the /Amazon Elastic Container Service Developer Guide/. CreateService -> Maybe Bool enableECSManagedTags :: Prelude.Maybe Prelude.Bool, -- | The number of instantiations of the specified task definition to place -- and keep running on your cluster. -- -- This is required if @schedulingStrategy@ is @REPLICA@ or is not -- specified. If @schedulingStrategy@ is @DAEMON@ then this is not -- required. CreateService -> Maybe Int desiredCount :: Prelude.Maybe Prelude.Int, -- | A load balancer object representing the load balancers to use with your -- service. For more information, see -- <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html Service Load Balancing> -- in the /Amazon Elastic Container Service Developer Guide/. -- -- If the service is using the rolling update (@ECS@) deployment controller -- and using either an Application Load Balancer or Network Load Balancer, -- you must specify one or more target group ARNs to attach to the service. -- The service-linked role is required for services that make use of -- multiple target groups. For more information, see -- <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html Using service-linked roles for Amazon ECS> -- in the /Amazon Elastic Container Service Developer Guide/. -- -- If the service is using the @CODE_DEPLOY@ deployment controller, the -- service is required to use either an Application Load Balancer or -- Network Load Balancer. When creating an CodeDeploy deployment group, you -- specify two target groups (referred to as a @targetGroupPair@). During a -- deployment, CodeDeploy determines which task set in your service has the -- status @PRIMARY@ and associates one target group with it, and then -- associates the other target group with the replacement task set. The -- load balancer can also have up to two listeners: a required listener for -- production traffic and an optional listener that allows you perform -- validation tests with Lambda functions before routing production traffic -- to it. -- -- After you create a service using the @ECS@ deployment controller, the -- load balancer name or target group ARN, container name, and container -- port specified in the service definition are immutable. If you are using -- the @CODE_DEPLOY@ deployment controller, these values can be changed -- when updating the service. -- -- For Application Load Balancers and Network Load Balancers, this object -- must contain the load balancer target group ARN, the container name (as -- it appears in a container definition), and the container port to access -- from the load balancer. The load balancer name parameter must be -- omitted. When a task from this service is placed on a container -- instance, the container instance and port combination is registered as a -- target in the target group specified here. -- -- For Classic Load Balancers, this object must contain the load balancer -- name, the container name (as it appears in a container definition), and -- the container port to access from the load balancer. The target group -- ARN parameter must be omitted. When a task from this service is placed -- on a container instance, the container instance is registered with the -- load balancer specified here. -- -- Services with tasks that use the @awsvpc@ network mode (for example, -- those with the Fargate launch type) only support Application Load -- Balancers and Network Load Balancers. Classic Load Balancers are not -- supported. Also, when you create any target groups for these services, -- you must choose @ip@ as the target type, not @instance@, because tasks -- that use the @awsvpc@ network mode are associated with an elastic -- network interface, not an Amazon EC2 instance. CreateService -> Maybe [LoadBalancer] loadBalancers :: Prelude.Maybe [LoadBalancer], -- | The name or full Amazon Resource Name (ARN) of the IAM role that allows -- Amazon ECS to make calls to your load balancer on your behalf. This -- parameter is only permitted if you are using a load balancer with your -- service and your task definition does not use the @awsvpc@ network mode. -- If you specify the @role@ parameter, you must also specify a load -- balancer object with the @loadBalancers@ parameter. -- -- If your account has already created the Amazon ECS service-linked role, -- that role is used by default for your service unless you specify a role -- here. The service-linked role is required if your task definition uses -- the @awsvpc@ network mode or if the service is configured to use service -- discovery, an external deployment controller, multiple target groups, or -- Elastic Inference accelerators in which case you should not specify a -- role here. For more information, see -- <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html Using service-linked roles for Amazon ECS> -- in the /Amazon Elastic Container Service Developer Guide/. -- -- If your specified role has a path other than @\/@, then you must either -- specify the full role ARN (this is recommended) or prefix the role name -- with the path. For example, if a role with the name @bar@ has a path of -- @\/foo\/@ then you would specify @\/foo\/bar@ as the role name. For more -- information, see -- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-friendly-names Friendly names and paths> -- in the /IAM User Guide/. CreateService -> Maybe Text role' :: Prelude.Maybe Prelude.Text, -- | An array of placement constraint objects to use for tasks in your -- service. You can specify a maximum of 10 constraints per task (this -- limit includes constraints in the task definition and those specified at -- runtime). CreateService -> Maybe [PlacementConstraint] placementConstraints :: Prelude.Maybe [PlacementConstraint], -- | The placement strategy objects to use for tasks in your service. You can -- specify a maximum of 5 strategy rules per service. CreateService -> Maybe [PlacementStrategy] placementStrategy :: Prelude.Maybe [PlacementStrategy], -- | The deployment controller to use for the service. If no deployment -- controller is specified, the default value of @ECS@ is used. CreateService -> Maybe DeploymentController deploymentController :: Prelude.Maybe DeploymentController, -- | The infrastructure on which to run your service. For more information, -- see -- <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html Amazon ECS launch types> -- in the /Amazon Elastic Container Service Developer Guide/. -- -- The @FARGATE@ launch type runs your tasks on Fargate On-Demand -- infrastructure. -- -- Fargate Spot infrastructure is available for use but a capacity provider -- strategy must be used. For more information, see -- <https://docs.aws.amazon.com/AmazonECS/latest/userguide/fargate-capacity-providers.html Fargate capacity providers> -- in the /Amazon ECS User Guide for Fargate/. -- -- The @EC2@ launch type runs your tasks on Amazon EC2 instances registered -- to your cluster. -- -- The @EXTERNAL@ launch type runs your tasks on your on-premise server or -- virtual machine (VM) capacity registered to your cluster. -- -- A service can use either a launch type or a capacity provider strategy. -- If a @launchType@ is specified, the @capacityProviderStrategy@ parameter -- must be omitted. CreateService -> Maybe LaunchType launchType :: Prelude.Maybe LaunchType, -- | The @family@ and @revision@ (@family:revision@) or full ARN of the task -- definition to run in your service. If a @revision@ is not specified, the -- latest @ACTIVE@ revision is used. -- -- A task definition must be specified if the service is using either the -- @ECS@ or @CODE_DEPLOY@ deployment controllers. CreateService -> Maybe Text taskDefinition :: Prelude.Maybe Prelude.Text, -- | The scheduling strategy to use for the service. For more information, -- see -- <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html Services>. -- -- There are two service scheduler strategies available: -- -- - @REPLICA@-The replica scheduling strategy places and maintains the -- desired number of tasks across your cluster. By default, the service -- scheduler spreads tasks across Availability Zones. You can use task -- placement strategies and constraints to customize task placement -- decisions. This scheduler strategy is required if the service is -- using the @CODE_DEPLOY@ or @EXTERNAL@ deployment controller types. -- -- - @DAEMON@-The daemon scheduling strategy deploys exactly one task on -- each active container instance that meets all of the task placement -- constraints that you specify in your cluster. The service scheduler -- also evaluates the task placement constraints for running tasks and -- will stop tasks that do not meet the placement constraints. When -- you\'re using this strategy, you don\'t need to specify a desired -- number of tasks, a task placement strategy, or use Service Auto -- Scaling policies. -- -- Tasks using the Fargate launch type or the @CODE_DEPLOY@ or -- @EXTERNAL@ deployment controller types don\'t support the @DAEMON@ -- scheduling strategy. CreateService -> Maybe SchedulingStrategy schedulingStrategy :: Prelude.Maybe SchedulingStrategy, -- | The period of time, in seconds, that the Amazon ECS service scheduler -- should ignore unhealthy Elastic Load Balancing target health checks -- after a task has first started. This is only used when your service is -- configured to use a load balancer. If your service has a load balancer -- defined and you don\'t specify a health check grace period value, the -- default value of @0@ is used. -- -- If your service\'s tasks take a while to start and respond to Elastic -- Load Balancing health checks, you can specify a health check grace -- period of up to 2,147,483,647 seconds. During that time, the Amazon ECS -- service scheduler ignores health check status. This grace period can -- prevent the service scheduler from marking tasks as unhealthy and -- stopping them before they have time to come up. CreateService -> Maybe Int healthCheckGracePeriodSeconds :: Prelude.Maybe Prelude.Int, -- | The network configuration for the service. This parameter is required -- for task definitions that use the @awsvpc@ network mode to receive their -- own elastic network interface, and it is not supported for other network -- modes. For more information, see -- <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html Task networking> -- in the /Amazon Elastic Container Service Developer Guide/. CreateService -> Maybe NetworkConfiguration networkConfiguration :: Prelude.Maybe NetworkConfiguration, -- | The details of the service discovery registry to associate with this -- service. For more information, see -- <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html Service discovery>. -- -- Each service may be associated with one service registry. Multiple -- service registries per service isn\'t supported. CreateService -> Maybe [ServiceRegistry] serviceRegistries :: Prelude.Maybe [ServiceRegistry], -- | The capacity provider strategy to use for the service. -- -- If a @capacityProviderStrategy@ is specified, the @launchType@ parameter -- must be omitted. If no @capacityProviderStrategy@ or @launchType@ is -- specified, the @defaultCapacityProviderStrategy@ for the cluster is -- used. -- -- A capacity provider strategy may contain a maximum of 6 capacity -- providers. CreateService -> Maybe [CapacityProviderStrategyItem] capacityProviderStrategy :: Prelude.Maybe [CapacityProviderStrategyItem], -- | Whether or not the execute command functionality is enabled for the -- service. If @true@, this enables execute command functionality on all -- containers in the service tasks. CreateService -> Maybe Bool enableExecuteCommand :: Prelude.Maybe Prelude.Bool, -- | The metadata that you apply to the service to help you categorize and -- organize them. Each tag consists of a key and an optional value, both of -- which you define. When a service is deleted, the tags are deleted as -- well. -- -- The following basic restrictions apply to tags: -- -- - Maximum number of tags per resource - 50 -- -- - For each resource, each tag key must be unique, and each tag key can -- have only one value. -- -- - Maximum key length - 128 Unicode characters in UTF-8 -- -- - Maximum value length - 256 Unicode characters in UTF-8 -- -- - If your tagging schema is used across multiple services and -- resources, remember that other services may have restrictions on -- allowed characters. Generally allowed characters are: letters, -- numbers, and spaces representable in UTF-8, and the following -- characters: + - = . _ : \/ \@. -- -- - Tag keys and values are case-sensitive. -- -- - Do not use @aws:@, @AWS:@, or any upper or lowercase combination of -- such as a prefix for either keys or values as it is reserved for -- Amazon Web Services use. You cannot edit or delete tag keys or -- values with this prefix. Tags with this prefix do not count against -- your tags per resource limit. :: Prelude.Maybe [Tag], -- | Optional deployment parameters that control how many tasks run during -- the deployment and the ordering of stopping and starting tasks. CreateService -> Maybe DeploymentConfiguration deploymentConfiguration :: Prelude.Maybe DeploymentConfiguration, -- | The name of your service. Up to 255 letters (uppercase and lowercase), -- numbers, underscores, and hyphens are allowed. Service names must be -- unique within a cluster, but you can have similarly named services in -- multiple clusters within a Region or across multiple Regions. CreateService -> Text serviceName :: Prelude.Text } deriving (CreateService -> CreateService -> Bool (CreateService -> CreateService -> Bool) -> (CreateService -> CreateService -> Bool) -> Eq CreateService forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: CreateService -> CreateService -> Bool $c/= :: CreateService -> CreateService -> Bool == :: CreateService -> CreateService -> Bool $c== :: CreateService -> CreateService -> Bool Prelude.Eq, ReadPrec [CreateService] ReadPrec CreateService Int -> ReadS CreateService ReadS [CreateService] (Int -> ReadS CreateService) -> ReadS [CreateService] -> ReadPrec CreateService -> ReadPrec [CreateService] -> Read CreateService forall a. (Int -> ReadS a) -> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a readListPrec :: ReadPrec [CreateService] $creadListPrec :: ReadPrec [CreateService] readPrec :: ReadPrec CreateService $creadPrec :: ReadPrec CreateService readList :: ReadS [CreateService] $creadList :: ReadS [CreateService] readsPrec :: Int -> ReadS CreateService $creadsPrec :: Int -> ReadS CreateService Prelude.Read, Int -> CreateService -> ShowS [CreateService] -> ShowS CreateService -> String (Int -> CreateService -> ShowS) -> (CreateService -> String) -> ([CreateService] -> ShowS) -> Show CreateService forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [CreateService] -> ShowS $cshowList :: [CreateService] -> ShowS show :: CreateService -> String $cshow :: CreateService -> String showsPrec :: Int -> CreateService -> ShowS $cshowsPrec :: Int -> CreateService -> ShowS Prelude.Show, (forall x. CreateService -> Rep CreateService x) -> (forall x. Rep CreateService x -> CreateService) -> Generic CreateService forall x. Rep CreateService x -> CreateService forall x. CreateService -> Rep CreateService x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cto :: forall x. Rep CreateService x -> CreateService $cfrom :: forall x. CreateService -> Rep CreateService x Prelude.Generic) -- | -- Create a value of 'CreateService' with all optional fields omitted. -- -- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields. -- -- The following record fields are available, with the corresponding lenses provided -- for backwards compatibility: -- -- 'cluster', 'createService_cluster' - The short name or full Amazon Resource Name (ARN) of the cluster on -- which to run your service. If you do not specify a cluster, the default -- cluster is assumed. -- -- 'clientToken', 'createService_clientToken' - Unique, case-sensitive identifier that you provide to ensure the -- idempotency of the request. Up to 32 ASCII characters are allowed. -- -- 'propagateTags', 'createService_propagateTags' - Specifies whether to propagate the tags from the task definition or the -- service to the tasks in the service. If no value is specified, the tags -- are not propagated. Tags can only be propagated to the tasks within the -- service during service creation. To add tags to a task after service -- creation or task creation, use the TagResource API action. -- -- 'platformVersion', 'createService_platformVersion' - The platform version that your tasks in the service are running on. A -- platform version is specified only for tasks using the Fargate launch -- type. If one isn\'t specified, the @LATEST@ platform version is used by -- default. For more information, see -- <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html Fargate platform versions> -- in the /Amazon Elastic Container Service Developer Guide/. -- -- 'enableECSManagedTags', 'createService_enableECSManagedTags' - Specifies whether to enable Amazon ECS managed tags for the tasks within -- the service. For more information, see -- <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html Tagging Your Amazon ECS Resources> -- in the /Amazon Elastic Container Service Developer Guide/. -- -- 'desiredCount', 'createService_desiredCount' - The number of instantiations of the specified task definition to place -- and keep running on your cluster. -- -- This is required if @schedulingStrategy@ is @REPLICA@ or is not -- specified. If @schedulingStrategy@ is @DAEMON@ then this is not -- required. -- -- 'loadBalancers', 'createService_loadBalancers' - A load balancer object representing the load balancers to use with your -- service. For more information, see -- <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html Service Load Balancing> -- in the /Amazon Elastic Container Service Developer Guide/. -- -- If the service is using the rolling update (@ECS@) deployment controller -- and using either an Application Load Balancer or Network Load Balancer, -- you must specify one or more target group ARNs to attach to the service. -- The service-linked role is required for services that make use of -- multiple target groups. For more information, see -- <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html Using service-linked roles for Amazon ECS> -- in the /Amazon Elastic Container Service Developer Guide/. -- -- If the service is using the @CODE_DEPLOY@ deployment controller, the -- service is required to use either an Application Load Balancer or -- Network Load Balancer. When creating an CodeDeploy deployment group, you -- specify two target groups (referred to as a @targetGroupPair@). During a -- deployment, CodeDeploy determines which task set in your service has the -- status @PRIMARY@ and associates one target group with it, and then -- associates the other target group with the replacement task set. The -- load balancer can also have up to two listeners: a required listener for -- production traffic and an optional listener that allows you perform -- validation tests with Lambda functions before routing production traffic -- to it. -- -- After you create a service using the @ECS@ deployment controller, the -- load balancer name or target group ARN, container name, and container -- port specified in the service definition are immutable. If you are using -- the @CODE_DEPLOY@ deployment controller, these values can be changed -- when updating the service. -- -- For Application Load Balancers and Network Load Balancers, this object -- must contain the load balancer target group ARN, the container name (as -- it appears in a container definition), and the container port to access -- from the load balancer. The load balancer name parameter must be -- omitted. When a task from this service is placed on a container -- instance, the container instance and port combination is registered as a -- target in the target group specified here. -- -- For Classic Load Balancers, this object must contain the load balancer -- name, the container name (as it appears in a container definition), and -- the container port to access from the load balancer. The target group -- ARN parameter must be omitted. When a task from this service is placed -- on a container instance, the container instance is registered with the -- load balancer specified here. -- -- Services with tasks that use the @awsvpc@ network mode (for example, -- those with the Fargate launch type) only support Application Load -- Balancers and Network Load Balancers. Classic Load Balancers are not -- supported. Also, when you create any target groups for these services, -- you must choose @ip@ as the target type, not @instance@, because tasks -- that use the @awsvpc@ network mode are associated with an elastic -- network interface, not an Amazon EC2 instance. -- -- 'role'', 'createService_role' - The name or full Amazon Resource Name (ARN) of the IAM role that allows -- Amazon ECS to make calls to your load balancer on your behalf. This -- parameter is only permitted if you are using a load balancer with your -- service and your task definition does not use the @awsvpc@ network mode. -- If you specify the @role@ parameter, you must also specify a load -- balancer object with the @loadBalancers@ parameter. -- -- If your account has already created the Amazon ECS service-linked role, -- that role is used by default for your service unless you specify a role -- here. The service-linked role is required if your task definition uses -- the @awsvpc@ network mode or if the service is configured to use service -- discovery, an external deployment controller, multiple target groups, or -- Elastic Inference accelerators in which case you should not specify a -- role here. For more information, see -- <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html Using service-linked roles for Amazon ECS> -- in the /Amazon Elastic Container Service Developer Guide/. -- -- If your specified role has a path other than @\/@, then you must either -- specify the full role ARN (this is recommended) or prefix the role name -- with the path. For example, if a role with the name @bar@ has a path of -- @\/foo\/@ then you would specify @\/foo\/bar@ as the role name. For more -- information, see -- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-friendly-names Friendly names and paths> -- in the /IAM User Guide/. -- -- 'placementConstraints', 'createService_placementConstraints' - An array of placement constraint objects to use for tasks in your -- service. You can specify a maximum of 10 constraints per task (this -- limit includes constraints in the task definition and those specified at -- runtime). -- -- 'placementStrategy', 'createService_placementStrategy' - The placement strategy objects to use for tasks in your service. You can -- specify a maximum of 5 strategy rules per service. -- -- 'deploymentController', 'createService_deploymentController' - The deployment controller to use for the service. If no deployment -- controller is specified, the default value of @ECS@ is used. -- -- 'launchType', 'createService_launchType' - The infrastructure on which to run your service. For more information, -- see -- <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html Amazon ECS launch types> -- in the /Amazon Elastic Container Service Developer Guide/. -- -- The @FARGATE@ launch type runs your tasks on Fargate On-Demand -- infrastructure. -- -- Fargate Spot infrastructure is available for use but a capacity provider -- strategy must be used. For more information, see -- <https://docs.aws.amazon.com/AmazonECS/latest/userguide/fargate-capacity-providers.html Fargate capacity providers> -- in the /Amazon ECS User Guide for Fargate/. -- -- The @EC2@ launch type runs your tasks on Amazon EC2 instances registered -- to your cluster. -- -- The @EXTERNAL@ launch type runs your tasks on your on-premise server or -- virtual machine (VM) capacity registered to your cluster. -- -- A service can use either a launch type or a capacity provider strategy. -- If a @launchType@ is specified, the @capacityProviderStrategy@ parameter -- must be omitted. -- -- 'taskDefinition', 'createService_taskDefinition' - The @family@ and @revision@ (@family:revision@) or full ARN of the task -- definition to run in your service. If a @revision@ is not specified, the -- latest @ACTIVE@ revision is used. -- -- A task definition must be specified if the service is using either the -- @ECS@ or @CODE_DEPLOY@ deployment controllers. -- -- 'schedulingStrategy', 'createService_schedulingStrategy' - The scheduling strategy to use for the service. For more information, -- see -- <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html Services>. -- -- There are two service scheduler strategies available: -- -- - @REPLICA@-The replica scheduling strategy places and maintains the -- desired number of tasks across your cluster. By default, the service -- scheduler spreads tasks across Availability Zones. You can use task -- placement strategies and constraints to customize task placement -- decisions. This scheduler strategy is required if the service is -- using the @CODE_DEPLOY@ or @EXTERNAL@ deployment controller types. -- -- - @DAEMON@-The daemon scheduling strategy deploys exactly one task on -- each active container instance that meets all of the task placement -- constraints that you specify in your cluster. The service scheduler -- also evaluates the task placement constraints for running tasks and -- will stop tasks that do not meet the placement constraints. When -- you\'re using this strategy, you don\'t need to specify a desired -- number of tasks, a task placement strategy, or use Service Auto -- Scaling policies. -- -- Tasks using the Fargate launch type or the @CODE_DEPLOY@ or -- @EXTERNAL@ deployment controller types don\'t support the @DAEMON@ -- scheduling strategy. -- -- 'healthCheckGracePeriodSeconds', 'createService_healthCheckGracePeriodSeconds' - The period of time, in seconds, that the Amazon ECS service scheduler -- should ignore unhealthy Elastic Load Balancing target health checks -- after a task has first started. This is only used when your service is -- configured to use a load balancer. If your service has a load balancer -- defined and you don\'t specify a health check grace period value, the -- default value of @0@ is used. -- -- If your service\'s tasks take a while to start and respond to Elastic -- Load Balancing health checks, you can specify a health check grace -- period of up to 2,147,483,647 seconds. During that time, the Amazon ECS -- service scheduler ignores health check status. This grace period can -- prevent the service scheduler from marking tasks as unhealthy and -- stopping them before they have time to come up. -- -- 'networkConfiguration', 'createService_networkConfiguration' - The network configuration for the service. This parameter is required -- for task definitions that use the @awsvpc@ network mode to receive their -- own elastic network interface, and it is not supported for other network -- modes. For more information, see -- <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html Task networking> -- in the /Amazon Elastic Container Service Developer Guide/. -- -- 'serviceRegistries', 'createService_serviceRegistries' - The details of the service discovery registry to associate with this -- service. For more information, see -- <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html Service discovery>. -- -- Each service may be associated with one service registry. Multiple -- service registries per service isn\'t supported. -- -- 'capacityProviderStrategy', 'createService_capacityProviderStrategy' - The capacity provider strategy to use for the service. -- -- If a @capacityProviderStrategy@ is specified, the @launchType@ parameter -- must be omitted. If no @capacityProviderStrategy@ or @launchType@ is -- specified, the @defaultCapacityProviderStrategy@ for the cluster is -- used. -- -- A capacity provider strategy may contain a maximum of 6 capacity -- providers. -- -- 'enableExecuteCommand', 'createService_enableExecuteCommand' - Whether or not the execute command functionality is enabled for the -- service. If @true@, this enables execute command functionality on all -- containers in the service tasks. -- -- 'tags', 'createService_tags' - The metadata that you apply to the service to help you categorize and -- organize them. Each tag consists of a key and an optional value, both of -- which you define. When a service is deleted, the tags are deleted as -- well. -- -- The following basic restrictions apply to tags: -- -- - Maximum number of tags per resource - 50 -- -- - For each resource, each tag key must be unique, and each tag key can -- have only one value. -- -- - Maximum key length - 128 Unicode characters in UTF-8 -- -- - Maximum value length - 256 Unicode characters in UTF-8 -- -- - If your tagging schema is used across multiple services and -- resources, remember that other services may have restrictions on -- allowed characters. Generally allowed characters are: letters, -- numbers, and spaces representable in UTF-8, and the following -- characters: + - = . _ : \/ \@. -- -- - Tag keys and values are case-sensitive. -- -- - Do not use @aws:@, @AWS:@, or any upper or lowercase combination of -- such as a prefix for either keys or values as it is reserved for -- Amazon Web Services use. You cannot edit or delete tag keys or -- values with this prefix. Tags with this prefix do not count against -- your tags per resource limit. -- -- 'deploymentConfiguration', 'createService_deploymentConfiguration' - Optional deployment parameters that control how many tasks run during -- the deployment and the ordering of stopping and starting tasks. -- -- 'serviceName', 'createService_serviceName' - The name of your service. Up to 255 letters (uppercase and lowercase), -- numbers, underscores, and hyphens are allowed. Service names must be -- unique within a cluster, but you can have similarly named services in -- multiple clusters within a Region or across multiple Regions. newCreateService :: -- | 'serviceName' Prelude.Text -> CreateService newCreateService :: Text -> CreateService newCreateService Text pServiceName_ = CreateService' :: Maybe Text -> Maybe Text -> Maybe PropagateTags -> Maybe Text -> Maybe Bool -> Maybe Int -> Maybe [LoadBalancer] -> Maybe Text -> Maybe [PlacementConstraint] -> Maybe [PlacementStrategy] -> Maybe DeploymentController -> Maybe LaunchType -> Maybe Text -> Maybe SchedulingStrategy -> Maybe Int -> Maybe NetworkConfiguration -> Maybe [ServiceRegistry] -> Maybe [CapacityProviderStrategyItem] -> Maybe Bool -> Maybe [Tag] -> Maybe DeploymentConfiguration -> Text -> CreateService CreateService' { $sel:cluster:CreateService' :: Maybe Text cluster = Maybe Text forall a. Maybe a Prelude.Nothing, $sel:clientToken:CreateService' :: Maybe Text clientToken = Maybe Text forall a. Maybe a Prelude.Nothing, $sel:propagateTags:CreateService' :: Maybe PropagateTags propagateTags = Maybe PropagateTags forall a. Maybe a Prelude.Nothing, $sel:platformVersion:CreateService' :: Maybe Text platformVersion = Maybe Text forall a. Maybe a Prelude.Nothing, $sel:enableECSManagedTags:CreateService' :: Maybe Bool enableECSManagedTags = Maybe Bool forall a. Maybe a Prelude.Nothing, $sel:desiredCount:CreateService' :: Maybe Int desiredCount = Maybe Int forall a. Maybe a Prelude.Nothing, $sel:loadBalancers:CreateService' :: Maybe [LoadBalancer] loadBalancers = Maybe [LoadBalancer] forall a. Maybe a Prelude.Nothing, $sel:role':CreateService' :: Maybe Text role' = Maybe Text forall a. Maybe a Prelude.Nothing, $sel:placementConstraints:CreateService' :: Maybe [PlacementConstraint] placementConstraints = Maybe [PlacementConstraint] forall a. Maybe a Prelude.Nothing, $sel:placementStrategy:CreateService' :: Maybe [PlacementStrategy] placementStrategy = Maybe [PlacementStrategy] forall a. Maybe a Prelude.Nothing, $sel:deploymentController:CreateService' :: Maybe DeploymentController deploymentController = Maybe DeploymentController forall a. Maybe a Prelude.Nothing, $sel:launchType:CreateService' :: Maybe LaunchType launchType = Maybe LaunchType forall a. Maybe a Prelude.Nothing, $sel:taskDefinition:CreateService' :: Maybe Text taskDefinition = Maybe Text forall a. Maybe a Prelude.Nothing, $sel:schedulingStrategy:CreateService' :: Maybe SchedulingStrategy schedulingStrategy = Maybe SchedulingStrategy forall a. Maybe a Prelude.Nothing, $sel:healthCheckGracePeriodSeconds:CreateService' :: Maybe Int healthCheckGracePeriodSeconds = Maybe Int forall a. Maybe a Prelude.Nothing, $sel:networkConfiguration:CreateService' :: Maybe NetworkConfiguration networkConfiguration = Maybe NetworkConfiguration forall a. Maybe a Prelude.Nothing, $sel:serviceRegistries:CreateService' :: Maybe [ServiceRegistry] serviceRegistries = Maybe [ServiceRegistry] forall a. Maybe a Prelude.Nothing, $sel:capacityProviderStrategy:CreateService' :: Maybe [CapacityProviderStrategyItem] capacityProviderStrategy = Maybe [CapacityProviderStrategyItem] forall a. Maybe a Prelude.Nothing, $sel:enableExecuteCommand:CreateService' :: Maybe Bool enableExecuteCommand = Maybe Bool forall a. Maybe a Prelude.Nothing, $sel:tags:CreateService' :: Maybe [Tag] tags = Maybe [Tag] forall a. Maybe a Prelude.Nothing, $sel:deploymentConfiguration:CreateService' :: Maybe DeploymentConfiguration deploymentConfiguration = Maybe DeploymentConfiguration forall a. Maybe a Prelude.Nothing, $sel:serviceName:CreateService' :: Text serviceName = Text pServiceName_ } -- | The short name or full Amazon Resource Name (ARN) of the cluster on -- which to run your service. If you do not specify a cluster, the default -- cluster is assumed. createService_cluster :: Lens.Lens' CreateService (Prelude.Maybe Prelude.Text) createService_cluster :: (Maybe Text -> f (Maybe Text)) -> CreateService -> f CreateService createService_cluster = (CreateService -> Maybe Text) -> (CreateService -> Maybe Text -> CreateService) -> Lens CreateService CreateService (Maybe Text) (Maybe Text) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\CreateService' {Maybe Text cluster :: Maybe Text $sel:cluster:CreateService' :: CreateService -> Maybe Text cluster} -> Maybe Text cluster) (\s :: CreateService s@CreateService' {} Maybe Text a -> CreateService s {$sel:cluster:CreateService' :: Maybe Text cluster = Maybe Text a} :: CreateService) -- | Unique, case-sensitive identifier that you provide to ensure the -- idempotency of the request. Up to 32 ASCII characters are allowed. createService_clientToken :: Lens.Lens' CreateService (Prelude.Maybe Prelude.Text) createService_clientToken :: (Maybe Text -> f (Maybe Text)) -> CreateService -> f CreateService createService_clientToken = (CreateService -> Maybe Text) -> (CreateService -> Maybe Text -> CreateService) -> Lens CreateService CreateService (Maybe Text) (Maybe Text) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\CreateService' {Maybe Text clientToken :: Maybe Text $sel:clientToken:CreateService' :: CreateService -> Maybe Text clientToken} -> Maybe Text clientToken) (\s :: CreateService s@CreateService' {} Maybe Text a -> CreateService s {$sel:clientToken:CreateService' :: Maybe Text clientToken = Maybe Text a} :: CreateService) -- | Specifies whether to propagate the tags from the task definition or the -- service to the tasks in the service. If no value is specified, the tags -- are not propagated. Tags can only be propagated to the tasks within the -- service during service creation. To add tags to a task after service -- creation or task creation, use the TagResource API action. createService_propagateTags :: Lens.Lens' CreateService (Prelude.Maybe PropagateTags) createService_propagateTags :: (Maybe PropagateTags -> f (Maybe PropagateTags)) -> CreateService -> f CreateService createService_propagateTags = (CreateService -> Maybe PropagateTags) -> (CreateService -> Maybe PropagateTags -> CreateService) -> Lens CreateService CreateService (Maybe PropagateTags) (Maybe PropagateTags) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\CreateService' {Maybe PropagateTags propagateTags :: Maybe PropagateTags $sel:propagateTags:CreateService' :: CreateService -> Maybe PropagateTags propagateTags} -> Maybe PropagateTags propagateTags) (\s :: CreateService s@CreateService' {} Maybe PropagateTags a -> CreateService s {$sel:propagateTags:CreateService' :: Maybe PropagateTags propagateTags = Maybe PropagateTags a} :: CreateService) -- | The platform version that your tasks in the service are running on. A -- platform version is specified only for tasks using the Fargate launch -- type. If one isn\'t specified, the @LATEST@ platform version is used by -- default. For more information, see -- <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html Fargate platform versions> -- in the /Amazon Elastic Container Service Developer Guide/. createService_platformVersion :: Lens.Lens' CreateService (Prelude.Maybe Prelude.Text) createService_platformVersion :: (Maybe Text -> f (Maybe Text)) -> CreateService -> f CreateService createService_platformVersion = (CreateService -> Maybe Text) -> (CreateService -> Maybe Text -> CreateService) -> Lens CreateService CreateService (Maybe Text) (Maybe Text) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\CreateService' {Maybe Text platformVersion :: Maybe Text $sel:platformVersion:CreateService' :: CreateService -> Maybe Text platformVersion} -> Maybe Text platformVersion) (\s :: CreateService s@CreateService' {} Maybe Text a -> CreateService s {$sel:platformVersion:CreateService' :: Maybe Text platformVersion = Maybe Text a} :: CreateService) -- | Specifies whether to enable Amazon ECS managed tags for the tasks within -- the service. For more information, see -- <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html Tagging Your Amazon ECS Resources> -- in the /Amazon Elastic Container Service Developer Guide/. createService_enableECSManagedTags :: Lens.Lens' CreateService (Prelude.Maybe Prelude.Bool) createService_enableECSManagedTags :: (Maybe Bool -> f (Maybe Bool)) -> CreateService -> f CreateService createService_enableECSManagedTags = (CreateService -> Maybe Bool) -> (CreateService -> Maybe Bool -> CreateService) -> Lens CreateService CreateService (Maybe Bool) (Maybe Bool) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\CreateService' {Maybe Bool enableECSManagedTags :: Maybe Bool $sel:enableECSManagedTags:CreateService' :: CreateService -> Maybe Bool enableECSManagedTags} -> Maybe Bool enableECSManagedTags) (\s :: CreateService s@CreateService' {} Maybe Bool a -> CreateService s {$sel:enableECSManagedTags:CreateService' :: Maybe Bool enableECSManagedTags = Maybe Bool a} :: CreateService) -- | The number of instantiations of the specified task definition to place -- and keep running on your cluster. -- -- This is required if @schedulingStrategy@ is @REPLICA@ or is not -- specified. If @schedulingStrategy@ is @DAEMON@ then this is not -- required. createService_desiredCount :: Lens.Lens' CreateService (Prelude.Maybe Prelude.Int) createService_desiredCount :: (Maybe Int -> f (Maybe Int)) -> CreateService -> f CreateService createService_desiredCount = (CreateService -> Maybe Int) -> (CreateService -> Maybe Int -> CreateService) -> Lens CreateService CreateService (Maybe Int) (Maybe Int) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\CreateService' {Maybe Int desiredCount :: Maybe Int $sel:desiredCount:CreateService' :: CreateService -> Maybe Int desiredCount} -> Maybe Int desiredCount) (\s :: CreateService s@CreateService' {} Maybe Int a -> CreateService s {$sel:desiredCount:CreateService' :: Maybe Int desiredCount = Maybe Int a} :: CreateService) -- | A load balancer object representing the load balancers to use with your -- service. For more information, see -- <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html Service Load Balancing> -- in the /Amazon Elastic Container Service Developer Guide/. -- -- If the service is using the rolling update (@ECS@) deployment controller -- and using either an Application Load Balancer or Network Load Balancer, -- you must specify one or more target group ARNs to attach to the service. -- The service-linked role is required for services that make use of -- multiple target groups. For more information, see -- <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html Using service-linked roles for Amazon ECS> -- in the /Amazon Elastic Container Service Developer Guide/. -- -- If the service is using the @CODE_DEPLOY@ deployment controller, the -- service is required to use either an Application Load Balancer or -- Network Load Balancer. When creating an CodeDeploy deployment group, you -- specify two target groups (referred to as a @targetGroupPair@). During a -- deployment, CodeDeploy determines which task set in your service has the -- status @PRIMARY@ and associates one target group with it, and then -- associates the other target group with the replacement task set. The -- load balancer can also have up to two listeners: a required listener for -- production traffic and an optional listener that allows you perform -- validation tests with Lambda functions before routing production traffic -- to it. -- -- After you create a service using the @ECS@ deployment controller, the -- load balancer name or target group ARN, container name, and container -- port specified in the service definition are immutable. If you are using -- the @CODE_DEPLOY@ deployment controller, these values can be changed -- when updating the service. -- -- For Application Load Balancers and Network Load Balancers, this object -- must contain the load balancer target group ARN, the container name (as -- it appears in a container definition), and the container port to access -- from the load balancer. The load balancer name parameter must be -- omitted. When a task from this service is placed on a container -- instance, the container instance and port combination is registered as a -- target in the target group specified here. -- -- For Classic Load Balancers, this object must contain the load balancer -- name, the container name (as it appears in a container definition), and -- the container port to access from the load balancer. The target group -- ARN parameter must be omitted. When a task from this service is placed -- on a container instance, the container instance is registered with the -- load balancer specified here. -- -- Services with tasks that use the @awsvpc@ network mode (for example, -- those with the Fargate launch type) only support Application Load -- Balancers and Network Load Balancers. Classic Load Balancers are not -- supported. Also, when you create any target groups for these services, -- you must choose @ip@ as the target type, not @instance@, because tasks -- that use the @awsvpc@ network mode are associated with an elastic -- network interface, not an Amazon EC2 instance. createService_loadBalancers :: Lens.Lens' CreateService (Prelude.Maybe [LoadBalancer]) createService_loadBalancers :: (Maybe [LoadBalancer] -> f (Maybe [LoadBalancer])) -> CreateService -> f CreateService createService_loadBalancers = (CreateService -> Maybe [LoadBalancer]) -> (CreateService -> Maybe [LoadBalancer] -> CreateService) -> Lens CreateService CreateService (Maybe [LoadBalancer]) (Maybe [LoadBalancer]) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\CreateService' {Maybe [LoadBalancer] loadBalancers :: Maybe [LoadBalancer] $sel:loadBalancers:CreateService' :: CreateService -> Maybe [LoadBalancer] loadBalancers} -> Maybe [LoadBalancer] loadBalancers) (\s :: CreateService s@CreateService' {} Maybe [LoadBalancer] a -> CreateService s {$sel:loadBalancers:CreateService' :: Maybe [LoadBalancer] loadBalancers = Maybe [LoadBalancer] a} :: CreateService) ((Maybe [LoadBalancer] -> f (Maybe [LoadBalancer])) -> CreateService -> f CreateService) -> ((Maybe [LoadBalancer] -> f (Maybe [LoadBalancer])) -> Maybe [LoadBalancer] -> f (Maybe [LoadBalancer])) -> (Maybe [LoadBalancer] -> f (Maybe [LoadBalancer])) -> CreateService -> f CreateService forall b c a. (b -> c) -> (a -> b) -> a -> c Prelude.. AnIso [LoadBalancer] [LoadBalancer] [LoadBalancer] [LoadBalancer] -> Iso (Maybe [LoadBalancer]) (Maybe [LoadBalancer]) (Maybe [LoadBalancer]) (Maybe [LoadBalancer]) forall (f :: * -> *) (g :: * -> *) s t a b. (Functor f, Functor g) => AnIso s t a b -> Iso (f s) (g t) (f a) (g b) Lens.mapping AnIso [LoadBalancer] [LoadBalancer] [LoadBalancer] [LoadBalancer] forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b Lens.coerced -- | The name or full Amazon Resource Name (ARN) of the IAM role that allows -- Amazon ECS to make calls to your load balancer on your behalf. This -- parameter is only permitted if you are using a load balancer with your -- service and your task definition does not use the @awsvpc@ network mode. -- If you specify the @role@ parameter, you must also specify a load -- balancer object with the @loadBalancers@ parameter. -- -- If your account has already created the Amazon ECS service-linked role, -- that role is used by default for your service unless you specify a role -- here. The service-linked role is required if your task definition uses -- the @awsvpc@ network mode or if the service is configured to use service -- discovery, an external deployment controller, multiple target groups, or -- Elastic Inference accelerators in which case you should not specify a -- role here. For more information, see -- <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html Using service-linked roles for Amazon ECS> -- in the /Amazon Elastic Container Service Developer Guide/. -- -- If your specified role has a path other than @\/@, then you must either -- specify the full role ARN (this is recommended) or prefix the role name -- with the path. For example, if a role with the name @bar@ has a path of -- @\/foo\/@ then you would specify @\/foo\/bar@ as the role name. For more -- information, see -- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-friendly-names Friendly names and paths> -- in the /IAM User Guide/. createService_role :: Lens.Lens' CreateService (Prelude.Maybe Prelude.Text) createService_role :: (Maybe Text -> f (Maybe Text)) -> CreateService -> f CreateService createService_role = (CreateService -> Maybe Text) -> (CreateService -> Maybe Text -> CreateService) -> Lens CreateService CreateService (Maybe Text) (Maybe Text) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\CreateService' {Maybe Text role' :: Maybe Text $sel:role':CreateService' :: CreateService -> Maybe Text role'} -> Maybe Text role') (\s :: CreateService s@CreateService' {} Maybe Text a -> CreateService s {$sel:role':CreateService' :: Maybe Text role' = Maybe Text a} :: CreateService) -- | An array of placement constraint objects to use for tasks in your -- service. You can specify a maximum of 10 constraints per task (this -- limit includes constraints in the task definition and those specified at -- runtime). createService_placementConstraints :: Lens.Lens' CreateService (Prelude.Maybe [PlacementConstraint]) createService_placementConstraints :: (Maybe [PlacementConstraint] -> f (Maybe [PlacementConstraint])) -> CreateService -> f CreateService createService_placementConstraints = (CreateService -> Maybe [PlacementConstraint]) -> (CreateService -> Maybe [PlacementConstraint] -> CreateService) -> Lens CreateService CreateService (Maybe [PlacementConstraint]) (Maybe [PlacementConstraint]) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\CreateService' {Maybe [PlacementConstraint] placementConstraints :: Maybe [PlacementConstraint] $sel:placementConstraints:CreateService' :: CreateService -> Maybe [PlacementConstraint] placementConstraints} -> Maybe [PlacementConstraint] placementConstraints) (\s :: CreateService s@CreateService' {} Maybe [PlacementConstraint] a -> CreateService s {$sel:placementConstraints:CreateService' :: Maybe [PlacementConstraint] placementConstraints = Maybe [PlacementConstraint] a} :: CreateService) ((Maybe [PlacementConstraint] -> f (Maybe [PlacementConstraint])) -> CreateService -> f CreateService) -> ((Maybe [PlacementConstraint] -> f (Maybe [PlacementConstraint])) -> Maybe [PlacementConstraint] -> f (Maybe [PlacementConstraint])) -> (Maybe [PlacementConstraint] -> f (Maybe [PlacementConstraint])) -> CreateService -> f CreateService forall b c a. (b -> c) -> (a -> b) -> a -> c Prelude.. AnIso [PlacementConstraint] [PlacementConstraint] [PlacementConstraint] [PlacementConstraint] -> Iso (Maybe [PlacementConstraint]) (Maybe [PlacementConstraint]) (Maybe [PlacementConstraint]) (Maybe [PlacementConstraint]) forall (f :: * -> *) (g :: * -> *) s t a b. (Functor f, Functor g) => AnIso s t a b -> Iso (f s) (g t) (f a) (g b) Lens.mapping AnIso [PlacementConstraint] [PlacementConstraint] [PlacementConstraint] [PlacementConstraint] forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b Lens.coerced -- | The placement strategy objects to use for tasks in your service. You can -- specify a maximum of 5 strategy rules per service. createService_placementStrategy :: Lens.Lens' CreateService (Prelude.Maybe [PlacementStrategy]) createService_placementStrategy :: (Maybe [PlacementStrategy] -> f (Maybe [PlacementStrategy])) -> CreateService -> f CreateService createService_placementStrategy = (CreateService -> Maybe [PlacementStrategy]) -> (CreateService -> Maybe [PlacementStrategy] -> CreateService) -> Lens CreateService CreateService (Maybe [PlacementStrategy]) (Maybe [PlacementStrategy]) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\CreateService' {Maybe [PlacementStrategy] placementStrategy :: Maybe [PlacementStrategy] $sel:placementStrategy:CreateService' :: CreateService -> Maybe [PlacementStrategy] placementStrategy} -> Maybe [PlacementStrategy] placementStrategy) (\s :: CreateService s@CreateService' {} Maybe [PlacementStrategy] a -> CreateService s {$sel:placementStrategy:CreateService' :: Maybe [PlacementStrategy] placementStrategy = Maybe [PlacementStrategy] a} :: CreateService) ((Maybe [PlacementStrategy] -> f (Maybe [PlacementStrategy])) -> CreateService -> f CreateService) -> ((Maybe [PlacementStrategy] -> f (Maybe [PlacementStrategy])) -> Maybe [PlacementStrategy] -> f (Maybe [PlacementStrategy])) -> (Maybe [PlacementStrategy] -> f (Maybe [PlacementStrategy])) -> CreateService -> f CreateService forall b c a. (b -> c) -> (a -> b) -> a -> c Prelude.. AnIso [PlacementStrategy] [PlacementStrategy] [PlacementStrategy] [PlacementStrategy] -> Iso (Maybe [PlacementStrategy]) (Maybe [PlacementStrategy]) (Maybe [PlacementStrategy]) (Maybe [PlacementStrategy]) forall (f :: * -> *) (g :: * -> *) s t a b. (Functor f, Functor g) => AnIso s t a b -> Iso (f s) (g t) (f a) (g b) Lens.mapping AnIso [PlacementStrategy] [PlacementStrategy] [PlacementStrategy] [PlacementStrategy] forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b Lens.coerced -- | The deployment controller to use for the service. If no deployment -- controller is specified, the default value of @ECS@ is used. createService_deploymentController :: Lens.Lens' CreateService (Prelude.Maybe DeploymentController) createService_deploymentController :: (Maybe DeploymentController -> f (Maybe DeploymentController)) -> CreateService -> f CreateService createService_deploymentController = (CreateService -> Maybe DeploymentController) -> (CreateService -> Maybe DeploymentController -> CreateService) -> Lens CreateService CreateService (Maybe DeploymentController) (Maybe DeploymentController) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\CreateService' {Maybe DeploymentController deploymentController :: Maybe DeploymentController $sel:deploymentController:CreateService' :: CreateService -> Maybe DeploymentController deploymentController} -> Maybe DeploymentController deploymentController) (\s :: CreateService s@CreateService' {} Maybe DeploymentController a -> CreateService s {$sel:deploymentController:CreateService' :: Maybe DeploymentController deploymentController = Maybe DeploymentController a} :: CreateService) -- | The infrastructure on which to run your service. For more information, -- see -- <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html Amazon ECS launch types> -- in the /Amazon Elastic Container Service Developer Guide/. -- -- The @FARGATE@ launch type runs your tasks on Fargate On-Demand -- infrastructure. -- -- Fargate Spot infrastructure is available for use but a capacity provider -- strategy must be used. For more information, see -- <https://docs.aws.amazon.com/AmazonECS/latest/userguide/fargate-capacity-providers.html Fargate capacity providers> -- in the /Amazon ECS User Guide for Fargate/. -- -- The @EC2@ launch type runs your tasks on Amazon EC2 instances registered -- to your cluster. -- -- The @EXTERNAL@ launch type runs your tasks on your on-premise server or -- virtual machine (VM) capacity registered to your cluster. -- -- A service can use either a launch type or a capacity provider strategy. -- If a @launchType@ is specified, the @capacityProviderStrategy@ parameter -- must be omitted. createService_launchType :: Lens.Lens' CreateService (Prelude.Maybe LaunchType) createService_launchType :: (Maybe LaunchType -> f (Maybe LaunchType)) -> CreateService -> f CreateService createService_launchType = (CreateService -> Maybe LaunchType) -> (CreateService -> Maybe LaunchType -> CreateService) -> Lens CreateService CreateService (Maybe LaunchType) (Maybe LaunchType) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\CreateService' {Maybe LaunchType launchType :: Maybe LaunchType $sel:launchType:CreateService' :: CreateService -> Maybe LaunchType launchType} -> Maybe LaunchType launchType) (\s :: CreateService s@CreateService' {} Maybe LaunchType a -> CreateService s {$sel:launchType:CreateService' :: Maybe LaunchType launchType = Maybe LaunchType a} :: CreateService) -- | The @family@ and @revision@ (@family:revision@) or full ARN of the task -- definition to run in your service. If a @revision@ is not specified, the -- latest @ACTIVE@ revision is used. -- -- A task definition must be specified if the service is using either the -- @ECS@ or @CODE_DEPLOY@ deployment controllers. createService_taskDefinition :: Lens.Lens' CreateService (Prelude.Maybe Prelude.Text) createService_taskDefinition :: (Maybe Text -> f (Maybe Text)) -> CreateService -> f CreateService createService_taskDefinition = (CreateService -> Maybe Text) -> (CreateService -> Maybe Text -> CreateService) -> Lens CreateService CreateService (Maybe Text) (Maybe Text) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\CreateService' {Maybe Text taskDefinition :: Maybe Text $sel:taskDefinition:CreateService' :: CreateService -> Maybe Text taskDefinition} -> Maybe Text taskDefinition) (\s :: CreateService s@CreateService' {} Maybe Text a -> CreateService s {$sel:taskDefinition:CreateService' :: Maybe Text taskDefinition = Maybe Text a} :: CreateService) -- | The scheduling strategy to use for the service. For more information, -- see -- <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html Services>. -- -- There are two service scheduler strategies available: -- -- - @REPLICA@-The replica scheduling strategy places and maintains the -- desired number of tasks across your cluster. By default, the service -- scheduler spreads tasks across Availability Zones. You can use task -- placement strategies and constraints to customize task placement -- decisions. This scheduler strategy is required if the service is -- using the @CODE_DEPLOY@ or @EXTERNAL@ deployment controller types. -- -- - @DAEMON@-The daemon scheduling strategy deploys exactly one task on -- each active container instance that meets all of the task placement -- constraints that you specify in your cluster. The service scheduler -- also evaluates the task placement constraints for running tasks and -- will stop tasks that do not meet the placement constraints. When -- you\'re using this strategy, you don\'t need to specify a desired -- number of tasks, a task placement strategy, or use Service Auto -- Scaling policies. -- -- Tasks using the Fargate launch type or the @CODE_DEPLOY@ or -- @EXTERNAL@ deployment controller types don\'t support the @DAEMON@ -- scheduling strategy. createService_schedulingStrategy :: Lens.Lens' CreateService (Prelude.Maybe SchedulingStrategy) createService_schedulingStrategy :: (Maybe SchedulingStrategy -> f (Maybe SchedulingStrategy)) -> CreateService -> f CreateService createService_schedulingStrategy = (CreateService -> Maybe SchedulingStrategy) -> (CreateService -> Maybe SchedulingStrategy -> CreateService) -> Lens CreateService CreateService (Maybe SchedulingStrategy) (Maybe SchedulingStrategy) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\CreateService' {Maybe SchedulingStrategy schedulingStrategy :: Maybe SchedulingStrategy $sel:schedulingStrategy:CreateService' :: CreateService -> Maybe SchedulingStrategy schedulingStrategy} -> Maybe SchedulingStrategy schedulingStrategy) (\s :: CreateService s@CreateService' {} Maybe SchedulingStrategy a -> CreateService s {$sel:schedulingStrategy:CreateService' :: Maybe SchedulingStrategy schedulingStrategy = Maybe SchedulingStrategy a} :: CreateService) -- | The period of time, in seconds, that the Amazon ECS service scheduler -- should ignore unhealthy Elastic Load Balancing target health checks -- after a task has first started. This is only used when your service is -- configured to use a load balancer. If your service has a load balancer -- defined and you don\'t specify a health check grace period value, the -- default value of @0@ is used. -- -- If your service\'s tasks take a while to start and respond to Elastic -- Load Balancing health checks, you can specify a health check grace -- period of up to 2,147,483,647 seconds. During that time, the Amazon ECS -- service scheduler ignores health check status. This grace period can -- prevent the service scheduler from marking tasks as unhealthy and -- stopping them before they have time to come up. createService_healthCheckGracePeriodSeconds :: Lens.Lens' CreateService (Prelude.Maybe Prelude.Int) createService_healthCheckGracePeriodSeconds :: (Maybe Int -> f (Maybe Int)) -> CreateService -> f CreateService createService_healthCheckGracePeriodSeconds = (CreateService -> Maybe Int) -> (CreateService -> Maybe Int -> CreateService) -> Lens CreateService CreateService (Maybe Int) (Maybe Int) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\CreateService' {Maybe Int healthCheckGracePeriodSeconds :: Maybe Int $sel:healthCheckGracePeriodSeconds:CreateService' :: CreateService -> Maybe Int healthCheckGracePeriodSeconds} -> Maybe Int healthCheckGracePeriodSeconds) (\s :: CreateService s@CreateService' {} Maybe Int a -> CreateService s {$sel:healthCheckGracePeriodSeconds:CreateService' :: Maybe Int healthCheckGracePeriodSeconds = Maybe Int a} :: CreateService) -- | The network configuration for the service. This parameter is required -- for task definitions that use the @awsvpc@ network mode to receive their -- own elastic network interface, and it is not supported for other network -- modes. For more information, see -- <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html Task networking> -- in the /Amazon Elastic Container Service Developer Guide/. createService_networkConfiguration :: Lens.Lens' CreateService (Prelude.Maybe NetworkConfiguration) createService_networkConfiguration :: (Maybe NetworkConfiguration -> f (Maybe NetworkConfiguration)) -> CreateService -> f CreateService createService_networkConfiguration = (CreateService -> Maybe NetworkConfiguration) -> (CreateService -> Maybe NetworkConfiguration -> CreateService) -> Lens CreateService CreateService (Maybe NetworkConfiguration) (Maybe NetworkConfiguration) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\CreateService' {Maybe NetworkConfiguration networkConfiguration :: Maybe NetworkConfiguration $sel:networkConfiguration:CreateService' :: CreateService -> Maybe NetworkConfiguration networkConfiguration} -> Maybe NetworkConfiguration networkConfiguration) (\s :: CreateService s@CreateService' {} Maybe NetworkConfiguration a -> CreateService s {$sel:networkConfiguration:CreateService' :: Maybe NetworkConfiguration networkConfiguration = Maybe NetworkConfiguration a} :: CreateService) -- | The details of the service discovery registry to associate with this -- service. For more information, see -- <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html Service discovery>. -- -- Each service may be associated with one service registry. Multiple -- service registries per service isn\'t supported. createService_serviceRegistries :: Lens.Lens' CreateService (Prelude.Maybe [ServiceRegistry]) createService_serviceRegistries :: (Maybe [ServiceRegistry] -> f (Maybe [ServiceRegistry])) -> CreateService -> f CreateService createService_serviceRegistries = (CreateService -> Maybe [ServiceRegistry]) -> (CreateService -> Maybe [ServiceRegistry] -> CreateService) -> Lens CreateService CreateService (Maybe [ServiceRegistry]) (Maybe [ServiceRegistry]) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\CreateService' {Maybe [ServiceRegistry] serviceRegistries :: Maybe [ServiceRegistry] $sel:serviceRegistries:CreateService' :: CreateService -> Maybe [ServiceRegistry] serviceRegistries} -> Maybe [ServiceRegistry] serviceRegistries) (\s :: CreateService s@CreateService' {} Maybe [ServiceRegistry] a -> CreateService s {$sel:serviceRegistries:CreateService' :: Maybe [ServiceRegistry] serviceRegistries = Maybe [ServiceRegistry] a} :: CreateService) ((Maybe [ServiceRegistry] -> f (Maybe [ServiceRegistry])) -> CreateService -> f CreateService) -> ((Maybe [ServiceRegistry] -> f (Maybe [ServiceRegistry])) -> Maybe [ServiceRegistry] -> f (Maybe [ServiceRegistry])) -> (Maybe [ServiceRegistry] -> f (Maybe [ServiceRegistry])) -> CreateService -> f CreateService forall b c a. (b -> c) -> (a -> b) -> a -> c Prelude.. AnIso [ServiceRegistry] [ServiceRegistry] [ServiceRegistry] [ServiceRegistry] -> Iso (Maybe [ServiceRegistry]) (Maybe [ServiceRegistry]) (Maybe [ServiceRegistry]) (Maybe [ServiceRegistry]) forall (f :: * -> *) (g :: * -> *) s t a b. (Functor f, Functor g) => AnIso s t a b -> Iso (f s) (g t) (f a) (g b) Lens.mapping AnIso [ServiceRegistry] [ServiceRegistry] [ServiceRegistry] [ServiceRegistry] forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b Lens.coerced -- | The capacity provider strategy to use for the service. -- -- If a @capacityProviderStrategy@ is specified, the @launchType@ parameter -- must be omitted. If no @capacityProviderStrategy@ or @launchType@ is -- specified, the @defaultCapacityProviderStrategy@ for the cluster is -- used. -- -- A capacity provider strategy may contain a maximum of 6 capacity -- providers. createService_capacityProviderStrategy :: Lens.Lens' CreateService (Prelude.Maybe [CapacityProviderStrategyItem]) createService_capacityProviderStrategy :: (Maybe [CapacityProviderStrategyItem] -> f (Maybe [CapacityProviderStrategyItem])) -> CreateService -> f CreateService createService_capacityProviderStrategy = (CreateService -> Maybe [CapacityProviderStrategyItem]) -> (CreateService -> Maybe [CapacityProviderStrategyItem] -> CreateService) -> Lens CreateService CreateService (Maybe [CapacityProviderStrategyItem]) (Maybe [CapacityProviderStrategyItem]) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\CreateService' {Maybe [CapacityProviderStrategyItem] capacityProviderStrategy :: Maybe [CapacityProviderStrategyItem] $sel:capacityProviderStrategy:CreateService' :: CreateService -> Maybe [CapacityProviderStrategyItem] capacityProviderStrategy} -> Maybe [CapacityProviderStrategyItem] capacityProviderStrategy) (\s :: CreateService s@CreateService' {} Maybe [CapacityProviderStrategyItem] a -> CreateService s {$sel:capacityProviderStrategy:CreateService' :: Maybe [CapacityProviderStrategyItem] capacityProviderStrategy = Maybe [CapacityProviderStrategyItem] a} :: CreateService) ((Maybe [CapacityProviderStrategyItem] -> f (Maybe [CapacityProviderStrategyItem])) -> CreateService -> f CreateService) -> ((Maybe [CapacityProviderStrategyItem] -> f (Maybe [CapacityProviderStrategyItem])) -> Maybe [CapacityProviderStrategyItem] -> f (Maybe [CapacityProviderStrategyItem])) -> (Maybe [CapacityProviderStrategyItem] -> f (Maybe [CapacityProviderStrategyItem])) -> CreateService -> f CreateService forall b c a. (b -> c) -> (a -> b) -> a -> c Prelude.. AnIso [CapacityProviderStrategyItem] [CapacityProviderStrategyItem] [CapacityProviderStrategyItem] [CapacityProviderStrategyItem] -> Iso (Maybe [CapacityProviderStrategyItem]) (Maybe [CapacityProviderStrategyItem]) (Maybe [CapacityProviderStrategyItem]) (Maybe [CapacityProviderStrategyItem]) forall (f :: * -> *) (g :: * -> *) s t a b. (Functor f, Functor g) => AnIso s t a b -> Iso (f s) (g t) (f a) (g b) Lens.mapping AnIso [CapacityProviderStrategyItem] [CapacityProviderStrategyItem] [CapacityProviderStrategyItem] [CapacityProviderStrategyItem] forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b Lens.coerced -- | Whether or not the execute command functionality is enabled for the -- service. If @true@, this enables execute command functionality on all -- containers in the service tasks. createService_enableExecuteCommand :: Lens.Lens' CreateService (Prelude.Maybe Prelude.Bool) createService_enableExecuteCommand :: (Maybe Bool -> f (Maybe Bool)) -> CreateService -> f CreateService createService_enableExecuteCommand = (CreateService -> Maybe Bool) -> (CreateService -> Maybe Bool -> CreateService) -> Lens CreateService CreateService (Maybe Bool) (Maybe Bool) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\CreateService' {Maybe Bool enableExecuteCommand :: Maybe Bool $sel:enableExecuteCommand:CreateService' :: CreateService -> Maybe Bool enableExecuteCommand} -> Maybe Bool enableExecuteCommand) (\s :: CreateService s@CreateService' {} Maybe Bool a -> CreateService s {$sel:enableExecuteCommand:CreateService' :: Maybe Bool enableExecuteCommand = Maybe Bool a} :: CreateService) -- | The metadata that you apply to the service to help you categorize and -- organize them. Each tag consists of a key and an optional value, both of -- which you define. When a service is deleted, the tags are deleted as -- well. -- -- The following basic restrictions apply to tags: -- -- - Maximum number of tags per resource - 50 -- -- - For each resource, each tag key must be unique, and each tag key can -- have only one value. -- -- - Maximum key length - 128 Unicode characters in UTF-8 -- -- - Maximum value length - 256 Unicode characters in UTF-8 -- -- - If your tagging schema is used across multiple services and -- resources, remember that other services may have restrictions on -- allowed characters. Generally allowed characters are: letters, -- numbers, and spaces representable in UTF-8, and the following -- characters: + - = . _ : \/ \@. -- -- - Tag keys and values are case-sensitive. -- -- - Do not use @aws:@, @AWS:@, or any upper or lowercase combination of -- such as a prefix for either keys or values as it is reserved for -- Amazon Web Services use. You cannot edit or delete tag keys or -- values with this prefix. Tags with this prefix do not count against -- your tags per resource limit. createService_tags :: Lens.Lens' CreateService (Prelude.Maybe [Tag]) = (CreateService -> Maybe [Tag]) -> (CreateService -> Maybe [Tag] -> CreateService) -> Lens CreateService CreateService (Maybe [Tag]) (Maybe [Tag]) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\CreateService' {Maybe [Tag] tags :: Maybe [Tag] $sel:tags:CreateService' :: CreateService -> Maybe [Tag] tags} -> Maybe [Tag] tags) (\s :: CreateService s@CreateService' {} Maybe [Tag] a -> CreateService s {$sel:tags:CreateService' :: Maybe [Tag] tags = Maybe [Tag] a} :: CreateService) ((Maybe [Tag] -> f (Maybe [Tag])) -> CreateService -> f CreateService) -> ((Maybe [Tag] -> f (Maybe [Tag])) -> Maybe [Tag] -> f (Maybe [Tag])) -> (Maybe [Tag] -> f (Maybe [Tag])) -> CreateService -> f CreateService forall b c a. (b -> c) -> (a -> b) -> a -> c Prelude.. AnIso [Tag] [Tag] [Tag] [Tag] -> Iso (Maybe [Tag]) (Maybe [Tag]) (Maybe [Tag]) (Maybe [Tag]) forall (f :: * -> *) (g :: * -> *) s t a b. (Functor f, Functor g) => AnIso s t a b -> Iso (f s) (g t) (f a) (g b) Lens.mapping AnIso [Tag] [Tag] [Tag] [Tag] forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b Lens.coerced -- | Optional deployment parameters that control how many tasks run during -- the deployment and the ordering of stopping and starting tasks. createService_deploymentConfiguration :: Lens.Lens' CreateService (Prelude.Maybe DeploymentConfiguration) createService_deploymentConfiguration :: (Maybe DeploymentConfiguration -> f (Maybe DeploymentConfiguration)) -> CreateService -> f CreateService createService_deploymentConfiguration = (CreateService -> Maybe DeploymentConfiguration) -> (CreateService -> Maybe DeploymentConfiguration -> CreateService) -> Lens CreateService CreateService (Maybe DeploymentConfiguration) (Maybe DeploymentConfiguration) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\CreateService' {Maybe DeploymentConfiguration deploymentConfiguration :: Maybe DeploymentConfiguration $sel:deploymentConfiguration:CreateService' :: CreateService -> Maybe DeploymentConfiguration deploymentConfiguration} -> Maybe DeploymentConfiguration deploymentConfiguration) (\s :: CreateService s@CreateService' {} Maybe DeploymentConfiguration a -> CreateService s {$sel:deploymentConfiguration:CreateService' :: Maybe DeploymentConfiguration deploymentConfiguration = Maybe DeploymentConfiguration a} :: CreateService) -- | The name of your service. Up to 255 letters (uppercase and lowercase), -- numbers, underscores, and hyphens are allowed. Service names must be -- unique within a cluster, but you can have similarly named services in -- multiple clusters within a Region or across multiple Regions. createService_serviceName :: Lens.Lens' CreateService Prelude.Text createService_serviceName :: (Text -> f Text) -> CreateService -> f CreateService createService_serviceName = (CreateService -> Text) -> (CreateService -> Text -> CreateService) -> Lens CreateService CreateService Text Text forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\CreateService' {Text serviceName :: Text $sel:serviceName:CreateService' :: CreateService -> Text serviceName} -> Text serviceName) (\s :: CreateService s@CreateService' {} Text a -> CreateService s {$sel:serviceName:CreateService' :: Text serviceName = Text a} :: CreateService) instance Core.AWSRequest CreateService where type AWSResponse CreateService = CreateServiceResponse request :: CreateService -> Request CreateService request = Service -> CreateService -> Request CreateService forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a Request.postJSON Service defaultService response :: Logger -> Service -> Proxy CreateService -> ClientResponse ClientBody -> m (Either Error (ClientResponse (AWSResponse CreateService))) response = (Int -> ResponseHeaders -> Object -> Either String (AWSResponse CreateService)) -> Logger -> Service -> Proxy CreateService -> ClientResponse ClientBody -> m (Either Error (ClientResponse (AWSResponse CreateService))) forall (m :: * -> *) a. MonadResource m => (Int -> ResponseHeaders -> Object -> Either String (AWSResponse a)) -> Logger -> Service -> Proxy a -> ClientResponse ClientBody -> m (Either Error (ClientResponse (AWSResponse a))) Response.receiveJSON ( \Int s ResponseHeaders h Object x -> Maybe ContainerService -> Int -> CreateServiceResponse CreateServiceResponse' (Maybe ContainerService -> Int -> CreateServiceResponse) -> Either String (Maybe ContainerService) -> Either String (Int -> CreateServiceResponse) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> (Object x Object -> Text -> Either String (Maybe ContainerService) forall a. FromJSON a => Object -> Text -> Either String (Maybe a) Core..?> Text "service") Either String (Int -> CreateServiceResponse) -> Either String Int -> Either String CreateServiceResponse forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b Prelude.<*> (Int -> Either String Int forall (f :: * -> *) a. Applicative f => a -> f a Prelude.pure (Int -> Int forall a. Enum a => a -> Int Prelude.fromEnum Int s)) ) instance Prelude.Hashable CreateService instance Prelude.NFData CreateService instance Core.ToHeaders CreateService where toHeaders :: CreateService -> ResponseHeaders toHeaders = ResponseHeaders -> CreateService -> ResponseHeaders forall a b. a -> b -> a Prelude.const ( [ResponseHeaders] -> ResponseHeaders forall a. Monoid a => [a] -> a Prelude.mconcat [ HeaderName "X-Amz-Target" HeaderName -> ByteString -> ResponseHeaders forall a. ToHeader a => HeaderName -> a -> ResponseHeaders Core.=# ( ByteString "AmazonEC2ContainerServiceV20141113.CreateService" :: Prelude.ByteString ), HeaderName "Content-Type" HeaderName -> ByteString -> ResponseHeaders forall a. ToHeader a => HeaderName -> a -> ResponseHeaders Core.=# ( ByteString "application/x-amz-json-1.1" :: Prelude.ByteString ) ] ) instance Core.ToJSON CreateService where toJSON :: CreateService -> Value toJSON CreateService' {Maybe Bool Maybe Int Maybe [CapacityProviderStrategyItem] Maybe [LoadBalancer] Maybe [PlacementConstraint] Maybe [PlacementStrategy] Maybe [ServiceRegistry] Maybe [Tag] Maybe Text Maybe DeploymentConfiguration Maybe DeploymentController Maybe LaunchType Maybe NetworkConfiguration Maybe PropagateTags Maybe SchedulingStrategy Text serviceName :: Text deploymentConfiguration :: Maybe DeploymentConfiguration tags :: Maybe [Tag] enableExecuteCommand :: Maybe Bool capacityProviderStrategy :: Maybe [CapacityProviderStrategyItem] serviceRegistries :: Maybe [ServiceRegistry] networkConfiguration :: Maybe NetworkConfiguration healthCheckGracePeriodSeconds :: Maybe Int schedulingStrategy :: Maybe SchedulingStrategy taskDefinition :: Maybe Text launchType :: Maybe LaunchType deploymentController :: Maybe DeploymentController placementStrategy :: Maybe [PlacementStrategy] placementConstraints :: Maybe [PlacementConstraint] role' :: Maybe Text loadBalancers :: Maybe [LoadBalancer] desiredCount :: Maybe Int enableECSManagedTags :: Maybe Bool platformVersion :: Maybe Text propagateTags :: Maybe PropagateTags clientToken :: Maybe Text cluster :: Maybe Text $sel:serviceName:CreateService' :: CreateService -> Text $sel:deploymentConfiguration:CreateService' :: CreateService -> Maybe DeploymentConfiguration $sel:tags:CreateService' :: CreateService -> Maybe [Tag] $sel:enableExecuteCommand:CreateService' :: CreateService -> Maybe Bool $sel:capacityProviderStrategy:CreateService' :: CreateService -> Maybe [CapacityProviderStrategyItem] $sel:serviceRegistries:CreateService' :: CreateService -> Maybe [ServiceRegistry] $sel:networkConfiguration:CreateService' :: CreateService -> Maybe NetworkConfiguration $sel:healthCheckGracePeriodSeconds:CreateService' :: CreateService -> Maybe Int $sel:schedulingStrategy:CreateService' :: CreateService -> Maybe SchedulingStrategy $sel:taskDefinition:CreateService' :: CreateService -> Maybe Text $sel:launchType:CreateService' :: CreateService -> Maybe LaunchType $sel:deploymentController:CreateService' :: CreateService -> Maybe DeploymentController $sel:placementStrategy:CreateService' :: CreateService -> Maybe [PlacementStrategy] $sel:placementConstraints:CreateService' :: CreateService -> Maybe [PlacementConstraint] $sel:role':CreateService' :: CreateService -> Maybe Text $sel:loadBalancers:CreateService' :: CreateService -> Maybe [LoadBalancer] $sel:desiredCount:CreateService' :: CreateService -> Maybe Int $sel:enableECSManagedTags:CreateService' :: CreateService -> Maybe Bool $sel:platformVersion:CreateService' :: CreateService -> Maybe Text $sel:propagateTags:CreateService' :: CreateService -> Maybe PropagateTags $sel:clientToken:CreateService' :: CreateService -> Maybe Text $sel:cluster:CreateService' :: CreateService -> Maybe Text ..} = [Pair] -> Value Core.object ( [Maybe Pair] -> [Pair] forall a. [Maybe a] -> [a] Prelude.catMaybes [ (Text "cluster" Text -> Text -> Pair forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe Text cluster, (Text "clientToken" Text -> Text -> Pair forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe Text clientToken, (Text "propagateTags" Text -> PropagateTags -> Pair forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv Core..=) (PropagateTags -> Pair) -> Maybe PropagateTags -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe PropagateTags propagateTags, (Text "platformVersion" Text -> Text -> Pair forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe Text platformVersion, (Text "enableECSManagedTags" Text -> Bool -> Pair forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv Core..=) (Bool -> Pair) -> Maybe Bool -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe Bool enableECSManagedTags, (Text "desiredCount" Text -> Int -> Pair forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv Core..=) (Int -> Pair) -> Maybe Int -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe Int desiredCount, (Text "loadBalancers" Text -> [LoadBalancer] -> Pair forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv Core..=) ([LoadBalancer] -> Pair) -> Maybe [LoadBalancer] -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe [LoadBalancer] loadBalancers, (Text "role" Text -> Text -> Pair forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe Text role', (Text "placementConstraints" Text -> [PlacementConstraint] -> Pair forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv Core..=) ([PlacementConstraint] -> Pair) -> Maybe [PlacementConstraint] -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe [PlacementConstraint] placementConstraints, (Text "placementStrategy" Text -> [PlacementStrategy] -> Pair forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv Core..=) ([PlacementStrategy] -> Pair) -> Maybe [PlacementStrategy] -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe [PlacementStrategy] placementStrategy, (Text "deploymentController" Text -> DeploymentController -> Pair forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv Core..=) (DeploymentController -> Pair) -> Maybe DeploymentController -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe DeploymentController deploymentController, (Text "launchType" Text -> LaunchType -> Pair forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv Core..=) (LaunchType -> Pair) -> Maybe LaunchType -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe LaunchType launchType, (Text "taskDefinition" Text -> Text -> Pair forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe Text taskDefinition, (Text "schedulingStrategy" Text -> SchedulingStrategy -> Pair forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv Core..=) (SchedulingStrategy -> Pair) -> Maybe SchedulingStrategy -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe SchedulingStrategy schedulingStrategy, (Text "healthCheckGracePeriodSeconds" Text -> Int -> Pair forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv Core..=) (Int -> Pair) -> Maybe Int -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe Int healthCheckGracePeriodSeconds, (Text "networkConfiguration" Text -> NetworkConfiguration -> Pair forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv Core..=) (NetworkConfiguration -> Pair) -> Maybe NetworkConfiguration -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe NetworkConfiguration networkConfiguration, (Text "serviceRegistries" Text -> [ServiceRegistry] -> Pair forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv Core..=) ([ServiceRegistry] -> Pair) -> Maybe [ServiceRegistry] -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe [ServiceRegistry] serviceRegistries, (Text "capacityProviderStrategy" Text -> [CapacityProviderStrategyItem] -> Pair forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv Core..=) ([CapacityProviderStrategyItem] -> Pair) -> Maybe [CapacityProviderStrategyItem] -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe [CapacityProviderStrategyItem] capacityProviderStrategy, (Text "enableExecuteCommand" Text -> Bool -> Pair forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv Core..=) (Bool -> Pair) -> Maybe Bool -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe Bool enableExecuteCommand, (Text "tags" Text -> [Tag] -> Pair forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv Core..=) ([Tag] -> Pair) -> Maybe [Tag] -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe [Tag] tags, (Text "deploymentConfiguration" Text -> DeploymentConfiguration -> Pair forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv Core..=) (DeploymentConfiguration -> Pair) -> Maybe DeploymentConfiguration -> Maybe Pair forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe DeploymentConfiguration deploymentConfiguration, Pair -> Maybe Pair forall a. a -> Maybe a Prelude.Just (Text "serviceName" Text -> Text -> Pair forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv Core..= Text serviceName) ] ) instance Core.ToPath CreateService where toPath :: CreateService -> ByteString toPath = ByteString -> CreateService -> ByteString forall a b. a -> b -> a Prelude.const ByteString "/" instance Core.ToQuery CreateService where toQuery :: CreateService -> QueryString toQuery = QueryString -> CreateService -> QueryString forall a b. a -> b -> a Prelude.const QueryString forall a. Monoid a => a Prelude.mempty -- | /See:/ 'newCreateServiceResponse' smart constructor. data CreateServiceResponse = CreateServiceResponse' { -- | The full description of your service following the create call. -- -- A service will return either a @capacityProviderStrategy@ or -- @launchType@ parameter, but not both, depending on which one was -- specified during creation. -- -- If a service is using the @ECS@ deployment controller, the -- @deploymentController@ and @taskSets@ parameters will not be returned. -- -- If the service is using the @CODE_DEPLOY@ deployment controller, the -- @deploymentController@, @taskSets@ and @deployments@ parameters will be -- returned, however the @deployments@ parameter will be an empty list. CreateServiceResponse -> Maybe ContainerService service :: Prelude.Maybe ContainerService, -- | The response's http status code. CreateServiceResponse -> Int httpStatus :: Prelude.Int } deriving (CreateServiceResponse -> CreateServiceResponse -> Bool (CreateServiceResponse -> CreateServiceResponse -> Bool) -> (CreateServiceResponse -> CreateServiceResponse -> Bool) -> Eq CreateServiceResponse forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: CreateServiceResponse -> CreateServiceResponse -> Bool $c/= :: CreateServiceResponse -> CreateServiceResponse -> Bool == :: CreateServiceResponse -> CreateServiceResponse -> Bool $c== :: CreateServiceResponse -> CreateServiceResponse -> Bool Prelude.Eq, ReadPrec [CreateServiceResponse] ReadPrec CreateServiceResponse Int -> ReadS CreateServiceResponse ReadS [CreateServiceResponse] (Int -> ReadS CreateServiceResponse) -> ReadS [CreateServiceResponse] -> ReadPrec CreateServiceResponse -> ReadPrec [CreateServiceResponse] -> Read CreateServiceResponse forall a. (Int -> ReadS a) -> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a readListPrec :: ReadPrec [CreateServiceResponse] $creadListPrec :: ReadPrec [CreateServiceResponse] readPrec :: ReadPrec CreateServiceResponse $creadPrec :: ReadPrec CreateServiceResponse readList :: ReadS [CreateServiceResponse] $creadList :: ReadS [CreateServiceResponse] readsPrec :: Int -> ReadS CreateServiceResponse $creadsPrec :: Int -> ReadS CreateServiceResponse Prelude.Read, Int -> CreateServiceResponse -> ShowS [CreateServiceResponse] -> ShowS CreateServiceResponse -> String (Int -> CreateServiceResponse -> ShowS) -> (CreateServiceResponse -> String) -> ([CreateServiceResponse] -> ShowS) -> Show CreateServiceResponse forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [CreateServiceResponse] -> ShowS $cshowList :: [CreateServiceResponse] -> ShowS show :: CreateServiceResponse -> String $cshow :: CreateServiceResponse -> String showsPrec :: Int -> CreateServiceResponse -> ShowS $cshowsPrec :: Int -> CreateServiceResponse -> ShowS Prelude.Show, (forall x. CreateServiceResponse -> Rep CreateServiceResponse x) -> (forall x. Rep CreateServiceResponse x -> CreateServiceResponse) -> Generic CreateServiceResponse forall x. Rep CreateServiceResponse x -> CreateServiceResponse forall x. CreateServiceResponse -> Rep CreateServiceResponse x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cto :: forall x. Rep CreateServiceResponse x -> CreateServiceResponse $cfrom :: forall x. CreateServiceResponse -> Rep CreateServiceResponse x Prelude.Generic) -- | -- Create a value of 'CreateServiceResponse' with all optional fields omitted. -- -- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields. -- -- The following record fields are available, with the corresponding lenses provided -- for backwards compatibility: -- -- 'service', 'createServiceResponse_service' - The full description of your service following the create call. -- -- A service will return either a @capacityProviderStrategy@ or -- @launchType@ parameter, but not both, depending on which one was -- specified during creation. -- -- If a service is using the @ECS@ deployment controller, the -- @deploymentController@ and @taskSets@ parameters will not be returned. -- -- If the service is using the @CODE_DEPLOY@ deployment controller, the -- @deploymentController@, @taskSets@ and @deployments@ parameters will be -- returned, however the @deployments@ parameter will be an empty list. -- -- 'httpStatus', 'createServiceResponse_httpStatus' - The response's http status code. newCreateServiceResponse :: -- | 'httpStatus' Prelude.Int -> CreateServiceResponse newCreateServiceResponse :: Int -> CreateServiceResponse newCreateServiceResponse Int pHttpStatus_ = CreateServiceResponse' :: Maybe ContainerService -> Int -> CreateServiceResponse CreateServiceResponse' { $sel:service:CreateServiceResponse' :: Maybe ContainerService service = Maybe ContainerService forall a. Maybe a Prelude.Nothing, $sel:httpStatus:CreateServiceResponse' :: Int httpStatus = Int pHttpStatus_ } -- | The full description of your service following the create call. -- -- A service will return either a @capacityProviderStrategy@ or -- @launchType@ parameter, but not both, depending on which one was -- specified during creation. -- -- If a service is using the @ECS@ deployment controller, the -- @deploymentController@ and @taskSets@ parameters will not be returned. -- -- If the service is using the @CODE_DEPLOY@ deployment controller, the -- @deploymentController@, @taskSets@ and @deployments@ parameters will be -- returned, however the @deployments@ parameter will be an empty list. createServiceResponse_service :: Lens.Lens' CreateServiceResponse (Prelude.Maybe ContainerService) createServiceResponse_service :: (Maybe ContainerService -> f (Maybe ContainerService)) -> CreateServiceResponse -> f CreateServiceResponse createServiceResponse_service = (CreateServiceResponse -> Maybe ContainerService) -> (CreateServiceResponse -> Maybe ContainerService -> CreateServiceResponse) -> Lens CreateServiceResponse CreateServiceResponse (Maybe ContainerService) (Maybe ContainerService) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\CreateServiceResponse' {Maybe ContainerService service :: Maybe ContainerService $sel:service:CreateServiceResponse' :: CreateServiceResponse -> Maybe ContainerService service} -> Maybe ContainerService service) (\s :: CreateServiceResponse s@CreateServiceResponse' {} Maybe ContainerService a -> CreateServiceResponse s {$sel:service:CreateServiceResponse' :: Maybe ContainerService service = Maybe ContainerService a} :: CreateServiceResponse) -- | The response's http status code. createServiceResponse_httpStatus :: Lens.Lens' CreateServiceResponse Prelude.Int createServiceResponse_httpStatus :: (Int -> f Int) -> CreateServiceResponse -> f CreateServiceResponse createServiceResponse_httpStatus = (CreateServiceResponse -> Int) -> (CreateServiceResponse -> Int -> CreateServiceResponse) -> Lens CreateServiceResponse CreateServiceResponse Int Int forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\CreateServiceResponse' {Int httpStatus :: Int $sel:httpStatus:CreateServiceResponse' :: CreateServiceResponse -> Int httpStatus} -> Int httpStatus) (\s :: CreateServiceResponse s@CreateServiceResponse' {} Int a -> CreateServiceResponse s {$sel:httpStatus:CreateServiceResponse' :: Int httpStatus = Int a} :: CreateServiceResponse) instance Prelude.NFData CreateServiceResponse