class Aws::ECS::Types::Service

Details on a service within a cluster

@!attribute [rw] service_arn

The ARN that identifies the service. The ARN contains the
`arn:aws:ecs` namespace, followed by the Region of the service, the
Amazon Web Services account ID of the service owner, the `service`
namespace, and then the service name. For example,
`arn:aws:ecs:region:012345678910:service/my-service`.
@return [String]

@!attribute [rw] service_name

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.
@return [String]

@!attribute [rw] cluster_arn

The Amazon Resource Name (ARN) of the cluster that hosts the
service.
@return [String]

@!attribute [rw] load_balancers

A list of Elastic Load Balancing load balancer objects, containing
the load balancer name, the container name (as it appears in a
container definition), and the container port to access from the
load balancer.
@return [Array<Types::LoadBalancer>]

@!attribute [rw] service_registries

The details of the service discovery registries to assign to this
service. For more information, see [Service Discovery][1].

[1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html
@return [Array<Types::ServiceRegistry>]

@!attribute [rw] status

The status of the service. The valid values are `ACTIVE`,
`DRAINING`, or `INACTIVE`.
@return [String]

@!attribute [rw] desired_count

The desired number of instantiations of the task definition to keep
running on the service. This value is specified when the service is
created with CreateService, and it can be modified with
UpdateService.
@return [Integer]

@!attribute [rw] running_count

The number of tasks in the cluster that are in the `RUNNING` state.
@return [Integer]

@!attribute [rw] pending_count

The number of tasks in the cluster that are in the `PENDING` state.
@return [Integer]

@!attribute [rw] launch_type

The launch type the service is using. When using the
DescribeServices API, this field is omitted if the service was
created using a capacity provider strategy.
@return [String]

@!attribute [rw] capacity_provider_strategy

The capacity provider strategy the service is using. When using the
DescribeServices API, this field is omitted if the service was
created using a launch type.
@return [Array<Types::CapacityProviderStrategyItem>]

@!attribute [rw] platform_version

The platform version on which to run your service. A platform
version is only specified for tasks hosted on Fargate. If one is not
specified, the `LATEST` platform version is used by default. For
more information, see [Fargate Platform Versions][1] in the *Amazon
Elastic Container Service Developer Guide*.

[1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html
@return [String]

@!attribute [rw] task_definition

The task definition to use for tasks in the service. This value is
specified when the service is created with CreateService, and it can
be modified with UpdateService.
@return [String]

@!attribute [rw] deployment_configuration

Optional deployment parameters that control how many tasks run
during the deployment and the ordering of stopping and starting
tasks.
@return [Types::DeploymentConfiguration]

@!attribute [rw] task_sets

Information about a set of Amazon ECS tasks in either an CodeDeploy
or an `EXTERNAL` deployment. An Amazon ECS task set includes details
such as the desired number of tasks, how many tasks are running, and
whether the task set serves production traffic.
@return [Array<Types::TaskSet>]

@!attribute [rw] deployments

The current state of deployments for the service.
@return [Array<Types::Deployment>]

@!attribute [rw] role_arn

The ARN of the IAM role associated with the service that allows the
Amazon ECS container agent to register container instances with an
Elastic Load Balancing load balancer.
@return [String]

@!attribute [rw] events

The event stream for your service. A maximum of 100 of the latest
events are displayed.
@return [Array<Types::ServiceEvent>]

@!attribute [rw] created_at

The Unix timestamp for when the service was created.
@return [Time]

@!attribute [rw] placement_constraints

The placement constraints for the tasks in the service.
@return [Array<Types::PlacementConstraint>]

@!attribute [rw] placement_strategy

The placement strategy that determines how tasks for the service are
placed.
@return [Array<Types::PlacementStrategy>]

@!attribute [rw] network_configuration

The VPC subnet and security group configuration for tasks that
receive their own elastic network interface by using the `awsvpc`
networking mode.
@return [Types::NetworkConfiguration]

@!attribute [rw] health_check_grace_period_seconds

The period of time, in seconds, that the Amazon ECS service
scheduler ignores unhealthy Elastic Load Balancing target health
checks after a task has first started.
@return [Integer]

@!attribute [rw] scheduling_strategy

The scheduling strategy to use for the service. For more
information, see [Services][1].

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.

* `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.

  <note markdown="1"> Fargate tasks do not support the `DAEMON` scheduling strategy.

   </note>

[1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html
@return [String]

@!attribute [rw] deployment_controller

The deployment controller type the service is using. When using the
DescribeServices API, this field is omitted if the service is using
the `ECS` deployment controller type.
@return [Types::DeploymentController]

@!attribute [rw] 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.

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.
@return [Array<Types::Tag>]

@!attribute [rw] created_by

The principal that created the service.
@return [String]

@!attribute [rw] enable_ecs_managed_tags

Specifies whether to enable Amazon ECS managed tags for the tasks in
the service. For more information, see [Tagging Your Amazon ECS
Resources][1] in the *Amazon Elastic Container Service Developer
Guide*.

[1]: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html
@return [Boolean]

@!attribute [rw] propagate_tags

Specifies whether to propagate the tags from the task definition or
the service to the task. If no value is specified, the tags are not
propagated.
@return [String]

@!attribute [rw] enable_execute_command

Whether or not the execute command functionality is enabled for the
service. If `true`, the execute command functionality is enabled for
all containers in tasks as part of the service.
@return [Boolean]

@see docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/Service AWS API Documentation

Constants

SENSITIVE