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

# Class CloudHsmClient

Client to interact with Amazon CloudHSM

  Guzzle\Common\AbstractHasDispatcher implements Guzzle\Common\HasDispatcherInterface
  Guzzle\Http\Client implements Guzzle\Http\ClientInterface
  Guzzle\Service\Client implements Guzzle\Service\ClientInterface
  Aws\Common\Client\AbstractClient implements Aws\Common\Client\AwsClientInterface
  Aws\CloudHsm\CloudHsmClient

Namespace: Aws\CloudHsm
Link: User guide
Link: API docs
Located at Aws/CloudHsm/CloudHsmClient.php

## Methods summary

- `public static` `factory ( array|Collection $config = array() )`

  Factory method to create a new Amazon CloudHSM client using an array of configuration options.

- `public` `createHapg ( array $args = array() )`

  Executes the CreateHapg operation.

- `public` `createHsm ( array $args = array() )`

  Executes the CreateHsm operation.

- `public` `createLunaClient ( array $args = array() )`

  Executes the CreateLunaClient operation.

- `public` `deleteHapg ( array $args = array() )`

  Executes the DeleteHapg operation.

- `public` `deleteHsm ( array $args = array() )`

  Executes the DeleteHsm operation.

- `public` `deleteLunaClient ( array $args = array() )`

  Executes the DeleteLunaClient operation.

- `public` `describeHapg ( array $args = array() )`

  Executes the DescribeHapg operation.

- `public` `describeHsm ( array $args = array() )`

  Executes the DescribeHsm operation.

- `public` `describeLunaClient ( array $args = array() )`

  Executes the DescribeLunaClient operation.

- `public` `getConfig ( array $args = array() )`

  Executes the GetConfig operation.

- `public` `listAvailableZones ( array $args = array() )`

  Executes the ListAvailableZones operation.

- `public` `listHapgs ( array $args = array() )`

  Executes the ListHapgs operation.

- `public` `listHsms ( array $args = array() )`

  Executes the ListHsms operation.

- `public` `listLunaClients ( array $args = array() )`

  Executes the ListLunaClients operation.

- `public` `modifyHapg ( array $args = array() )`

  Executes the ModifyHapg operation.

- `public` `modifyHsm ( array $args = array() )`

  Executes the ModifyHsm operation.

- `public` `modifyLunaClient ( array $args = array() )`

  Executes the ModifyLunaClient operation.

## Methods detail

# `public static `Aws\CloudHsm\CloudHsmClient``
`factory( array|`Guzzle\Common\Collection` $config = array() )`

Factory method to create a new Amazon CloudHSM client using an array of configuration options.

See http://docs.aws.amazon.com/aws-sdk-php/v2/guide/configuration.html#client-configuration-options

#### Parameters

$config
  `array|`Guzzle\Common\Collection``
  $config Client configuration data

#### Returns

``Aws\CloudHsm\CloudHsmClient``

#### Link

http://docs.aws.amazon.com/aws-sdk-php/v2/guide/configuration.html#client-configuration-options

#### Overrides

`Guzzle\Service\Client::factory`
# `public `Guzzle\Service\Resource\Model``
`createHapg( array $args = array() )`

Executes the CreateHapg operation.

Creates a high-availability partition group. A high-availability partition group is a group of partitions that spans multiple physical HSMs.

#### Examples

- Basic formatting example

      $result = $client->createHapg(array(
          // Label is required
          'Label' => 'string',
      ));

#### Parameters

$args
  `array`
  $arg Associative array containing the following keys (required keys are bold):
  - Label => (string)

    The label of the new high-availability partition group.

#### Returns

``Guzzle\Service\Resource\Model``
Returns a response Model object

- HapgArn => (string)

  The ARN of the high-availability partition group.

# `public `Guzzle\Service\Resource\Model``
`createHsm( array $args = array() )`

Executes the CreateHsm operation.

Creates an uninitialized HSM instance.

