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

# Class CloudWatchClient

Client to interact with Amazon CloudWatch

  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\CloudWatch\CloudWatchClient

Namespace: Aws\CloudWatch
Link: User guide
Link: API docs
Located at Aws/CloudWatch/CloudWatchClient.php

## Methods summary

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

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

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

  Executes the DeleteAlarms operation.

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

  Executes the DescribeAlarmHistory operation.

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

  Executes the DescribeAlarms operation.

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

  Executes the DescribeAlarmsForMetric operation.

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

  Executes the DisableAlarmActions operation.

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

  Executes the EnableAlarmActions operation.

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

  Executes the GetMetricStatistics operation.

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

  Executes the ListHostInfo operation.

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

  Executes the ListMetrics operation.

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

  Executes the PutMetricAlarm operation.

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

  Executes the PutMetricData operation.

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

  Executes the PutMetricDataBatch operation.

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

  Executes the SetAlarmState operation.

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

  The input array uses the parameters of the DescribeAlarmHistory operation

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

  The input array uses the parameters of the DescribeAlarms operation

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

  The input array uses the parameters of the DescribeAlarmsForMetric operation

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

  The input array uses the parameters of the ListMetrics operation

## Methods detail

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

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

#### Parameters

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

#### Returns

``Aws\CloudWatch\CloudWatchClient``

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

Executes the DeleteAlarms operation.

Deletes all specified alarms. In the event of an error, no alarms are deleted.

#### Examples

- Basic formatting example

      $result = $client->deleteAlarms(array(
          // AlarmNames is required
          'AlarmNames' => array('string', ... ),
      ));

#### Parameters

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

    A list of alarms to be deleted.

#### Returns

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

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

Executes the DescribeAlarmHistory operation.

Retrieves history for the specified alarm. Filter alarms by date range or item type. If an alarm name is not specified, Amazon CloudWatch returns histories for all of the owner's alarms.

Amazon CloudWatch retains the history of an alarm for two weeks, whether or not you delete the alarm.

#### Examples

- Basic formatting example

      $result = $client->describeAlarmHistory(array(
          'AlarmName' => 'string',
          'HistoryItemType' => 'string',
          'StartDate' => 'mixed type: string (date format)|int (unix timestamp)|\DateTime',
          'EndDate' => 'mixed type: string (date format)|int (unix timestamp)|\DateTime',
          'MaxRecords' => integer,
          'NextToken' => 'string',
      ));

#### Parameters

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

    The name of the alarm.

  - HistoryItemType => (string: ConfigurationUpdate | StateUpdate | Action )

    The type of alarm histories to retrieve.

  - StartDate => (string [date format]|int [unix timestamp]|\DateTime)

    The starting date to retrieve alarm history.

  - EndDate => (string [date format]|int [unix timestamp]|\DateTime)

    The ending date to retrieve alarm history.

  - MaxRecords => (int)

    The maximum number of alarm history records to retrieve.

  - NextToken => (string)

    The token returned by a previous call to indicate that there is more data available.

#### Returns

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

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

  A list of alarm histories in JSON format.

  - (associative-array)

    The AlarmHistoryItem data type contains descriptive information about the history of a specific alarm. If you call DescribeAlarmHistory, Amazon CloudWatch returns this data type as part of the DescribeAlarmHistoryResult data type.

    - AlarmName => (string)

      The descriptive name for the alarm.

    - Timestamp => (string)

      The time stamp for the alarm history item. Amazon CloudWatch uses Coordinated Universal Time (UTC) when returning time stamps, which do not accommodate seasonal adjustments such as daylight savings time. For more information, see Time stamps in the Amazon CloudWatch Developer Guide.

    - HistoryItemType => (string)

      The type of alarm history item.

    - HistorySummary => (string)

      A human-readable summary of the alarm history.

    - HistoryData => (string)

      Machine-readable data about the alarm in JSON format.

- NextToken => (string)

  A string that marks the start of the next batch of returned results.

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

Executes the DescribeAlarms operation.

Retrieves alarms with the specified names. If no name is specified, all alarms for the user are returned. Alarms can be retrieved by using only a prefix for the alarm name, the alarm state, or a prefix for any action.

#### Examples

- Basic formatting example

      $result = $client->describeAlarms(array(
          'AlarmNames' => array('string', ... ),
          'AlarmNamePrefix' => 'string',
          'StateValue' => 'string',
          'ActionPrefix' => 'string',
          'MaxRecords' => integer,
          'NextToken' => 'string',
      ));

