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

# Class CloudFormationClient

Client to interact with AWS CloudFormation

  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\CloudFormation\CloudFormationClient

Namespace: Aws\CloudFormation
Link: User guide
Link: API docs
Located at Aws/CloudFormation/CloudFormationClient.php

## Methods summary

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

  Factory method to create a new AWS CloudFormation client using an array of configuration options.

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

  Executes the CancelUpdateStack operation.

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

  Executes the CreateStack operation.

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

  Executes the DeleteStack operation.

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

  Executes the DescribeAccountLimits operation.

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

  Executes the DescribeStackEvents operation.

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

  Executes the DescribeStackResource operation.

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

  Executes the DescribeStackResources operation.

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

  Executes the DescribeStacks operation.

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

  Executes the EstimateTemplateCost operation.

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

  Executes the GetStackPolicy operation.

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

  Executes the GetTemplate operation.

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

  Executes the GetTemplateSummary operation.

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

  Executes the ListStackResources operation.

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

  Executes the ListStacks operation.

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

  Executes the SetStackPolicy operation.

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

  Executes the SignalResource operation.

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

  Executes the UpdateStack operation.

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

  Executes the ValidateTemplate operation.

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

  The input array uses the parameters of the DescribeStackEvents operation

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

  The input array uses the parameters of the DescribeStackResources operation

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

  The input array uses the parameters of the DescribeStacks operation

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

  The input array uses the parameters of the ListStackResources operation

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

  The input array uses the parameters of the ListStacks operation

## Methods detail

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

Factory method to create a new AWS CloudFormation client using an array of configuration options.

#### Parameters

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

#### Returns

``Aws\CloudFormation\CloudFormationClient``

#### 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``
`cancelUpdateStack( array $args = array() )`

Executes the CancelUpdateStack operation.

Cancels an update on the specified stack. If the call completes successfully, the stack rolls back the update and reverts to the previous stack configuration.

You can cancel only stacks that are in the UPDATE_IN_PROGRESS state.

#### Examples

- Basic formatting example

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

#### Parameters

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

    The name or the unique stack ID that is associated with the stack.

#### Returns

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

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

Executes the CreateStack operation.

Creates a stack as specified in the template. After the call completes successfully, the stack creation starts. You can check the status of the stack via the DescribeStacks API.

#### Examples

- Basic formatting example

      $result = $client->createStack(array(
          // StackName is required
          'StackName' => 'string',
          'TemplateBody' => 'string',
          'TemplateURL' => 'string',
          'Parameters' => array(
              array(
                  'ParameterKey' => 'string',
                  'ParameterValue' => 'string',
                  'UsePreviousValue' => true || false,
              ),
              // ... repeated
          ),
          'DisableRollback' => true || false,
          'TimeoutInMinutes' => integer,
          'NotificationARNs' => array('string', ... ),
          'Capabilities' => array('string', ... ),
          'ResourceTypes' => array('string', ... ),
          'OnFailure' => 'string',
          'StackPolicyBody' => 'string',
          'StackPolicyURL' => 'string',
          'Tags' => array(
              array(
                  'Key' => 'string',
                  'Value' => 'string',
              ),
              // ... repeated
          ),
      ));