There is an upfront fee charged for each HSM instance that you create with the CreateHsm operation. If you accidentally provision an HSM and want to request a refund, delete the instance using the DeleteHsm operation, go to the AWS Support Center, create a new case, and select Account and Billing Support.

It can take up to 20 minutes to create and provision an HSM. You can monitor the status of the HSM with the DescribeHsm operation. The HSM is ready to be initialized when the status changes to RUNNING .

#### Examples

- Basic formatting example

      $result = $client->createHsm(array(
          // SubnetId is required
          'SubnetId' => 'string',
          // SshKey is required
          'SshKey' => 'string',
          'EniIp' => 'string',
          // IamRoleArn is required
          'IamRoleArn' => 'string',
          'ExternalId' => 'string',
          // SubscriptionType is required
          'SubscriptionType' => 'string',
          'ClientToken' => 'string',
          'SyslogIp' => 'string',
      ));

#### Parameters

$args
  `array`
  $arg Associative array containing the following keys (required keys are bold):
  - SubnetId => (string)

    The identifier of the subnet in your VPC in which to place the HSM.

  - SshKey => (string)

    The SSH public key to install on the HSM.

  - EniIp => (string)

    The IP address to assign to the HSM's ENI.

    If an IP address is not specified, an IP address will be randomly chosen from the CIDR range of the subnet.

  - IamRoleArn => (string)

    The ARN of an IAM role to enable the AWS CloudHSM service to allocate an ENI on your behalf.

  - ExternalId => (string)

    The external ID from IamRoleArn, if present.

  - SubscriptionType => (string: PRODUCTION )

    Specifies the type of subscription for the HSM.

    - PRODUCTION - The HSM is being used in a production environment.
    - TRIAL - The HSM is being used in a product trial.
  - ClientToken => (string)

    A user-defined token to ensure idempotence. Subsequent calls to this operation with the same token will be ignored.

  - SyslogIp => (string)

    The IP address for the syslog monitoring server. The AWS CloudHSM service only supports one syslog monitoring server.

#### Returns

``Guzzle\Service\Resource\Model``
Returns a response Model object

- HsmArn => (string)

  The ARN of the HSM.

# `public `Guzzle\Service\Resource\Model``
`createLunaClient( array $args = array() )`

Executes the CreateLunaClient operation.

Creates an HSM client.

#### Examples

- Basic formatting example

      $result = $client->createLunaClient(array(
          'Label' => 'string',
          // Certificate is required
          'Certificate' => 'string',
      ));

#### Parameters

$args
  `array`
  $arg Associative array containing the following keys (required keys are bold):
  - Label => (string)

    The label for the client.

  - Certificate => (string)

    The contents of a Base64-Encoded X.509 v3 certificate to be installed on the HSMs used by this client.

#### Returns

``Guzzle\Service\Resource\Model``
Returns a response Model object

- ClientArn => (string)

  The ARN of the client.

# `public `Guzzle\Service\Resource\Model``
`deleteHapg( array $args = array() )`

Executes the DeleteHapg operation.

Deletes a high-availability partition group.

#### Examples

- Basic formatting example

      $result = $client->deleteHapg(array(
          // HapgArn is required
          'HapgArn' => 'string',
      ));

#### Parameters

$args
  `array`
  $arg Associative array containing the following keys (required keys are bold):
  - HapgArn => (string)

    The ARN of the high-availability partition group to delete.

#### Returns

``Guzzle\Service\Resource\Model``
Returns a response Model object

- Status => (string)

  The status of the action.

# `public `Guzzle\Service\Resource\Model``
`deleteHsm( array $args = array() )`

Executes the DeleteHsm operation.

Deletes an HSM. After completion, this operation cannot be undone and your key material cannot be recovered.

#### Examples

- Basic formatting example

      $result = $client->deleteHsm(array(
          // HsmArn is required
          'HsmArn' => 'string',
      ));

#### Parameters

$args
  `array`
  $arg Associative array containing the following keys (required keys are bold):
  - HsmArn => (string)

    The ARN of the HSM to delete.

#### Returns