#### Parameters

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

    A list of alarm names to retrieve information for.

  - AlarmNamePrefix => (string)

    The alarm name prefix. AlarmNames cannot be specified if this parameter is specified.

  - StateValue => (string: OK | ALARM | INSUFFICIENT_DATA )

    The state value to be used in matching alarms.

  - ActionPrefix => (string)

    The action name prefix.

  - MaxRecords => (int)

    The maximum number of alarm descriptions to retrieve.

  - NextToken => (string)

    The token returned by a previous call to indicate that there is more data available.

#### Returns

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

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

  A list of information for the specified alarms.

  - (associative-array)

    The MetricAlarm data type represents an alarm. You can use PutMetricAlarm to create or update an alarm.

    - AlarmName => (string)

      The name of the alarm.

    - AlarmArn => (string)

      The Amazon Resource Name (ARN) of the alarm.

    - AlarmDescription => (string)

      The description for the alarm.

    - AlarmConfigurationUpdatedTimestamp => (string)

      The time stamp of the last update to the alarm configuration. Amazon CloudWatch uses Coordinated Universal Time (UTC) when returning time stamps, which do not accommodate seasonal adjustments such as daylight savings time. For more information, see Time stamps in the Amazon CloudWatch Developer Guide.

    - ActionsEnabled => (bool)

      Indicates whether actions should be executed during any changes to the alarm's state.

    - OKActions => (array<string>)

      The list of actions to execute when this alarm transitions into an OK state from any other state. Each action is specified as an Amazon Resource Number (ARN). Currently the only actions supported are publishing to an Amazon SNS topic and triggering an Auto Scaling policy.

    - AlarmActions => (array<string>)

      The list of actions to execute when this alarm transitions into an ALARM state from any other state. Each action is specified as an Amazon Resource Number (ARN). Currently the only actions supported are publishing to an Amazon SNS topic and triggering an Auto Scaling policy.

    - InsufficientDataActions => (array<string>)

      The list of actions to execute when this alarm transitions into an INSUFFICIENT_DATA state from any other state. Each action is specified as an Amazon Resource Number (ARN). Currently the only actions supported are publishing to an Amazon SNS topic or triggering an Auto Scaling policy.

      The current WSDL lists this attribute as UnknownActions.
    - StateValue => (string)

      The state value for the alarm.

    - StateReason => (string)

      A human-readable explanation for the alarm's state.

    - StateReasonData => (string)

      An explanation for the alarm's state in machine-readable JSON format

    - StateUpdatedTimestamp => (string)

      The time stamp of the last update to the alarm's state. Amazon CloudWatch uses Coordinated Universal Time (UTC) when returning time stamps, which do not accommodate seasonal adjustments such as daylight savings time. For more information, see Time stamps in the Amazon CloudWatch Developer Guide.

    - MetricName => (string)

      The name of the alarm's metric.

    - Namespace => (string)

      The namespace of alarm's associated metric.

    - Statistic => (string)

      The statistic to apply to the alarm's associated metric.

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

      The list of dimensions associated with the alarm's associated metric.

      - (associative-array)

        The Dimension data type further expands on the identity of a metric using a Name, Value pair.

        For examples that use one or more dimensions, see PutMetricData.

        - Name => (string)

          The name of the dimension.

        - Value => (string)

          The value representing the dimension measurement

    - Period => (int)

      The period in seconds over which the statistic is applied.

    - Unit => (string)

      The unit of the alarm's associated metric.

    - EvaluationPeriods => (int)

      The number of periods over which data is compared to the specified threshold.

    - Threshold => (int)

      The value against which the specified statistic is compared.

    - ComparisonOperator => (string)

      The arithmetic operation to use when comparing the specified Statistic and Threshold. The specified Statistic value is used as the first operand.

- NextToken => (string)

  A string that marks the start of the next batch of returned results.

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

Executes the DescribeAlarmsForMetric operation.

Retrieves all alarms for a single metric. Specify a statistic, period, or unit to filter the set of alarms further.

#### Examples

- Basic formatting example

      $result = $client->describeAlarmsForMetric(array(
          // MetricName is required
          'MetricName' => 'string',
          // Namespace is required
          'Namespace' => 'string',
          'Statistic' => 'string',
          'Dimensions' => array(
              array(
                  // Name is required
                  'Name' => 'string',
                  // Value is required
                  'Value' => 'string',
              ),
              // ... repeated
          ),
          'Period' => integer,
          'Unit' => 'string',
      ));