#### Parameters

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

    The name that is associated with the stack. The name must be unique in the region in which you are creating the stack.

    A stack name can contain only alphanumeric characters (case sensitive) and hyphens. It must start with an alphabetic character and cannot be longer than 255 characters.
  - TemplateBody => (string)

    Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. For more information, go to Template Anatomy in the AWS CloudFormation User Guide.

    Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both.

  - TemplateURL => (string)

    Location of file containing the template body. The URL must point to a template (max size: 460,800 bytes) that is located in an Amazon S3 bucket. For more information, go to the Template Anatomy in the AWS CloudFormation User Guide.

    Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both.

  - Parameters => (array<associative-array>)

    A list of Parameter structures that specify input parameters for the stack.

    - (associative-array)

      The Parameter data type.

      - ParameterKey => (string)

        The key associated with the parameter. If you don't specify a key and value for a particular parameter, AWS CloudFormation uses the default value that is specified in your template.

      - ParameterValue => (string)

        The value associated with the parameter.

      - UsePreviousValue => (bool)

        During a stack update, use the existing parameter value that the stack is using for a given parameter key. If you specify true, do not specify a parameter value.

  - DisableRollback => (bool)

    Set to true to disable rollback of the stack if stack creation failed. You can specify either DisableRollback or OnFailure, but not both.

    Default: false

  - TimeoutInMinutes => (int)

    The amount of time that can pass before the stack status becomes CREATE_FAILED; if DisableRollback is not set or is set to false, the stack will be rolled back.

  - NotificationARNs => (array<string>)

    The Simple Notification Service (SNS) topic ARNs to publish stack related events. You can find your SNS topic ARNs using the SNS console or your Command Line Interface (CLI).

  - Capabilities => (array<string: CAPABILITY_IAM >)

    A list of capabilities that you must specify before AWS CloudFormation can create or update certain stacks. Some stack templates might include resources that can affect permissions in your AWS account. For those stacks, you must explicitly acknowledge their capabilities by specifying this parameter.

    Currently, the only valid value is CAPABILITY_IAM, which is required for the following resources: AWS::IAM::AccessKey, AWS::IAM::Group, AWS::IAM::InstanceProfile, AWS::IAM::Policy, AWS::IAM::Role, AWS::IAM::User, and AWS::IAM::UserToGroupAddition. If your stack template contains these resources, we recommend that you review any permissions associated with them. If you don't specify this parameter, this action returns an InsufficientCapabilities error.

  - ResourceTypes => (array<string>)

    The template resource types that you have permissions to work with for this create stack action, such as AWS::EC2::Instance, AWS::EC2::, or Custom::MyCustomInstance. Use the following syntax to describe template resource types: AWS:: (for all AWS resource), Custom::* (for all custom resources), Custom::logical_ID (for a specific custom resource), AWS::service_name::* (for all resources of a particular AWS service), and AWS::service_name::resource_logical_ID (for a specific AWS resource).

    If the list of resource types doesn't include a resource that you're creating, the stack creation fails. By default, AWS CloudFormation grants permissions to all resource types. AWS Identity and Access Management (IAM) uses this parameter for AWS CloudFormation-specific condition keys in IAM policies. For more information, see Controlling Access with AWS Identity and Access Management.

  - OnFailure => (string: DO_NOTHING | ROLLBACK | DELETE )

    Determines what action will be taken if stack creation fails. This must be one of: DO_NOTHING, ROLLBACK, or DELETE. You can specify either OnFailure or DisableRollback, but not both.

    Default: ROLLBACK

  - StackPolicyBody => (string)

    Structure containing the stack policy body. For more information, go to Prevent Updates to Stack Resources in the AWS CloudFormation User Guide. You can specify either the StackPolicyBody or the StackPolicyURL parameter, but not both.

  - StackPolicyURL => (string)

    Location of a file containing the stack policy. The URL must point to a policy (max size: 16KB) located in an S3 bucket in the same region as the stack. You can specify either the StackPolicyBody or the StackPolicyURL parameter, but not both.

  - Tags => (array<associative-array>)

    A set of user-defined Tags to associate with this stack, represented by key/value pairs. Tags defined for the stack are propagated to EC2 resources that are created as part of the stack. A maximum number of 10 tags can be specified.

    - (associative-array)

      The Tag type is used by CreateStack in the Tags parameter. It allows you to specify a key/value pair that can be used to store information related to cost allocation for an AWS CloudFormation stack.

      - Key => (string)

        Required. A string used to identify this tag. You can specify a maximum of 128 characters for a tag key. Tags owned by Amazon Web Services (AWS) have the reserved prefix: aws:.

      - Value => (string)

        Required. A string containing the value for this tag. You can specify a maximum of 256 characters for a tag value.

#### Returns

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

- StackId => (string)

  Unique identifier of the stack.

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

Executes the DeleteStack operation.

Deletes a specified stack. Once the call completes successfully, stack deletion starts. Deleted stacks do not show up in the DescribeStacks API if the deletion has been completed successfully.

#### Examples

- Basic formatting example

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

#### Parameters

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

    The name or the unique stack ID that is associated with the stack.

#### Returns

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

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

Executes the DescribeAccountLimits operation.

Retrieves your account's AWS CloudFormation limits, such as the maximum number of stacks that you can create in your account.

#### Examples

- Basic formatting example

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

#### Parameters

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

    A string that identifies the next page of limits that you want to retrieve.

#### Returns

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

- AccountLimits => (array<associative-array>)

  An account limit structure that contain a list of AWS CloudFormation account limits and their values.

  - (associative-array)

    The AccountLimit data type.

    - Name => (string)

      The name of the account limit. Currently, the only account limit is StackLimit.

    - Value => (int)

      The value that is associated with the account limit name.

- NextToken => (string)

  A string that identifies the next page of limits. If no additional page exists, this value is null.

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

Executes the DescribeStackEvents operation.

Returns all stack related events for a specified stack. For more information about a stack's event history, go to Stacks in the AWS CloudFormation User Guide.

You can list events for stacks that have failed to create or have been deleted by specifying the unique stack identifier (stack ID).

#### Examples

- Basic formatting example

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

#### Parameters

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

    The name or the unique stack ID that is associated with the stack, which are not always interchangeable:

    - Running stacks: You can specify either the stack's name or its unique stack ID.
    - Deleted stacks: You must specify the unique stack ID.

    Default: There is no default value.

  - NextToken => (string)

    String that identifies the start of the next list of events, if there is one.

    Default: There is no default value.

#### Returns

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