``Guzzle\Service\Resource\Model``
Returns a response Model object

- Status => (string)

  The status of the operation.

# `public `Guzzle\Service\Resource\Model``
`deleteLunaClient( array $args = array() )`

Executes the DeleteLunaClient operation.

Deletes a client.

#### Examples

- Basic formatting example

      $result = $client->deleteLunaClient(array(
          // ClientArn is required
          'ClientArn' => 'string',
      ));

#### Parameters

$args
  `array`
  $arg Associative array containing the following keys (required keys are bold):
  - ClientArn => (string)

    The ARN of the client to delete.

#### Returns

``Guzzle\Service\Resource\Model``
Returns a response Model object

- Status => (string)

  The status of the action.

# `public `Guzzle\Service\Resource\Model``
`describeHapg( array $args = array() )`

Executes the DescribeHapg operation.

Retrieves information about a high-availability partition group.

#### Examples

- Basic formatting example

      $result = $client->describeHapg(array(
          // HapgArn is required
          'HapgArn' => 'string',
      ));

#### Parameters

$args
  `array`
  $arg Associative array containing the following keys (required keys are bold):
  - HapgArn => (string)

    The ARN of the high-availability partition group to describe.

#### Returns

``Guzzle\Service\Resource\Model``
Returns a response Model object

- HapgArn => (string)

  The ARN of the high-availability partition group.

- HapgSerial => (string)

  The serial number of the high-availability partition group.

- HsmsLastActionFailed => (array<string>)

  Contains a list of ARNs that identify the HSMs.

  (string)

  An ARN that identifies an HSM.

- HsmsPendingDeletion => (array<string>)

  Contains a list of ARNs that identify the HSMs.

  (string)

  An ARN that identifies an HSM.

- HsmsPendingRegistration => (array<string>)

  Contains a list of ARNs that identify the HSMs.

  (string)

  An ARN that identifies an HSM.

- Label => (string)

  The label for the high-availability partition group.

- LastModifiedTimestamp => (string)

  The date and time the high-availability partition group was last modified.

- PartitionSerialList => (array<string>)

  The list of partition serial numbers that belong to the high-availability partition group.

- State => (string)

  The state of the high-availability partition group.

# `public `Guzzle\Service\Resource\Model``
`describeHsm( array $args = array() )`

Executes the DescribeHsm operation.

Retrieves information about an HSM. You can identify the HSM by its ARN or its serial number.

#### Examples

- Basic formatting example

      $result = $client->describeHsm(array(
          'HsmArn' => 'string',
          'HsmSerialNumber' => 'string',
      ));

#### Parameters

$args
  `array`
  $arg Associative array containing the following keys (required keys are bold):
  - HsmArn => (string)

    The ARN of the HSM. Either the HsmArn or the SerialNumber parameter must be specified.

  - HsmSerialNumber => (string)

    The serial number of the HSM. Either the HsmArn or the HsmSerialNumber parameter must be specified.

#### Returns

``Guzzle\Service\Resource\Model``
Returns a response Model object

- HsmArn => (string)

  The ARN of the HSM.

- Status => (string)

  The status of the HSM.

- StatusDetails => (string)

  Contains additional information about the status of the HSM.

- AvailabilityZone => (string)

  The Availability Zone that the HSM is in.

- EniId => (string)

  The identifier of the elastic network interface (ENI) attached to the HSM.

- EniIp => (string)

  The IP address assigned to the HSM's ENI.

- SubscriptionType => (string)

  Specifies the type of subscription for the HSM.

  - PRODUCTION - The HSM is being used in a production environment.
  - TRIAL - The HSM is being used in a product trial.
- SubscriptionStartDate => (string)

  The subscription start date.

- SubscriptionEndDate => (string)

  The subscription end date.

- VpcId => (string)

  The identifier of the VPC that the HSM is in.

- SubnetId => (string)

  The identifier of the subnet that the HSM is in.

- IamRoleArn => (string)

  The ARN of the IAM role assigned to the HSM.