#### Parameters

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

    The name of the metric.

  - Namespace => (string)

    The namespace of the metric.

  - Statistic => (string: SampleCount | Average | Sum | Minimum | Maximum )

    The statistic for the metric.

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

    The list of dimensions associated with the metric.

    - (associative-array)

      The Dimension data type further expands on the identity of a metric using a Name, Value pair.

      For examples that use one or more dimensions, see PutMetricData.

      - Name => (string)

        The name of the dimension.

      - Value => (string)

        The value representing the dimension measurement

  - Period => (int)

    The period in seconds over which the statistic is applied.

  - Unit => (string: Seconds | Microseconds | Milliseconds | Bytes | Kilobytes | Megabytes | Gigabytes | Terabytes | Bits | Kilobits | Megabits | Gigabits | Terabits | Percent | Count | Bytes/Second | Kilobytes/Second | Megabytes/Second | Gigabytes/Second | Terabytes/Second | Bits/Second | Kilobits/Second | Megabits/Second | Gigabits/Second | Terabits/Second | Count/Second | None )

    The unit for the metric.

#### Returns

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

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

  A list of information for each alarm with the specified metric.

  - (associative-array)

    The MetricAlarm data type represents an alarm. You can use PutMetricAlarm to create or update an alarm.

    - AlarmName => (string)

      The name of the alarm.

    - AlarmArn => (string)

      The Amazon Resource Name (ARN) of the alarm.

    - AlarmDescription => (string)

      The description for the alarm.

    - AlarmConfigurationUpdatedTimestamp => (string)

      The time stamp of the last update to the alarm configuration. Amazon CloudWatch uses Coordinated Universal Time (UTC) when returning time stamps, which do not accommodate seasonal adjustments such as daylight savings time. For more information, see Time stamps in the Amazon CloudWatch Developer Guide.

    - ActionsEnabled => (bool)

      Indicates whether actions should be executed during any changes to the alarm's state.

    - OKActions => (array<string>)

      The list of actions to execute when this alarm transitions into an OK state from any other state. Each action is specified as an Amazon Resource Number (ARN). Currently the only actions supported are publishing to an Amazon SNS topic and triggering an Auto Scaling policy.

    - AlarmActions => (array<string>)

      The list of actions to execute when this alarm transitions into an ALARM state from any other state. Each action is specified as an Amazon Resource Number (ARN). Currently the only actions supported are publishing to an Amazon SNS topic and triggering an Auto Scaling policy.

    - InsufficientDataActions => (array<string>)

      The list of actions to execute when this alarm transitions into an INSUFFICIENT_DATA state from any other state. Each action is specified as an Amazon Resource Number (ARN). Currently the only actions supported are publishing to an Amazon SNS topic or triggering an Auto Scaling policy.

      The current WSDL lists this attribute as UnknownActions.
    - StateValue => (string)

      The state value for the alarm.

    - StateReason => (string)

      A human-readable explanation for the alarm's state.

    - StateReasonData => (string)

      An explanation for the alarm's state in machine-readable JSON format

    - StateUpdatedTimestamp => (string)

      The time stamp of the last update to the alarm's state. Amazon CloudWatch uses Coordinated Universal Time (UTC) when returning time stamps, which do not accommodate seasonal adjustments such as daylight savings time. For more information, see Time stamps in the Amazon CloudWatch Developer Guide.

    - MetricName => (string)

      The name of the alarm's metric.

    - Namespace => (string)

      The namespace of alarm's associated metric.

    - Statistic => (string)

      The statistic to apply to the alarm's associated metric.

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

      The list of dimensions associated with the alarm's associated metric.

      - (associative-array)

        The Dimension data type further expands on the identity of a metric using a Name, Value pair.

        For examples that use one or more dimensions, see PutMetricData.

        - Name => (string)

          The name of the dimension.

        - Value => (string)

          The value representing the dimension measurement

    - Period => (int)

      The period in seconds over which the statistic is applied.

    - Unit => (string)

      The unit of the alarm's associated metric.

    - EvaluationPeriods => (int)

      The number of periods over which data is compared to the specified threshold.

    - Threshold => (int)

      The value against which the specified statistic is compared.

    - ComparisonOperator => (string)

      The arithmetic operation to use when comparing the specified Statistic and Threshold. The specified Statistic value is used as the first operand.

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

