terraform/vendor/github.com/aws/aws-sdk-go/service/cloudwatch/api.go

2124 lines
71 KiB
Go

// THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT.
// Package cloudwatch provides a client for Amazon CloudWatch.
package cloudwatch
import (
"fmt"
"time"
"github.com/aws/aws-sdk-go/aws/awsutil"
"github.com/aws/aws-sdk-go/aws/request"
"github.com/aws/aws-sdk-go/private/protocol"
"github.com/aws/aws-sdk-go/private/protocol/query"
)
const opDeleteAlarms = "DeleteAlarms"
// DeleteAlarmsRequest generates a "aws/request.Request" representing the
// client's request for the DeleteAlarms operation. The "output" return
// value can be used to capture response data after the request's "Send" method
// is called.
//
// Creating a request object using this method should be used when you want to inject
// custom logic into the request's lifecycle using a custom handler, or if you want to
// access properties on the request object before or after sending the request. If
// you just want the service response, call the DeleteAlarms method directly
// instead.
//
// Note: You must call the "Send" method on the returned request object in order
// to execute the request.
//
// // Example sending a request using the DeleteAlarmsRequest method.
// req, resp := client.DeleteAlarmsRequest(params)
//
// err := req.Send()
// if err == nil { // resp is now filled
// fmt.Println(resp)
// }
//
func (c *CloudWatch) DeleteAlarmsRequest(input *DeleteAlarmsInput) (req *request.Request, output *DeleteAlarmsOutput) {
op := &request.Operation{
Name: opDeleteAlarms,
HTTPMethod: "POST",
HTTPPath: "/",
}
if input == nil {
input = &DeleteAlarmsInput{}
}
req = c.newRequest(op, input, output)
req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
output = &DeleteAlarmsOutput{}
req.Data = output
return
}
// Deletes all specified alarms. In the event of an error, no alarms are deleted.
func (c *CloudWatch) DeleteAlarms(input *DeleteAlarmsInput) (*DeleteAlarmsOutput, error) {
req, out := c.DeleteAlarmsRequest(input)
err := req.Send()
return out, err
}
const opDescribeAlarmHistory = "DescribeAlarmHistory"
// DescribeAlarmHistoryRequest generates a "aws/request.Request" representing the
// client's request for the DescribeAlarmHistory operation. The "output" return
// value can be used to capture response data after the request's "Send" method
// is called.
//
// Creating a request object using this method should be used when you want to inject
// custom logic into the request's lifecycle using a custom handler, or if you want to
// access properties on the request object before or after sending the request. If
// you just want the service response, call the DescribeAlarmHistory method directly
// instead.
//
// Note: You must call the "Send" method on the returned request object in order
// to execute the request.
//
// // Example sending a request using the DescribeAlarmHistoryRequest method.
// req, resp := client.DescribeAlarmHistoryRequest(params)
//
// err := req.Send()
// if err == nil { // resp is now filled
// fmt.Println(resp)
// }
//
func (c *CloudWatch) DescribeAlarmHistoryRequest(input *DescribeAlarmHistoryInput) (req *request.Request, output *DescribeAlarmHistoryOutput) {
op := &request.Operation{
Name: opDescribeAlarmHistory,
HTTPMethod: "POST",
HTTPPath: "/",
Paginator: &request.Paginator{
InputTokens: []string{"NextToken"},
OutputTokens: []string{"NextToken"},
LimitToken: "MaxRecords",
TruncationToken: "",
},
}
if input == nil {
input = &DescribeAlarmHistoryInput{}
}
req = c.newRequest(op, input, output)
output = &DescribeAlarmHistoryOutput{}
req.Data = output
return
}
// 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.
func (c *CloudWatch) DescribeAlarmHistory(input *DescribeAlarmHistoryInput) (*DescribeAlarmHistoryOutput, error) {
req, out := c.DescribeAlarmHistoryRequest(input)
err := req.Send()
return out, err
}
// DescribeAlarmHistoryPages iterates over the pages of a DescribeAlarmHistory operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See DescribeAlarmHistory method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
// // Example iterating over at most 3 pages of a DescribeAlarmHistory operation.
// pageNum := 0
// err := client.DescribeAlarmHistoryPages(params,
// func(page *DescribeAlarmHistoryOutput, lastPage bool) bool {
// pageNum++
// fmt.Println(page)
// return pageNum <= 3
// })
//
func (c *CloudWatch) DescribeAlarmHistoryPages(input *DescribeAlarmHistoryInput, fn func(p *DescribeAlarmHistoryOutput, lastPage bool) (shouldContinue bool)) error {
page, _ := c.DescribeAlarmHistoryRequest(input)
page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
return page.EachPage(func(p interface{}, lastPage bool) bool {
return fn(p.(*DescribeAlarmHistoryOutput), lastPage)
})
}
const opDescribeAlarms = "DescribeAlarms"
// DescribeAlarmsRequest generates a "aws/request.Request" representing the
// client's request for the DescribeAlarms operation. The "output" return
// value can be used to capture response data after the request's "Send" method
// is called.
//
// Creating a request object using this method should be used when you want to inject
// custom logic into the request's lifecycle using a custom handler, or if you want to
// access properties on the request object before or after sending the request. If
// you just want the service response, call the DescribeAlarms method directly
// instead.
//
// Note: You must call the "Send" method on the returned request object in order
// to execute the request.
//
// // Example sending a request using the DescribeAlarmsRequest method.
// req, resp := client.DescribeAlarmsRequest(params)
//
// err := req.Send()
// if err == nil { // resp is now filled
// fmt.Println(resp)
// }
//
func (c *CloudWatch) DescribeAlarmsRequest(input *DescribeAlarmsInput) (req *request.Request, output *DescribeAlarmsOutput) {
op := &request.Operation{
Name: opDescribeAlarms,
HTTPMethod: "POST",
HTTPPath: "/",
Paginator: &request.Paginator{
InputTokens: []string{"NextToken"},
OutputTokens: []string{"NextToken"},
LimitToken: "MaxRecords",
TruncationToken: "",
},
}
if input == nil {
input = &DescribeAlarmsInput{}
}
req = c.newRequest(op, input, output)
output = &DescribeAlarmsOutput{}
req.Data = output
return
}
// 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.
func (c *CloudWatch) DescribeAlarms(input *DescribeAlarmsInput) (*DescribeAlarmsOutput, error) {
req, out := c.DescribeAlarmsRequest(input)
err := req.Send()
return out, err
}
// DescribeAlarmsPages iterates over the pages of a DescribeAlarms operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See DescribeAlarms method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
// // Example iterating over at most 3 pages of a DescribeAlarms operation.
// pageNum := 0
// err := client.DescribeAlarmsPages(params,
// func(page *DescribeAlarmsOutput, lastPage bool) bool {
// pageNum++
// fmt.Println(page)
// return pageNum <= 3
// })
//
func (c *CloudWatch) DescribeAlarmsPages(input *DescribeAlarmsInput, fn func(p *DescribeAlarmsOutput, lastPage bool) (shouldContinue bool)) error {
page, _ := c.DescribeAlarmsRequest(input)
page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
return page.EachPage(func(p interface{}, lastPage bool) bool {
return fn(p.(*DescribeAlarmsOutput), lastPage)
})
}
const opDescribeAlarmsForMetric = "DescribeAlarmsForMetric"
// DescribeAlarmsForMetricRequest generates a "aws/request.Request" representing the
// client's request for the DescribeAlarmsForMetric operation. The "output" return
// value can be used to capture response data after the request's "Send" method
// is called.
//
// Creating a request object using this method should be used when you want to inject
// custom logic into the request's lifecycle using a custom handler, or if you want to
// access properties on the request object before or after sending the request. If
// you just want the service response, call the DescribeAlarmsForMetric method directly
// instead.
//
// Note: You must call the "Send" method on the returned request object in order
// to execute the request.
//
// // Example sending a request using the DescribeAlarmsForMetricRequest method.
// req, resp := client.DescribeAlarmsForMetricRequest(params)
//
// err := req.Send()
// if err == nil { // resp is now filled
// fmt.Println(resp)
// }
//
func (c *CloudWatch) DescribeAlarmsForMetricRequest(input *DescribeAlarmsForMetricInput) (req *request.Request, output *DescribeAlarmsForMetricOutput) {
op := &request.Operation{
Name: opDescribeAlarmsForMetric,
HTTPMethod: "POST",
HTTPPath: "/",
}
if input == nil {
input = &DescribeAlarmsForMetricInput{}
}
req = c.newRequest(op, input, output)
output = &DescribeAlarmsForMetricOutput{}
req.Data = output
return
}
// Retrieves all alarms for a single metric. Specify a statistic, period, or
// unit to filter the set of alarms further.
func (c *CloudWatch) DescribeAlarmsForMetric(input *DescribeAlarmsForMetricInput) (*DescribeAlarmsForMetricOutput, error) {
req, out := c.DescribeAlarmsForMetricRequest(input)
err := req.Send()
return out, err
}
const opDisableAlarmActions = "DisableAlarmActions"
// DisableAlarmActionsRequest generates a "aws/request.Request" representing the
// client's request for the DisableAlarmActions operation. The "output" return
// value can be used to capture response data after the request's "Send" method
// is called.
//
// Creating a request object using this method should be used when you want to inject
// custom logic into the request's lifecycle using a custom handler, or if you want to
// access properties on the request object before or after sending the request. If
// you just want the service response, call the DisableAlarmActions method directly
// instead.
//
// Note: You must call the "Send" method on the returned request object in order
// to execute the request.
//
// // Example sending a request using the DisableAlarmActionsRequest method.
// req, resp := client.DisableAlarmActionsRequest(params)
//
// err := req.Send()
// if err == nil { // resp is now filled
// fmt.Println(resp)
// }
//
func (c *CloudWatch) DisableAlarmActionsRequest(input *DisableAlarmActionsInput) (req *request.Request, output *DisableAlarmActionsOutput) {
op := &request.Operation{
Name: opDisableAlarmActions,
HTTPMethod: "POST",
HTTPPath: "/",
}
if input == nil {
input = &DisableAlarmActionsInput{}
}
req = c.newRequest(op, input, output)
req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
output = &DisableAlarmActionsOutput{}
req.Data = output
return
}
// 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.
func (c *CloudWatch) DisableAlarmActions(input *DisableAlarmActionsInput) (*DisableAlarmActionsOutput, error) {
req, out := c.DisableAlarmActionsRequest(input)
err := req.Send()
return out, err
}
const opEnableAlarmActions = "EnableAlarmActions"
// EnableAlarmActionsRequest generates a "aws/request.Request" representing the
// client's request for the EnableAlarmActions operation. The "output" return
// value can be used to capture response data after the request's "Send" method
// is called.
//
// Creating a request object using this method should be used when you want to inject
// custom logic into the request's lifecycle using a custom handler, or if you want to
// access properties on the request object before or after sending the request. If
// you just want the service response, call the EnableAlarmActions method directly
// instead.
//
// Note: You must call the "Send" method on the returned request object in order
// to execute the request.
//
// // Example sending a request using the EnableAlarmActionsRequest method.
// req, resp := client.EnableAlarmActionsRequest(params)
//
// err := req.Send()
// if err == nil { // resp is now filled
// fmt.Println(resp)
// }
//
func (c *CloudWatch) EnableAlarmActionsRequest(input *EnableAlarmActionsInput) (req *request.Request, output *EnableAlarmActionsOutput) {
op := &request.Operation{
Name: opEnableAlarmActions,
HTTPMethod: "POST",
HTTPPath: "/",
}
if input == nil {
input = &EnableAlarmActionsInput{}
}
req = c.newRequest(op, input, output)
req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
output = &EnableAlarmActionsOutput{}
req.Data = output
return
}
// Enables actions for the specified alarms.
func (c *CloudWatch) EnableAlarmActions(input *EnableAlarmActionsInput) (*EnableAlarmActionsOutput, error) {
req, out := c.EnableAlarmActionsRequest(input)
err := req.Send()
return out, err
}
const opGetMetricStatistics = "GetMetricStatistics"
// GetMetricStatisticsRequest generates a "aws/request.Request" representing the
// client's request for the GetMetricStatistics operation. The "output" return
// value can be used to capture response data after the request's "Send" method
// is called.
//
// Creating a request object using this method should be used when you want to inject
// custom logic into the request's lifecycle using a custom handler, or if you want to
// access properties on the request object before or after sending the request. If
// you just want the service response, call the GetMetricStatistics method directly
// instead.
//
// Note: You must call the "Send" method on the returned request object in order
// to execute the request.
//
// // Example sending a request using the GetMetricStatisticsRequest method.
// req, resp := client.GetMetricStatisticsRequest(params)
//
// err := req.Send()
// if err == nil { // resp is now filled
// fmt.Println(resp)
// }
//
func (c *CloudWatch) GetMetricStatisticsRequest(input *GetMetricStatisticsInput) (req *request.Request, output *GetMetricStatisticsOutput) {
op := &request.Operation{
Name: opGetMetricStatistics,
HTTPMethod: "POST",
HTTPPath: "/",
}
if input == nil {
input = &GetMetricStatisticsInput{}
}
req = c.newRequest(op, input, output)
output = &GetMetricStatisticsOutput{}
req.Data = output
return
}
// Gets statistics for the specified metric.
//
// The maximum number of data points that can be queried is 50,850, whereas
// the maximum number of data points returned from a single GetMetricStatistics
// request is 1,440. 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. GetMetricStatistics does not return the data in chronological order.
//
// 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 (http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html)
// in the Amazon CloudWatch Developer Guide.
func (c *CloudWatch) GetMetricStatistics(input *GetMetricStatisticsInput) (*GetMetricStatisticsOutput, error) {
req, out := c.GetMetricStatisticsRequest(input)
err := req.Send()
return out, err
}
const opListMetrics = "ListMetrics"
// ListMetricsRequest generates a "aws/request.Request" representing the
// client's request for the ListMetrics operation. The "output" return
// value can be used to capture response data after the request's "Send" method
// is called.
//
// Creating a request object using this method should be used when you want to inject
// custom logic into the request's lifecycle using a custom handler, or if you want to
// access properties on the request object before or after sending the request. If
// you just want the service response, call the ListMetrics method directly
// instead.
//
// Note: You must call the "Send" method on the returned request object in order
// to execute the request.
//
// // Example sending a request using the ListMetricsRequest method.
// req, resp := client.ListMetricsRequest(params)
//
// err := req.Send()
// if err == nil { // resp is now filled
// fmt.Println(resp)
// }
//
func (c *CloudWatch) ListMetricsRequest(input *ListMetricsInput) (req *request.Request, output *ListMetricsOutput) {
op := &request.Operation{
Name: opListMetrics,
HTTPMethod: "POST",
HTTPPath: "/",
Paginator: &request.Paginator{
InputTokens: []string{"NextToken"},
OutputTokens: []string{"NextToken"},
LimitToken: "",
TruncationToken: "",
},
}
if input == nil {
input = &ListMetricsInput{}
}
req = c.newRequest(op, input, output)
output = &ListMetricsOutput{}
req.Data = output
return
}
// 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.
func (c *CloudWatch) ListMetrics(input *ListMetricsInput) (*ListMetricsOutput, error) {
req, out := c.ListMetricsRequest(input)
err := req.Send()
return out, err
}
// ListMetricsPages iterates over the pages of a ListMetrics operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListMetrics method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
// // Example iterating over at most 3 pages of a ListMetrics operation.
// pageNum := 0
// err := client.ListMetricsPages(params,
// func(page *ListMetricsOutput, lastPage bool) bool {
// pageNum++
// fmt.Println(page)
// return pageNum <= 3
// })
//
func (c *CloudWatch) ListMetricsPages(input *ListMetricsInput, fn func(p *ListMetricsOutput, lastPage bool) (shouldContinue bool)) error {
page, _ := c.ListMetricsRequest(input)
page.Handlers.Build.PushBack(request.MakeAddToUserAgentFreeFormHandler("Paginator"))
return page.EachPage(func(p interface{}, lastPage bool) bool {
return fn(p.(*ListMetricsOutput), lastPage)
})
}
const opPutMetricAlarm = "PutMetricAlarm"
// PutMetricAlarmRequest generates a "aws/request.Request" representing the
// client's request for the PutMetricAlarm operation. The "output" return
// value can be used to capture response data after the request's "Send" method
// is called.
//
// Creating a request object using this method should be used when you want to inject
// custom logic into the request's lifecycle using a custom handler, or if you want to
// access properties on the request object before or after sending the request. If
// you just want the service response, call the PutMetricAlarm method directly
// instead.
//
// Note: You must call the "Send" method on the returned request object in order
// to execute the request.
//
// // Example sending a request using the PutMetricAlarmRequest method.
// req, resp := client.PutMetricAlarmRequest(params)
//
// err := req.Send()
// if err == nil { // resp is now filled
// fmt.Println(resp)
// }
//
func (c *CloudWatch) PutMetricAlarmRequest(input *PutMetricAlarmInput) (req *request.Request, output *PutMetricAlarmOutput) {
op := &request.Operation{
Name: opPutMetricAlarm,
HTTPMethod: "POST",
HTTPPath: "/",
}
if input == nil {
input = &PutMetricAlarmInput{}
}
req = c.newRequest(op, input, output)
req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
output = &PutMetricAlarmOutput{}
req.Data = output
return
}
// 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. If
// you are using an AWS Identity and Access Management (IAM) account to create
// or modify an alarm, you must have the following Amazon EC2 permissions:
// ec2:DescribeInstanceStatus and ec2:DescribeInstances for all alarms on Amazon
// EC2 instance status metrics. ec2:StopInstances for alarms with stop actions.
// ec2:TerminateInstances for alarms with terminate actions. ec2:DescribeInstanceRecoveryAttribute,
// and ec2:RecoverInstances for alarms with recover actions. If you have read/write
// permissions for Amazon CloudWatch but not for Amazon EC2, you can still create
// an alarm but the stop or terminate actions won't be performed on the Amazon
// EC2 instance. However, if you are later granted permission to use the associated
// Amazon EC2 APIs, the alarm actions you created earlier will be performed.
// For more information about IAM permissions, see Permissions and Policies
// (http://docs.aws.amazon.com//IAM/latest/UserGuide/PermissionsAndPolicies.html)
// in Using IAM.
//
// If you are using an IAM role (e.g., an Amazon EC2 instance profile), you
// cannot stop or terminate the instance using alarm actions. However, you can
// still see the alarm state and perform any other actions such as Amazon SNS
// notifications or Auto Scaling policies.
//
// If you are using temporary security credentials granted using the AWS Security
// Token Service (AWS STS), you cannot stop or terminate an Amazon EC2 instance
// using alarm actions.
func (c *CloudWatch) PutMetricAlarm(input *PutMetricAlarmInput) (*PutMetricAlarmOutput, error) {
req, out := c.PutMetricAlarmRequest(input)
err := req.Send()
return out, err
}
const opPutMetricData = "PutMetricData"
// PutMetricDataRequest generates a "aws/request.Request" representing the
// client's request for the PutMetricData operation. The "output" return
// value can be used to capture response data after the request's "Send" method
// is called.
//
// Creating a request object using this method should be used when you want to inject
// custom logic into the request's lifecycle using a custom handler, or if you want to
// access properties on the request object before or after sending the request. If
// you just want the service response, call the PutMetricData method directly
// instead.
//
// Note: You must call the "Send" method on the returned request object in order
// to execute the request.
//
// // Example sending a request using the PutMetricDataRequest method.
// req, resp := client.PutMetricDataRequest(params)
//
// err := req.Send()
// if err == nil { // resp is now filled
// fmt.Println(resp)
// }
//
func (c *CloudWatch) PutMetricDataRequest(input *PutMetricDataInput) (req *request.Request, output *PutMetricDataOutput) {
op := &request.Operation{
Name: opPutMetricData,
HTTPMethod: "POST",
HTTPPath: "/",
}
if input == nil {
input = &PutMetricDataInput{}
}
req = c.newRequest(op, input, output)
req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
output = &PutMetricDataOutput{}
req.Data = output
return
}
// 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. When Amazon CloudWatch creates
// a metric, it can take up to fifteen minutes for the metric to appear in calls
// to the ListMetrics action.
//
// Each PutMetricData request is limited to 8 KB in size for HTTP GET requests
// and is limited to 40 KB in size for HTTP POST requests.
//
// Although the Value parameter accepts numbers of type Double, Amazon CloudWatch
// rejects values that are either too small or too large. Values must be in
// the range of 8.515920e-109 to 1.174271e+108 (Base 10) or 2e-360 to 2e360
// (Base 2). In addition, special values (e.g., NaN, +Infinity, -Infinity) are
// not supported. 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.
func (c *CloudWatch) PutMetricData(input *PutMetricDataInput) (*PutMetricDataOutput, error) {
req, out := c.PutMetricDataRequest(input)
err := req.Send()
return out, err
}
const opSetAlarmState = "SetAlarmState"
// SetAlarmStateRequest generates a "aws/request.Request" representing the
// client's request for the SetAlarmState operation. The "output" return
// value can be used to capture response data after the request's "Send" method
// is called.
//
// Creating a request object using this method should be used when you want to inject
// custom logic into the request's lifecycle using a custom handler, or if you want to
// access properties on the request object before or after sending the request. If
// you just want the service response, call the SetAlarmState method directly
// instead.
//
// Note: You must call the "Send" method on the returned request object in order
// to execute the request.
//
// // Example sending a request using the SetAlarmStateRequest method.
// req, resp := client.SetAlarmStateRequest(params)
//
// err := req.Send()
// if err == nil { // resp is now filled
// fmt.Println(resp)
// }
//
func (c *CloudWatch) SetAlarmStateRequest(input *SetAlarmStateInput) (req *request.Request, output *SetAlarmStateOutput) {
op := &request.Operation{
Name: opSetAlarmState,
HTTPMethod: "POST",
HTTPPath: "/",
}
if input == nil {
input = &SetAlarmStateInput{}
}
req = c.newRequest(op, input, output)
req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
output = &SetAlarmStateOutput{}
req.Data = output
return
}
// 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. For example, if your alarm is configured to send an Amazon SNS
// message when an alarm is triggered, temporarily changing the alarm's state
// to ALARM will send an Amazon SNS message. This is not a permanent change.
// The next periodic alarm check (in about a minute) will set the alarm to its
// actual state. Because the alarm state change happens very quickly, it is
// typically only visibile in the alarm's History tab in the Amazon CloudWatch
// console or through DescribeAlarmHistory.
func (c *CloudWatch) SetAlarmState(input *SetAlarmStateInput) (*SetAlarmStateOutput, error) {
req, out := c.SetAlarmStateRequest(input)
err := req.Send()
return out, err
}
// 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.
type AlarmHistoryItem struct {
_ struct{} `type:"structure"`
// The descriptive name for the alarm.
AlarmName *string `min:"1" type:"string"`
// Machine-readable data about the alarm in JSON format.
HistoryData *string `min:"1" type:"string"`
// The type of alarm history item.
HistoryItemType *string `type:"string" enum:"HistoryItemType"`
// A human-readable summary of the alarm history.
HistorySummary *string `min:"1" type:"string"`
// The time stamp for the alarm history item.
Timestamp *time.Time `type:"timestamp" timestampFormat:"iso8601"`
}
// String returns the string representation
func (s AlarmHistoryItem) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s AlarmHistoryItem) GoString() string {
return s.String()
}
// The Datapoint data type encapsulates the statistical data that Amazon CloudWatch
// computes from metric data.
type Datapoint struct {
_ struct{} `type:"structure"`
// The average of metric values that correspond to the datapoint.
Average *float64 `type:"double"`
// The maximum of the metric value used for the datapoint.
Maximum *float64 `type:"double"`
// The minimum metric value used for the datapoint.
Minimum *float64 `type:"double"`
// The number of metric values that contributed to the aggregate value of this
// datapoint.
SampleCount *float64 `type:"double"`
// The sum of metric values used for the datapoint.
Sum *float64 `type:"double"`
// The time stamp used for the datapoint.
Timestamp *time.Time `type:"timestamp" timestampFormat:"iso8601"`
// The standard unit used for the datapoint.
Unit *string `type:"string" enum:"StandardUnit"`
}
// String returns the string representation
func (s Datapoint) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s Datapoint) GoString() string {
return s.String()
}
type DeleteAlarmsInput struct {
_ struct{} `type:"structure"`
// A list of alarms to be deleted.
AlarmNames []*string `type:"list" required:"true"`
}
// String returns the string representation
func (s DeleteAlarmsInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s DeleteAlarmsInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteAlarmsInput) Validate() error {
invalidParams := request.ErrInvalidParams{Context: "DeleteAlarmsInput"}
if s.AlarmNames == nil {
invalidParams.Add(request.NewErrParamRequired("AlarmNames"))
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
type DeleteAlarmsOutput struct {
_ struct{} `type:"structure"`
}
// String returns the string representation
func (s DeleteAlarmsOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s DeleteAlarmsOutput) GoString() string {
return s.String()
}
type DescribeAlarmHistoryInput struct {
_ struct{} `type:"structure"`
// The name of the alarm.
AlarmName *string `min:"1" type:"string"`
// The ending date to retrieve alarm history.
EndDate *time.Time `type:"timestamp" timestampFormat:"iso8601"`
// The type of alarm histories to retrieve.
HistoryItemType *string `type:"string" enum:"HistoryItemType"`
// The maximum number of alarm history records to retrieve.
MaxRecords *int64 `min:"1" type:"integer"`
// The token returned by a previous call to indicate that there is more data
// available.
NextToken *string `type:"string"`
// The starting date to retrieve alarm history.
StartDate *time.Time `type:"timestamp" timestampFormat:"iso8601"`
}
// String returns the string representation
func (s DescribeAlarmHistoryInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s DescribeAlarmHistoryInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeAlarmHistoryInput) Validate() error {
invalidParams := request.ErrInvalidParams{Context: "DescribeAlarmHistoryInput"}
if s.AlarmName != nil && len(*s.AlarmName) < 1 {
invalidParams.Add(request.NewErrParamMinLen("AlarmName", 1))
}
if s.MaxRecords != nil && *s.MaxRecords < 1 {
invalidParams.Add(request.NewErrParamMinValue("MaxRecords", 1))
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
// The output for the DescribeAlarmHistory action.
type DescribeAlarmHistoryOutput struct {
_ struct{} `type:"structure"`
// A list of alarm histories in JSON format.
AlarmHistoryItems []*AlarmHistoryItem `type:"list"`
// A string that marks the start of the next batch of returned results.
NextToken *string `type:"string"`
}
// String returns the string representation
func (s DescribeAlarmHistoryOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s DescribeAlarmHistoryOutput) GoString() string {
return s.String()
}
type DescribeAlarmsForMetricInput struct {
_ struct{} `type:"structure"`
// The list of dimensions associated with the metric. If the metric has any
// associated dimensions, you must specify them in order for the DescribeAlarmsForMetric
// to succeed.
Dimensions []*Dimension `type:"list"`
// The name of the metric.
MetricName *string `min:"1" type:"string" required:"true"`
// The namespace of the metric.
Namespace *string `min:"1" type:"string" required:"true"`
// The period in seconds over which the statistic is applied.
Period *int64 `min:"60" type:"integer"`
// The statistic for the metric.
Statistic *string `type:"string" enum:"Statistic"`
// The unit for the metric.
Unit *string `type:"string" enum:"StandardUnit"`
}
// String returns the string representation
func (s DescribeAlarmsForMetricInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s DescribeAlarmsForMetricInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeAlarmsForMetricInput) Validate() error {
invalidParams := request.ErrInvalidParams{Context: "DescribeAlarmsForMetricInput"}
if s.MetricName == nil {
invalidParams.Add(request.NewErrParamRequired("MetricName"))
}
if s.MetricName != nil && len(*s.MetricName) < 1 {
invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
}
if s.Namespace == nil {
invalidParams.Add(request.NewErrParamRequired("Namespace"))
}
if s.Namespace != nil && len(*s.Namespace) < 1 {
invalidParams.Add(request.NewErrParamMinLen("Namespace", 1))
}
if s.Period != nil && *s.Period < 60 {
invalidParams.Add(request.NewErrParamMinValue("Period", 60))
}
if s.Dimensions != nil {
for i, v := range s.Dimensions {
if v == nil {
continue
}
if err := v.Validate(); err != nil {
invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Dimensions", i), err.(request.ErrInvalidParams))
}
}
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
// The output for the DescribeAlarmsForMetric action.
type DescribeAlarmsForMetricOutput struct {
_ struct{} `type:"structure"`
// A list of information for each alarm with the specified metric.
MetricAlarms []*MetricAlarm `type:"list"`
}
// String returns the string representation
func (s DescribeAlarmsForMetricOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s DescribeAlarmsForMetricOutput) GoString() string {
return s.String()
}
type DescribeAlarmsInput struct {
_ struct{} `type:"structure"`
// The action name prefix.
ActionPrefix *string `min:"1" type:"string"`
// The alarm name prefix. AlarmNames cannot be specified if this parameter is
// specified.
AlarmNamePrefix *string `min:"1" type:"string"`
// A list of alarm names to retrieve information for.
AlarmNames []*string `type:"list"`
// The maximum number of alarm descriptions to retrieve.
MaxRecords *int64 `min:"1" type:"integer"`
// The token returned by a previous call to indicate that there is more data
// available.
NextToken *string `type:"string"`
// The state value to be used in matching alarms.
StateValue *string `type:"string" enum:"StateValue"`
}
// String returns the string representation
func (s DescribeAlarmsInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s DescribeAlarmsInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeAlarmsInput) Validate() error {
invalidParams := request.ErrInvalidParams{Context: "DescribeAlarmsInput"}
if s.ActionPrefix != nil && len(*s.ActionPrefix) < 1 {
invalidParams.Add(request.NewErrParamMinLen("ActionPrefix", 1))
}
if s.AlarmNamePrefix != nil && len(*s.AlarmNamePrefix) < 1 {
invalidParams.Add(request.NewErrParamMinLen("AlarmNamePrefix", 1))
}
if s.MaxRecords != nil && *s.MaxRecords < 1 {
invalidParams.Add(request.NewErrParamMinValue("MaxRecords", 1))
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
// The output for the DescribeAlarms action.
type DescribeAlarmsOutput struct {
_ struct{} `type:"structure"`
// A list of information for the specified alarms.
MetricAlarms []*MetricAlarm `type:"list"`
// A string that marks the start of the next batch of returned results.
NextToken *string `type:"string"`
}
// String returns the string representation
func (s DescribeAlarmsOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s DescribeAlarmsOutput) GoString() string {
return s.String()
}
// 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.
type Dimension struct {
_ struct{} `type:"structure"`
// The name of the dimension.
Name *string `min:"1" type:"string" required:"true"`
// The value representing the dimension measurement
Value *string `min:"1" type:"string" required:"true"`
}
// String returns the string representation
func (s Dimension) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s Dimension) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *Dimension) Validate() error {
invalidParams := request.ErrInvalidParams{Context: "Dimension"}
if s.Name == nil {
invalidParams.Add(request.NewErrParamRequired("Name"))
}
if s.Name != nil && len(*s.Name) < 1 {
invalidParams.Add(request.NewErrParamMinLen("Name", 1))
}
if s.Value == nil {
invalidParams.Add(request.NewErrParamRequired("Value"))
}
if s.Value != nil && len(*s.Value) < 1 {
invalidParams.Add(request.NewErrParamMinLen("Value", 1))
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
// The DimensionFilter data type is used to filter ListMetrics results.
type DimensionFilter struct {
_ struct{} `type:"structure"`
// The dimension name to be matched.
Name *string `min:"1" type:"string" required:"true"`
// The value of the dimension to be matched.
//
// Specifying a Name without specifying a Value returns all values associated
// with that Name.
Value *string `min:"1" type:"string"`
}
// String returns the string representation
func (s DimensionFilter) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s DimensionFilter) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *DimensionFilter) Validate() error {
invalidParams := request.ErrInvalidParams{Context: "DimensionFilter"}
if s.Name == nil {
invalidParams.Add(request.NewErrParamRequired("Name"))
}
if s.Name != nil && len(*s.Name) < 1 {
invalidParams.Add(request.NewErrParamMinLen("Name", 1))
}
if s.Value != nil && len(*s.Value) < 1 {
invalidParams.Add(request.NewErrParamMinLen("Value", 1))
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
type DisableAlarmActionsInput struct {
_ struct{} `type:"structure"`
// The names of the alarms to disable actions for.
AlarmNames []*string `type:"list" required:"true"`
}
// String returns the string representation
func (s DisableAlarmActionsInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s DisableAlarmActionsInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *DisableAlarmActionsInput) Validate() error {
invalidParams := request.ErrInvalidParams{Context: "DisableAlarmActionsInput"}
if s.AlarmNames == nil {
invalidParams.Add(request.NewErrParamRequired("AlarmNames"))
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
type DisableAlarmActionsOutput struct {
_ struct{} `type:"structure"`
}
// String returns the string representation
func (s DisableAlarmActionsOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s DisableAlarmActionsOutput) GoString() string {
return s.String()
}
type EnableAlarmActionsInput struct {
_ struct{} `type:"structure"`
// The names of the alarms to enable actions for.
AlarmNames []*string `type:"list" required:"true"`
}
// String returns the string representation
func (s EnableAlarmActionsInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s EnableAlarmActionsInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *EnableAlarmActionsInput) Validate() error {
invalidParams := request.ErrInvalidParams{Context: "EnableAlarmActionsInput"}
if s.AlarmNames == nil {
invalidParams.Add(request.NewErrParamRequired("AlarmNames"))
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
type EnableAlarmActionsOutput struct {
_ struct{} `type:"structure"`
}
// String returns the string representation
func (s EnableAlarmActionsOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s EnableAlarmActionsOutput) GoString() string {
return s.String()
}
type GetMetricStatisticsInput struct {
_ struct{} `type:"structure"`
// A list of dimensions describing qualities of the metric.
Dimensions []*Dimension `type:"list"`
// 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. The time stamp must be in ISO 8601 UTC format (e.g., 2014-09-03T23:00:00Z).
EndTime *time.Time `type:"timestamp" timestampFormat:"iso8601" required:"true"`
// The name of the metric, with or without spaces.
MetricName *string `min:"1" type:"string" required:"true"`
// The namespace of the metric, with or without spaces.
Namespace *string `min:"1" type:"string" required:"true"`
// 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.
Period *int64 `min:"60" type:"integer" required:"true"`
// 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 time stamp must be in ISO 8601 UTC format (e.g., 2014-09-03T23:00:00Z).
//
// 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.
StartTime *time.Time `type:"timestamp" timestampFormat:"iso8601" required:"true"`
// The metric statistics to return. For information about specific statistics
// returned by GetMetricStatistics, see Statistics (http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#Statistic)
// in the Amazon CloudWatch Developer Guide.
Statistics []*string `min:"1" type:"list" required:"true"`
// The unit for the metric.
Unit *string `type:"string" enum:"StandardUnit"`
}
// String returns the string representation
func (s GetMetricStatisticsInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s GetMetricStatisticsInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *GetMetricStatisticsInput) Validate() error {
invalidParams := request.ErrInvalidParams{Context: "GetMetricStatisticsInput"}
if s.EndTime == nil {
invalidParams.Add(request.NewErrParamRequired("EndTime"))
}
if s.MetricName == nil {
invalidParams.Add(request.NewErrParamRequired("MetricName"))
}
if s.MetricName != nil && len(*s.MetricName) < 1 {
invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
}
if s.Namespace == nil {
invalidParams.Add(request.NewErrParamRequired("Namespace"))
}
if s.Namespace != nil && len(*s.Namespace) < 1 {
invalidParams.Add(request.NewErrParamMinLen("Namespace", 1))
}
if s.Period == nil {
invalidParams.Add(request.NewErrParamRequired("Period"))
}
if s.Period != nil && *s.Period < 60 {
invalidParams.Add(request.NewErrParamMinValue("Period", 60))
}
if s.StartTime == nil {
invalidParams.Add(request.NewErrParamRequired("StartTime"))
}
if s.Statistics == nil {
invalidParams.Add(request.NewErrParamRequired("Statistics"))
}
if s.Statistics != nil && len(s.Statistics) < 1 {
invalidParams.Add(request.NewErrParamMinLen("Statistics", 1))
}
if s.Dimensions != nil {
for i, v := range s.Dimensions {
if v == nil {
continue
}
if err := v.Validate(); err != nil {
invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Dimensions", i), err.(request.ErrInvalidParams))
}
}
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
// The output for the GetMetricStatistics action.
type GetMetricStatisticsOutput struct {
_ struct{} `type:"structure"`
// The datapoints for the specified metric.
Datapoints []*Datapoint `type:"list"`
// A label describing the specified metric.
Label *string `type:"string"`
}
// String returns the string representation
func (s GetMetricStatisticsOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s GetMetricStatisticsOutput) GoString() string {
return s.String()
}
type ListMetricsInput struct {
_ struct{} `type:"structure"`
// A list of dimensions to filter against.
Dimensions []*DimensionFilter `type:"list"`
// The name of the metric to filter against.
MetricName *string `min:"1" type:"string"`
// The namespace to filter against.
Namespace *string `min:"1" type:"string"`
// The token returned by a previous call to indicate that there is more data
// available.
NextToken *string `type:"string"`
}
// String returns the string representation
func (s ListMetricsInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s ListMetricsInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *ListMetricsInput) Validate() error {
invalidParams := request.ErrInvalidParams{Context: "ListMetricsInput"}
if s.MetricName != nil && len(*s.MetricName) < 1 {
invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
}
if s.Namespace != nil && len(*s.Namespace) < 1 {
invalidParams.Add(request.NewErrParamMinLen("Namespace", 1))
}
if s.Dimensions != nil {
for i, v := range s.Dimensions {
if v == nil {
continue
}
if err := v.Validate(); err != nil {
invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Dimensions", i), err.(request.ErrInvalidParams))
}
}
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
// The output for the ListMetrics action.
type ListMetricsOutput struct {
_ struct{} `type:"structure"`
// A list of metrics used to generate statistics for an AWS account.
Metrics []*Metric `type:"list"`
// A string that marks the start of the next batch of returned results.
NextToken *string `type:"string"`
}
// String returns the string representation
func (s ListMetricsOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s ListMetricsOutput) GoString() string {
return s.String()
}
// 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.
type Metric struct {
_ struct{} `type:"structure"`
// A list of dimensions associated with the metric.
Dimensions []*Dimension `type:"list"`
// The name of the metric.
MetricName *string `min:"1" type:"string"`
// The namespace of the metric.
Namespace *string `min:"1" type:"string"`
}
// String returns the string representation
func (s Metric) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s Metric) GoString() string {
return s.String()
}
// The MetricAlarm data type represents an alarm. You can use PutMetricAlarm
// to create or update an alarm.
type MetricAlarm struct {
_ struct{} `type:"structure"`
// Indicates whether actions should be executed during any changes to the alarm's
// state.
ActionsEnabled *bool `type:"boolean"`
// 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
// Name (ARN).
AlarmActions []*string `type:"list"`
// The Amazon Resource Name (ARN) of the alarm.
AlarmArn *string `min:"1" type:"string"`
// The time stamp of the last update to the alarm configuration.
AlarmConfigurationUpdatedTimestamp *time.Time `type:"timestamp" timestampFormat:"iso8601"`
// The description for the alarm.
AlarmDescription *string `type:"string"`
// The name of the alarm.
AlarmName *string `min:"1" type:"string"`
// The arithmetic operation to use when comparing the specified Statistic and
// Threshold. The specified Statistic value is used as the first operand.
ComparisonOperator *string `type:"string" enum:"ComparisonOperator"`
// The list of dimensions associated with the alarm's associated metric.
Dimensions []*Dimension `type:"list"`
// The number of periods over which data is compared to the specified threshold.
EvaluationPeriods *int64 `min:"1" type:"integer"`
// 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
// Name (ARN).
//
// The current WSDL lists this attribute as UnknownActions.
InsufficientDataActions []*string `type:"list"`
// The name of the alarm's metric.
MetricName *string `min:"1" type:"string"`
// The namespace of alarm's associated metric.
Namespace *string `min:"1" type:"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 Name
// (ARN).
OKActions []*string `type:"list"`
// The period in seconds over which the statistic is applied.
Period *int64 `min:"60" type:"integer"`
// A human-readable explanation for the alarm's state.
StateReason *string `type:"string"`
// An explanation for the alarm's state in machine-readable JSON format
StateReasonData *string `type:"string"`
// The time stamp of the last update to the alarm's state.
StateUpdatedTimestamp *time.Time `type:"timestamp" timestampFormat:"iso8601"`
// The state value for the alarm.
StateValue *string `type:"string" enum:"StateValue"`
// The statistic to apply to the alarm's associated metric.
Statistic *string `type:"string" enum:"Statistic"`
// The value against which the specified statistic is compared.
Threshold *float64 `type:"double"`
// The unit of the alarm's associated metric.
Unit *string `type:"string" enum:"StandardUnit"`
}
// String returns the string representation
func (s MetricAlarm) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s MetricAlarm) GoString() string {
return s.String()
}
// 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.
type MetricDatum struct {
_ struct{} `type:"structure"`
// 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).
Dimensions []*Dimension `type:"list"`
// The name of the metric.
MetricName *string `min:"1" type:"string" required:"true"`
// A set of statistical values describing the metric.
StatisticValues *StatisticSet `type:"structure"`
// The time stamp used for the metric in ISO 8601 Universal Coordinated Time
// (UTC) format. If not specified, the default value is set to the time the
// metric data was received.
Timestamp *time.Time `type:"timestamp" timestampFormat:"iso8601"`
// The unit of the metric.
Unit *string `type:"string" enum:"StandardUnit"`
// The value for the metric.
//
// Although the Value parameter accepts numbers of type Double, Amazon CloudWatch
// rejects values that are either too small or too large. Values must be in
// the range of 8.515920e-109 to 1.174271e+108 (Base 10) or 2e-360 to 2e360
// (Base 2). In addition, special values (e.g., NaN, +Infinity, -Infinity) are
// not supported.
Value *float64 `type:"double"`
}
// String returns the string representation
func (s MetricDatum) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s MetricDatum) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *MetricDatum) Validate() error {
invalidParams := request.ErrInvalidParams{Context: "MetricDatum"}
if s.MetricName == nil {
invalidParams.Add(request.NewErrParamRequired("MetricName"))
}
if s.MetricName != nil && len(*s.MetricName) < 1 {
invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
}
if s.Dimensions != nil {
for i, v := range s.Dimensions {
if v == nil {
continue
}
if err := v.Validate(); err != nil {
invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Dimensions", i), err.(request.ErrInvalidParams))
}
}
}
if s.StatisticValues != nil {
if err := s.StatisticValues.Validate(); err != nil {
invalidParams.AddNested("StatisticValues", err.(request.ErrInvalidParams))
}
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
type PutMetricAlarmInput struct {
_ struct{} `type:"structure"`
// Indicates whether or not actions should be executed during any changes to
// the alarm's state.
ActionsEnabled *bool `type:"boolean"`
// 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
// Name (ARN).
//
// Valid Values: arn:aws:automate:region (e.g., us-east-1):ec2:stop | arn:aws:automate:region
// (e.g., us-east-1):ec2:terminate | arn:aws:automate:region (e.g., us-east-1):ec2:recover
//
// Valid Values (for use with IAM roles): arn:aws:swf:us-east-1:{customer-account}:action/actions/AWS_EC2.InstanceId.Stop/1.0
// | arn:aws:swf:us-east-1:{customer-account}:action/actions/AWS_EC2.InstanceId.Terminate/1.0
// | arn:aws:swf:us-east-1:{customer-account}:action/actions/AWS_EC2.InstanceId.Reboot/1.0
//
// Note: You must create at least one stop, terminate, or reboot alarm using
// the Amazon EC2 or CloudWatch console to create the EC2ActionsAccess IAM role
// for the first time. After this IAM role is created, you can create stop,
// terminate, or reboot alarms using the CLI.
AlarmActions []*string `type:"list"`
// The description for the alarm.
AlarmDescription *string `type:"string"`
// The descriptive name for the alarm. This name must be unique within the user's
// AWS account
AlarmName *string `min:"1" type:"string" required:"true"`
// The arithmetic operation to use when comparing the specified Statistic and
// Threshold. The specified Statistic value is used as the first operand.
ComparisonOperator *string `type:"string" required:"true" enum:"ComparisonOperator"`
// The dimensions for the alarm's associated metric.
Dimensions []*Dimension `type:"list"`
// The number of periods over which data is compared to the specified threshold.
EvaluationPeriods *int64 `min:"1" type:"integer" required:"true"`
// 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
// Name (ARN).
//
// Valid Values: arn:aws:automate:region (e.g., us-east-1):ec2:stop | arn:aws:automate:region
// (e.g., us-east-1):ec2:terminate | arn:aws:automate:region (e.g., us-east-1):ec2:recover
//
// Valid Values (for use with IAM roles): arn:aws:swf:us-east-1:{customer-account}:action/actions/AWS_EC2.InstanceId.Stop/1.0
// | arn:aws:swf:us-east-1:{customer-account}:action/actions/AWS_EC2.InstanceId.Terminate/1.0
// | arn:aws:swf:us-east-1:{customer-account}:action/actions/AWS_EC2.InstanceId.Reboot/1.0
//
// Note: You must create at least one stop, terminate, or reboot alarm using
// the Amazon EC2 or CloudWatch console to create the EC2ActionsAccess IAM role
// for the first time. After this IAM role is created, you can create stop,
// terminate, or reboot alarms using the CLI.
InsufficientDataActions []*string `type:"list"`
// The name for the alarm's associated metric.
MetricName *string `min:"1" type:"string" required:"true"`
// The namespace for the alarm's associated metric.
Namespace *string `min:"1" type:"string" required:"true"`
// 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 Name
// (ARN).
//
// Valid Values: arn:aws:automate:region (e.g., us-east-1):ec2:stop | arn:aws:automate:region
// (e.g., us-east-1):ec2:terminate | arn:aws:automate:region (e.g., us-east-1):ec2:recover
//
// Valid Values (for use with IAM roles): arn:aws:swf:us-east-1:{customer-account}:action/actions/AWS_EC2.InstanceId.Stop/1.0
// | arn:aws:swf:us-east-1:{customer-account}:action/actions/AWS_EC2.InstanceId.Terminate/1.0
// | arn:aws:swf:us-east-1:{customer-account}:action/actions/AWS_EC2.InstanceId.Reboot/1.0
//
// Note: You must create at least one stop, terminate, or reboot alarm using
// the Amazon EC2 or CloudWatch console to create the EC2ActionsAccess IAM role
// for the first time. After this IAM role is created, you can create stop,
// terminate, or reboot alarms using the CLI.
OKActions []*string `type:"list"`
// The period in seconds over which the specified statistic is applied.
Period *int64 `min:"60" type:"integer" required:"true"`
// The statistic to apply to the alarm's associated metric.
Statistic *string `type:"string" required:"true" enum:"Statistic"`
// The value against which the specified statistic is compared.
Threshold *float64 `type:"double" required:"true"`
// The statistic's unit of measure. For example, the units for the Amazon EC2
// NetworkIn metric are Bytes because NetworkIn tracks the number of bytes that
// an instance receives on all network interfaces. You can also specify a unit
// when you create a custom metric. Units help provide conceptual meaning to
// your data. Metric data points that specify a unit of measure, such as Percent,
// are aggregated separately.
//
// Note: If you specify a unit, you must use a unit that is appropriate for
// the metric. Otherwise, this can cause an Amazon CloudWatch alarm to get stuck
// in the INSUFFICIENT DATA state.
Unit *string `type:"string" enum:"StandardUnit"`
}
// String returns the string representation
func (s PutMetricAlarmInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s PutMetricAlarmInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *PutMetricAlarmInput) Validate() error {
invalidParams := request.ErrInvalidParams{Context: "PutMetricAlarmInput"}
if s.AlarmName == nil {
invalidParams.Add(request.NewErrParamRequired("AlarmName"))
}
if s.AlarmName != nil && len(*s.AlarmName) < 1 {
invalidParams.Add(request.NewErrParamMinLen("AlarmName", 1))
}
if s.ComparisonOperator == nil {
invalidParams.Add(request.NewErrParamRequired("ComparisonOperator"))
}
if s.EvaluationPeriods == nil {
invalidParams.Add(request.NewErrParamRequired("EvaluationPeriods"))
}
if s.EvaluationPeriods != nil && *s.EvaluationPeriods < 1 {
invalidParams.Add(request.NewErrParamMinValue("EvaluationPeriods", 1))
}
if s.MetricName == nil {
invalidParams.Add(request.NewErrParamRequired("MetricName"))
}
if s.MetricName != nil && len(*s.MetricName) < 1 {
invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
}
if s.Namespace == nil {
invalidParams.Add(request.NewErrParamRequired("Namespace"))
}
if s.Namespace != nil && len(*s.Namespace) < 1 {
invalidParams.Add(request.NewErrParamMinLen("Namespace", 1))
}
if s.Period == nil {
invalidParams.Add(request.NewErrParamRequired("Period"))
}
if s.Period != nil && *s.Period < 60 {
invalidParams.Add(request.NewErrParamMinValue("Period", 60))
}
if s.Statistic == nil {
invalidParams.Add(request.NewErrParamRequired("Statistic"))
}
if s.Threshold == nil {
invalidParams.Add(request.NewErrParamRequired("Threshold"))
}
if s.Dimensions != nil {
for i, v := range s.Dimensions {
if v == nil {
continue
}
if err := v.Validate(); err != nil {
invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Dimensions", i), err.(request.ErrInvalidParams))
}
}
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
type PutMetricAlarmOutput struct {
_ struct{} `type:"structure"`
}
// String returns the string representation
func (s PutMetricAlarmOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s PutMetricAlarmOutput) GoString() string {
return s.String()
}
type PutMetricDataInput struct {
_ struct{} `type:"structure"`
// A list of data describing the metric.
MetricData []*MetricDatum `type:"list" required:"true"`
// 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.
Namespace *string `min:"1" type:"string" required:"true"`
}
// String returns the string representation
func (s PutMetricDataInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s PutMetricDataInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *PutMetricDataInput) Validate() error {
invalidParams := request.ErrInvalidParams{Context: "PutMetricDataInput"}
if s.MetricData == nil {
invalidParams.Add(request.NewErrParamRequired("MetricData"))
}
if s.Namespace == nil {
invalidParams.Add(request.NewErrParamRequired("Namespace"))
}
if s.Namespace != nil && len(*s.Namespace) < 1 {
invalidParams.Add(request.NewErrParamMinLen("Namespace", 1))
}
if s.MetricData != nil {
for i, v := range s.MetricData {
if v == nil {
continue
}
if err := v.Validate(); err != nil {
invalidParams.AddNested(fmt.Sprintf("%s[%v]", "MetricData", i), err.(request.ErrInvalidParams))
}
}
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
type PutMetricDataOutput struct {
_ struct{} `type:"structure"`
}
// String returns the string representation
func (s PutMetricDataOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s PutMetricDataOutput) GoString() string {
return s.String()
}
type SetAlarmStateInput struct {
_ struct{} `type:"structure"`
// The descriptive name for the alarm. This name must be unique within the user's
// AWS account. The maximum length is 255 characters.
AlarmName *string `min:"1" type:"string" required:"true"`
// The reason that this alarm is set to this specific state (in human-readable
// text format)
StateReason *string `type:"string" required:"true"`
// The reason that this alarm is set to this specific state (in machine-readable
// JSON format)
StateReasonData *string `type:"string"`
// The value of the state.
StateValue *string `type:"string" required:"true" enum:"StateValue"`
}
// String returns the string representation
func (s SetAlarmStateInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s SetAlarmStateInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *SetAlarmStateInput) Validate() error {
invalidParams := request.ErrInvalidParams{Context: "SetAlarmStateInput"}
if s.AlarmName == nil {
invalidParams.Add(request.NewErrParamRequired("AlarmName"))
}
if s.AlarmName != nil && len(*s.AlarmName) < 1 {
invalidParams.Add(request.NewErrParamMinLen("AlarmName", 1))
}
if s.StateReason == nil {
invalidParams.Add(request.NewErrParamRequired("StateReason"))
}
if s.StateValue == nil {
invalidParams.Add(request.NewErrParamRequired("StateValue"))
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
type SetAlarmStateOutput struct {
_ struct{} `type:"structure"`
}
// String returns the string representation
func (s SetAlarmStateOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s SetAlarmStateOutput) GoString() string {
return s.String()
}
// The StatisticSet data type describes the StatisticValues component of MetricDatum,
// and represents a set of statistics that describes a specific metric.
type StatisticSet struct {
_ struct{} `type:"structure"`
// The maximum value of the sample set.
Maximum *float64 `type:"double" required:"true"`
// The minimum value of the sample set.
Minimum *float64 `type:"double" required:"true"`
// The number of samples used for the statistic set.
SampleCount *float64 `type:"double" required:"true"`
// The sum of values for the sample set.
Sum *float64 `type:"double" required:"true"`
}
// String returns the string representation
func (s StatisticSet) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s StatisticSet) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *StatisticSet) Validate() error {
invalidParams := request.ErrInvalidParams{Context: "StatisticSet"}
if s.Maximum == nil {
invalidParams.Add(request.NewErrParamRequired("Maximum"))
}
if s.Minimum == nil {
invalidParams.Add(request.NewErrParamRequired("Minimum"))
}
if s.SampleCount == nil {
invalidParams.Add(request.NewErrParamRequired("SampleCount"))
}
if s.Sum == nil {
invalidParams.Add(request.NewErrParamRequired("Sum"))
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
const (
// @enum ComparisonOperator
ComparisonOperatorGreaterThanOrEqualToThreshold = "GreaterThanOrEqualToThreshold"
// @enum ComparisonOperator
ComparisonOperatorGreaterThanThreshold = "GreaterThanThreshold"
// @enum ComparisonOperator
ComparisonOperatorLessThanThreshold = "LessThanThreshold"
// @enum ComparisonOperator
ComparisonOperatorLessThanOrEqualToThreshold = "LessThanOrEqualToThreshold"
)
const (
// @enum HistoryItemType
HistoryItemTypeConfigurationUpdate = "ConfigurationUpdate"
// @enum HistoryItemType
HistoryItemTypeStateUpdate = "StateUpdate"
// @enum HistoryItemType
HistoryItemTypeAction = "Action"
)
const (
// @enum StandardUnit
StandardUnitSeconds = "Seconds"
// @enum StandardUnit
StandardUnitMicroseconds = "Microseconds"
// @enum StandardUnit
StandardUnitMilliseconds = "Milliseconds"
// @enum StandardUnit
StandardUnitBytes = "Bytes"
// @enum StandardUnit
StandardUnitKilobytes = "Kilobytes"
// @enum StandardUnit
StandardUnitMegabytes = "Megabytes"
// @enum StandardUnit
StandardUnitGigabytes = "Gigabytes"
// @enum StandardUnit
StandardUnitTerabytes = "Terabytes"
// @enum StandardUnit
StandardUnitBits = "Bits"
// @enum StandardUnit
StandardUnitKilobits = "Kilobits"
// @enum StandardUnit
StandardUnitMegabits = "Megabits"
// @enum StandardUnit
StandardUnitGigabits = "Gigabits"
// @enum StandardUnit
StandardUnitTerabits = "Terabits"
// @enum StandardUnit
StandardUnitPercent = "Percent"
// @enum StandardUnit
StandardUnitCount = "Count"
// @enum StandardUnit
StandardUnitBytesSecond = "Bytes/Second"
// @enum StandardUnit
StandardUnitKilobytesSecond = "Kilobytes/Second"
// @enum StandardUnit
StandardUnitMegabytesSecond = "Megabytes/Second"
// @enum StandardUnit
StandardUnitGigabytesSecond = "Gigabytes/Second"
// @enum StandardUnit
StandardUnitTerabytesSecond = "Terabytes/Second"
// @enum StandardUnit
StandardUnitBitsSecond = "Bits/Second"
// @enum StandardUnit
StandardUnitKilobitsSecond = "Kilobits/Second"
// @enum StandardUnit
StandardUnitMegabitsSecond = "Megabits/Second"
// @enum StandardUnit
StandardUnitGigabitsSecond = "Gigabits/Second"
// @enum StandardUnit
StandardUnitTerabitsSecond = "Terabits/Second"
// @enum StandardUnit
StandardUnitCountSecond = "Count/Second"
// @enum StandardUnit
StandardUnitNone = "None"
)
const (
// @enum StateValue
StateValueOk = "OK"
// @enum StateValue
StateValueAlarm = "ALARM"
// @enum StateValue
StateValueInsufficientData = "INSUFFICIENT_DATA"
)
const (
// @enum Statistic
StatisticSampleCount = "SampleCount"
// @enum Statistic
StatisticAverage = "Average"
// @enum Statistic
StatisticSum = "Sum"
// @enum Statistic
StatisticMinimum = "Minimum"
// @enum Statistic
StatisticMaximum = "Maximum"
)