- SerialNumber => (string)

  The serial number of the HSM.

- VendorName => (string)

  The name of the HSM vendor.

- HsmType => (string)

  The HSM model type.

- SoftwareVersion => (string)

  The HSM software version.

- SshPublicKey => (string)

  The public SSH key.

- SshKeyLastUpdated => (string)

  The date and time that the SSH key was last updated.

- ServerCertUri => (string)

  The URI of the certificate server.

- ServerCertLastUpdated => (string)

  The date and time that the server certificate was last updated.

- Partitions => (array<string>)

  The list of partitions on the HSM.

# `public `Guzzle\Service\Resource\Model``
`describeLunaClient( array $args = array() )`

Executes the DescribeLunaClient operation.

Retrieves information about an HSM client.

#### Examples

- Basic formatting example

      $result = $client->describeLunaClient(array(
          'ClientArn' => 'string',
          'CertificateFingerprint' => 'string',
      ));

#### Parameters

$args
  `array`
  $arg Associative array containing the following keys (required keys are bold):
  - ClientArn => (string)

    The ARN of the client.

  - CertificateFingerprint => (string)

    The certificate fingerprint.

#### Returns

``Guzzle\Service\Resource\Model``
Returns a response Model object

- ClientArn => (string)

  The ARN of the client.

- Certificate => (string)

  The certificate installed on the HSMs used by this client.

- CertificateFingerprint => (string)

  The certificate fingerprint.

- LastModifiedTimestamp => (string)

  The date and time the client was last modified.

- Label => (string)

  The label of the client.

# `public `Guzzle\Service\Resource\Model``
`getConfig( array $args = array() )`

Executes the GetConfig operation.

Gets the configuration files necessary to connect to all high availability partition groups the client is associated with.

#### Examples

- Basic formatting example

      $result = $client->getConfig(array(
          // ClientArn is required
          'ClientArn' => 'string',
          // ClientVersion is required
          'ClientVersion' => 'string',
          // HapgList is required
          'HapgList' => array('string', ... ),
      ));

#### Parameters

$args
  `array`
  $arg Associative array containing the following keys (required keys are bold):
  - ClientArn => (string)

    The ARN of the client.

  - ClientVersion => (string: 5.1 | 5.3 )

    The client version.

  - HapgList => (array<string>)

    A list of ARNs that identify the high-availability partition groups that are associated with the client.

#### Returns

``Guzzle\Service\Resource\Model``
Returns a response Model object

- ConfigType => (string)

  The type of credentials.

- ConfigFile => (string)

  The chrystoki.conf configuration file.

- ConfigCred => (string)

  The certificate file containing the server.pem files of the HSMs.

#### Overrides

`Guzzle\Http\Client::getConfig`
# `public `Guzzle\Service\Resource\Model``
`listAvailableZones( array $args = array() )`

Executes the ListAvailableZones operation.

Lists the Availability Zones that have available AWS CloudHSM capacity.

#### Examples

- Basic formatting example

      $result = $client->listAvailableZones(array(
      ));

#### Returns

``Guzzle\Service\Resource\Model``
Returns a response Model object

- AZList => (array<string>)

  The list of Availability Zones that have available AWS CloudHSM capacity.

# `public `Guzzle\Service\Resource\Model``
`listHapgs( array $args = array() )`

Executes the ListHapgs operation.

Lists the high-availability partition groups for the account.

This operation supports pagination with the use of the NextToken member. If more results are available, the NextToken member of the response contains a token that you pass in the next call to ListHapgs to retrieve the next set of items.

#### Examples

- Basic formatting example

      $result = $client->listHapgs(array(
          'NextToken' => 'string',
      ));

#### Parameters

$args
  `array`
  $arg Associative array containing the following keys (required keys are bold):
  - NextToken => (string)

    The NextToken value from a previous call to ListHapgs. Pass null if this is the first call.

#### Returns

``Guzzle\Service\Resource\Model``
Returns a response Model object

- HapgList => (array<string>)

  The list of high-availability partition groups.