Executes the DisableAlarmActions operation.

Disables actions for the specified alarms. When an alarm's actions are disabled the alarm's state may change, but none of the alarm's actions will execute.

#### Examples

- Basic formatting example

      $result = $client->disableAlarmActions(array(
          // AlarmNames is required
          'AlarmNames' => array('string', ... ),
      ));

#### Parameters

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

    The names of the alarms to disable actions for.

#### Returns

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

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

Executes the EnableAlarmActions operation.

Enables actions for the specified alarms.

#### Examples

- Basic formatting example

      $result = $client->enableAlarmActions(array(
          // AlarmNames is required
          'AlarmNames' => array('string', ... ),
      ));

#### Parameters

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

    The names of the alarms to enable actions for.

#### Returns

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

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

Executes the GetMetricStatistics operation.

Gets statistics for the specified metric.

The maximum number of data points returned from a single GetMetricStatistics request is 1,440, wereas the maximum number of data points that can be queried is 50,850. If you make a request that generates more than 1,440 data points, Amazon CloudWatch returns an error. In such a case, you can alter the request by narrowing the specified time range or increasing the specified period. Alternatively, you can make multiple requests across adjacent time ranges.

Amazon CloudWatch aggregates data points based on the length of the period that you specify. For example, if you request statistics with a one-minute granularity, Amazon CloudWatch aggregates data points with time stamps that fall within the same one-minute period. In such a case, the data points queried can greatly outnumber the data points returned.

The following examples show various statistics allowed by the data point query maximum of 50,850 when you call GetMetricStatistics on Amazon EC2 instances with detailed (one-minute) monitoring enabled:

- Statistics for up to 400 instances for a span of one hour
- Statistics for up to 35 instances over a span of 24 hours
- Statistics for up to 2 instances over a span of 2 weeks

For information about the namespace, metric names, and dimensions that other Amazon Web Services products use to send metrics to Cloudwatch, go to Amazon CloudWatch Metrics, Namespaces, and Dimensions Reference in the Amazon CloudWatch Developer Guide.

#### Examples

- Basic formatting example

      $result = $client->getMetricStatistics(array(
          // Namespace is required
          'Namespace' => 'string',
          // MetricName is required
          'MetricName' => 'string',
          'Dimensions' => array(
              array(
                  // Name is required
                  'Name' => 'string',
                  // Value is required
                  'Value' => 'string',
              ),
              // ... repeated
          ),
          // StartTime is required
          'StartTime' => 'mixed type: string (date format)|int (unix timestamp)|\DateTime',
          // EndTime is required
          'EndTime' => 'mixed type: string (date format)|int (unix timestamp)|\DateTime',
          // Period is required
          'Period' => integer,
          // Statistics is required
          'Statistics' => array('string', ... ),
          'Unit' => 'string',
      ));

- GetMetricStatistics

      $dimensions = array(
          array('Name' => 'Prefix', 'Value' => $prefix),
      );

      $result = $client->getMetricStatistics(array(
          'Namespace'  => 'AWSSDKPHP',
          'MetricName' => 'CloudWatchTests',
          'Dimensions' => $dimensions,
          'StartTime'  => strtotime('-1 days'),
          'EndTime'    => strtotime('now'),
          'Period'     => 3000,
          'Statistics' => array('Maximum', 'Minimum'),
      ));

#### Parameters

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

    The namespace of the metric, with or without spaces.

  - MetricName => (string)

    The name of the metric, with or without spaces.

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

    A list of dimensions describing qualities of the metric.

    - (associative-array)

      The Dimension data type further expands on the identity of a metric using a Name, Value pair.

      For examples that use one or more dimensions, see PutMetricData.

      - Name => (string)

        The name of the dimension.

      - Value => (string)

        The value representing the dimension measurement

  - StartTime => (string [date format]|int [unix timestamp]|\DateTime)

    The time stamp to use for determining the first datapoint to return. The value specified is inclusive; results include datapoints with the time stamp specified.

    The specified start time is rounded down to the nearest value. Datapoints are returned for start times up to two weeks in the past. Specified start times that are more than two weeks in the past will not return datapoints for metrics that are older than two weeks.

    Data that is timestamped 24 hours or more in the past may take in excess of 48 hours to become available from submission time using GetMetricStatistics.

  - EndTime => (string [date format]|int [unix timestamp]|\DateTime)

    The time stamp to use for determining the last datapoint to return. The value specified is exclusive; results will include datapoints up to the time stamp specified.

  - Period => (int)

    The granularity, in seconds, of the returned datapoints. Period must be at least 60 seconds and must be a multiple of 60. The default value is 60.

  - Statistics => (array<string: SampleCount | Average | Sum | Minimum | Maximum >)

    The metric statistics to return. For information about specific statistics returned by GetMetricStatistics, go to Statistics in the Amazon CloudWatch Developer Guide.

    Valid Values: Average | Sum | SampleCount | Maximum | Minimum

  - Unit => (string: Seconds | Microseconds | Milliseconds | Bytes | Kilobytes | Megabytes | Gigabytes | Terabytes | Bits | Kilobits | Megabits | Gigabits | Terabits | Percent | Count | Bytes/Second | Kilobytes/Second | Megabytes/Second | Gigabytes/Second | Terabytes/Second | Bits/Second | Kilobits/Second | Megabits/Second | Gigabits/Second | Terabits/Second | Count/Second | None )

    The unit for the metric.