- StackEvents => (array<associative-array>)

  A list of StackEvents structures.

  - (associative-array)

    The StackEvent data type.

    - StackId => (string)

      The unique ID name of the instance of the stack.

    - EventId => (string)

      The unique ID of this event.

    - StackName => (string)

      The name associated with a stack.

    - LogicalResourceId => (string)

      The logical name of the resource specified in the template.

    - PhysicalResourceId => (string)

      The name or unique identifier associated with the physical instance of the resource.

    - ResourceType => (string)

      Type of resource. (For more information, go to AWS Resource Types Reference in the AWS CloudFormation User Guide.)

    - Timestamp => (string)

      Time the status was updated.

    - ResourceStatus => (string)

      Current status of the resource.

    - ResourceStatusReason => (string)

      Success/failure message associated with the resource.

    - ResourceProperties => (string)

      BLOB of the properties used to create the resource.

- NextToken => (string)

  String that identifies the start of the next list of events, if there is one.

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

Executes the DescribeStackResource operation.

Returns a description of the specified resource in the specified stack.

For deleted stacks, DescribeStackResource returns resource information for up to 90 days after the stack has been deleted.

#### Examples

- Basic formatting example

      $result = $client->describeStackResource(array(
          // StackName is required
          'StackName' => 'string',
          // LogicalResourceId is required
          'LogicalResourceId' => 'string',
      ));

#### Parameters

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

    The name or the unique stack ID that is associated with the stack, which are not always interchangeable:

    - Running stacks: You can specify either the stack's name or its unique stack ID.
    - Deleted stacks: You must specify the unique stack ID.

    Default: There is no default value.

  - LogicalResourceId => (string)

    The logical name of the resource as specified in the template.

    Default: There is no default value.

#### Returns

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