- NextToken => (string)

  If not null, more results are available. Pass this value to ListHapgs to retrieve the next set of items.

# `public `Guzzle\Service\Resource\Model``
`listHsms( array $args = array() )`

Executes the ListHsms operation.

Retrieves the identifiers of all of the HSMs provisioned for the current customer.

This operation supports pagination with the use of the NextToken member. If more results are available, the NextToken member of the response contains a token that you pass in the next call to ListHsms to retrieve the next set of items.

#### Examples

- Basic formatting example

      $result = $client->listHsms(array(
          'NextToken' => 'string',
      ));

#### Parameters

$args
  `array`
  $arg Associative array containing the following keys (required keys are bold):
  - NextToken => (string)

    The NextToken value from a previous call to ListHsms. Pass null if this is the first call.

#### Returns

``Guzzle\Service\Resource\Model``
Returns a response Model object

- HsmList => (array<string>)

  The list of ARNs that identify the HSMs.

  (string)

  An ARN that identifies an HSM.

- NextToken => (string)

  If not null, more results are available. Pass this value to ListHsms to retrieve the next set of items.

# `public `Guzzle\Service\Resource\Model``
`listLunaClients( array $args = array() )`

Executes the ListLunaClients operation.

Lists all of the clients.

This operation supports pagination with the use of the NextToken member. If more results are available, the NextToken member of the response contains a token that you pass in the next call to ListLunaClients to retrieve the next set of items.

#### Examples

- Basic formatting example

      $result = $client->listLunaClients(array(
          'NextToken' => 'string',
      ));

#### Parameters

$args
  `array`
  $arg Associative array containing the following keys (required keys are bold):
  - NextToken => (string)

    The NextToken value from a previous call to ListLunaClients. Pass null if this is the first call.

#### Returns

``Guzzle\Service\Resource\Model``
Returns a response Model object

- ClientList => (array<string>)

  The list of clients.

- NextToken => (string)

  If not null, more results are available. Pass this to ListLunaClients to retrieve the next set of items.

# `public `Guzzle\Service\Resource\Model``
`modifyHapg( array $args = array() )`

Executes the ModifyHapg operation.

Modifies an existing high-availability partition group.

#### Examples

- Basic formatting example

      $result = $client->modifyHapg(array(
          // HapgArn is required
          'HapgArn' => 'string',
          'Label' => 'string',
          'PartitionSerialList' => array('string', ... ),
      ));

#### Parameters

$args
  `array`
  $arg Associative array containing the following keys (required keys are bold):
  - HapgArn => (string)

    The ARN of the high-availability partition group to modify.

  - Label => (string)

    The new label for the high-availability partition group.

  - PartitionSerialList => (array<string>)

    The list of partition serial numbers to make members of the high-availability partition group.

#### Returns

``Guzzle\Service\Resource\Model``
Returns a response Model object

- HapgArn => (string)

  The ARN of the high-availability partition group.

# `public `Guzzle\Service\Resource\Model``
`modifyHsm( array $args = array() )`

Executes the ModifyHsm operation.

Modifies an HSM.

This operation can result in the HSM being offline for up to 15 minutes while the AWS CloudHSM service is reconfigured.Â If you are modifying a production HSM, you should ensure that your AWS CloudHSM service is configured for high availability, and consider executing this operation during a maintenance window.

#### Examples

- Basic formatting example

      $result = $client->modifyHsm(array(
          // HsmArn is required
          'HsmArn' => 'string',
          'SubnetId' => 'string',
          'EniIp' => 'string',
          'IamRoleArn' => 'string',
          'ExternalId' => 'string',
          'SyslogIp' => 'string',
      ));

#### Parameters

