NOTE: For Version 3 of the AWS SDK for PHP, please see the V3 User Guide and V3 API Reference.

# Interface ClientInterface

Client interface for executing commands on a web service.

  Guzzle\Service\ClientInterface implements Guzzle\Http\ClientInterface, Guzzle\Common\FromConfigInterface

### Direct known implementers

`Aws\Common\Client\AwsClientInterface`, `Guzzle\Service\Client`

### Indirect known implementers

`Aws\AutoScaling\AutoScalingClient`, `Aws\CloudFormation\CloudFormationClient`, `Aws\CloudWatchLogs\CloudWatchLogsClient`, `Aws\CodeCommit\CodeCommitClient`, `Aws\CodeDeploy\CodeDeployClient`, `Aws\CodePipeline\CodePipelineClient`, `Aws\CognitoIdentity\CognitoIdentityClient`, `Aws\CognitoSync\CognitoSyncClient`, `Aws\Common\Client\AbstractClient`, `Aws\Common\Client\DefaultClient`, `Aws\Common\InstanceMetadata\InstanceMetadataClient`, `Aws\ConfigService\ConfigServiceClient`, `Aws\CloudFront\CloudFrontClient`, `Aws\DataPipeline\DataPipelineClient`, `Aws\DeviceFarm\DeviceFarmClient`, `Aws\DirectConnect\DirectConnectClient`, `Aws\DirectoryService\DirectoryServiceClient`, `Aws\DynamoDb\DynamoDbClient`, `Aws\DynamoDb_2011_12_05\DynamoDbClient`, `Aws\DynamoDbStreams\DynamoDbStreamsClient`, `Aws\Ec2\Ec2Client`, `Aws\Ecs\EcsClient`, `Aws\Efs\EfsClient`, `Aws\CloudFront_2012_05_05\CloudFrontClient`, `Aws\ElastiCache\ElastiCacheClient`, `Aws\ElasticBeanstalk\ElasticBeanstalkClient`, `Aws\ElasticFileSystem\ElasticFileSystemClient`, `Aws\ElasticLoadBalancing\ElasticLoadBalancingClient`, `Aws\ElasticTranscoder\ElasticTranscoderClient`, `Aws\Emr\EmrClient`, `Aws\Glacier\GlacierClient`, `Aws\Iam\IamClient`, `Aws\ImportExport\ImportExportClient`, `Aws\Kinesis\KinesisClient`, `Aws\CloudHsm\CloudHsmClient`, `Aws\Kms\KmsClient`, `Aws\Lambda\LambdaClient`, `Aws\MachineLearning\MachineLearningClient`, `Aws\OpsWorks\OpsWorksClient`, `Aws\Rds\RdsClient`, `Aws\Redshift\RedshiftClient`, `Aws\Route53\Route53Client`, `Aws\Route53Domains\Route53DomainsClient`, `Aws\S3\S3Client`, `Aws\Ses\SesClient`, `Aws\CloudSearch\CloudSearchClient`, `Aws\SimpleDb\SimpleDbClient`, `Aws\Sns\SnsClient`, `Aws\Sqs\SqsClient`, `Aws\Ssm\SsmClient`, `Aws\StorageGateway\StorageGatewayClient`, `Aws\Sts\StsClient`, `Aws\Support\SupportClient`, `Aws\Swf\SwfClient`, `Aws\WorkSpaces\WorkSpacesClient`, `Aws\CloudSearch_2011_02_01\CloudSearchClient`, `Aws\CloudSearchDomain\CloudSearchDomainClient`, `Aws\CloudTrail\CloudTrailClient`, `Aws\CloudWatch\CloudWatchClient`

Namespace: Guzzle\Service
Located at Guzzle/Service/ClientInterface.php

## Methods summary

- `public` `getCommand ( string $name, array $args = array() )`

  Get a command by name. First, the client will see if it has a service description and if the service description defines a command by the supplied name. If no dynamic command is found, the client will look for a concrete command class exists matching the name supplied. If neither are found, an InvalidArgumentException is thrown.

- `public` `execute ( CommandInterface|array|Traversable $command )`

  Execute one or more commands

- `public` `setDescription ( Guzzle\Service\Description\ServiceDescriptionInterface $service )`

  Set the service description of the client

- `public` `getDescription ( )`

  Get the service description of the client

- `public` `getIterator ( string|CommandInterface $command, array $commandOptions = null, array $iteratorOptions = array() )`

  Get a resource iterator from the client.

## Methods detail

# `public `Guzzle\Service\Command\CommandInterface``
`getCommand( string $name, array $args = array() )`

Get a command by name. First, the client will see if it has a service description and if the service description defines a command by the supplied name. If no dynamic command is found, the client will look for a concrete command class exists matching the name supplied. If neither are found, an InvalidArgumentException is thrown.

#### Parameters

$name
  `string`
  $name Name of the command to retrieve
$args
  `array`
  $args Arguments to pass to the command

#### Returns

``Guzzle\Service\Command\CommandInterface``

#### Throws

``Guzzle\Common\Exception\InvalidArgumentException``
if no command can be found by name
# `public mixed`
`execute( `Guzzle\Service\Command\CommandInterface`|array|`Traversable` $command )`

Execute one or more commands

#### Parameters

$command
  ``Guzzle\Service\Command\CommandInterface`|array|`Traversable``
  $command Command, array of commands or Traversable object containing commands to execute

#### Returns

`mixed`
Returns the result of the executed command or an array of commands if executing multiple commands

#### Throws

``Guzzle\Common\Exception\InvalidArgumentException``
if an invalid command is passed
``Guzzle\Service\Exception\CommandTransferException``
if an exception is encountered when transferring multiple commands
# `public `Guzzle\Service\ClientInterface``
`setDescription( `Guzzle\Service\Description\ServiceDescriptionInterface` $service )`

Set the service description of the client

#### Parameters

$service
  ``Guzzle\Service\Description\ServiceDescriptionInterface``
  $service Service description

#### Returns

``Guzzle\Service\ClientInterface``
# `public `Guzzle\Service\Description\ServiceDescriptionInterface`|null`
`getDescription( )`

Get the service description of the client

#### Returns

``Guzzle\Service\Description\ServiceDescriptionInterface`|null`
# `public `Guzzle\Service\Resource\ResourceIteratorInterface``
`getIterator( string|`Guzzle\Service\Command\CommandInterface` $command, array $commandOptions = null, array $iteratorOptions = array() )`

Get a resource iterator from the client.

#### Parameters

$command
  `string|`Guzzle\Service\Command\CommandInterface``
  $command Command class or command name.
$commandOptions
  `array`
  $commandOptions Command options used when creating commands.
$iteratorOptions
  `array`
  $iteratorOptions Iterator options passed to the iterator when it is instantiated.

#### Returns

``Guzzle\Service\Resource\ResourceIteratorInterface``

### Methods inherited from Guzzle\Http\ClientInterface

`createRequest()`, `delete()`, `get()`, `getBaseUrl()`, `getConfig()`, `head()`, `options()`, `patch()`, `post()`, `put()`, `send()`, `setBaseUrl()`, `setConfig()`, `setSslVerification()`, `setUserAgent()`

### Methods inherited from Guzzle\Common\HasDispatcherInterface

`addSubscriber()`, `dispatch()`, `getAllEvents()`, `getEventDispatcher()`, `setEventDispatcher()`

### Methods inherited from Guzzle\Common\FromConfigInterface

`factory()`

### Magic methods summary

## Constants summary

### Constants inherited from Guzzle\Http\ClientInterface

`CREATE_REQUEST`, `HTTP_DATE`