#### Returns

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

- Label => (string)

  A label describing the specified metric.

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

  The datapoints for the specified metric.

  - (associative-array)

    The Datapoint data type encapsulates the statistical data that Amazon CloudWatch computes from metric data.

    - Timestamp => (string)

      The time stamp used for the datapoint. Amazon CloudWatch uses Coordinated Universal Time (UTC) when returning time stamps, which do not accommodate seasonal adjustments such as daylight savings time. For more information, see Time stamps in the Amazon CloudWatch Developer Guide.

    - SampleCount => (int)

      The number of metric values that contributed to the aggregate value of this datapoint.

    - Average => (int)

      The average of metric values that correspond to the datapoint.

    - Sum => (int)

      The sum of metric values used for the datapoint.

    - Minimum => (int)

      The minimum metric value used for the datapoint.

    - Maximum => (int)

      The maximum of the metric value used for the datapoint.

    - Unit => (string)

      The standard unit used for the datapoint.

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

Executes the ListHostInfo operation.

#### Returns

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

- HostName => (string)
- StackName => (string)
- Marketplace => (string)
- Region => (string)
- SdbDatastoreEndpoints => (array<string>)
- DatastoreEndpoints => (array<string>)
- AmpQueues => (array<string>)

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

Executes the ListMetrics operation.

Returns a list of valid metrics stored for the AWS account owner. Returned metrics can be used with GetMetricStatistics to obtain statistical data for a given metric.

Up to 500 results are returned for any one call. To retrieve further results, use returned NextToken values with subsequent ListMetrics operations. If you create a metric with the PutMetricData action, allow up to fifteen minutes for the metric to appear in calls to the ListMetrics action. Statistics about the metric, however, are available sooner using GetMetricStatistics.

#### Examples

- Basic formatting example

      $result = $client->listMetrics(array(
          'Namespace' => 'string',
          'MetricName' => 'string',
          'Dimensions' => array(
              array(
                  // Name is required
                  'Name' => 'string',
                  'Value' => 'string',
              ),
              // ... repeated
          ),
          'NextToken' => 'string',
      ));

- Lists metrics

      $iterator = $client->getIterator('ListMetrics', array(
          'Namespace' => 'AWSSDKPHP'
      ));

      foreach ($iterator as $metric) {
          echo $metric['MetricName'] . ' - '
              . $metric['Dimensions'][0]['Name'] . ' - '
              . $metric['Dimensions'][0]['Value'] . "\n";
      }

#### Parameters

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

    The namespace to filter against.

  - MetricName => (string)

    The name of the metric to filter against.

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

    A list of dimensions to filter against.

    - (associative-array)

      The DimensionFilter data type is used to filter ListMetrics results.

      - Name => (string)

        The dimension name to be matched.

      - Value => (string)

        The value of the dimension to be matched.

        Specifying a Name without specifying a Value returns all values associated with that Name.
  - NextToken => (string)

    The token returned by a previous call to indicate that there is more data available.

#### Returns

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

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

  A list of metrics used to generate statistics for an AWS account.

  - (associative-array)

    The Metric data type contains information about a specific metric. If you call ListMetrics, Amazon CloudWatch returns information contained by this data type.

    The example in the Examples section publishes two metrics named buffers and latency. Both metrics are in the examples namespace. Both metrics have two dimensions, InstanceID and InstanceType.

    - Namespace => (string)

      The namespace of the metric.

    - MetricName => (string)

      The name of the metric.

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

      A list of dimensions associated with the metric.

      - (associative-array)

        The Dimension data type further expands on the identity of a metric using a Name, Value pair.

        For examples that use one or more dimensions, see PutMetricData.

        - Name => (string)

          The name of the dimension.

        - Value => (string)

          The value representing the dimension measurement