$args
  `array`
  $arg Associative array containing the following keys (required keys are bold):
  - HsmArn => (string)

    The ARN of the HSM to modify.

  - SubnetId => (string)

    The new identifier of the subnet that the HSM is in. The new subnet must be in the same Availability Zone as the current subnet.

  - EniIp => (string)

    The new IP address for the elastic network interface (ENI) attached to the HSM.

    If the HSM is moved to a different subnet, and an IP address is not specified, an IP address will be randomly chosen from the CIDR range of the new subnet.

  - IamRoleArn => (string)

    The new IAM role ARN.

  - ExternalId => (string)

    The new external ID.

  - SyslogIp => (string)

    The new IP address for the syslog monitoring server. The AWS CloudHSM service only supports one syslog monitoring server.

#### Returns

``Guzzle\Service\Resource\Model``
Returns a response Model object

- HsmArn => (string)

  The ARN of the HSM.

# `public `Guzzle\Service\Resource\Model``
`modifyLunaClient( array $args = array() )`

Executes the ModifyLunaClient operation.

Modifies the certificate used by the client.

This action can potentially start a workflow to install the new certificate on the client's HSMs.

#### Examples

- Basic formatting example

      $result = $client->modifyLunaClient(array(
          // ClientArn is required
          'ClientArn' => 'string',
          // Certificate is required
          'Certificate' => 'string',
      ));

#### Parameters

$args
  `array`
  $arg Associative array containing the following keys (required keys are bold):
  - ClientArn => (string)

    The ARN of the client.

  - Certificate => (string)

    The new certificate for the client.

#### Returns

``Guzzle\Service\Resource\Model``
Returns a response Model object

- ClientArn => (string)

  The ARN of the client.

### Methods inherited from Aws\Common\Client\AbstractClient

`__call()`, `__construct()`, `createRequest()`, `getAllEvents()`, `getApiVersion()`, `getCredentials()`, `getRegion()`, `getRegions()`, `getSignature()`, `getWaiter()`, `getWaiterFactory()`, `send()`, `setCredentials()`, `setRegion()`, `setWaiterFactory()`, `waitUntil()`

### Methods inherited from Guzzle\Service\Client

`execute()`, `executeMultiple()`, `getCommand()`, `getCommandFactory()`, `getDescription()`, `getInflector()`, `getIterator()`, `getResourceIteratorFactory()`, `prepareCommand()`, `setCommandFactory()`, `setDescription()`, `setInflector()`, `setResourceIteratorFactory()`

### Methods inherited from Guzzle\Http\Client

`delete()`, `expandTemplate()`, `extractPharCacert()`, `get()`, `getBaseUrl()`, `getCurlMulti()`, `getDefaultOption()`, `getDefaultUserAgent()`, `getUriTemplate()`, `head()`, `initSsl()`, `options()`, `patch()`, `post()`, `prepareRequest()`, `put()`, `sendMultiple()`, `setBaseUrl()`, `setConfig()`, `setCurlMulti()`, `setDefaultOption()`, `setRequestFactory()`, `setSslVerification()`, `setUriTemplate()`, `setUserAgent()`

### Methods inherited from Guzzle\Common\AbstractHasDispatcher

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

### Magic methods summary

## Constants summary

`string` | `LATEST_API_VERSION` | `'2014-05-30'` | #

### Constants inherited from Guzzle\Service\Client

`COMMAND_PARAMS`

### Constants inherited from Guzzle\Http\Client

`CURL_OPTIONS`, `DEFAULT_SELECT_TIMEOUT`, `DISABLE_REDIRECTS`, `MAX_HANDLES`, `REQUEST_OPTIONS`, `SSL_CERT_AUTHORITY`

### Constants inherited from Guzzle\Http\ClientInterface

`CREATE_REQUEST`, `HTTP_DATE`

## Properties summary

### Properties inherited from Aws\Common\Client\AbstractClient

`$aggregator`, `$credentials`, `$signature`, `$waiterFactory`

### Properties inherited from Guzzle\Service\Client

`$commandFactory`, `$inflector`, `$resourceIteratorFactory`, `$serviceDescription`

### Properties inherited from Guzzle\Http\Client

`$defaultHeaders`, `$requestFactory`, `$userAgent`

### Properties inherited from Guzzle\Common\AbstractHasDispatcher

`$eventDispatcher`