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

# Class ServiceDescription

A ServiceDescription stores service information based on a service document

  Guzzle\Service\Description\ServiceDescription implements Guzzle\Service\Description\ServiceDescriptionInterface, Guzzle\Common\ToArrayInterface

Namespace: Guzzle\Service\Description
Located at Guzzle/Service/Description/ServiceDescription.php

## Methods summary

- `public static` `factory ( string|array $config, array $options = array() )`
- `public` `__construct ( array $config = array() )`
- `public` `serialize ( )`
- `public` `unserialize ( mixed $json )`
- `public` `toArray ( )`

  Get the array representation of an object

- `public` `getBaseUrl ( )`

  Get the basePath/baseUrl of the description

- `public` `setBaseUrl ( string $baseUrl )`

  Set the baseUrl of the description

- `public` `getOperations ( )`

  Get the API operations of the service

- `public` `hasOperation ( string $name )`

  Check if the service has an operation by name

- `public` `getOperation ( string $name )`

  Get an API operation by name

- `public` `addOperation ( Guzzle\Service\Description\OperationInterface $operation )`

  Add a operation to the service description

- `public` `getModel ( string $id )`

  Get a specific model from the description

- `public` `getModels ( )`

  Get all service description models

- `public` `hasModel ( string $id )`

  Check if the description has a specific model by name

- `public` `addModel ( Guzzle\Service\Description\Parameter $model )`

  Add a model to the service description

- `public` `getApiVersion ( )`

  Get the API version of the service

- `public` `getName ( )`

  Get the name of the API

- `public` `getDescription ( )`

  Get a summary of the purpose of the API

- `public` `getData ( string $key )`

  Get arbitrary data from the service description that is not part of the Guzzle spec

- `public` `setData ( string $key, mixed $value )`

  Set arbitrary data on the service description

- `protected` `fromArray ( array $config )`

  Initialize the state from an array

## Methods detail

# `public static `Guzzle\Service\Description\ServiceDescription``
`factory( string|array $config, array $options = array() )`

#### Parameters

$config
  `string|array`
  $config File to build or array of operation information
$options
  `array`
  $options Service description factory options

#### Returns

``Guzzle\Service\Description\ServiceDescription``
# `public`
`__construct( array $config = array() )`

#### Parameters

$config
  `array`
  $config Array of configuration data

# `public`
`serialize( )`

#### Implementation of

`Serializable::serialize()`
# `public`
`unserialize( mixed $json )`

#### Implementation of

`Serializable::unserialize()`
# `public array`
`toArray( )`

Get the array representation of an object

#### Returns

`array`

#### Implementation of

`Guzzle\Common\ToArrayInterface::toArray()`
# `public string`
`getBaseUrl( )`

Get the basePath/baseUrl of the description

#### Returns

`string`

#### Implementation of

`Guzzle\Service\Description\ServiceDescriptionInterface::getBaseUrl()`
# `public `Guzzle\Service\Description\ServiceDescription``
`setBaseUrl( string $baseUrl )`

Set the baseUrl of the description

#### Parameters

$baseUrl
  `string`
  $baseUrl Base URL of each operation

#### Returns

``Guzzle\Service\Description\ServiceDescription``
# `public array`
`getOperations( )`

Get the API operations of the service

#### Returns

`array`
Returns an array of `Guzzle\Service\Description\OperationInterface` objects

#### Implementation of

`Guzzle\Service\Description\ServiceDescriptionInterface::getOperations()`
# `public boolean`
`hasOperation( string $name )`

Check if the service has an operation by name

#### Parameters

$name
  `string`
  $name Name of the operation to check

#### Returns

`boolean`

#### Implementation of

`Guzzle\Service\Description\ServiceDescriptionInterface::hasOperation()`
# `public `Guzzle\Service\Description\OperationInterface`|null`
`getOperation( string $name )`

Get an API operation by name

#### Parameters

$name
  `string`
  $name Name of the command

#### Returns

``Guzzle\Service\Description\OperationInterface`|null`

#### Implementation of

`Guzzle\Service\Description\ServiceDescriptionInterface::getOperation()`
# `public `Guzzle\Service\Description\ServiceDescription``
`addOperation( `Guzzle\Service\Description\OperationInterface` $operation )`

Add a operation to the service description

#### Parameters

$operation
  ``Guzzle\Service\Description\OperationInterface``
  $operation Operation to add

#### Returns

``Guzzle\Service\Description\ServiceDescription``
# `public `Guzzle\Service\Description\Parameter`|null`
`getModel( string $id )`

Get a specific model from the description

#### Parameters

$id
  `string`
  $id ID of the model

#### Returns

``Guzzle\Service\Description\Parameter`|null`

#### Implementation of

`Guzzle\Service\Description\ServiceDescriptionInterface::getModel()`
# `public array`
`getModels( )`

Get all service description models

#### Returns

`array`

#### Implementation of

`Guzzle\Service\Description\ServiceDescriptionInterface::getModels()`
# `public boolean`
`hasModel( string $id )`

Check if the description has a specific model by name

#### Parameters

$id
  `string`
  $id ID of the model

#### Returns

`boolean`

#### Implementation of

`Guzzle\Service\Description\ServiceDescriptionInterface::hasModel()`
# `public `Guzzle\Service\Description\ServiceDescription``
`addModel( `Guzzle\Service\Description\Parameter` $model )`

Add a model to the service description

#### Parameters

$model
  ``Guzzle\Service\Description\Parameter``
  $model Model to add

#### Returns

``Guzzle\Service\Description\ServiceDescription``
# `public string`
`getApiVersion( )`

Get the API version of the service

#### Returns

`string`

#### Implementation of

`Guzzle\Service\Description\ServiceDescriptionInterface::getApiVersion()`
# `public string`
`getName( )`

Get the name of the API

#### Returns

`string`

#### Implementation of

`Guzzle\Service\Description\ServiceDescriptionInterface::getName()`
# `public string`
`getDescription( )`

Get a summary of the purpose of the API

#### Returns

`string`

#### Implementation of

`Guzzle\Service\Description\ServiceDescriptionInterface::getDescription()`
# `public null|mixed`
`getData( string $key )`

Get arbitrary data from the service description that is not part of the Guzzle spec

#### Parameters

$key
  `string`
  $key Data key to retrieve

#### Returns

`null|mixed`

#### Implementation of

`Guzzle\Service\Description\ServiceDescriptionInterface::getData()`
# `public `Guzzle\Service\Description\ServiceDescription``
`setData( string $key, mixed $value )`

Set arbitrary data on the service description

#### Parameters

$key
  `string`
  $key Data key to set
$value
  `mixed`
  $value Value to set

#### Returns

``Guzzle\Service\Description\ServiceDescription``

#### Implementation of

`Guzzle\Service\Description\ServiceDescriptionInterface::setData()`
# `protected`
`fromArray( array $config )`

Initialize the state from an array

#### Parameters

$config
  `array`
  $config Configuration data

#### Throws

``Guzzle\Common\Exception\InvalidArgumentException``

### Magic methods summary

## Properties summary

`protected array` | $operations | # Array of `Guzzle\Service\Description\OperationInterface` objects
`protected array` | $models | # Array of API models
`protected string` | $name | # Name of the API
`protected string` | $apiVersion | # API version
`protected string` | $description | # Summary of the API
`protected array` | $extraData | # Any extra API data
`protected static `Guzzle\Service\Description\ServiceDescriptionLoader`` | $descriptionLoader | # Factory used in factory method
`protected string` | $baseUrl | # baseUrl/basePath