import { _LoadBalancer, _UnmarshalledLoadBalancer } from "./_LoadBalancer"; import { _ServiceRegistry, _UnmarshalledServiceRegistry } from "./_ServiceRegistry"; import { _DeploymentConfiguration, _UnmarshalledDeploymentConfiguration } from "./_DeploymentConfiguration"; import { _TaskSet, _UnmarshalledTaskSet } from "./_TaskSet"; import { _Deployment, _UnmarshalledDeployment } from "./_Deployment"; import { _ServiceEvent, _UnmarshalledServiceEvent } from "./_ServiceEvent"; import { _PlacementConstraint, _UnmarshalledPlacementConstraint } from "./_PlacementConstraint"; import { _PlacementStrategy, _UnmarshalledPlacementStrategy } from "./_PlacementStrategy"; import { _NetworkConfiguration, _UnmarshalledNetworkConfiguration } from "./_NetworkConfiguration"; import { _DeploymentController, _UnmarshalledDeploymentController } from "./_DeploymentController"; import { _Tag, _UnmarshalledTag } from "./_Tag"; /** *

Details on a service within a cluster

*/ export interface _Service { /** *

The ARN that identifies the service. The ARN contains the arn:aws:ecs namespace, followed by the Region of the service, the AWS account ID of the service owner, the service namespace, and then the service name. For example, arn:aws:ecs:region:012345678910:service/my-service.

*/ serviceArn?: string; /** *

The name of your service. Up to 255 letters (uppercase and lowercase), numbers, 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.

*/ serviceName?: string; /** *

The Amazon Resource Name (ARN) of the cluster that hosts the service.

*/ clusterArn?: string; /** *

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.

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. Tasks that use the awsvpc network mode are associated with an elastic network interface, not an Amazon EC2 instance.

*/ loadBalancers?: Array<_LoadBalancer> | Iterable<_LoadBalancer>; /** *

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

*/ serviceRegistries?: Array<_ServiceRegistry> | Iterable<_ServiceRegistry>; /** *

The status of the service. The valid values are ACTIVE, DRAINING, or INACTIVE.

*/ status?: string; /** *

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.

*/ desiredCount?: number; /** *

The number of tasks in the cluster that are in the RUNNING state.

*/ runningCount?: number; /** *

The number of tasks in the cluster that are in the PENDING state.

*/ pendingCount?: number; /** *

The launch type on which your service is running. If no value is specified, it will default to EC2. Valid values include EC2 and FARGATE. For more information, see Amazon ECS Launch Types in the Amazon Elastic Container Service Developer Guide.

*/ launchType?: "EC2" | "FARGATE" | string; /** *

The platform version on which to run your service. A platform version is only specified for tasks using the Fargate launch type. If one is not specified, the LATEST platform version is used by default. For more information, see AWS Fargate Platform Versions in the Amazon Elastic Container Service Developer Guide.

*/ platformVersion?: string; /** *

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.

*/ taskDefinition?: string; /** *

Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks.

*/ deploymentConfiguration?: _DeploymentConfiguration; /** *

Information about a set of Amazon ECS tasks in either an AWS 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.

*/ taskSets?: Array<_TaskSet> | Iterable<_TaskSet>; /** *

The current state of deployments for the service.

*/ deployments?: Array<_Deployment> | Iterable<_Deployment>; /** *

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.

*/ roleArn?: string; /** *

The event stream for your service. A maximum of 100 of the latest events are displayed.

*/ events?: Array<_ServiceEvent> | Iterable<_ServiceEvent>; /** *

The Unix timestamp for when the service was created.

*/ createdAt?: Date | string | number; /** *

The placement constraints for the tasks in the service.

*/ placementConstraints?: Array<_PlacementConstraint> | Iterable<_PlacementConstraint>; /** *

The placement strategy that determines how tasks for the service are placed.

*/ placementStrategy?: Array<_PlacementStrategy> | Iterable<_PlacementStrategy>; /** *

The VPC subnet and security group configuration for tasks that receive their own elastic network interface by using the awsvpc networking mode.

*/ networkConfiguration?: _NetworkConfiguration; /** *

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.

*/ healthCheckGracePeriodSeconds?: number; /** *

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

There are two service scheduler strategies available:

*/ schedulingStrategy?: "REPLICA" | "DAEMON" | string; /** *

The deployment controller type the service is using.

*/ deploymentController?: _DeploymentController; /** *

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. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters.

*/ tags?: Array<_Tag> | Iterable<_Tag>; /** *

The principal that created the service.

*/ createdBy?: string; /** *

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

*/ enableECSManagedTags?: boolean; /** *

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.

*/ propagateTags?: "TASK_DEFINITION" | "SERVICE" | string; } export interface _UnmarshalledService extends _Service { /** *

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.

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. Tasks that use the awsvpc network mode are associated with an elastic network interface, not an Amazon EC2 instance.

*/ loadBalancers?: Array<_UnmarshalledLoadBalancer>; /** *

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

*/ serviceRegistries?: Array<_UnmarshalledServiceRegistry>; /** *

Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks.

*/ deploymentConfiguration?: _UnmarshalledDeploymentConfiguration; /** *

Information about a set of Amazon ECS tasks in either an AWS 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.

*/ taskSets?: Array<_UnmarshalledTaskSet>; /** *

The current state of deployments for the service.

*/ deployments?: Array<_UnmarshalledDeployment>; /** *

The event stream for your service. A maximum of 100 of the latest events are displayed.

*/ events?: Array<_UnmarshalledServiceEvent>; /** *

The Unix timestamp for when the service was created.

*/ createdAt?: Date; /** *

The placement constraints for the tasks in the service.

*/ placementConstraints?: Array<_UnmarshalledPlacementConstraint>; /** *

The placement strategy that determines how tasks for the service are placed.

*/ placementStrategy?: Array<_UnmarshalledPlacementStrategy>; /** *

The VPC subnet and security group configuration for tasks that receive their own elastic network interface by using the awsvpc networking mode.

*/ networkConfiguration?: _UnmarshalledNetworkConfiguration; /** *

The deployment controller type the service is using.

*/ deploymentController?: _UnmarshalledDeploymentController; /** *

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. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters.

*/ tags?: Array<_UnmarshalledTag>; }