- NextToken => (string)

  A string that marks the start of the next batch of returned results.

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

Executes the PutMetricAlarm operation.

Creates or updates an alarm and associates it with the specified Amazon CloudWatch metric. Optionally, this operation can associate one or more Amazon Simple Notification Service resources with the alarm.

When this operation creates an alarm, the alarm state is immediately set to INSUFFICIENT_DATA . The alarm is evaluated and its StateValue is set appropriately. Any actions associated with the StateValue is then executed.

When updating an existing alarm, its StateValue is left unchanged.

#### Examples

- Basic formatting example

      $result = $client->putMetricAlarm(array(
          // AlarmName is required
          'AlarmName' => 'string',
          'AlarmDescription' => 'string',
          'ActionsEnabled' => true || false,
          'OKActions' => array('string', ... ),
          'AlarmActions' => array('string', ... ),
          'InsufficientDataActions' => array('string', ... ),
          // MetricName is required
          'MetricName' => 'string',
          // Namespace is required
          'Namespace' => 'string',
          // Statistic is required
          'Statistic' => 'string',
          'Dimensions' => array(
              array(
                  // Name is required
                  'Name' => 'string',
                  // Value is required
                  'Value' => 'string',
              ),
              // ... repeated
          ),
          // Period is required
          'Period' => integer,
          'Unit' => 'string',
          // EvaluationPeriods is required
          'EvaluationPeriods' => integer,
          // Threshold is required
          'Threshold' => integer,
          // ComparisonOperator is required
          'ComparisonOperator' => 'string',
      ));

#### Parameters

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

    The descriptive name for the alarm. This name must be unique within the user's AWS account

  - AlarmDescription => (string)

    The description for the alarm.

  - ActionsEnabled => (bool)

    Indicates whether or not actions should be executed during any changes to the alarm's state.

  - OKActions => (array<string>)

    The list of actions to execute when this alarm transitions into an OK state from any other state. Each action is specified as an Amazon Resource Number (ARN). Currently the only action supported is publishing to an Amazon SNS topic or an Amazon Auto Scaling policy.

  - AlarmActions => (array<string>)

    The list of actions to execute when this alarm transitions into an ALARM state from any other state. Each action is specified as an Amazon Resource Number (ARN). Currently the only action supported is publishing to an Amazon SNS topic or an Amazon Auto Scaling policy.

  - InsufficientDataActions => (array<string>)

    The list of actions to execute when this alarm transitions into an INSUFFICIENT_DATA state from any other state. Each action is specified as an Amazon Resource Number (ARN). Currently the only action supported is publishing to an Amazon SNS topic or an Amazon Auto Scaling policy.

  - MetricName => (string)

    The name for the alarm's associated metric.

  - Namespace => (string)

    The namespace for the alarm's associated metric.

  - Statistic => (string: SampleCount | Average | Sum | Minimum | Maximum )

    The statistic to apply to the alarm's associated metric.

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

    The dimensions for the alarm's associated metric.

    - (associative-array)

      The Dimension data type further expands on the identity of a metric using a Name, Value pair.

      For examples that use one or more dimensions, see PutMetricData.

      - Name => (string)

        The name of the dimension.

      - Value => (string)

        The value representing the dimension measurement

  - Period => (int)

    The period in seconds over which the specified statistic is applied.

  - Unit => (string: Seconds | Microseconds | Milliseconds | Bytes | Kilobytes | Megabytes | Gigabytes | Terabytes | Bits | Kilobits | Megabits | Gigabits | Terabits | Percent | Count | Bytes/Second | Kilobytes/Second | Megabytes/Second | Gigabytes/Second | Terabytes/Second | Bits/Second | Kilobits/Second | Megabits/Second | Gigabits/Second | Terabits/Second | Count/Second | None )

    The unit for the alarm's associated metric.

  - EvaluationPeriods => (int)

    The number of periods over which data is compared to the specified threshold.

  - Threshold => (int)

    The value against which the specified statistic is compared.

  - ComparisonOperator => (string: GreaterThanOrEqualToThreshold | GreaterThanThreshold | LessThanThreshold | LessThanOrEqualToThreshold )

    The arithmetic operation to use when comparing the specified Statistic and Threshold. The specified Statistic value is used as the first operand.