- StackResourceDetail => (associative-array)

  A StackResourceDetail structure containing the description of the specified resource in the specified stack.

  - StackName => (string)

    The name associated with the stack.

  - StackId => (string)

    Unique identifier of the stack.

  - LogicalResourceId => (string)

    The logical name of the resource specified in the template.

  - PhysicalResourceId => (string)

    The name or unique identifier that corresponds to a physical instance ID of a resource supported by AWS CloudFormation.

  - ResourceType => (string)

    Type of resource. ((For more information, go to AWS Resource Types Reference in the AWS CloudFormation User Guide.)

  - LastUpdatedTimestamp => (string)

    Time the status was updated.

  - ResourceStatus => (string)

    Current status of the resource.

  - ResourceStatusReason => (string)

    Success/failure message associated with the resource.

  - Description => (string)

    User defined description associated with the resource.

  - Metadata => (string)

    The JSON format content of the Metadata attribute declared for the resource. For more information, see Metadata Attribute in the AWS CloudFormation User Guide.

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

Executes the DescribeStackResources operation.

Returns AWS resource descriptions for running and deleted stacks. If StackName is specified, all the associated resources that are part of the stack are returned. If PhysicalResourceId is specified, the associated resources of the stack that the resource belongs to are returned.

Only the first 100 resources will be returned. If your stack has more resources than this, you should use ListStackResources instead.

For deleted stacks, DescribeStackResources returns resource information for up to 90 days after the stack has been deleted.

You must specify either StackName or PhysicalResourceId , but not both. In addition, you can specify LogicalResourceId to filter the returned result. For more information about resources, the LogicalResourceId and PhysicalResourceId , go to the AWS CloudFormation User Guide.

A ValidationError is returned if you specify both StackName and PhysicalResourceId in the same request.

#### Examples

- Basic formatting example

      $result = $client->describeStackResources(array(
          'StackName' => 'string',
          'LogicalResourceId' => 'string',
          'PhysicalResourceId' => 'string',
      ));

#### Parameters

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

    The name or the unique stack ID that is associated with the stack, which are not always interchangeable:

    - Running stacks: You can specify either the stack's name or its unique stack ID.
    - Deleted stacks: You must specify the unique stack ID.

    Default: There is no default value.

    Required: Conditional. If you do not specify StackName, you must specify PhysicalResourceId.

  - LogicalResourceId => (string)

    The logical name of the resource as specified in the template.

    Default: There is no default value.

  - PhysicalResourceId => (string)

    The name or unique identifier that corresponds to a physical instance ID of a resource supported by AWS CloudFormation.

    For example, for an Amazon Elastic Compute Cloud (EC2) instance, PhysicalResourceId corresponds to the InstanceId. You can pass the EC2 InstanceId to DescribeStackResources to find which stack the instance belongs to and what other resources are part of the stack.

    Required: Conditional. If you do not specify PhysicalResourceId, you must specify StackName.

    Default: There is no default value.

#### Returns

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

- StackResources => (array<associative-array>)

  A list of StackResource structures.

  - (associative-array)

    The StackResource data type.

    - StackName => (string)

      The name associated with the stack.

    - StackId => (string)

      Unique identifier of the stack.

    - LogicalResourceId => (string)

      The logical name of the resource specified in the template.

    - PhysicalResourceId => (string)

      The name or unique identifier that corresponds to a physical instance ID of a resource supported by AWS CloudFormation.

    - ResourceType => (string)

      Type of resource. (For more information, go to AWS Resource Types Reference in the AWS CloudFormation User Guide.)

    - Timestamp => (string)

      Time the status was updated.

    - ResourceStatus => (string)

      Current status of the resource.

    - ResourceStatusReason => (string)

      Success/failure message associated with the resource.

    - Description => (string)

      User defined description associated with the resource.

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

Executes the DescribeStacks operation.

Returns the description for the specified stack; if no stack name was specified, then it returns the description for all the stacks created.

#### Examples

- Basic formatting example

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

#### Parameters

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

    The name or the unique stack ID that is associated with the stack, which are not always interchangeable:

    - Running stacks: You can specify either the stack's name or its unique stack ID.
    - Deleted stacks: You must specify the unique stack ID.

    Default: There is no default value.

  - NextToken => (string)
    String that identifies the start of the next list of stacks, if there is one.

#### Returns

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

- Stacks => (array<associative-array>)

  A list of stack structures.

  - (associative-array)

    The Stack data type.

    - StackId => (string)

      Unique identifier of the stack.

    - StackName => (string)

      The name associated with the stack.

    - Description => (string)

      A user-defined description associated with the stack.

    - Parameters => (array<associative-array>)

      A list of Parameter structures.

      - (associative-array)

        The Parameter data type.

        - ParameterKey => (string)

          The key associated with the parameter. If you don't specify a key and value for a particular parameter, AWS CloudFormation uses the default value that is specified in your template.

        - ParameterValue => (string)

          The value associated with the parameter.

        - UsePreviousValue => (bool)

          During a stack update, use the existing parameter value that the stack is using for a given parameter key. If you specify true, do not specify a parameter value.

    - CreationTime => (string)

      The time at which the stack was created.

    - LastUpdatedTime => (string)

      The time the stack was last updated. This field will only be returned if the stack has been updated at least once.

    - StackStatus => (string)

      Current status of the stack.

    - StackStatusReason => (string)

      Success/failure message associated with the stack status.

    - DisableRollback => (bool)

      Boolean to enable or disable rollback on stack creation failures:

      - true: disable rollback
      - false: enable rollback
    - NotificationARNs => (array<string>)

      SNS topic ARNs to which stack related events are published.

    - TimeoutInMinutes => (int)

      The amount of time within which stack creation should complete.

    - Capabilities => (array<string>)

      The capabilities allowed in the stack.

    - Outputs => (array<associative-array>)

      A list of output structures.

      - (associative-array)

        The Output data type.

        - OutputKey => (string)

          The key associated with the output.

        - OutputValue => (string)

          The value associated with the output.

        - Description => (string)

          User defined description associated with the output.

    - Tags => (array<associative-array>)

      A list of Tags that specify cost allocation information for the stack.

      - (associative-array)

        The Tag type is used by CreateStack in the Tags parameter. It allows you to specify a key/value pair that can be used to store information related to cost allocation for an AWS CloudFormation stack.

        - Key => (string)

          Required. A string used to identify this tag. You can specify a maximum of 128 characters for a tag key. Tags owned by Amazon Web Services (AWS) have the reserved prefix: aws:.

        - Value => (string)

          Required. A string containing the value for this tag. You can specify a maximum of 256 characters for a tag value.

- NextToken => (string)
  String that identifies the start of the next list of stacks, if there is one.

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

Executes the EstimateTemplateCost operation.

Returns the estimated monthly cost of a template. The return value is an AWS Simple Monthly Calculator URL with a query string that describes the resources required to run the template.

#### Examples

- Basic formatting example

      $result = $client->estimateTemplateCost(array(
          'TemplateBody' => 'string',
          'TemplateURL' => 'string',
          'Parameters' => array(
              array(
                  'ParameterKey' => 'string',
                  'ParameterValue' => 'string',
                  'UsePreviousValue' => true || false,
              ),
              // ... repeated
          ),
      ));

- Ensures that the client marshals correctly

      $result = $client->estimateTemplateCost(array(
          'TemplateBody' => $templateBody,
          'Parameters' => array(
              array('ParameterKey' => 'KeyName', 'ParameterValue' => 'keypair-name'),
          ),
      ));

      echo 'Result URL: ' . $result['Url'] . "\n";

#### Parameters

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

    Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. (For more information, go to Template Anatomy in the AWS CloudFormation User Guide.)

    Conditional: You must pass TemplateBody or TemplateURL. If both are passed, only TemplateBody is used.

  - TemplateURL => (string)

    Location of file containing the template body. The URL must point to a template that is located in an Amazon S3 bucket. For more information, go to Template Anatomy in the AWS CloudFormation User Guide.

    Conditional: You must pass TemplateURL or TemplateBody. If both are passed, only TemplateBody is used.

  - Parameters => (array<associative-array>)

    A list of Parameter structures that specify input parameters.

    - (associative-array)

      The Parameter data type.

      - ParameterKey => (string)

        The key associated with the parameter. If you don't specify a key and value for a particular parameter, AWS CloudFormation uses the default value that is specified in your template.

      - ParameterValue => (string)

        The value associated with the parameter.

      - UsePreviousValue => (bool)

        During a stack update, use the existing parameter value that the stack is using for a given parameter key. If you specify true, do not specify a parameter value.

#### Returns

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

- Url => (string)

  An AWS Simple Monthly Calculator URL with a query string that describes the resources required to run the template.

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

Executes the GetStackPolicy operation.

Returns the stack policy for a specified stack. If a stack doesn't have a policy, a null value is returned.

#### Examples

- Basic formatting example

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

#### Parameters

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

    The name or unique stack ID that is associated with the stack whose policy you want to get.

#### Returns

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

- StackPolicyBody => (string)

  Structure containing the stack policy body. (For more information, go to Prevent Updates to Stack Resources in the AWS CloudFormation User Guide.)

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

Executes the GetTemplate operation.

Returns the template body for a specified stack. You can get the template for running or deleted stacks.

For deleted stacks, GetTemplate returns the template for up to 90 days after the stack has been deleted.

If the template does not exist, a ValidationError is returned.

#### Examples

- Basic formatting example

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

#### Parameters

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

    The name or the unique stack ID that is associated with the stack, which are not always interchangeable:

    - Running stacks: You can specify either the stack's name or its unique stack ID.
    - Deleted stacks: You must specify the unique stack ID.

    Default: There is no default value.

#### Returns

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

- TemplateBody => (string)

  Structure containing the template body. (For more information, go to Template Anatomy in the AWS CloudFormation User Guide.)

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

Executes the GetTemplateSummary operation.

Returns information about a new or existing template. The GetTemplateSummary action is useful for viewing parameter information, such as default parameter values and parameter types, before you create or update a stack.

You can use the GetTemplateSummary action when you submit a template, or you can get template information for a running or deleted stack.

For deleted stacks, GetTemplateSummary returns the template information for up to 90 days after the stack has been deleted. If the template does not exist, a ValidationError is returned.

#### Examples

- Basic formatting example

      $result = $client->getTemplateSummary(array(
          'TemplateBody' => 'string',
          'TemplateURL' => 'string',
          'StackName' => 'string',
      ));

#### Parameters

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

    Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. For more information about templates, see Template Anatomy in the AWS CloudFormation User Guide.

    Conditional: You must specify only one of the following parameters: StackName, TemplateBody, or TemplateURL.

  - TemplateURL => (string)

    Location of file containing the template body. The URL must point to a template (max size: 460,800 bytes) that is located in an Amazon S3 bucket. For more information about templates, see Template Anatomy in the AWS CloudFormation User Guide.

    Conditional: You must specify only one of the following parameters: StackName, TemplateBody, or TemplateURL.

  - StackName => (string)

    The name or the stack ID that is associated with the stack, which are not always interchangeable. For running stacks, you can specify either the stack's name or its unique stack ID. For deleted stack, you must specify the unique stack ID.

    Conditional: You must specify only one of the following parameters: StackName, TemplateBody, or TemplateURL.

#### Returns

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

- Parameters => (array<associative-array>)

  A list of parameter declarations that describe various properties for each parameter.

  - (associative-array)

    The ParameterDeclaration data type.

    - ParameterKey => (string)

      The name that is associated with the parameter.

    - DefaultValue => (string)

      The default value of the parameter.

    - ParameterType => (string)

      The type of parameter.

    - NoEcho => (bool)

      Flag that indicates whether the parameter value is shown as plain text in logs and in the AWS Management Console.

    - Description => (string)

      The description that is associate with the parameter.

    - ParameterConstraints => (associative-array)

      The criteria that AWS CloudFormation uses to validate parameter values.

      - AllowedValues => (array<string>)

        A list of values that are permitted for a parameter.

- Description => (string)

  The value that is defined in the Description property of the template.

- Capabilities => (array<string>)

  The capabilities found within the template. Currently, AWS CloudFormation supports only the CAPABILITY_IAM capability. If your template contains IAM resources, you must specify the CAPABILITY_IAM value for this parameter when you use the CreateStack or UpdateStack actions with your template; otherwise, those actions return an InsufficientCapabilities error.

- CapabilitiesReason => (string)

  The list of resources that generated the values in the Capabilities response element.

- ResourceTypes => (array<string>)

  A list of all the template resource types that are defined in the template, such as AWS::EC2::Instance, AWS::Dynamo::Table, and Custom::MyCustomInstance. Use the following syntax to describe template resource types: AWS::* (for all AWS resources), Custom::* (for all custom resources), Custom::logical_ID (for a specific custom resource), AWS::service_name::* (for all resources of a particular AWS service), and AWS::service_name::resource_logical_ID (for a specific AWS resource).

- Version => (string)

  The AWS template format version, which identifies the capabilities of the template.

- Metadata => (string)

  The value that is defined for the Metadata property of the template.

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

Executes the ListStackResources operation.

Returns descriptions of all resources of the specified stack.

For deleted stacks, ListStackResources returns resource information for up to 90 days after the stack has been deleted.

#### Examples

- Basic formatting example

      $result = $client->listStackResources(array(
          // StackName is required
          'StackName' => 'string',
          'NextToken' => 'string',
      ));

#### Parameters

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

    The name or the unique stack ID that is associated with the stack, which are not always interchangeable:

    - Running stacks: You can specify either the stack's name or its unique stack ID.
    - Deleted stacks: You must specify the unique stack ID.

    Default: There is no default value.

  - NextToken => (string)

    String that identifies the start of the next list of stack resource summaries, if there is one.

    Default: There is no default value.

#### Returns

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

- StackResourceSummaries => (array<associative-array>)

  A list of StackResourceSummary structures.

  - (associative-array)

    Contains high-level information about the specified stack resource.

    - LogicalResourceId => (string)

      The logical name of the resource specified in the template.

    - PhysicalResourceId => (string)

      The name or unique identifier that corresponds to a physical instance ID of the resource.

    - ResourceType => (string)

      Type of resource. (For more information, go to AWS Resource Types Reference in the AWS CloudFormation User Guide.)

    - LastUpdatedTimestamp => (string)

      Time the status was updated.

    - ResourceStatus => (string)

      Current status of the resource.

    - ResourceStatusReason => (string)

      Success/failure message associated with the resource.

- NextToken => (string)

  String that identifies the start of the next list of stack resources, if there is one.

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

Executes the ListStacks operation.

Returns the summary information for stacks whose status matches the specified StackStatusFilter. Summary information for stacks that have been deleted is kept for 90 days after the stack is deleted. If no StackStatusFilter is specified, summary information for all stacks is returned (including existing stacks and stacks that have been deleted).

#### Examples

- Basic formatting example

      $result = $client->listStacks(array(
          'NextToken' => 'string',
          'StackStatusFilter' => array('string', ... ),
      ));

- Iterate over the results of a ListStacks operation

      $result = $this->client->listStacks();
      $stacks = $result['StackSummaries'];

      // Or load the stacks as an iterator
      $iterator = $client->getIterator('ListStacks');
      $stacks = $iterator->toArray();

#### Parameters

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

    String that identifies the start of the next list of stacks, if there is one.

    Default: There is no default value.

  - StackStatusFilter => (array<string: CREATE_IN_PROGRESS | CREATE_FAILED | CREATE_COMPLETE | ROLLBACK_IN_PROGRESS | ROLLBACK_FAILED | ROLLBACK_COMPLETE | DELETE_IN_PROGRESS | DELETE_FAILED | DELETE_COMPLETE | UPDATE_IN_PROGRESS | UPDATE_COMPLETE_CLEANUP_IN_PROGRESS | UPDATE_COMPLETE | UPDATE_ROLLBACK_IN_PROGRESS | UPDATE_ROLLBACK_FAILED | UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS | UPDATE_ROLLBACK_COMPLETE >)

    Stack status to use as a filter. Specify one or more stack status codes to list only stacks with the specified status codes. For a complete list of stack status codes, see the StackStatus parameter of the Stack data type.

#### Returns

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

- StackSummaries => (array<associative-array>)

  A list of StackSummary structures containing information about the specified stacks.

  - (associative-array)

    The StackSummary Data Type

    - StackId => (string)

      Unique stack identifier.

    - StackName => (string)

      The name associated with the stack.

    - TemplateDescription => (string)

      The template description of the template used to create the stack.

    - CreationTime => (string)

      The time the stack was created.

    - LastUpdatedTime => (string)

      The time the stack was last updated. This field will only be returned if the stack has been updated at least once.

    - DeletionTime => (string)

      The time the stack was deleted.

    - StackStatus => (string)

      The current status of the stack.

    - StackStatusReason => (string)

      Success/Failure message associated with the stack status.

- NextToken => (string)

  String that identifies the start of the next list of stacks, if there is one.

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

Executes the SetStackPolicy operation.

Sets a stack policy for a specified stack.

#### Examples

- Basic formatting example

      $result = $client->setStackPolicy(array(
          // StackName is required
          'StackName' => 'string',
          'StackPolicyBody' => 'string',
          'StackPolicyURL' => 'string',
      ));

#### Parameters

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

    The name or unique stack ID that you want to associate a policy with.

  - StackPolicyBody => (string)

    Structure containing the stack policy body. For more information, go to Prevent Updates to Stack Resources in the AWS CloudFormation User Guide. You can specify either the StackPolicyBody or the StackPolicyURL parameter, but not both.

  - StackPolicyURL => (string)

    Location of a file containing the stack policy. The URL must point to a policy (max size: 16KB) located in an S3 bucket in the same region as the stack. You can specify either the StackPolicyBody or the StackPolicyURL parameter, but not both.

#### Returns

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

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

Executes the SignalResource operation.

Sends a signal to the specified resource with a success or failure status. You can use the SignalResource API in conjunction with a creation policy or update policy. AWS CloudFormation doesn't proceed with a stack creation or update until resources receive the required number of signals or the timeout period is exceeded. The SignalResource API is useful in cases where you want to send signals from anywhere other than an Amazon EC2 instance.

#### Examples

- Basic formatting example

      $result = $client->signalResource(array(
          // StackName is required
          'StackName' => 'string',
          // LogicalResourceId is required
          'LogicalResourceId' => 'string',
          // UniqueId is required
          'UniqueId' => 'string',
          // Status is required
          'Status' => 'string',
      ));

#### Parameters

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

    The stack name or unique stack ID that includes the resource that you want to signal.

  - LogicalResourceId => (string)

    The logical ID of the resource that you want to signal. The logical ID is the name of the resource that given in the template.

  - UniqueId => (string)

    A unique ID of the signal. When you signal Amazon EC2 instances or Auto Scaling groups, specify the instance ID that you are signaling as the unique ID. If you send multiple signals to a single resource (such as signaling a wait condition), each signal requires a different unique ID.

  - Status => (string: SUCCESS | FAILURE )

    The status of the signal, which is either success or failure. A failure signal causes AWS CloudFormation to immediately fail the stack creation or update.

#### Returns

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

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

Executes the UpdateStack operation.

Updates a stack as specified in the template. After the call completes successfully, the stack update starts. You can check the status of the stack via the DescribeStacks action.

To get a copy of the template for an existing stack, you can use the GetTemplate action.

Tags that were associated with this stack during creation time will still be associated with the stack after an UpdateStack operation.

For more information about creating an update template, updating a stack, and monitoring the progress of the update, see Updating a Stack.

#### Examples

- Basic formatting example

      $result = $client->updateStack(array(
          // StackName is required
          'StackName' => 'string',
          'TemplateBody' => 'string',
          'TemplateURL' => 'string',
          'UsePreviousTemplate' => true || false,
          'StackPolicyDuringUpdateBody' => 'string',
          'StackPolicyDuringUpdateURL' => 'string',
          'Parameters' => array(
              array(
                  'ParameterKey' => 'string',
                  'ParameterValue' => 'string',
                  'UsePreviousValue' => true || false,
              ),
              // ... repeated
          ),
          'Capabilities' => array('string', ... ),
          'ResourceTypes' => array('string', ... ),
          'StackPolicyBody' => 'string',
          'StackPolicyURL' => 'string',
          'NotificationARNs' => array('string', ... ),
      ));

#### Parameters

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

    The name or unique stack ID of the stack to update.

  - TemplateBody => (string)

    Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. (For more information, go to Template Anatomy in the AWS CloudFormation User Guide.)

    Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both.

  - TemplateURL => (string)

    Location of file containing the template body. The URL must point to a template that is located in an Amazon S3 bucket. For more information, go to Template Anatomy in the AWS CloudFormation User Guide.

    Conditional: You must specify either the TemplateBody or the TemplateURL parameter, but not both.

  - UsePreviousTemplate => (bool)

    Reuse the existing template that is associated with the stack that you are updating.

  - StackPolicyDuringUpdateBody => (string)

    Structure containing the temporary overriding stack policy body. You can specify either the StackPolicyDuringUpdateBody or the StackPolicyDuringUpdateURL parameter, but not both.

    If you want to update protected resources, specify a temporary overriding stack policy during this update. If you do not specify a stack policy, the current policy that is associated with the stack will be used.

  - StackPolicyDuringUpdateURL => (string)

    Location of a file containing the temporary overriding stack policy. The URL must point to a policy (max size: 16KB) located in an S3 bucket in the same region as the stack. You can specify either the StackPolicyDuringUpdateBody or the StackPolicyDuringUpdateURL parameter, but not both.

    If you want to update protected resources, specify a temporary overriding stack policy during this update. If you do not specify a stack policy, the current policy that is associated with the stack will be used.

  - Parameters => (array<associative-array>)

    A list of Parameter structures that specify input parameters for the stack. For more information, see the Parameter data type.

    - (associative-array)

      The Parameter data type.

      - ParameterKey => (string)

        The key associated with the parameter. If you don't specify a key and value for a particular parameter, AWS CloudFormation uses the default value that is specified in your template.

      - ParameterValue => (string)

        The value associated with the parameter.

      - UsePreviousValue => (bool)

        During a stack update, use the existing parameter value that the stack is using for a given parameter key. If you specify true, do not specify a parameter value.

  - Capabilities => (array<string: CAPABILITY_IAM >)

    A list of capabilities that you must specify before AWS CloudFormation can create or update certain stacks. Some stack templates might include resources that can affect permissions in your AWS account. For those stacks, you must explicitly acknowledge their capabilities by specifying this parameter. Currently, the only valid value is CAPABILITY_IAM, which is required for the following resources: AWS::IAM::AccessKey, AWS::IAM::Group, AWS::IAM::InstanceProfile, AWS::IAM::Policy, AWS::IAM::Role, AWS::IAM::User, and AWS::IAM::UserToGroupAddition. If your stack template contains these resources, we recommend that you review any permissions associated with them. If you don't specify this parameter, this action returns an InsufficientCapabilities error.

  - ResourceTypes => (array<string>)

    The template resource types that you have permissions to work with for this update stack action, such as AWS::EC2::Instance, AWS::EC2::*, or Custom::MyCustomInstance.

    If the list of resource types doesn't include a resource that you're updating, the stack update fails. By default, AWS CloudFormation grants permissions to all resource types. AWS Identity and Access Management (IAM) uses this parameter for AWS CloudFormation-specific condition keys in IAM policies. For more information, see Controlling Access with AWS Identity and Access Management

  - StackPolicyBody => (string)

    Structure containing a new stack policy body. You can specify either the StackPolicyBody or the StackPolicyURL parameter, but not both.

    You might update the stack policy, for example, in order to protect a new resource that you created during a stack update. If you do not specify a stack policy, the current policy that is associated with the stack is unchanged.

  - StackPolicyURL => (string)

    Location of a file containing the updated stack policy. The URL must point to a policy (max size: 16KB) located in an S3 bucket in the same region as the stack. You can specify either the StackPolicyBody or the StackPolicyURL parameter, but not both.

    You might update the stack policy, for example, in order to protect a new resource that you created during a stack update. If you do not specify a stack policy, the current policy that is associated with the stack is unchanged.

  - NotificationARNs => (array<string>)

    Update the ARNs for the Amazon SNS topics that are associated with the stack.

#### Returns

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

- StackId => (string)

  Unique identifier of the stack.

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

Executes the ValidateTemplate operation.

Validates a specified template.

#### Examples

- Basic formatting example

      $result = $client->validateTemplate(array(
          'TemplateBody' => 'string',
          'TemplateURL' => 'string',
      ));

#### Parameters

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

    Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. For more information, go to Template Anatomy in the AWS CloudFormation User Guide.

    Conditional: You must pass TemplateURL or TemplateBody. If both are passed, only TemplateBody is used.

  - TemplateURL => (string)

    Location of file containing the template body. The URL must point to a template (max size: 460,800 bytes) that is located in an Amazon S3 bucket. For more information, go to Template Anatomy in the AWS CloudFormation User Guide.

    Conditional: You must pass TemplateURL or TemplateBody. If both are passed, only TemplateBody is used.

#### Returns

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

- Parameters => (array<associative-array>)

  A list of TemplateParameter structures.

  - (associative-array)

    The TemplateParameter data type.

    - ParameterKey => (string)

      The name associated with the parameter.

    - DefaultValue => (string)

      The default value associated with the parameter.

    - NoEcho => (bool)

      Flag indicating whether the parameter should be displayed as plain text in logs and UIs.

    - Description => (string)

      User defined description associated with the parameter.

- Description => (string)

  The description found within the template.

- Capabilities => (array<string>)

  The capabilities found within the template. Currently, AWS CloudFormation supports only the CAPABILITY_IAM capability. If your template contains IAM resources, you must specify the CAPABILITY_IAM value for this parameter when you use the CreateStack or UpdateStack actions with your template; otherwise, those actions return an InsufficientCapabilities error.

- CapabilitiesReason => (string)

  The list of resources that generated the values in the Capabilities response element.

# `public `Guzzle\Service\Resource\ResourceIteratorInterface``
`getDescribeStackEventsIterator( array $args = array() )`

The input array uses the parameters of the DescribeStackEvents operation

#### Parameters

$args
  `array`
  $args

#### Returns

``Guzzle\Service\Resource\ResourceIteratorInterface``
# `public `Guzzle\Service\Resource\ResourceIteratorInterface``
`getDescribeStackResourcesIterator( array $args = array() )`

The input array uses the parameters of the DescribeStackResources operation

#### Parameters

$args
  `array`
  $args

#### Returns

``Guzzle\Service\Resource\ResourceIteratorInterface``
# `public `Guzzle\Service\Resource\ResourceIteratorInterface``
`getDescribeStacksIterator( array $args = array() )`

The input array uses the parameters of the DescribeStacks operation

#### Parameters

$args
  `array`
  $args

#### Returns

``Guzzle\Service\Resource\ResourceIteratorInterface``
# `public `Guzzle\Service\Resource\ResourceIteratorInterface``
`getListStackResourcesIterator( array $args = array() )`

The input array uses the parameters of the ListStackResources operation

#### Parameters

$args
  `array`
  $args

#### Returns

``Guzzle\Service\Resource\ResourceIteratorInterface``
# `public `Guzzle\Service\Resource\ResourceIteratorInterface``
`getListStacksIterator( array $args = array() )`

The input array uses the parameters of the ListStacks operation

#### Parameters

$args
  `array`
  $args

#### Returns

``Guzzle\Service\Resource\ResourceIteratorInterface``

### 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()`, `getConfig()`, `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` | `'2010-05-15'` | #

### 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`