Skip to content

Commit

Permalink
Adding Amazon EC2 Container Service client
Browse files Browse the repository at this point in the history
  • Loading branch information
mtdowling committed Jan 6, 2015
1 parent 8e87735 commit c62d4ac
Show file tree
Hide file tree
Showing 9 changed files with 2,181 additions and 0 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

## Next release

* Added the Amazon EC2 Container Service client.
* Amazon S3 retries are now resigned with a new Date header on each retry.

## 2.7.12 - 2014-12-18
Expand Down
5 changes: 5 additions & 0 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ AWS SDK for PHP
service-dynamodb
service-dynamodb-20111205
service-ec2
service-ecs
service-elasticache
service-elasticbeanstalk
service-elasticloadbalancing
Expand Down Expand Up @@ -163,6 +164,10 @@ Service-Specific Guides

.. indexlinks:: Ec2

* Amazon EC2 Container Service (Amazon ECS)

.. indexlinks:: Ecs

* Amazon Elastic MapReduce (Amazon EMR)

.. indexlinks:: Emr
Expand Down
3 changes: 3 additions & 0 deletions docs/service-ecs.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
.. service:: Ecs

.. apiref:: Ecs
6 changes: 6 additions & 0 deletions src/Aws/Common/Resources/aws-config.php
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,12 @@
'class' => 'Aws\Ec2\Ec2Client'
),

'ecs' => array(
'alias' => 'Ecs',
'extends' => 'default_settings',
'class' => 'Aws\Ecs\EcsClient'
),

'elasticache' => array(
'alias' => 'ElastiCache',
'extends' => 'default_settings',
Expand Down
75 changes: 75 additions & 0 deletions src/Aws/Ecs/EcsClient.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
<?php
/**
* Copyright 2010-2013 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.
*/

namespace Aws\Ecs;

use Aws\Common\Client\AbstractClient;
use Aws\Common\Client\ClientBuilder;
use Aws\Common\Enum\ClientOptions as Options;
use Guzzle\Common\Collection;
use Guzzle\Service\Resource\Model;

/**
* Client to interact with Amazon EC2 Container Service
*
* @method Model createCluster(array $args = array()) {@command Ecs CreateCluster}
* @method Model deregisterContainerInstance(array $args = array()) {@command Ecs DeregisterContainerInstance}
* @method Model deregisterTaskDefinition(array $args = array()) {@command Ecs DeregisterTaskDefinition}
* @method Model describeClusters(array $args = array()) {@command Ecs DescribeClusters}
* @method Model describeContainerInstances(array $args = array()) {@command Ecs DescribeContainerInstances}
* @method Model describeTaskDefinition(array $args = array()) {@command Ecs DescribeTaskDefinition}
* @method Model describeTasks(array $args = array()) {@command Ecs DescribeTasks}
* @method Model discoverPollEndpoint(array $args = array()) {@command Ecs DiscoverPollEndpoint}
* @method Model listClusters(array $args = array()) {@command Ecs ListClusters}
* @method Model listContainerInstances(array $args = array()) {@command Ecs ListContainerInstances}
* @method Model listTaskDefinitions(array $args = array()) {@command Ecs ListTaskDefinitions}
* @method Model listTasks(array $args = array()) {@command Ecs ListTasks}
* @method Model registerContainerInstance(array $args = array()) {@command Ecs RegisterContainerInstance}
* @method Model registerTaskDefinition(array $args = array()) {@command Ecs RegisterTaskDefinition}
* @method Model runTask(array $args = array()) {@command Ecs RunTask}
* @method Model startTask(array $args = array()) {@command Ecs StartTask}
* @method Model stopTask(array $args = array()) {@command Ecs StopTask}
* @method Model submitContainerStateChange(array $args = array()) {@command Ecs SubmitContainerStateChange}
* @method Model submitTaskStateChange(array $args = array()) {@command Ecs SubmitTaskStateChange}
*
* @link http://docs.aws.amazon.com/aws-sdk-php/guide/latest/service-ecs.html User guide
* @link http://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.Ecs.EcsClient.html API docs
*/
class EcsClient extends AbstractClient
{
const LATEST_API_VERSION = '2014-11-13';

/**
* Factory method to create a new Amazon EC2 Container Service client using an array of configuration options.
*
* See http://docs.aws.amazon.com/aws-sdk-php/guide/latest/configuration.html#client-configuration-options
*
* @param array|Collection $config Client configuration data
*
* @return self
* @link http://docs.aws.amazon.com/aws-sdk-php/guide/latest/configuration.html#client-configuration-options
*/
public static function factory($config = array())
{
return ClientBuilder::factory(__NAMESPACE__)
->setConfig($config)
->setConfigDefaults(array(
Options::VERSION => self::LATEST_API_VERSION,
Options::SERVICE_DESCRIPTION => __DIR__ . '/Resources/ecs-%s.php'
))
->build();
}
}
9 changes: 9 additions & 0 deletions src/Aws/Ecs/Exception/EcsException.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?php
namespace Aws\Ecs\Exception;

use Aws\Common\Exception\ServiceResponseException;

/**
* Default service exception class
*/
class EcsException extends ServiceResponseException {}
Loading

0 comments on commit c62d4ac

Please sign in to comment.