#### Returns

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

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

Executes the PutMetricData operation.

Publishes metric data points to Amazon CloudWatch. Amazon Cloudwatch associates the data points with the specified metric. If the specified metric does not exist, Amazon CloudWatch creates the metric. It can take up to fifteen minutes for a new metric to appear in calls to the ListMetrics action.

The size of a <function>PutMetricData</function> request is limited to 8 KB for HTTP GET requests and 40 KB for HTTP POST requests.

Although the Value parameter accepts numbers of type Double , Amazon CloudWatch truncates values with very large exponents. Values with base-10 exponents greater than 126 (1 x 10126) are truncated. Likewise, values with base-10 exponents less than -130 (1 x 10−130) are also truncated.

Data that is timestamped 24 hours or more in the past may take in excess of 48 hours to become available from submission time using GetMetricStatistics .

#### Examples

- Basic formatting example

      $result = $client->putMetricData(array(
          // Namespace is required
          'Namespace' => 'string',
          // MetricData is required
          'MetricData' => array(
              array(
                  // MetricName is required
                  'MetricName' => 'string',
                  'Dimensions' => array(
                      array(
                          // Name is required
                          'Name' => 'string',
                          // Value is required
                          'Value' => 'string',
                      ),
                      // ... repeated
                  ),
                  'Timestamp' => 'mixed type: string (date format)|int (unix timestamp)|\DateTime',
                  'Value' => integer,
                  'StatisticValues' => array(
                      // SampleCount is required
                      'SampleCount' => integer,
                      // Sum is required
                      'Sum' => integer,
                      // Minimum is required
                      'Minimum' => integer,
                      // Maximum is required
                      'Maximum' => integer,
                  ),
                  'Unit' => 'string',
              ),
              // ... repeated
          ),
      ));

- Execute the PutMetricData operation

      $dimensions = array(
          array('Name' => 'Prefix', 'Value' => $prefix),
      );

      $client->putMetricData(array(
          'Namespace'  => 'AWSSDKPHP',
          'MetricData' => array(
              array(
                  'MetricName' => 'CloudWatchTests',
                  'Timestamp'  => time(),
                  'Value'      => rand(1, 20) + rand(1, 59) / 100,
                  'Unit'       => 'Kilobytes',
                  'Dimensions' => $dimensions
              ),
          ),
      ));

#### Parameters

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

    The namespace for the metric data.

    You cannot specify a namespace that begins with "AWS/". Namespaces that begin with "AWS/" are reserved for other Amazon Web Services products that send metrics to Amazon CloudWatch.
  - MetricData => (array<associative-array>)

    A list of data describing the metric.

    - (associative-array)

      The MetricDatum data type encapsulates the information sent with PutMetricData to either create a new metric or add new values to be aggregated into an existing metric.

      - MetricName => (string)

        The name of the metric.

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

        A list of dimensions associated with the metric. Note, when using the Dimensions value in a query, you need to append .member.N to it (e.g., Dimensions.member.N).

        - (associative-array)

          The Dimension data type further expands on the identity of a metric using a Name, Value pair.

          For examples that use one or more dimensions, see PutMetricData.

          - Name => (string)

            The name of the dimension.

          - Value => (string)

            The value representing the dimension measurement

      - Timestamp => (string [date format]|int [unix timestamp]|\DateTime)

        The time stamp used for the metric. If not specified, the default value is set to the time the metric data was received. Amazon CloudWatch uses Coordinated Universal Time (UTC) when returning time stamps, which do not accommodate seasonal adjustments such as daylight savings time. For more information, see Time stamps in the Amazon CloudWatch Developer Guide.

      - Value => (int)

        The value for the metric.

        Although the Value parameter accepts numbers of type Double, Amazon CloudWatch truncates values with very large exponents. Values with base-10 exponents greater than 126 (1 x 10126) are truncated. Likewise, values with base-10 exponents less than -130 (1 x 10−130) are also truncated.
      - StatisticValues => (associative-array)

        A set of statistical values describing the metric.

        - SampleCount => (int)

          The number of samples used for the statistic set.

        - Sum => (int)

          The sum of values for the sample set.

        - Minimum => (int)

          The minimum value of the sample set.

        - Maximum => (int)

          The maximum value of the sample set.

      - Unit => (string: Seconds | Microseconds | Milliseconds | Bytes | Kilobytes | Megabytes | Gigabytes | Terabytes | Bits | Kilobits | Megabits | Gigabits | Terabits | Percent | Count | Bytes/Second | Kilobytes/Second | Megabytes/Second | Gigabytes/Second | Terabytes/Second | Bits/Second | Kilobits/Second | Megabits/Second | Gigabits/Second | Terabits/Second | Count/Second | None )

        The unit of the metric.

