com.amazonaws.services.ecs.AmazonECS Maven / Gradle / Ivy
/*
* Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights
* Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
package com.amazonaws.services.ecs;
import com.amazonaws.*;
import com.amazonaws.regions.*;
import com.amazonaws.services.ecs.model.*;
/**
* Interface for accessing Amazon ECS.
*
*
* Amazon EC2 Container Service (Amazon ECS) is a highly scalable, fast,
* container management service that makes it easy to run, stop, and manage
* Docker containers on a cluster of EC2 instances. Amazon ECS lets you launch
* and stop container-enabled applications with simple API calls, allows you to
* get the state of your cluster from a centralized service, and gives you
* access to many familiar Amazon EC2 features like security groups, Amazon EBS
* volumes, and IAM roles.
*
*
* You can use Amazon ECS to schedule the placement of containers across your
* cluster based on your resource needs, isolation policies, and availability
* requirements. Amazon EC2 Container Service eliminates the need for you to
* operate your own cluster management and configuration management systems or
* worry about scaling your management infrastructure.
*
*/
public interface AmazonECS {
/**
* Overrides the default endpoint for this client
* ("https://ecs.us-east-1.amazonaws.com"). Callers can use this method to
* control which AWS region they want to work with.
*
* Callers can pass in just the endpoint (ex: "ecs.us-east-1.amazonaws.com")
* or a full URL, including the protocol (ex:
* "https://ecs.us-east-1.amazonaws.com"). If the protocol is not specified
* here, the default protocol from this client's {@link ClientConfiguration}
* will be used, which by default is HTTPS.
*
* For more information on using AWS regions with the AWS SDK for Java, and
* a complete list of all available endpoints for all AWS services, see: http://developer.amazonwebservices.com/connect/entry.jspa?externalID=
* 3912
*
* This method is not threadsafe. An endpoint should be configured when
* the client is created and before any service requests are made. Changing
* it afterwards creates inevitable race conditions for any service requests
* in transit or retrying.
*
* @param endpoint
* The endpoint (ex: "ecs.us-east-1.amazonaws.com") or a full URL,
* including the protocol (ex: "https://ecs.us-east-1.amazonaws.com")
* of the region specific AWS endpoint this client will communicate
* with.
*/
void setEndpoint(String endpoint);
/**
* An alternative to {@link AmazonECS#setEndpoint(String)}, sets the
* regional endpoint for this client's service calls. Callers can use this
* method to control which AWS region they want to work with.
*
* By default, all service endpoints in all regions use the https protocol.
* To use http instead, specify it in the {@link ClientConfiguration}
* supplied at construction.
*
* This method is not threadsafe. A region should be configured when the
* client is created and before any service requests are made. Changing it
* afterwards creates inevitable race conditions for any service requests in
* transit or retrying.
*
* @param region
* The region this client will communicate with. See
* {@link Region#getRegion(com.amazonaws.regions.Regions)} for
* accessing a given region. Must not be null and must be a region
* where the service is available.
*
* @see Region#getRegion(com.amazonaws.regions.Regions)
* @see Region#createClient(Class,
* com.amazonaws.auth.AWSCredentialsProvider, ClientConfiguration)
* @see Region#isServiceSupported(String)
*/
void setRegion(Region region);
/**
*
* Creates a new Amazon ECS cluster. By default, your account receives a
* default
cluster when you launch your first container
* instance. However, you can create your own cluster with a unique name
* with the CreateCluster
action.
*
*
* @param createClusterRequest
* @return Result of the CreateCluster operation returned by the service.
* @throws ServerException
* These errors are usually caused by a server issue.
* @throws ClientException
* These errors are usually caused by a client action, such as using
* an action or resource on behalf of a user that doesn't have
* permission to use the action or resource, or specifying an
* identifier that is not valid.
* @throws InvalidParameterException
* The specified parameter is invalid. Review the available
* parameters for the API request.
* @sample AmazonECS.CreateCluster
*/
CreateClusterResult createCluster(CreateClusterRequest createClusterRequest);
/**
* Simplified method form for invoking the CreateCluster operation.
*
* @see #createCluster(CreateClusterRequest)
*/
CreateClusterResult createCluster();
/**
*
* Runs and maintains a desired number of tasks from a specified task
* definition. If the number of tasks running in a service drops below
* desiredCount
, Amazon ECS spawns another instantiation of the
* task in the specified cluster. To update an existing service, see
* UpdateService.
*
*
* In addition to maintaining the desired count of tasks in your service,
* you can optionally run your service behind a load balancer. The load
* balancer distributes traffic across the tasks that are associated with
* the service.
*
*
* You can optionally specify a deployment configuration for your service.
* During a deployment (which is triggered by changing the task definition
* of a service with an UpdateService operation), the service
* scheduler uses the minimumHealthyPercent
and
* maximumPercent
parameters to determine the deployment
* strategy.
*
*
* If the minimumHealthyPercent
is below 100%, the scheduler
* can ignore the desiredCount
temporarily during a deployment.
* For example, if your service has a desiredCount
of four
* tasks, a minimumHealthyPercent
of 50% allows the scheduler
* to stop two existing tasks before starting two new tasks. Tasks for
* services that do not use a load balancer are considered healthy if
* they are in the RUNNING
state; tasks for services that
* do use a load balancer are considered healthy if they are in the
* RUNNING
state and the container instance it is hosted on is
* reported as healthy by the load balancer. The default value for
* minimumHealthyPercent
is 50% in the console and 100% for the
* AWS CLI, the AWS SDKs, and the APIs.
*
*
* The maximumPercent
parameter represents an upper limit on
* the number of running tasks during a deployment, which enables you to
* define the deployment batch size. For example, if your service has a
* desiredCount
of four tasks, a maximumPercent
* value of 200% starts four new tasks before stopping the four older tasks
* (provided that the cluster resources required to do this are available).
* The default value for maximumPercent
is 200%.
*
*
* When the service scheduler launches new tasks, it attempts to balance
* them across the Availability Zones in your cluster with 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).
*
*
* -
*
* Sort the valid container instances by the fewest number of running tasks
* for this service in the same Availability Zone as the instance. 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.
*
*
*
*
* @param createServiceRequest
* @return Result of the CreateService operation returned by the service.
* @throws ServerException
* These errors are usually caused by a server issue.
* @throws ClientException
* These errors are usually caused by a client action, such as using
* an action or resource on behalf of a user that doesn't have
* permission to use the action or resource, or specifying an
* identifier that is not valid.
* @throws InvalidParameterException
* The specified parameter is invalid. Review the available
* parameters for the API request.
* @throws ClusterNotFoundException
* The specified cluster could not be found. You can view your
* available clusters with ListClusters. Amazon ECS clusters
* are region-specific.
* @sample AmazonECS.CreateService
*/
CreateServiceResult createService(CreateServiceRequest createServiceRequest);
/**
*
* Deletes the specified cluster. You must deregister all container
* instances from this cluster before you may delete it. You can list the
* container instances in a cluster with ListContainerInstances and
* deregister them with DeregisterContainerInstance.
*
*
* @param deleteClusterRequest
* @return Result of the DeleteCluster operation returned by the service.
* @throws ServerException
* These errors are usually caused by a server issue.
* @throws ClientException
* These errors are usually caused by a client action, such as using
* an action or resource on behalf of a user that doesn't have
* permission to use the action or resource, or specifying an
* identifier that is not valid.
* @throws InvalidParameterException
* The specified parameter is invalid. Review the available
* parameters for the API request.
* @throws ClusterNotFoundException
* The specified cluster could not be found. You can view your
* available clusters with ListClusters. Amazon ECS clusters
* are region-specific.
* @throws ClusterContainsContainerInstancesException
* You cannot delete a cluster that has registered container
* instances. You must first deregister the container instances
* before you can delete the cluster. For more information, see
* DeregisterContainerInstance.
* @throws ClusterContainsServicesException
* You cannot delete a cluster that contains services. You must
* first update the service to reduce its desired task count to 0
* and then delete the service. For more information, see
* UpdateService and DeleteService.
* @sample AmazonECS.DeleteCluster
*/
DeleteClusterResult deleteCluster(DeleteClusterRequest deleteClusterRequest);
/**
*
* Deletes a specified service within a cluster. You can delete a service if
* you have no running tasks in it and the desired task count is zero. If
* the service is actively maintaining tasks, you cannot delete it, and you
* must update the service to a desired task count of zero. For more
* information, see UpdateService.
*
*
*
* When you delete a service, if there are still running tasks that require
* cleanup, the service status moves from ACTIVE
to
* DRAINING
, and the service is no longer visible in the
* console or in ListServices API operations. After the tasks have
* stopped, then the service status moves from DRAINING
to
* INACTIVE
. Services in the DRAINING
or
* INACTIVE
status can still be viewed with
* DescribeServices API operations; however, in the future,
* INACTIVE
services may be cleaned up and purged from Amazon
* ECS record keeping, and DescribeServices API operations on those
* services will return a ServiceNotFoundException
error.
*
*
*
* @param deleteServiceRequest
* @return Result of the DeleteService operation returned by the service.
* @throws ServerException
* These errors are usually caused by a server issue.
* @throws ClientException
* These errors are usually caused by a client action, such as using
* an action or resource on behalf of a user that doesn't have
* permission to use the action or resource, or specifying an
* identifier that is not valid.
* @throws InvalidParameterException
* The specified parameter is invalid. Review the available
* parameters for the API request.
* @throws ClusterNotFoundException
* The specified cluster could not be found. You can view your
* available clusters with ListClusters. Amazon ECS clusters
* are region-specific.
* @throws ServiceNotFoundException
* The specified service could not be found. You can view your
* available services with ListServices. Amazon ECS services
* are cluster-specific and region-specific.
* @sample AmazonECS.DeleteService
*/
DeleteServiceResult deleteService(DeleteServiceRequest deleteServiceRequest);
/**
*
* Deregisters an Amazon ECS container instance from the specified cluster.
* This instance is no longer available to run tasks.
*
*
* If you intend to use the container instance for some other purpose after
* deregistration, you should stop all of the tasks running on the container
* instance before deregistration to avoid any orphaned tasks from consuming
* resources.
*
*
* Deregistering a container instance removes the instance from a cluster,
* but it does not terminate the EC2 instance; if you are finished using the
* instance, be sure to terminate it in the Amazon EC2 console to stop
* billing.
*
*
*
* If you terminate a running container instance with a connected Amazon ECS
* container agent, the agent automatically deregisters the instance from
* your cluster (stopped container instances or instances with disconnected
* agents are not automatically deregistered when terminated).
*
*
*
* @param deregisterContainerInstanceRequest
* @return Result of the DeregisterContainerInstance operation returned by
* the service.
* @throws ServerException
* These errors are usually caused by a server issue.
* @throws ClientException
* These errors are usually caused by a client action, such as using
* an action or resource on behalf of a user that doesn't have
* permission to use the action or resource, or specifying an
* identifier that is not valid.
* @throws InvalidParameterException
* The specified parameter is invalid. Review the available
* parameters for the API request.
* @throws ClusterNotFoundException
* The specified cluster could not be found. You can view your
* available clusters with ListClusters. Amazon ECS clusters
* are region-specific.
* @sample AmazonECS.DeregisterContainerInstance
*/
DeregisterContainerInstanceResult deregisterContainerInstance(
DeregisterContainerInstanceRequest deregisterContainerInstanceRequest);
/**
*
* Deregisters the specified task definition by family and revision. Upon
* deregistration, the task definition is marked as INACTIVE
.
* Existing tasks and services that reference an INACTIVE
task
* definition continue to run without disruption. Existing services that
* reference an INACTIVE
task definition can still scale up or
* down by modifying the service's desired count.
*
*
* You cannot use an INACTIVE
task definition to run new tasks
* or create new services, and you cannot update an existing service to
* reference an INACTIVE
task definition (although there may be
* up to a 10 minute window following deregistration where these
* restrictions have not yet taken effect).
*
*
* @param deregisterTaskDefinitionRequest
* @return Result of the DeregisterTaskDefinition operation returned by the
* service.
* @throws ServerException
* These errors are usually caused by a server issue.
* @throws ClientException
* These errors are usually caused by a client action, such as using
* an action or resource on behalf of a user that doesn't have
* permission to use the action or resource, or specifying an
* identifier that is not valid.
* @throws InvalidParameterException
* The specified parameter is invalid. Review the available
* parameters for the API request.
* @sample AmazonECS.DeregisterTaskDefinition
*/
DeregisterTaskDefinitionResult deregisterTaskDefinition(
DeregisterTaskDefinitionRequest deregisterTaskDefinitionRequest);
/**
*
* Describes one or more of your clusters.
*
*
* @param describeClustersRequest
* @return Result of the DescribeClusters operation returned by the service.
* @throws ServerException
* These errors are usually caused by a server issue.
* @throws ClientException
* These errors are usually caused by a client action, such as using
* an action or resource on behalf of a user that doesn't have
* permission to use the action or resource, or specifying an
* identifier that is not valid.
* @throws InvalidParameterException
* The specified parameter is invalid. Review the available
* parameters for the API request.
* @sample AmazonECS.DescribeClusters
*/
DescribeClustersResult describeClusters(
DescribeClustersRequest describeClustersRequest);
/**
* Simplified method form for invoking the DescribeClusters operation.
*
* @see #describeClusters(DescribeClustersRequest)
*/
DescribeClustersResult describeClusters();
/**
*
* Describes Amazon EC2 Container Service container instances. Returns
* metadata about registered and remaining resources on each container
* instance requested.
*
*
* @param describeContainerInstancesRequest
* @return Result of the DescribeContainerInstances operation returned by
* the service.
* @throws ServerException
* These errors are usually caused by a server issue.
* @throws ClientException
* These errors are usually caused by a client action, such as using
* an action or resource on behalf of a user that doesn't have
* permission to use the action or resource, or specifying an
* identifier that is not valid.
* @throws InvalidParameterException
* The specified parameter is invalid. Review the available
* parameters for the API request.
* @throws ClusterNotFoundException
* The specified cluster could not be found. You can view your
* available clusters with ListClusters. Amazon ECS clusters
* are region-specific.
* @sample AmazonECS.DescribeContainerInstances
*/
DescribeContainerInstancesResult describeContainerInstances(
DescribeContainerInstancesRequest describeContainerInstancesRequest);
/**
*
* Describes the specified services running in your cluster.
*
*
* @param describeServicesRequest
* @return Result of the DescribeServices operation returned by the service.
* @throws ServerException
* These errors are usually caused by a server issue.
* @throws ClientException
* These errors are usually caused by a client action, such as using
* an action or resource on behalf of a user that doesn't have
* permission to use the action or resource, or specifying an
* identifier that is not valid.
* @throws InvalidParameterException
* The specified parameter is invalid. Review the available
* parameters for the API request.
* @throws ClusterNotFoundException
* The specified cluster could not be found. You can view your
* available clusters with ListClusters. Amazon ECS clusters
* are region-specific.
* @sample AmazonECS.DescribeServices
*/
DescribeServicesResult describeServices(
DescribeServicesRequest describeServicesRequest);
/**
*
* Describes a task definition. You can specify a family
and
* revision
to find information about a specific task
* definition, or you can simply specify the family to find the latest
* ACTIVE
revision in that family.
*
*
*
* You can only describe INACTIVE
task definitions while an
* active task or service references them.
*
*
*
* @param describeTaskDefinitionRequest
* @return Result of the DescribeTaskDefinition operation returned by the
* service.
* @throws ServerException
* These errors are usually caused by a server issue.
* @throws ClientException
* These errors are usually caused by a client action, such as using
* an action or resource on behalf of a user that doesn't have
* permission to use the action or resource, or specifying an
* identifier that is not valid.
* @throws InvalidParameterException
* The specified parameter is invalid. Review the available
* parameters for the API request.
* @sample AmazonECS.DescribeTaskDefinition
*/
DescribeTaskDefinitionResult describeTaskDefinition(
DescribeTaskDefinitionRequest describeTaskDefinitionRequest);
/**
*
* Describes a specified task or tasks.
*
*
* @param describeTasksRequest
* @return Result of the DescribeTasks operation returned by the service.
* @throws ServerException
* These errors are usually caused by a server issue.
* @throws ClientException
* These errors are usually caused by a client action, such as using
* an action or resource on behalf of a user that doesn't have
* permission to use the action or resource, or specifying an
* identifier that is not valid.
* @throws InvalidParameterException
* The specified parameter is invalid. Review the available
* parameters for the API request.
* @throws ClusterNotFoundException
* The specified cluster could not be found. You can view your
* available clusters with ListClusters. Amazon ECS clusters
* are region-specific.
* @sample AmazonECS.DescribeTasks
*/
DescribeTasksResult describeTasks(DescribeTasksRequest describeTasksRequest);
/**
*
*
* This action is only used by the Amazon EC2 Container Service agent, and
* it is not intended for use outside of the agent.
*
*
*
* Returns an endpoint for the Amazon EC2 Container Service agent to poll
* for updates.
*
*
* @param discoverPollEndpointRequest
* @return Result of the DiscoverPollEndpoint operation returned by the
* service.
* @throws ServerException
* These errors are usually caused by a server issue.
* @throws ClientException
* These errors are usually caused by a client action, such as using
* an action or resource on behalf of a user that doesn't have
* permission to use the action or resource, or specifying an
* identifier that is not valid.
* @sample AmazonECS.DiscoverPollEndpoint
*/
DiscoverPollEndpointResult discoverPollEndpoint(
DiscoverPollEndpointRequest discoverPollEndpointRequest);
/**
* Simplified method form for invoking the DiscoverPollEndpoint operation.
*
* @see #discoverPollEndpoint(DiscoverPollEndpointRequest)
*/
DiscoverPollEndpointResult discoverPollEndpoint();
/**
*
* Returns a list of existing clusters.
*
*
* @param listClustersRequest
* @return Result of the ListClusters operation returned by the service.
* @throws ServerException
* These errors are usually caused by a server issue.
* @throws ClientException
* These errors are usually caused by a client action, such as using
* an action or resource on behalf of a user that doesn't have
* permission to use the action or resource, or specifying an
* identifier that is not valid.
* @throws InvalidParameterException
* The specified parameter is invalid. Review the available
* parameters for the API request.
* @sample AmazonECS.ListClusters
*/
ListClustersResult listClusters(ListClustersRequest listClustersRequest);
/**
* Simplified method form for invoking the ListClusters operation.
*
* @see #listClusters(ListClustersRequest)
*/
ListClustersResult listClusters();
/**
*
* Returns a list of container instances in a specified cluster.
*
*
* @param listContainerInstancesRequest
* @return Result of the ListContainerInstances operation returned by the
* service.
* @throws ServerException
* These errors are usually caused by a server issue.
* @throws ClientException
* These errors are usually caused by a client action, such as using
* an action or resource on behalf of a user that doesn't have
* permission to use the action or resource, or specifying an
* identifier that is not valid.
* @throws InvalidParameterException
* The specified parameter is invalid. Review the available
* parameters for the API request.
* @throws ClusterNotFoundException
* The specified cluster could not be found. You can view your
* available clusters with ListClusters. Amazon ECS clusters
* are region-specific.
* @sample AmazonECS.ListContainerInstances
*/
ListContainerInstancesResult listContainerInstances(
ListContainerInstancesRequest listContainerInstancesRequest);
/**
* Simplified method form for invoking the ListContainerInstances operation.
*
* @see #listContainerInstances(ListContainerInstancesRequest)
*/
ListContainerInstancesResult listContainerInstances();
/**
*
* Lists the services that are running in a specified cluster.
*
*
* @param listServicesRequest
* @return Result of the ListServices operation returned by the service.
* @throws ServerException
* These errors are usually caused by a server issue.
* @throws ClientException
* These errors are usually caused by a client action, such as using
* an action or resource on behalf of a user that doesn't have
* permission to use the action or resource, or specifying an
* identifier that is not valid.
* @throws InvalidParameterException
* The specified parameter is invalid. Review the available
* parameters for the API request.
* @throws ClusterNotFoundException
* The specified cluster could not be found. You can view your
* available clusters with ListClusters. Amazon ECS clusters
* are region-specific.
* @sample AmazonECS.ListServices
*/
ListServicesResult listServices(ListServicesRequest listServicesRequest);
/**
* Simplified method form for invoking the ListServices operation.
*
* @see #listServices(ListServicesRequest)
*/
ListServicesResult listServices();
/**
*
* Returns a list of task definition families that are registered to your
* account (which may include task definition families that no longer have
* any ACTIVE
task definitions). You can filter the results
* with the familyPrefix
parameter.
*
*
* @param listTaskDefinitionFamiliesRequest
* @return Result of the ListTaskDefinitionFamilies operation returned by
* the service.
* @throws ServerException
* These errors are usually caused by a server issue.
* @throws ClientException
* These errors are usually caused by a client action, such as using
* an action or resource on behalf of a user that doesn't have
* permission to use the action or resource, or specifying an
* identifier that is not valid.
* @throws InvalidParameterException
* The specified parameter is invalid. Review the available
* parameters for the API request.
* @sample AmazonECS.ListTaskDefinitionFamilies
*/
ListTaskDefinitionFamiliesResult listTaskDefinitionFamilies(
ListTaskDefinitionFamiliesRequest listTaskDefinitionFamiliesRequest);
/**
* Simplified method form for invoking the ListTaskDefinitionFamilies
* operation.
*
* @see #listTaskDefinitionFamilies(ListTaskDefinitionFamiliesRequest)
*/
ListTaskDefinitionFamiliesResult listTaskDefinitionFamilies();
/**
*
* Returns a list of task definitions that are registered to your account.
* You can filter the results by family name with the
* familyPrefix
parameter or by status with the
* status
parameter.
*
*
* @param listTaskDefinitionsRequest
* @return Result of the ListTaskDefinitions operation returned by the
* service.
* @throws ServerException
* These errors are usually caused by a server issue.
* @throws ClientException
* These errors are usually caused by a client action, such as using
* an action or resource on behalf of a user that doesn't have
* permission to use the action or resource, or specifying an
* identifier that is not valid.
* @throws InvalidParameterException
* The specified parameter is invalid. Review the available
* parameters for the API request.
* @sample AmazonECS.ListTaskDefinitions
*/
ListTaskDefinitionsResult listTaskDefinitions(
ListTaskDefinitionsRequest listTaskDefinitionsRequest);
/**
* Simplified method form for invoking the ListTaskDefinitions operation.
*
* @see #listTaskDefinitions(ListTaskDefinitionsRequest)
*/
ListTaskDefinitionsResult listTaskDefinitions();
/**
*
* Returns a list of tasks for a specified cluster. You can filter the
* results by family name, by a particular container instance, or by the
* desired status of the task with the family
,
* containerInstance
, and desiredStatus
* parameters.
*
*
* @param listTasksRequest
* @return Result of the ListTasks operation returned by the service.
* @throws ServerException
* These errors are usually caused by a server issue.
* @throws ClientException
* These errors are usually caused by a client action, such as using
* an action or resource on behalf of a user that doesn't have
* permission to use the action or resource, or specifying an
* identifier that is not valid.
* @throws InvalidParameterException
* The specified parameter is invalid. Review the available
* parameters for the API request.
* @throws ClusterNotFoundException
* The specified cluster could not be found. You can view your
* available clusters with ListClusters. Amazon ECS clusters
* are region-specific.
* @throws ServiceNotFoundException
* The specified service could not be found. You can view your
* available services with ListServices. Amazon ECS services
* are cluster-specific and region-specific.
* @sample AmazonECS.ListTasks
*/
ListTasksResult listTasks(ListTasksRequest listTasksRequest);
/**
* Simplified method form for invoking the ListTasks operation.
*
* @see #listTasks(ListTasksRequest)
*/
ListTasksResult listTasks();
/**
*
*
* This action is only used by the Amazon EC2 Container Service agent, and
* it is not intended for use outside of the agent.
*
*
*
* Registers an EC2 instance into the specified cluster. This instance
* becomes available to place containers on.
*
*
* @param registerContainerInstanceRequest
* @return Result of the RegisterContainerInstance operation returned by the
* service.
* @throws ServerException
* These errors are usually caused by a server issue.
* @throws ClientException
* These errors are usually caused by a client action, such as using
* an action or resource on behalf of a user that doesn't have
* permission to use the action or resource, or specifying an
* identifier that is not valid.
* @sample AmazonECS.RegisterContainerInstance
*/
RegisterContainerInstanceResult registerContainerInstance(
RegisterContainerInstanceRequest registerContainerInstanceRequest);
/**
*
* Registers a new task definition from the supplied family
and
* containerDefinitions
. Optionally, you can add data volumes
* to your containers with the volumes
parameter. For more
* information about task definition parameters and defaults, see Amazon ECS Task Definitions in the Amazon EC2 Container Service
* Developer Guide.
*
*
* @param registerTaskDefinitionRequest
* @return Result of the RegisterTaskDefinition operation returned by the
* service.
* @throws ServerException
* These errors are usually caused by a server issue.
* @throws ClientException
* These errors are usually caused by a client action, such as using
* an action or resource on behalf of a user that doesn't have
* permission to use the action or resource, or specifying an
* identifier that is not valid.
* @throws InvalidParameterException
* The specified parameter is invalid. Review the available
* parameters for the API request.
* @sample AmazonECS.RegisterTaskDefinition
*/
RegisterTaskDefinitionResult registerTaskDefinition(
RegisterTaskDefinitionRequest registerTaskDefinitionRequest);
/**
*
* Start a task using random placement and the default Amazon ECS scheduler.
* To use your own scheduler or place a task on a specific container
* instance, use StartTask
instead.
*
*
*
* The count
parameter is limited to 10 tasks per call.
*
*
*
* @param runTaskRequest
* @return Result of the RunTask operation returned by the service.
* @throws ServerException
* These errors are usually caused by a server issue.
* @throws ClientException
* These errors are usually caused by a client action, such as using
* an action or resource on behalf of a user that doesn't have
* permission to use the action or resource, or specifying an
* identifier that is not valid.
* @throws InvalidParameterException
* The specified parameter is invalid. Review the available
* parameters for the API request.
* @throws ClusterNotFoundException
* The specified cluster could not be found. You can view your
* available clusters with ListClusters. Amazon ECS clusters
* are region-specific.
* @sample AmazonECS.RunTask
*/
RunTaskResult runTask(RunTaskRequest runTaskRequest);
/**
*
* Starts a new task from the specified task definition on the specified
* container instance or instances. To use the default Amazon ECS scheduler
* to place your task, use RunTask
instead.
*
*
*
* The list of container instances to start tasks on is limited to 10.
*
*
*
* @param startTaskRequest
* @return Result of the StartTask operation returned by the service.
* @throws ServerException
* These errors are usually caused by a server issue.
* @throws ClientException
* These errors are usually caused by a client action, such as using
* an action or resource on behalf of a user that doesn't have
* permission to use the action or resource, or specifying an
* identifier that is not valid.
* @throws InvalidParameterException
* The specified parameter is invalid. Review the available
* parameters for the API request.
* @throws ClusterNotFoundException
* The specified cluster could not be found. You can view your
* available clusters with ListClusters. Amazon ECS clusters
* are region-specific.
* @sample AmazonECS.StartTask
*/
StartTaskResult startTask(StartTaskRequest startTaskRequest);
/**
*
* Stops a running task.
*
*
* When StopTask is called on a task, the equivalent of
* docker stop
is issued to the containers running in the task.
* This results in a SIGTERM
and a 30-second timeout, after
* which SIGKILL
is sent and the containers are forcibly
* stopped. If the container handles the SIGTERM
gracefully and
* exits within 30 seconds from receiving it, no SIGKILL
is
* sent.
*
*
* @param stopTaskRequest
* @return Result of the StopTask operation returned by the service.
* @throws ServerException
* These errors are usually caused by a server issue.
* @throws ClientException
* These errors are usually caused by a client action, such as using
* an action or resource on behalf of a user that doesn't have
* permission to use the action or resource, or specifying an
* identifier that is not valid.
* @throws InvalidParameterException
* The specified parameter is invalid. Review the available
* parameters for the API request.
* @throws ClusterNotFoundException
* The specified cluster could not be found. You can view your
* available clusters with ListClusters. Amazon ECS clusters
* are region-specific.
* @sample AmazonECS.StopTask
*/
StopTaskResult stopTask(StopTaskRequest stopTaskRequest);
/**
*
*
* This action is only used by the Amazon EC2 Container Service agent, and
* it is not intended for use outside of the agent.
*
*
*
* Sent to acknowledge that a container changed states.
*
*
* @param submitContainerStateChangeRequest
* @return Result of the SubmitContainerStateChange operation returned by
* the service.
* @throws ServerException
* These errors are usually caused by a server issue.
* @throws ClientException
* These errors are usually caused by a client action, such as using
* an action or resource on behalf of a user that doesn't have
* permission to use the action or resource, or specifying an
* identifier that is not valid.
* @sample AmazonECS.SubmitContainerStateChange
*/
SubmitContainerStateChangeResult submitContainerStateChange(
SubmitContainerStateChangeRequest submitContainerStateChangeRequest);
/**
* Simplified method form for invoking the SubmitContainerStateChange
* operation.
*
* @see #submitContainerStateChange(SubmitContainerStateChangeRequest)
*/
SubmitContainerStateChangeResult submitContainerStateChange();
/**
*
*
* This action is only used by the Amazon EC2 Container Service agent, and
* it is not intended for use outside of the agent.
*
*
*
* Sent to acknowledge that a task changed states.
*
*
* @param submitTaskStateChangeRequest
* @return Result of the SubmitTaskStateChange operation returned by the
* service.
* @throws ServerException
* These errors are usually caused by a server issue.
* @throws ClientException
* These errors are usually caused by a client action, such as using
* an action or resource on behalf of a user that doesn't have
* permission to use the action or resource, or specifying an
* identifier that is not valid.
* @sample AmazonECS.SubmitTaskStateChange
*/
SubmitTaskStateChangeResult submitTaskStateChange(
SubmitTaskStateChangeRequest submitTaskStateChangeRequest);
/**
*
* Updates the Amazon ECS container agent on a specified container instance.
* Updating the Amazon ECS container agent does not interrupt running tasks
* or services on the container instance. The process for updating the agent
* differs depending on whether your container instance was launched with
* the Amazon ECS-optimized AMI or another operating system.
*
*
* UpdateContainerAgent
requires the Amazon ECS-optimized AMI
* or Amazon Linux with the ecs-init
service installed and
* running. For help updating the Amazon ECS container agent on other
* operating systems, see Manually Updating the Amazon ECS Container Agent in the Amazon
* EC2 Container Service Developer Guide.
*
*
* @param updateContainerAgentRequest
* @return Result of the UpdateContainerAgent operation returned by the
* service.
* @throws ServerException
* These errors are usually caused by a server issue.
* @throws ClientException
* These errors are usually caused by a client action, such as using
* an action or resource on behalf of a user that doesn't have
* permission to use the action or resource, or specifying an
* identifier that is not valid.
* @throws InvalidParameterException
* The specified parameter is invalid. Review the available
* parameters for the API request.
* @throws ClusterNotFoundException
* The specified cluster could not be found. You can view your
* available clusters with ListClusters. Amazon ECS clusters
* are region-specific.
* @throws UpdateInProgressException
* There is already a current Amazon ECS container agent update in
* progress on the specified container instance. If the container
* agent becomes disconnected while it is in a transitional stage,
* such as PENDING
or STAGING
, the update
* process can get stuck in that state. However, when the agent
* reconnects, it resumes where it stopped previously.
* @throws NoUpdateAvailableException
* There is no update available for this Amazon ECS container agent.
* This could be because the agent is already running the latest
* version, or it is so old that there is no update path to the
* current version.
* @throws MissingVersionException
* Amazon ECS is unable to determine the current version of the
* Amazon ECS container agent on the container instance and does not
* have enough information to proceed with an update. This could be
* because the agent running on the container instance is an older
* or custom version that does not use our version information.
* @sample AmazonECS.UpdateContainerAgent
*/
UpdateContainerAgentResult updateContainerAgent(
UpdateContainerAgentRequest updateContainerAgentRequest);
/**
*
* Modifies the desired count, deployment configuration, or task definition
* used in a service.
*
*
* You can add to or subtract from the number of instantiations of a task
* definition in a service by specifying the cluster that the service is
* running in and a new desiredCount
parameter.
*
*
* You can use UpdateService to modify your task definition and
* deploy a new version of your service.
*
*
* You can also update the deployment configuration of a service. When a
* deployment is triggered by updating the task definition of a service, the
* service scheduler uses the deployment configuration parameters,
* minimumHealthyPercent
and maximumPercent
, to
* determine the deployment strategy.
*
*
* If the minimumHealthyPercent
is below 100%, the scheduler
* can ignore the desiredCount
temporarily during a deployment.
* For example, if your service has a desiredCount
of four
* tasks, a minimumHealthyPercent
of 50% allows the scheduler
* to stop two existing tasks before starting two new tasks. Tasks for
* services that do not use a load balancer are considered healthy if
* they are in the RUNNING
state; tasks for services that
* do use a load balancer are considered healthy if they are in the
* RUNNING
state and the container instance it is hosted on is
* reported as healthy by the load balancer.
*
*
* The maximumPercent
parameter represents an upper limit on
* the number of running tasks during a deployment, which enables you to
* define the deployment batch size. For example, if your service has a
* desiredCount
of four tasks, a maximumPercent
* value of 200% starts four new tasks before stopping the four older tasks
* (provided that the cluster resources required to do this are available).
*
*
* When UpdateService stops a task during a deployment, the
* equivalent of docker stop
is issued to the containers
* running in the task. This results in a SIGTERM
and a
* 30-second timeout, after which SIGKILL
is sent and the
* containers are forcibly stopped. If the container handles the
* SIGTERM
gracefully and exits within 30 seconds from
* receiving it, no SIGKILL
is sent.
*
*
* When the service scheduler launches new tasks, it attempts to balance
* them across the Availability Zones in your cluster with 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).
*
*
* -
*
* Sort the valid container instances by the fewest number of running tasks
* for this service in the same Availability Zone as the instance. 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.
*
*
*
*
* @param updateServiceRequest
* @return Result of the UpdateService operation returned by the service.
* @throws ServerException
* These errors are usually caused by a server issue.
* @throws ClientException
* These errors are usually caused by a client action, such as using
* an action or resource on behalf of a user that doesn't have
* permission to use the action or resource, or specifying an
* identifier that is not valid.
* @throws InvalidParameterException
* The specified parameter is invalid. Review the available
* parameters for the API request.
* @throws ClusterNotFoundException
* The specified cluster could not be found. You can view your
* available clusters with ListClusters. Amazon ECS clusters
* are region-specific.
* @throws ServiceNotFoundException
* The specified service could not be found. You can view your
* available services with ListServices. Amazon ECS services
* are cluster-specific and region-specific.
* @throws ServiceNotActiveException
* The specified service is not active. You cannot update a service
* that is not active. If you have previously deleted a service, you
* can re-create it with CreateService.
* @sample AmazonECS.UpdateService
*/
UpdateServiceResult updateService(UpdateServiceRequest updateServiceRequest);
/**
* Shuts down this client object, releasing any resources that might be held
* open. This is an optional method, and callers are not expected to call
* it, but can if they want to explicitly release any open resources. Once a
* client has been shutdown, it should not be used to make any more
* requests.
*/
void shutdown();
/**
* Returns additional metadata for a previously executed successful request,
* typically used for debugging issues where a service isn't acting as
* expected. This data isn't considered part of the result data returned by
* an operation, so it's available through this separate, diagnostic
* interface.
*
* Response metadata is only cached for a limited period of time, so if you
* need to access this extra diagnostic information for an executed request,
* you should use this method to retrieve it as soon as possible after
* executing a request.
*
* @param request
* The originally executed request.
*
* @return The response metadata for the specified request, or null if none
* is available.
*/
ResponseMetadata getCachedResponseMetadata(AmazonWebServiceRequest request);
}