#### Returns

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

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

Executes the PutMetricDataBatch operation.

#### Parameters

$args
  `array`
  $arg Associative array containing the following keys (required keys are bold):
  - MetricDataBatches => (array<associative-array>)
    - (associative-array)
      - AccountId => (string)
      - Namespace => (string)
      - MetricData => (array<associative-array>)
        - (associative-array)

          The MetricDatum data type encapsulates the information sent with PutMetricData to either create a new metric or add new values to be aggregated into an existing metric.

          - MetricName => (string)

            The name of the metric.

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

            A list of dimensions associated with the metric. Note, when using the Dimensions value in a query, you need to append .member.N to it (e.g., Dimensions.member.N).

            - (associative-array)

              The Dimension data type further expands on the identity of a metric using a Name, Value pair.

              For examples that use one or more dimensions, see PutMetricData.

              - Name => (string)

                The name of the dimension.

              - Value => (string)

                The value representing the dimension measurement

          - Timestamp => (string [date format]|int [unix timestamp]|\DateTime)

            The time stamp used for the metric. If not specified, the default value is set to the time the metric data was received. Amazon CloudWatch uses Coordinated Universal Time (UTC) when returning time stamps, which do not accommodate seasonal adjustments such as daylight savings time. For more information, see Time stamps in the Amazon CloudWatch Developer Guide.

          - Value => (int)

            The value for the metric.

            Although the Value parameter accepts numbers of type Double, Amazon CloudWatch truncates values with very large exponents. Values with base-10 exponents greater than 126 (1 x 10126) are truncated. Likewise, values with base-10 exponents less than -130 (1 x 10−130) are also truncated.
          - StatisticValues => (associative-array)

            A set of statistical values describing the metric.

            - SampleCount => (int)

              The number of samples used for the statistic set.

            - Sum => (int)

              The sum of values for the sample set.

            - Minimum => (int)

              The minimum value of the sample set.

            - Maximum => (int)

              The maximum value of the sample set.

          - Unit => (string: Seconds | Microseconds | Milliseconds | Bytes | Kilobytes | Megabytes | Gigabytes | Terabytes | Bits | Kilobits | Megabits | Gigabits | Terabits | Percent | Count | Bytes/Second | Kilobytes/Second | Megabytes/Second | Gigabytes/Second | Terabytes/Second | Bits/Second | Kilobits/Second | Megabits/Second | Gigabits/Second | Terabits/Second | Count/Second | None )

            The unit of the metric.

      - AutoDecompose => (bool)

#### Returns

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

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

Executes the SetAlarmState operation.

Temporarily sets the state of an alarm. When the updated StateValue differs from the previous value, the action configured for the appropriate state is invoked. This is not a permanent change. The next periodic alarm check (in about a minute) will set the alarm to its actual state.

#### Examples

- Basic formatting example

      $result = $client->setAlarmState(array(
          // AlarmName is required
          'AlarmName' => 'string',
          // StateValue is required
          'StateValue' => 'string',
          // StateReason is required
          'StateReason' => 'string',
          'StateReasonData' => 'string',
      ));

#### Parameters

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

    The descriptive name for the alarm. This name must be unique within the user's AWS account. The maximum length is 255 characters.

  - StateValue => (string: OK | ALARM | INSUFFICIENT_DATA )

    The value of the state.

  - StateReason => (string)

    The reason that this alarm is set to this specific state (in human-readable text format)

  - StateReasonData => (string)

    The reason that this alarm is set to this specific state (in machine-readable JSON format)

#### Returns

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

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

The input array uses the parameters of the DescribeAlarmHistory operation

#### Parameters

$args
  `array`
  $args

#### Returns

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

The input array uses the parameters of the DescribeAlarms operation

#### Parameters

$args
  `array`
  $args

#### Returns

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

The input array uses the parameters of the DescribeAlarmsForMetric operation

#### Parameters

$args
  `array`
  $args

#### Returns

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

The input array uses the parameters of the ListMetrics 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-08-01'` | #

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