# frozen_string_literal: true # WARNING ABOUT GENERATED CODE # # This file is generated. See the contributing guide for more information: # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md # # WARNING ABOUT GENERATED CODE require 'seahorse/client/plugins/content_length.rb' require 'aws-sdk-core/plugins/credentials_configuration.rb' require 'aws-sdk-core/plugins/logging.rb' require 'aws-sdk-core/plugins/param_converter.rb' require 'aws-sdk-core/plugins/param_validator.rb' require 'aws-sdk-core/plugins/user_agent.rb' require 'aws-sdk-core/plugins/helpful_socket_errors.rb' require 'aws-sdk-core/plugins/retry_errors.rb' require 'aws-sdk-core/plugins/global_configuration.rb' require 'aws-sdk-core/plugins/regional_endpoint.rb' require 'aws-sdk-core/plugins/endpoint_discovery.rb' require 'aws-sdk-core/plugins/endpoint_pattern.rb' require 'aws-sdk-core/plugins/response_paging.rb' require 'aws-sdk-core/plugins/stub_responses.rb' require 'aws-sdk-core/plugins/idempotency_token.rb' require 'aws-sdk-core/plugins/jsonvalue_converter.rb' require 'aws-sdk-core/plugins/client_metrics_plugin.rb' require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb' require 'aws-sdk-core/plugins/transfer_encoding.rb' require 'aws-sdk-core/plugins/http_checksum.rb' require 'aws-sdk-core/plugins/checksum_algorithm.rb' require 'aws-sdk-core/plugins/defaults_mode.rb' require 'aws-sdk-core/plugins/recursion_detection.rb' require 'aws-sdk-core/plugins/signature_v4.rb' require 'aws-sdk-core/plugins/protocols/query.rb' Aws::Plugins::GlobalConfiguration.add_identifier(:cloudwatch) module Aws::CloudWatch # An API client for CloudWatch. To construct a client, you need to configure a `:region` and `:credentials`. # # client = Aws::CloudWatch::Client.new( # region: region_name, # credentials: credentials, # # ... # ) # # For details on configuring region and credentials see # the [developer guide](/sdk-for-ruby/v3/developer-guide/setup-config.html). # # See {#initialize} for a full list of supported configuration options. class Client < Seahorse::Client::Base include Aws::ClientStubs @identifier = :cloudwatch set_api(ClientApi::API) add_plugin(Seahorse::Client::Plugins::ContentLength) add_plugin(Aws::Plugins::CredentialsConfiguration) add_plugin(Aws::Plugins::Logging) add_plugin(Aws::Plugins::ParamConverter) add_plugin(Aws::Plugins::ParamValidator) add_plugin(Aws::Plugins::UserAgent) add_plugin(Aws::Plugins::HelpfulSocketErrors) add_plugin(Aws::Plugins::RetryErrors) add_plugin(Aws::Plugins::GlobalConfiguration) add_plugin(Aws::Plugins::RegionalEndpoint) add_plugin(Aws::Plugins::EndpointDiscovery) add_plugin(Aws::Plugins::EndpointPattern) add_plugin(Aws::Plugins::ResponsePaging) add_plugin(Aws::Plugins::StubResponses) add_plugin(Aws::Plugins::IdempotencyToken) add_plugin(Aws::Plugins::JsonvalueConverter) add_plugin(Aws::Plugins::ClientMetricsPlugin) add_plugin(Aws::Plugins::ClientMetricsSendPlugin) add_plugin(Aws::Plugins::TransferEncoding) add_plugin(Aws::Plugins::HttpChecksum) add_plugin(Aws::Plugins::ChecksumAlgorithm) add_plugin(Aws::Plugins::DefaultsMode) add_plugin(Aws::Plugins::RecursionDetection) add_plugin(Aws::Plugins::SignatureV4) add_plugin(Aws::Plugins::Protocols::Query) # @overload initialize(options) # @param [Hash] options # @option options [required, Aws::CredentialProvider] :credentials # Your AWS credentials. This can be an instance of any one of the # following classes: # # * `Aws::Credentials` - Used for configuring static, non-refreshing # credentials. # # * `Aws::SharedCredentials` - Used for loading static credentials from a # shared file, such as `~/.aws/config`. # # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role. # # * `Aws::AssumeRoleWebIdentityCredentials` - Used when you need to # assume a role after providing credentials via the web. # # * `Aws::SSOCredentials` - Used for loading credentials from AWS SSO using an # access token generated from `aws login`. # # * `Aws::ProcessCredentials` - Used for loading credentials from a # process that outputs to stdout. # # * `Aws::InstanceProfileCredentials` - Used for loading credentials # from an EC2 IMDS on an EC2 instance. # # * `Aws::ECSCredentials` - Used for loading credentials from # instances running in ECS. # # * `Aws::CognitoIdentityCredentials` - Used for loading credentials # from the Cognito Identity service. # # When `:credentials` are not configured directly, the following # locations will be searched for credentials: # # * `Aws.config[:credentials]` # * The `:access_key_id`, `:secret_access_key`, and `:session_token` options. # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY'] # * `~/.aws/credentials` # * `~/.aws/config` # * EC2/ECS IMDS instance profile - When used by default, the timeouts # are very aggressive. Construct and pass an instance of # `Aws::InstanceProfileCredentails` or `Aws::ECSCredentials` to # enable retries and extended timeouts. Instance profile credential # fetching can be disabled by setting ENV['AWS_EC2_METADATA_DISABLED'] # to true. # # @option options [required, String] :region # The AWS region to connect to. The configured `:region` is # used to determine the service `:endpoint`. When not passed, # a default `:region` is searched for in the following locations: # # * `Aws.config[:region]` # * `ENV['AWS_REGION']` # * `ENV['AMAZON_REGION']` # * `ENV['AWS_DEFAULT_REGION']` # * `~/.aws/credentials` # * `~/.aws/config` # # @option options [String] :access_key_id # # @option options [Boolean] :active_endpoint_cache (false) # When set to `true`, a thread polling for endpoints will be running in # the background every 60 secs (default). Defaults to `false`. # # @option options [Boolean] :adaptive_retry_wait_to_fill (true) # Used only in `adaptive` retry mode. When true, the request will sleep # until there is sufficent client side capacity to retry the request. # When false, the request will raise a `RetryCapacityNotAvailableError` and will # not retry instead of sleeping. # # @option options [Boolean] :client_side_monitoring (false) # When `true`, client-side metrics will be collected for all API requests from # this client. # # @option options [String] :client_side_monitoring_client_id ("") # Allows you to provide an identifier for this client which will be attached to # all generated client side metrics. Defaults to an empty string. # # @option options [String] :client_side_monitoring_host ("127.0.0.1") # Allows you to specify the DNS hostname or IPv4 or IPv6 address that the client # side monitoring agent is running on, where client metrics will be published via UDP. # # @option options [Integer] :client_side_monitoring_port (31000) # Required for publishing client metrics. The port that the client side monitoring # agent is running on, where client metrics will be published via UDP. # # @option options [Aws::ClientSideMonitoring::Publisher] :client_side_monitoring_publisher (Aws::ClientSideMonitoring::Publisher) # Allows you to provide a custom client-side monitoring publisher class. By default, # will use the Client Side Monitoring Agent Publisher. # # @option options [Boolean] :convert_params (true) # When `true`, an attempt is made to coerce request parameters into # the required types. # # @option options [Boolean] :correct_clock_skew (true) # Used only in `standard` and adaptive retry modes. Specifies whether to apply # a clock skew correction and retry requests with skewed client clocks. # # @option options [String] :defaults_mode ("legacy") # See {Aws::DefaultsModeConfiguration} for a list of the # accepted modes and the configuration defaults that are included. # # @option options [Boolean] :disable_host_prefix_injection (false) # Set to true to disable SDK automatically adding host prefix # to default service endpoint when available. # # @option options [String] :endpoint # The client endpoint is normally constructed from the `:region` # option. You should only configure an `:endpoint` when connecting # to test or custom endpoints. This should be a valid HTTP(S) URI. # # @option options [Integer] :endpoint_cache_max_entries (1000) # Used for the maximum size limit of the LRU cache storing endpoints data # for endpoint discovery enabled operations. Defaults to 1000. # # @option options [Integer] :endpoint_cache_max_threads (10) # Used for the maximum threads in use for polling endpoints to be cached, defaults to 10. # # @option options [Integer] :endpoint_cache_poll_interval (60) # When :endpoint_discovery and :active_endpoint_cache is enabled, # Use this option to config the time interval in seconds for making # requests fetching endpoints information. Defaults to 60 sec. # # @option options [Boolean] :endpoint_discovery (false) # When set to `true`, endpoint discovery will be enabled for operations when available. # # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default) # The log formatter. # # @option options [Symbol] :log_level (:info) # The log level to send messages to the `:logger` at. # # @option options [Logger] :logger # The Logger instance to send log messages to. If this option # is not set, logging will be disabled. # # @option options [Integer] :max_attempts (3) # An integer representing the maximum number attempts that will be made for # a single request, including the initial attempt. For example, # setting this value to 5 will result in a request being retried up to # 4 times. Used in `standard` and `adaptive` retry modes. # # @option options [String] :profile ("default") # Used when loading credentials from the shared credentials file # at HOME/.aws/credentials. When not specified, 'default' is used. # # @option options [Proc] :retry_backoff # A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay. # This option is only used in the `legacy` retry mode. # # @option options [Float] :retry_base_delay (0.3) # The base delay in seconds used by the default backoff function. This option # is only used in the `legacy` retry mode. # # @option options [Symbol] :retry_jitter (:none) # A delay randomiser function used by the default backoff function. # Some predefined functions can be referenced by name - :none, :equal, :full, # otherwise a Proc that takes and returns a number. This option is only used # in the `legacy` retry mode. # # @see https://www.awsarchitectureblog.com/2015/03/backoff.html # # @option options [Integer] :retry_limit (3) # The maximum number of times to retry failed requests. Only # ~ 500 level server errors and certain ~ 400 level client errors # are retried. Generally, these are throttling errors, data # checksum errors, networking errors, timeout errors, auth errors, # endpoint discovery, and errors from expired credentials. # This option is only used in the `legacy` retry mode. # # @option options [Integer] :retry_max_delay (0) # The maximum number of seconds to delay between retries (0 for no limit) # used by the default backoff function. This option is only used in the # `legacy` retry mode. # # @option options [String] :retry_mode ("legacy") # Specifies which retry algorithm to use. Values are: # # * `legacy` - The pre-existing retry behavior. This is default value if # no retry mode is provided. # # * `standard` - A standardized set of retry rules across the AWS SDKs. # This includes support for retry quotas, which limit the number of # unsuccessful retries a client can make. # # * `adaptive` - An experimental retry mode that includes all the # functionality of `standard` mode along with automatic client side # throttling. This is a provisional mode that may change behavior # in the future. # # # @option options [String] :secret_access_key # # @option options [String] :session_token # # @option options [Boolean] :stub_responses (false) # Causes the client to return stubbed responses. By default # fake responses are generated and returned. You can specify # the response data to return or errors to raise by calling # {ClientStubs#stub_responses}. See {ClientStubs} for more information. # # ** Please note ** When response stubbing is enabled, no HTTP # requests are made, and retries are disabled. # # @option options [Boolean] :use_dualstack_endpoint # When set to `true`, dualstack enabled endpoints (with `.aws` TLD) # will be used if available. # # @option options [Boolean] :use_fips_endpoint # When set to `true`, fips compatible endpoints will be used if available. # When a `fips` region is used, the region is normalized and this config # is set to `true`. # # @option options [Boolean] :validate_params (true) # When `true`, request parameters are validated before # sending the request. # # @option options [URI::HTTP,String] :http_proxy A proxy to send # requests through. Formatted like 'http://proxy.com:123'. # # @option options [Float] :http_open_timeout (15) The number of # seconds to wait when opening a HTTP session before raising a # `Timeout::Error`. # # @option options [Float] :http_read_timeout (60) The default # number of seconds to wait for response data. This value can # safely be set per-request on the session. # # @option options [Float] :http_idle_timeout (5) The number of # seconds a connection is allowed to sit idle before it is # considered stale. Stale connections are closed and removed # from the pool before making a request. # # @option options [Float] :http_continue_timeout (1) The number of # seconds to wait for a 100-continue response before sending the # request body. This option has no effect unless the request has # "Expect" header set to "100-continue". Defaults to `nil` which # disables this behaviour. This value can safely be set per # request on the session. # # @option options [Float] :ssl_timeout (nil) Sets the SSL timeout # in seconds. # # @option options [Boolean] :http_wire_trace (false) When `true`, # HTTP debug output will be sent to the `:logger`. # # @option options [Boolean] :ssl_verify_peer (true) When `true`, # SSL peer certificates are verified when establishing a # connection. # # @option options [String] :ssl_ca_bundle Full path to the SSL # certificate authority bundle file that should be used when # verifying peer certificates. If you do not pass # `:ssl_ca_bundle` or `:ssl_ca_directory` the the system default # will be used if available. # # @option options [String] :ssl_ca_directory Full path of the # directory that contains the unbundled SSL certificate # authority files for verifying peer certificates. If you do # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the # system default will be used if available. # def initialize(*args) super end # @!group API Operations # Deletes the specified alarms. You can delete up to 100 alarms in one # operation. However, this total can include no more than one composite # alarm. For example, you could delete 99 metric alarms and one # composite alarms with one operation, but you can't delete two # composite alarms with one operation. # # In the event of an error, no alarms are deleted. # # It is possible to create a loop or cycle of composite alarms, where # composite alarm A depends on composite alarm B, and composite alarm B # also depends on composite alarm A. In this scenario, you can't delete # any composite alarm that is part of the cycle because there is always # still a composite alarm that depends on that alarm that you want to # delete. # # To get out of such a situation, you must break the cycle by changing # the rule of one of the composite alarms in the cycle to remove a # dependency that creates the cycle. The simplest change to make to # break a cycle is to change the `AlarmRule` of one of the alarms to # `False`. # # Additionally, the evaluation of composite alarms stops if CloudWatch # detects a cycle in the evaluation path. # # # # @option params [required, Array] :alarm_names # The alarms to be deleted. # # @return [Struct] Returns an empty {Seahorse::Client::Response response}. # # @example Request syntax with placeholder values # # resp = client.delete_alarms({ # alarm_names: ["AlarmName"], # required # }) # # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DeleteAlarms AWS API Documentation # # @overload delete_alarms(params = {}) # @param [Hash] params ({}) def delete_alarms(params = {}, options = {}) req = build_request(:delete_alarms, params) req.send_request(options) end # Deletes the specified anomaly detection model from your account. # # @option params [String] :namespace # The namespace associated with the anomaly detection model to delete. # # @option params [String] :metric_name # The metric name associated with the anomaly detection model to delete. # # @option params [Array] :dimensions # The metric dimensions associated with the anomaly detection model to # delete. # # @option params [String] :stat # The statistic associated with the anomaly detection model to delete. # # @option params [Types::SingleMetricAnomalyDetector] :single_metric_anomaly_detector # A single metric anomaly detector to be deleted. # # When using `SingleMetricAnomalyDetector`, you cannot include the # following parameters in the same operation: # # * `Dimensions`, # # * `MetricName` # # * `Namespace` # # * `Stat` # # * the `MetricMathAnomalyDetector` parameters of # `DeleteAnomalyDetectorInput` # # Instead, specify the single metric anomaly detector attributes as part # of the `SingleMetricAnomalyDetector` property. # # @option params [Types::MetricMathAnomalyDetector] :metric_math_anomaly_detector # The metric math anomaly detector to be deleted. # # When using `MetricMathAnomalyDetector`, you cannot include following # parameters in the same operation: # # * `Dimensions`, # # * `MetricName` # # * `Namespace` # # * `Stat` # # * the `SingleMetricAnomalyDetector` parameters of # `DeleteAnomalyDetectorInput` # # Instead, specify the metric math anomaly detector attributes as part # of the `MetricMathAnomalyDetector` property. # # @return [Struct] Returns an empty {Seahorse::Client::Response response}. # # @example Request syntax with placeholder values # # resp = client.delete_anomaly_detector({ # namespace: "Namespace", # metric_name: "MetricName", # dimensions: [ # { # name: "DimensionName", # required # value: "DimensionValue", # required # }, # ], # stat: "AnomalyDetectorMetricStat", # single_metric_anomaly_detector: { # namespace: "Namespace", # metric_name: "MetricName", # dimensions: [ # { # name: "DimensionName", # required # value: "DimensionValue", # required # }, # ], # stat: "AnomalyDetectorMetricStat", # }, # metric_math_anomaly_detector: { # metric_data_queries: [ # { # id: "MetricId", # required # metric_stat: { # metric: { # required # namespace: "Namespace", # metric_name: "MetricName", # dimensions: [ # { # name: "DimensionName", # required # value: "DimensionValue", # required # }, # ], # }, # period: 1, # required # stat: "Stat", # required # unit: "Seconds", # accepts 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 # }, # expression: "MetricExpression", # label: "MetricLabel", # return_data: false, # period: 1, # account_id: "AccountId", # }, # ], # }, # }) # # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DeleteAnomalyDetector AWS API Documentation # # @overload delete_anomaly_detector(params = {}) # @param [Hash] params ({}) def delete_anomaly_detector(params = {}, options = {}) req = build_request(:delete_anomaly_detector, params) req.send_request(options) end # Deletes all dashboards that you specify. You can specify up to 100 # dashboards to delete. If there is an error during this call, no # dashboards are deleted. # # @option params [required, Array] :dashboard_names # The dashboards to be deleted. This parameter is required. # # @return [Struct] Returns an empty {Seahorse::Client::Response response}. # # @example Request syntax with placeholder values # # resp = client.delete_dashboards({ # dashboard_names: ["DashboardName"], # required # }) # # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DeleteDashboards AWS API Documentation # # @overload delete_dashboards(params = {}) # @param [Hash] params ({}) def delete_dashboards(params = {}, options = {}) req = build_request(:delete_dashboards, params) req.send_request(options) end # Permanently deletes the specified Contributor Insights rules. # # If you create a rule, delete it, and then re-create it with the same # name, historical data from the first time the rule was created might # not be available. # # @option params [required, Array] :rule_names # An array of the rule names to delete. If you need to find out the # names of your rules, use [DescribeInsightRules][1]. # # # # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeInsightRules.html # # @return [Types::DeleteInsightRulesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::DeleteInsightRulesOutput#failures #failures} => Array<Types::PartialFailure> # # @example Request syntax with placeholder values # # resp = client.delete_insight_rules({ # rule_names: ["InsightRuleName"], # required # }) # # @example Response structure # # resp.failures #=> Array # resp.failures[0].failure_resource #=> String # resp.failures[0].exception_type #=> String # resp.failures[0].failure_code #=> String # resp.failures[0].failure_description #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DeleteInsightRules AWS API Documentation # # @overload delete_insight_rules(params = {}) # @param [Hash] params ({}) def delete_insight_rules(params = {}, options = {}) req = build_request(:delete_insight_rules, params) req.send_request(options) end # Permanently deletes the metric stream that you specify. # # @option params [required, String] :name # The name of the metric stream to delete. # # @return [Struct] Returns an empty {Seahorse::Client::Response response}. # # @example Request syntax with placeholder values # # resp = client.delete_metric_stream({ # name: "MetricStreamName", # required # }) # # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DeleteMetricStream AWS API Documentation # # @overload delete_metric_stream(params = {}) # @param [Hash] params ({}) def delete_metric_stream(params = {}, options = {}) req = build_request(:delete_metric_stream, params) req.send_request(options) end # Retrieves the history for the specified alarm. You can filter the # results by date range or item type. If an alarm name is not specified, # the histories for either all metric alarms or all composite alarms are # returned. # # CloudWatch retains the history of an alarm even if you delete the # alarm. # # To use this operation and return information about a composite alarm, # you must be signed on with the `cloudwatch:DescribeAlarmHistory` # permission that is scoped to `*`. You can't return information about # composite alarms if your `cloudwatch:DescribeAlarmHistory` permission # has a narrower scope. # # @option params [String] :alarm_name # The name of the alarm. # # @option params [Array] :alarm_types # Use this parameter to specify whether you want the operation to return # metric alarms or composite alarms. If you omit this parameter, only # metric alarms are returned. # # @option params [String] :history_item_type # The type of alarm histories to retrieve. # # @option params [Time,DateTime,Date,Integer,String] :start_date # The starting date to retrieve alarm history. # # @option params [Time,DateTime,Date,Integer,String] :end_date # The ending date to retrieve alarm history. # # @option params [Integer] :max_records # The maximum number of alarm history records to retrieve. # # @option params [String] :next_token # The token returned by a previous call to indicate that there is more # data available. # # @option params [String] :scan_by # Specified whether to return the newest or oldest alarm history first. # Specify `TimestampDescending` to have the newest event history # returned first, and specify `TimestampAscending` to have the oldest # history returned first. # # @return [Types::DescribeAlarmHistoryOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::DescribeAlarmHistoryOutput#alarm_history_items #alarm_history_items} => Array<Types::AlarmHistoryItem> # * {Types::DescribeAlarmHistoryOutput#next_token #next_token} => String # # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}. # # @example Request syntax with placeholder values # # resp = client.describe_alarm_history({ # alarm_name: "AlarmName", # alarm_types: ["CompositeAlarm"], # accepts CompositeAlarm, MetricAlarm # history_item_type: "ConfigurationUpdate", # accepts ConfigurationUpdate, StateUpdate, Action # start_date: Time.now, # end_date: Time.now, # max_records: 1, # next_token: "NextToken", # scan_by: "TimestampDescending", # accepts TimestampDescending, TimestampAscending # }) # # @example Response structure # # resp.alarm_history_items #=> Array # resp.alarm_history_items[0].alarm_name #=> String # resp.alarm_history_items[0].alarm_type #=> String, one of "CompositeAlarm", "MetricAlarm" # resp.alarm_history_items[0].timestamp #=> Time # resp.alarm_history_items[0].history_item_type #=> String, one of "ConfigurationUpdate", "StateUpdate", "Action" # resp.alarm_history_items[0].history_summary #=> String # resp.alarm_history_items[0].history_data #=> String # resp.next_token #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DescribeAlarmHistory AWS API Documentation # # @overload describe_alarm_history(params = {}) # @param [Hash] params ({}) def describe_alarm_history(params = {}, options = {}) req = build_request(:describe_alarm_history, params) req.send_request(options) end # Retrieves the specified alarms. You can filter the results by # specifying a prefix for the alarm name, the alarm state, or a prefix # for any action. # # To use this operation and return information about composite alarms, # you must be signed on with the `cloudwatch:DescribeAlarms` permission # that is scoped to `*`. You can't return information about composite # alarms if your `cloudwatch:DescribeAlarms` permission has a narrower # scope. # # @option params [Array] :alarm_names # The names of the alarms to retrieve information about. # # @option params [String] :alarm_name_prefix # An alarm name prefix. If you specify this parameter, you receive # information about all alarms that have names that start with this # prefix. # # If this parameter is specified, you cannot specify `AlarmNames`. # # @option params [Array] :alarm_types # Use this parameter to specify whether you want the operation to return # metric alarms or composite alarms. If you omit this parameter, only # metric alarms are returned. # # @option params [String] :children_of_alarm_name # If you use this parameter and specify the name of a composite alarm, # the operation returns information about the "children" alarms of the # alarm you specify. These are the metric alarms and composite alarms # referenced in the `AlarmRule` field of the composite alarm that you # specify in `ChildrenOfAlarmName`. Information about the composite # alarm that you name in `ChildrenOfAlarmName` is not returned. # # If you specify `ChildrenOfAlarmName`, you cannot specify any other # parameters in the request except for `MaxRecords` and `NextToken`. If # you do so, you receive a validation error. # # Only the `Alarm Name`, `ARN`, `StateValue` # (OK/ALARM/INSUFFICIENT\_DATA), and `StateUpdatedTimestamp` information # are returned by this operation when you use this parameter. To get # complete information about these alarms, perform another # `DescribeAlarms` operation and specify the parent alarm names in the # `AlarmNames` parameter. # # # # @option params [String] :parents_of_alarm_name # If you use this parameter and specify the name of a metric or # composite alarm, the operation returns information about the # "parent" alarms of the alarm you specify. These are the composite # alarms that have `AlarmRule` parameters that reference the alarm named # in `ParentsOfAlarmName`. Information about the alarm that you specify # in `ParentsOfAlarmName` is not returned. # # If you specify `ParentsOfAlarmName`, you cannot specify any other # parameters in the request except for `MaxRecords` and `NextToken`. If # you do so, you receive a validation error. # # Only the Alarm Name and ARN are returned by this operation when you # use this parameter. To get complete information about these alarms, # perform another `DescribeAlarms` operation and specify the parent # alarm names in the `AlarmNames` parameter. # # # # @option params [String] :state_value # Specify this parameter to receive information only about alarms that # are currently in the state that you specify. # # @option params [String] :action_prefix # Use this parameter to filter the results of the operation to only # those alarms that use a certain alarm action. For example, you could # specify the ARN of an SNS topic to find all alarms that send # notifications to that topic. # # @option params [Integer] :max_records # The maximum number of alarm descriptions to retrieve. # # @option params [String] :next_token # The token returned by a previous call to indicate that there is more # data available. # # @return [Types::DescribeAlarmsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::DescribeAlarmsOutput#composite_alarms #composite_alarms} => Array<Types::CompositeAlarm> # * {Types::DescribeAlarmsOutput#metric_alarms #metric_alarms} => Array<Types::MetricAlarm> # * {Types::DescribeAlarmsOutput#next_token #next_token} => String # # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}. # # @example Request syntax with placeholder values # # resp = client.describe_alarms({ # alarm_names: ["AlarmName"], # alarm_name_prefix: "AlarmNamePrefix", # alarm_types: ["CompositeAlarm"], # accepts CompositeAlarm, MetricAlarm # children_of_alarm_name: "AlarmName", # parents_of_alarm_name: "AlarmName", # state_value: "OK", # accepts OK, ALARM, INSUFFICIENT_DATA # action_prefix: "ActionPrefix", # max_records: 1, # next_token: "NextToken", # }) # # @example Response structure # # resp.composite_alarms #=> Array # resp.composite_alarms[0].actions_enabled #=> Boolean # resp.composite_alarms[0].alarm_actions #=> Array # resp.composite_alarms[0].alarm_actions[0] #=> String # resp.composite_alarms[0].alarm_arn #=> String # resp.composite_alarms[0].alarm_configuration_updated_timestamp #=> Time # resp.composite_alarms[0].alarm_description #=> String # resp.composite_alarms[0].alarm_name #=> String # resp.composite_alarms[0].alarm_rule #=> String # resp.composite_alarms[0].insufficient_data_actions #=> Array # resp.composite_alarms[0].insufficient_data_actions[0] #=> String # resp.composite_alarms[0].ok_actions #=> Array # resp.composite_alarms[0].ok_actions[0] #=> String # resp.composite_alarms[0].state_reason #=> String # resp.composite_alarms[0].state_reason_data #=> String # resp.composite_alarms[0].state_updated_timestamp #=> Time # resp.composite_alarms[0].state_value #=> String, one of "OK", "ALARM", "INSUFFICIENT_DATA" # resp.composite_alarms[0].state_transitioned_timestamp #=> Time # resp.composite_alarms[0].actions_suppressed_by #=> String, one of "WaitPeriod", "ExtensionPeriod", "Alarm" # resp.composite_alarms[0].actions_suppressed_reason #=> String # resp.composite_alarms[0].actions_suppressor #=> String # resp.composite_alarms[0].actions_suppressor_wait_period #=> Integer # resp.composite_alarms[0].actions_suppressor_extension_period #=> Integer # resp.metric_alarms #=> Array # resp.metric_alarms[0].alarm_name #=> String # resp.metric_alarms[0].alarm_arn #=> String # resp.metric_alarms[0].alarm_description #=> String # resp.metric_alarms[0].alarm_configuration_updated_timestamp #=> Time # resp.metric_alarms[0].actions_enabled #=> Boolean # resp.metric_alarms[0].ok_actions #=> Array # resp.metric_alarms[0].ok_actions[0] #=> String # resp.metric_alarms[0].alarm_actions #=> Array # resp.metric_alarms[0].alarm_actions[0] #=> String # resp.metric_alarms[0].insufficient_data_actions #=> Array # resp.metric_alarms[0].insufficient_data_actions[0] #=> String # resp.metric_alarms[0].state_value #=> String, one of "OK", "ALARM", "INSUFFICIENT_DATA" # resp.metric_alarms[0].state_reason #=> String # resp.metric_alarms[0].state_reason_data #=> String # resp.metric_alarms[0].state_updated_timestamp #=> Time # resp.metric_alarms[0].metric_name #=> String # resp.metric_alarms[0].namespace #=> String # resp.metric_alarms[0].statistic #=> String, one of "SampleCount", "Average", "Sum", "Minimum", "Maximum" # resp.metric_alarms[0].extended_statistic #=> String # resp.metric_alarms[0].dimensions #=> Array # resp.metric_alarms[0].dimensions[0].name #=> String # resp.metric_alarms[0].dimensions[0].value #=> String # resp.metric_alarms[0].period #=> Integer # resp.metric_alarms[0].unit #=> String, one of "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" # resp.metric_alarms[0].evaluation_periods #=> Integer # resp.metric_alarms[0].datapoints_to_alarm #=> Integer # resp.metric_alarms[0].threshold #=> Float # resp.metric_alarms[0].comparison_operator #=> String, one of "GreaterThanOrEqualToThreshold", "GreaterThanThreshold", "LessThanThreshold", "LessThanOrEqualToThreshold", "LessThanLowerOrGreaterThanUpperThreshold", "LessThanLowerThreshold", "GreaterThanUpperThreshold" # resp.metric_alarms[0].treat_missing_data #=> String # resp.metric_alarms[0].evaluate_low_sample_count_percentile #=> String # resp.metric_alarms[0].metrics #=> Array # resp.metric_alarms[0].metrics[0].id #=> String # resp.metric_alarms[0].metrics[0].metric_stat.metric.namespace #=> String # resp.metric_alarms[0].metrics[0].metric_stat.metric.metric_name #=> String # resp.metric_alarms[0].metrics[0].metric_stat.metric.dimensions #=> Array # resp.metric_alarms[0].metrics[0].metric_stat.metric.dimensions[0].name #=> String # resp.metric_alarms[0].metrics[0].metric_stat.metric.dimensions[0].value #=> String # resp.metric_alarms[0].metrics[0].metric_stat.period #=> Integer # resp.metric_alarms[0].metrics[0].metric_stat.stat #=> String # resp.metric_alarms[0].metrics[0].metric_stat.unit #=> String, one of "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" # resp.metric_alarms[0].metrics[0].expression #=> String # resp.metric_alarms[0].metrics[0].label #=> String # resp.metric_alarms[0].metrics[0].return_data #=> Boolean # resp.metric_alarms[0].metrics[0].period #=> Integer # resp.metric_alarms[0].metrics[0].account_id #=> String # resp.metric_alarms[0].threshold_metric_id #=> String # resp.next_token #=> String # # # The following waiters are defined for this operation (see {Client#wait_until} for detailed usage): # # * alarm_exists # * composite_alarm_exists # # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DescribeAlarms AWS API Documentation # # @overload describe_alarms(params = {}) # @param [Hash] params ({}) def describe_alarms(params = {}, options = {}) req = build_request(:describe_alarms, params) req.send_request(options) end # Retrieves the alarms for the specified metric. To filter the results, # specify a statistic, period, or unit. # # This operation retrieves only standard alarms that are based on the # specified metric. It does not return alarms based on math expressions # that use the specified metric, or composite alarms that use the # specified metric. # # @option params [required, String] :metric_name # The name of the metric. # # @option params [required, String] :namespace # The namespace of the metric. # # @option params [String] :statistic # The statistic for the metric, other than percentiles. For percentile # statistics, use `ExtendedStatistics`. # # @option params [String] :extended_statistic # The percentile statistic for the metric. Specify a value between p0.0 # and p100. # # @option params [Array] :dimensions # The dimensions associated with the metric. If the metric has any # associated dimensions, you must specify them in order for the call to # succeed. # # @option params [Integer] :period # The period, in seconds, over which the statistic is applied. # # @option params [String] :unit # The unit for the metric. # # @return [Types::DescribeAlarmsForMetricOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::DescribeAlarmsForMetricOutput#metric_alarms #metric_alarms} => Array<Types::MetricAlarm> # # @example Request syntax with placeholder values # # resp = client.describe_alarms_for_metric({ # metric_name: "MetricName", # required # namespace: "Namespace", # required # statistic: "SampleCount", # accepts SampleCount, Average, Sum, Minimum, Maximum # extended_statistic: "ExtendedStatistic", # dimensions: [ # { # name: "DimensionName", # required # value: "DimensionValue", # required # }, # ], # period: 1, # unit: "Seconds", # accepts 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 # }) # # @example Response structure # # resp.metric_alarms #=> Array # resp.metric_alarms[0].alarm_name #=> String # resp.metric_alarms[0].alarm_arn #=> String # resp.metric_alarms[0].alarm_description #=> String # resp.metric_alarms[0].alarm_configuration_updated_timestamp #=> Time # resp.metric_alarms[0].actions_enabled #=> Boolean # resp.metric_alarms[0].ok_actions #=> Array # resp.metric_alarms[0].ok_actions[0] #=> String # resp.metric_alarms[0].alarm_actions #=> Array # resp.metric_alarms[0].alarm_actions[0] #=> String # resp.metric_alarms[0].insufficient_data_actions #=> Array # resp.metric_alarms[0].insufficient_data_actions[0] #=> String # resp.metric_alarms[0].state_value #=> String, one of "OK", "ALARM", "INSUFFICIENT_DATA" # resp.metric_alarms[0].state_reason #=> String # resp.metric_alarms[0].state_reason_data #=> String # resp.metric_alarms[0].state_updated_timestamp #=> Time # resp.metric_alarms[0].metric_name #=> String # resp.metric_alarms[0].namespace #=> String # resp.metric_alarms[0].statistic #=> String, one of "SampleCount", "Average", "Sum", "Minimum", "Maximum" # resp.metric_alarms[0].extended_statistic #=> String # resp.metric_alarms[0].dimensions #=> Array # resp.metric_alarms[0].dimensions[0].name #=> String # resp.metric_alarms[0].dimensions[0].value #=> String # resp.metric_alarms[0].period #=> Integer # resp.metric_alarms[0].unit #=> String, one of "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" # resp.metric_alarms[0].evaluation_periods #=> Integer # resp.metric_alarms[0].datapoints_to_alarm #=> Integer # resp.metric_alarms[0].threshold #=> Float # resp.metric_alarms[0].comparison_operator #=> String, one of "GreaterThanOrEqualToThreshold", "GreaterThanThreshold", "LessThanThreshold", "LessThanOrEqualToThreshold", "LessThanLowerOrGreaterThanUpperThreshold", "LessThanLowerThreshold", "GreaterThanUpperThreshold" # resp.metric_alarms[0].treat_missing_data #=> String # resp.metric_alarms[0].evaluate_low_sample_count_percentile #=> String # resp.metric_alarms[0].metrics #=> Array # resp.metric_alarms[0].metrics[0].id #=> String # resp.metric_alarms[0].metrics[0].metric_stat.metric.namespace #=> String # resp.metric_alarms[0].metrics[0].metric_stat.metric.metric_name #=> String # resp.metric_alarms[0].metrics[0].metric_stat.metric.dimensions #=> Array # resp.metric_alarms[0].metrics[0].metric_stat.metric.dimensions[0].name #=> String # resp.metric_alarms[0].metrics[0].metric_stat.metric.dimensions[0].value #=> String # resp.metric_alarms[0].metrics[0].metric_stat.period #=> Integer # resp.metric_alarms[0].metrics[0].metric_stat.stat #=> String # resp.metric_alarms[0].metrics[0].metric_stat.unit #=> String, one of "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" # resp.metric_alarms[0].metrics[0].expression #=> String # resp.metric_alarms[0].metrics[0].label #=> String # resp.metric_alarms[0].metrics[0].return_data #=> Boolean # resp.metric_alarms[0].metrics[0].period #=> Integer # resp.metric_alarms[0].metrics[0].account_id #=> String # resp.metric_alarms[0].threshold_metric_id #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DescribeAlarmsForMetric AWS API Documentation # # @overload describe_alarms_for_metric(params = {}) # @param [Hash] params ({}) def describe_alarms_for_metric(params = {}, options = {}) req = build_request(:describe_alarms_for_metric, params) req.send_request(options) end # Lists the anomaly detection models that you have created in your # account. For single metric anomaly detectors, you can list all of the # models in your account or filter the results to only the models that # are related to a certain namespace, metric name, or metric dimension. # For metric math anomaly detectors, you can list them by adding # `METRIC_MATH` to the `AnomalyDetectorTypes` array. This will return # all metric math anomaly detectors in your account. # # @option params [String] :next_token # Use the token returned by the previous operation to request the next # page of results. # # @option params [Integer] :max_results # The maximum number of results to return in one operation. The maximum # value that you can specify is 100. # # To retrieve the remaining results, make another call with the returned # `NextToken` value. # # @option params [String] :namespace # Limits the results to only the anomaly detection models that are # associated with the specified namespace. # # @option params [String] :metric_name # Limits the results to only the anomaly detection models that are # associated with the specified metric name. If there are multiple # metrics with this name in different namespaces that have anomaly # detection models, they're all returned. # # @option params [Array] :dimensions # Limits the results to only the anomaly detection models that are # associated with the specified metric dimensions. If there are multiple # metrics that have these dimensions and have anomaly detection models # associated, they're all returned. # # @option params [Array] :anomaly_detector_types # The anomaly detector types to request when using # `DescribeAnomalyDetectorsInput`. If empty, defaults to # `SINGLE_METRIC`. # # @return [Types::DescribeAnomalyDetectorsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::DescribeAnomalyDetectorsOutput#anomaly_detectors #anomaly_detectors} => Array<Types::AnomalyDetector> # * {Types::DescribeAnomalyDetectorsOutput#next_token #next_token} => String # # @example Request syntax with placeholder values # # resp = client.describe_anomaly_detectors({ # next_token: "NextToken", # max_results: 1, # namespace: "Namespace", # metric_name: "MetricName", # dimensions: [ # { # name: "DimensionName", # required # value: "DimensionValue", # required # }, # ], # anomaly_detector_types: ["SINGLE_METRIC"], # accepts SINGLE_METRIC, METRIC_MATH # }) # # @example Response structure # # resp.anomaly_detectors #=> Array # resp.anomaly_detectors[0].namespace #=> String # resp.anomaly_detectors[0].metric_name #=> String # resp.anomaly_detectors[0].dimensions #=> Array # resp.anomaly_detectors[0].dimensions[0].name #=> String # resp.anomaly_detectors[0].dimensions[0].value #=> String # resp.anomaly_detectors[0].stat #=> String # resp.anomaly_detectors[0].configuration.excluded_time_ranges #=> Array # resp.anomaly_detectors[0].configuration.excluded_time_ranges[0].start_time #=> Time # resp.anomaly_detectors[0].configuration.excluded_time_ranges[0].end_time #=> Time # resp.anomaly_detectors[0].configuration.metric_timezone #=> String # resp.anomaly_detectors[0].state_value #=> String, one of "PENDING_TRAINING", "TRAINED_INSUFFICIENT_DATA", "TRAINED" # resp.anomaly_detectors[0].single_metric_anomaly_detector.namespace #=> String # resp.anomaly_detectors[0].single_metric_anomaly_detector.metric_name #=> String # resp.anomaly_detectors[0].single_metric_anomaly_detector.dimensions #=> Array # resp.anomaly_detectors[0].single_metric_anomaly_detector.dimensions[0].name #=> String # resp.anomaly_detectors[0].single_metric_anomaly_detector.dimensions[0].value #=> String # resp.anomaly_detectors[0].single_metric_anomaly_detector.stat #=> String # resp.anomaly_detectors[0].metric_math_anomaly_detector.metric_data_queries #=> Array # resp.anomaly_detectors[0].metric_math_anomaly_detector.metric_data_queries[0].id #=> String # resp.anomaly_detectors[0].metric_math_anomaly_detector.metric_data_queries[0].metric_stat.metric.namespace #=> String # resp.anomaly_detectors[0].metric_math_anomaly_detector.metric_data_queries[0].metric_stat.metric.metric_name #=> String # resp.anomaly_detectors[0].metric_math_anomaly_detector.metric_data_queries[0].metric_stat.metric.dimensions #=> Array # resp.anomaly_detectors[0].metric_math_anomaly_detector.metric_data_queries[0].metric_stat.metric.dimensions[0].name #=> String # resp.anomaly_detectors[0].metric_math_anomaly_detector.metric_data_queries[0].metric_stat.metric.dimensions[0].value #=> String # resp.anomaly_detectors[0].metric_math_anomaly_detector.metric_data_queries[0].metric_stat.period #=> Integer # resp.anomaly_detectors[0].metric_math_anomaly_detector.metric_data_queries[0].metric_stat.stat #=> String # resp.anomaly_detectors[0].metric_math_anomaly_detector.metric_data_queries[0].metric_stat.unit #=> String, one of "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" # resp.anomaly_detectors[0].metric_math_anomaly_detector.metric_data_queries[0].expression #=> String # resp.anomaly_detectors[0].metric_math_anomaly_detector.metric_data_queries[0].label #=> String # resp.anomaly_detectors[0].metric_math_anomaly_detector.metric_data_queries[0].return_data #=> Boolean # resp.anomaly_detectors[0].metric_math_anomaly_detector.metric_data_queries[0].period #=> Integer # resp.anomaly_detectors[0].metric_math_anomaly_detector.metric_data_queries[0].account_id #=> String # resp.next_token #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DescribeAnomalyDetectors AWS API Documentation # # @overload describe_anomaly_detectors(params = {}) # @param [Hash] params ({}) def describe_anomaly_detectors(params = {}, options = {}) req = build_request(:describe_anomaly_detectors, params) req.send_request(options) end # Returns a list of all the Contributor Insights rules in your account. # # For more information about Contributor Insights, see [Using # Contributor Insights to Analyze High-Cardinality Data][1]. # # # # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContributorInsights.html # # @option params [String] :next_token # Include this value, if it was returned by the previous operation, to # get the next set of rules. # # @option params [Integer] :max_results # The maximum number of results to return in one operation. If you omit # this parameter, the default of 500 is used. # # @return [Types::DescribeInsightRulesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::DescribeInsightRulesOutput#next_token #next_token} => String # * {Types::DescribeInsightRulesOutput#insight_rules #insight_rules} => Array<Types::InsightRule> # # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}. # # @example Request syntax with placeholder values # # resp = client.describe_insight_rules({ # next_token: "NextToken", # max_results: 1, # }) # # @example Response structure # # resp.next_token #=> String # resp.insight_rules #=> Array # resp.insight_rules[0].name #=> String # resp.insight_rules[0].state #=> String # resp.insight_rules[0].schema #=> String # resp.insight_rules[0].definition #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DescribeInsightRules AWS API Documentation # # @overload describe_insight_rules(params = {}) # @param [Hash] params ({}) def describe_insight_rules(params = {}, options = {}) req = build_request(:describe_insight_rules, params) req.send_request(options) end # Disables the actions for the specified alarms. When an alarm's # actions are disabled, the alarm actions do not execute when the alarm # state changes. # # @option params [required, Array] :alarm_names # The names of the alarms. # # @return [Struct] Returns an empty {Seahorse::Client::Response response}. # # @example Request syntax with placeholder values # # resp = client.disable_alarm_actions({ # alarm_names: ["AlarmName"], # required # }) # # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DisableAlarmActions AWS API Documentation # # @overload disable_alarm_actions(params = {}) # @param [Hash] params ({}) def disable_alarm_actions(params = {}, options = {}) req = build_request(:disable_alarm_actions, params) req.send_request(options) end # Disables the specified Contributor Insights rules. When rules are # disabled, they do not analyze log groups and do not incur costs. # # @option params [required, Array] :rule_names # An array of the rule names to disable. If you need to find out the # names of your rules, use [DescribeInsightRules][1]. # # # # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeInsightRules.html # # @return [Types::DisableInsightRulesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::DisableInsightRulesOutput#failures #failures} => Array<Types::PartialFailure> # # @example Request syntax with placeholder values # # resp = client.disable_insight_rules({ # rule_names: ["InsightRuleName"], # required # }) # # @example Response structure # # resp.failures #=> Array # resp.failures[0].failure_resource #=> String # resp.failures[0].exception_type #=> String # resp.failures[0].failure_code #=> String # resp.failures[0].failure_description #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DisableInsightRules AWS API Documentation # # @overload disable_insight_rules(params = {}) # @param [Hash] params ({}) def disable_insight_rules(params = {}, options = {}) req = build_request(:disable_insight_rules, params) req.send_request(options) end # Enables the actions for the specified alarms. # # @option params [required, Array] :alarm_names # The names of the alarms. # # @return [Struct] Returns an empty {Seahorse::Client::Response response}. # # @example Request syntax with placeholder values # # resp = client.enable_alarm_actions({ # alarm_names: ["AlarmName"], # required # }) # # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/EnableAlarmActions AWS API Documentation # # @overload enable_alarm_actions(params = {}) # @param [Hash] params ({}) def enable_alarm_actions(params = {}, options = {}) req = build_request(:enable_alarm_actions, params) req.send_request(options) end # Enables the specified Contributor Insights rules. When rules are # enabled, they immediately begin analyzing log data. # # @option params [required, Array] :rule_names # An array of the rule names to enable. If you need to find out the # names of your rules, use [DescribeInsightRules][1]. # # # # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeInsightRules.html # # @return [Types::EnableInsightRulesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::EnableInsightRulesOutput#failures #failures} => Array<Types::PartialFailure> # # @example Request syntax with placeholder values # # resp = client.enable_insight_rules({ # rule_names: ["InsightRuleName"], # required # }) # # @example Response structure # # resp.failures #=> Array # resp.failures[0].failure_resource #=> String # resp.failures[0].exception_type #=> String # resp.failures[0].failure_code #=> String # resp.failures[0].failure_description #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/EnableInsightRules AWS API Documentation # # @overload enable_insight_rules(params = {}) # @param [Hash] params ({}) def enable_insight_rules(params = {}, options = {}) req = build_request(:enable_insight_rules, params) req.send_request(options) end # Displays the details of the dashboard that you specify. # # To copy an existing dashboard, use `GetDashboard`, and then use the # data returned within `DashboardBody` as the template for the new # dashboard when you call `PutDashboard` to create the copy. # # @option params [required, String] :dashboard_name # The name of the dashboard to be described. # # @return [Types::GetDashboardOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::GetDashboardOutput#dashboard_arn #dashboard_arn} => String # * {Types::GetDashboardOutput#dashboard_body #dashboard_body} => String # * {Types::GetDashboardOutput#dashboard_name #dashboard_name} => String # # @example Request syntax with placeholder values # # resp = client.get_dashboard({ # dashboard_name: "DashboardName", # required # }) # # @example Response structure # # resp.dashboard_arn #=> String # resp.dashboard_body #=> String # resp.dashboard_name #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/GetDashboard AWS API Documentation # # @overload get_dashboard(params = {}) # @param [Hash] params ({}) def get_dashboard(params = {}, options = {}) req = build_request(:get_dashboard, params) req.send_request(options) end # This operation returns the time series data collected by a Contributor # Insights rule. The data includes the identity and number of # contributors to the log group. # # You can also optionally return one or more statistics about each data # point in the time series. These statistics can include the following: # # * `UniqueContributors` -- the number of unique contributors for each # data point. # # * `MaxContributorValue` -- the value of the top contributor for each # data point. The identity of the contributor might change for each # data point in the graph. # # If this rule aggregates by COUNT, the top contributor for each data # point is the contributor with the most occurrences in that period. # If the rule aggregates by SUM, the top contributor is the # contributor with the highest sum in the log field specified by the # rule's `Value`, during that period. # # * `SampleCount` -- the number of data points matched by the rule. # # * `Sum` -- the sum of the values from all contributors during the time # period represented by that data point. # # * `Minimum` -- the minimum value from a single observation during the # time period represented by that data point. # # * `Maximum` -- the maximum value from a single observation during the # time period represented by that data point. # # * `Average` -- the average value from all contributors during the time # period represented by that data point. # # @option params [required, String] :rule_name # The name of the rule that you want to see data from. # # @option params [required, Time,DateTime,Date,Integer,String] :start_time # The start time of the data to use in the report. When used in a raw # HTTP Query API, it is formatted as `yyyy-MM-dd'T'HH:mm:ss`. For # example, `2019-07-01T23:59:59`. # # @option params [required, Time,DateTime,Date,Integer,String] :end_time # The end time of the data to use in the report. When used in a raw HTTP # Query API, it is formatted as `yyyy-MM-dd'T'HH:mm:ss`. For example, # `2019-07-01T23:59:59`. # # @option params [required, Integer] :period # The period, in seconds, to use for the statistics in the # `InsightRuleMetricDatapoint` results. # # @option params [Integer] :max_contributor_count # The maximum number of contributors to include in the report. The range # is 1 to 100. If you omit this, the default of 10 is used. # # @option params [Array] :metrics # Specifies which metrics to use for aggregation of contributor values # for the report. You can specify one or more of the following metrics: # # * `UniqueContributors` -- the number of unique contributors for each # data point. # # * `MaxContributorValue` -- the value of the top contributor for each # data point. The identity of the contributor might change for each # data point in the graph. # # If this rule aggregates by COUNT, the top contributor for each data # point is the contributor with the most occurrences in that period. # If the rule aggregates by SUM, the top contributor is the # contributor with the highest sum in the log field specified by the # rule's `Value`, during that period. # # * `SampleCount` -- the number of data points matched by the rule. # # * `Sum` -- the sum of the values from all contributors during the time # period represented by that data point. # # * `Minimum` -- the minimum value from a single observation during the # time period represented by that data point. # # * `Maximum` -- the maximum value from a single observation during the # time period represented by that data point. # # * `Average` -- the average value from all contributors during the time # period represented by that data point. # # @option params [String] :order_by # Determines what statistic to use to rank the contributors. Valid # values are SUM and MAXIMUM. # # @return [Types::GetInsightRuleReportOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::GetInsightRuleReportOutput#key_labels #key_labels} => Array<String> # * {Types::GetInsightRuleReportOutput#aggregation_statistic #aggregation_statistic} => String # * {Types::GetInsightRuleReportOutput#aggregate_value #aggregate_value} => Float # * {Types::GetInsightRuleReportOutput#approximate_unique_count #approximate_unique_count} => Integer # * {Types::GetInsightRuleReportOutput#contributors #contributors} => Array<Types::InsightRuleContributor> # * {Types::GetInsightRuleReportOutput#metric_datapoints #metric_datapoints} => Array<Types::InsightRuleMetricDatapoint> # # @example Request syntax with placeholder values # # resp = client.get_insight_rule_report({ # rule_name: "InsightRuleName", # required # start_time: Time.now, # required # end_time: Time.now, # required # period: 1, # required # max_contributor_count: 1, # metrics: ["InsightRuleMetricName"], # order_by: "InsightRuleOrderBy", # }) # # @example Response structure # # resp.key_labels #=> Array # resp.key_labels[0] #=> String # resp.aggregation_statistic #=> String # resp.aggregate_value #=> Float # resp.approximate_unique_count #=> Integer # resp.contributors #=> Array # resp.contributors[0].keys #=> Array # resp.contributors[0].keys[0] #=> String # resp.contributors[0].approximate_aggregate_value #=> Float # resp.contributors[0].datapoints #=> Array # resp.contributors[0].datapoints[0].timestamp #=> Time # resp.contributors[0].datapoints[0].approximate_value #=> Float # resp.metric_datapoints #=> Array # resp.metric_datapoints[0].timestamp #=> Time # resp.metric_datapoints[0].unique_contributors #=> Float # resp.metric_datapoints[0].max_contributor_value #=> Float # resp.metric_datapoints[0].sample_count #=> Float # resp.metric_datapoints[0].average #=> Float # resp.metric_datapoints[0].sum #=> Float # resp.metric_datapoints[0].minimum #=> Float # resp.metric_datapoints[0].maximum #=> Float # # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/GetInsightRuleReport AWS API Documentation # # @overload get_insight_rule_report(params = {}) # @param [Hash] params ({}) def get_insight_rule_report(params = {}, options = {}) req = build_request(:get_insight_rule_report, params) req.send_request(options) end # You can use the `GetMetricData` API to retrieve CloudWatch metric # values. The operation can also include a CloudWatch Metrics Insights # query, and one or more metric math functions. # # A `GetMetricData` operation that does not include a query can retrieve # as many as 500 different metrics in a single request, with a total of # as many as 100,800 data points. You can also optionally perform metric # math expressions on the values of the returned statistics, to create # new time series that represent new insights into your data. For # example, using Lambda metrics, you could divide the Errors metric by # the Invocations metric to get an error rate time series. For more # information about metric math expressions, see [Metric Math Syntax and # Functions][1] in the *Amazon CloudWatch User Guide*. # # If you include a Metrics Insights query, each `GetMetricData` # operation can include only one query. But the same `GetMetricData` # operation can also retrieve other metrics. Metrics Insights queries # can query only the most recent three hours of metric data. For more # information about Metrics Insights, see [Query your metrics with # CloudWatch Metrics Insights][2]. # # Calls to the `GetMetricData` API have a different pricing structure # than calls to `GetMetricStatistics`. For more information about # pricing, see [Amazon CloudWatch Pricing][3]. # # Amazon CloudWatch retains metric data as follows: # # * Data points with a period of less than 60 seconds are available for # 3 hours. These data points are high-resolution metrics and are # available only for custom metrics that have been defined with a # `StorageResolution` of 1. # # * Data points with a period of 60 seconds (1-minute) are available for # 15 days. # # * Data points with a period of 300 seconds (5-minute) are available # for 63 days. # # * Data points with a period of 3600 seconds (1 hour) are available for # 455 days (15 months). # # Data points that are initially published with a shorter period are # aggregated together for long-term storage. For example, if you collect # data using a period of 1 minute, the data remains available for 15 # days with 1-minute resolution. After 15 days, this data is still # available, but is aggregated and retrievable only with a resolution of # 5 minutes. After 63 days, the data is further aggregated and is # available with a resolution of 1 hour. # # If you omit `Unit` in your request, all data that was collected with # any unit is returned, along with the corresponding units that were # specified when the data was reported to CloudWatch. If you specify a # unit, the operation returns only data that was collected with that # unit specified. If you specify a unit that does not match the data # collected, the results of the operation are null. CloudWatch does not # perform unit conversions. # # **Using Metrics Insights queries with metric math** # # You can't mix a Metric Insights query and metric math syntax in the # same expression, but you can reference results from a Metrics Insights # query within other Metric math expressions. A Metrics Insights query # without a **GROUP BY** clause returns a single time-series (TS), and # can be used as input for a metric math expression that expects a # single time series. A Metrics Insights query with a **GROUP BY** # clause returns an array of time-series (TS\[\]), and can be used as # input for a metric math expression that expects an array of time # series. # # # # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax # [2]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/query_with_cloudwatch-metrics-insights.html # [3]: https://aws.amazon.com/cloudwatch/pricing/ # # @option params [required, Array] :metric_data_queries # The metric queries to be returned. A single `GetMetricData` call can # include as many as 500 `MetricDataQuery` structures. Each of these # structures can specify either a metric to retrieve, a Metrics Insights # query, or a math expression to perform on retrieved data. # # @option params [required, Time,DateTime,Date,Integer,String] :start_time # The time stamp indicating the earliest data to be returned. # # The value specified is inclusive; results include data points with the # specified time stamp. # # CloudWatch rounds the specified time stamp as follows: # # * Start time less than 15 days ago - Round down to the nearest whole # minute. For example, 12:32:34 is rounded down to 12:32:00. # # * Start time between 15 and 63 days ago - Round down to the nearest # 5-minute clock interval. For example, 12:32:34 is rounded down to # 12:30:00. # # * Start time greater than 63 days ago - Round down to the nearest # 1-hour clock interval. For example, 12:32:34 is rounded down to # 12:00:00. # # If you set `Period` to 5, 10, or 30, the start time of your request is # rounded down to the nearest time that corresponds to even 5-, 10-, or # 30-second divisions of a minute. For example, if you make a query at # (HH:mm:ss) 01:05:23 for the previous 10-second period, the start time # of your request is rounded down and you receive data from 01:05:10 to # 01:05:20. If you make a query at 15:07:17 for the previous 5 minutes # of data, using a period of 5 seconds, you receive data timestamped # between 15:02:15 and 15:07:15. # # For better performance, specify `StartTime` and `EndTime` values that # align with the value of the metric's `Period` and sync up with the # beginning and end of an hour. For example, if the `Period` of a metric # is 5 minutes, specifying 12:05 or 12:30 as `StartTime` can get a # faster response from CloudWatch than setting 12:07 or 12:29 as the # `StartTime`. # # @option params [required, Time,DateTime,Date,Integer,String] :end_time # The time stamp indicating the latest data to be returned. # # The value specified is exclusive; results include data points up to # the specified time stamp. # # For better performance, specify `StartTime` and `EndTime` values that # align with the value of the metric's `Period` and sync up with the # beginning and end of an hour. For example, if the `Period` of a metric # is 5 minutes, specifying 12:05 or 12:30 as `EndTime` can get a faster # response from CloudWatch than setting 12:07 or 12:29 as the `EndTime`. # # @option params [String] :next_token # Include this value, if it was returned by the previous `GetMetricData` # operation, to get the next set of data points. # # @option params [String] :scan_by # The order in which data points should be returned. # `TimestampDescending` returns the newest data first and paginates when # the `MaxDatapoints` limit is reached. `TimestampAscending` returns the # oldest data first and paginates when the `MaxDatapoints` limit is # reached. # # @option params [Integer] :max_datapoints # The maximum number of data points the request should return before # paginating. If you omit this, the default of 100,800 is used. # # @option params [Types::LabelOptions] :label_options # This structure includes the `Timezone` parameter, which you can use to # specify your time zone so that the labels of returned data display the # correct time for your time zone. # # @return [Types::GetMetricDataOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::GetMetricDataOutput#metric_data_results #metric_data_results} => Array<Types::MetricDataResult> # * {Types::GetMetricDataOutput#next_token #next_token} => String # * {Types::GetMetricDataOutput#messages #messages} => Array<Types::MessageData> # # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}. # # @example Request syntax with placeholder values # # resp = client.get_metric_data({ # metric_data_queries: [ # required # { # id: "MetricId", # required # metric_stat: { # metric: { # required # namespace: "Namespace", # metric_name: "MetricName", # dimensions: [ # { # name: "DimensionName", # required # value: "DimensionValue", # required # }, # ], # }, # period: 1, # required # stat: "Stat", # required # unit: "Seconds", # accepts 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 # }, # expression: "MetricExpression", # label: "MetricLabel", # return_data: false, # period: 1, # account_id: "AccountId", # }, # ], # start_time: Time.now, # required # end_time: Time.now, # required # next_token: "NextToken", # scan_by: "TimestampDescending", # accepts TimestampDescending, TimestampAscending # max_datapoints: 1, # label_options: { # timezone: "GetMetricDataLabelTimezone", # }, # }) # # @example Response structure # # resp.metric_data_results #=> Array # resp.metric_data_results[0].id #=> String # resp.metric_data_results[0].label #=> String # resp.metric_data_results[0].timestamps #=> Array # resp.metric_data_results[0].timestamps[0] #=> Time # resp.metric_data_results[0].values #=> Array # resp.metric_data_results[0].values[0] #=> Float # resp.metric_data_results[0].status_code #=> String, one of "Complete", "InternalError", "PartialData" # resp.metric_data_results[0].messages #=> Array # resp.metric_data_results[0].messages[0].code #=> String # resp.metric_data_results[0].messages[0].value #=> String # resp.next_token #=> String # resp.messages #=> Array # resp.messages[0].code #=> String # resp.messages[0].value #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/GetMetricData AWS API Documentation # # @overload get_metric_data(params = {}) # @param [Hash] params ({}) def get_metric_data(params = {}, options = {}) req = build_request(:get_metric_data, params) req.send_request(options) end # Gets statistics for the specified metric. # # The maximum number of data points returned from a single call is # 1,440. If you request more than 1,440 data points, CloudWatch returns # an error. To reduce the number of data points, you can narrow the # specified time range and make multiple requests across adjacent time # ranges, or you can increase the specified period. Data points are not # returned in chronological order. # # CloudWatch aggregates data points based on the length of the period # that you specify. For example, if you request statistics with a # one-hour period, CloudWatch aggregates all data points with time # stamps that fall within each one-hour period. Therefore, the number of # values aggregated by CloudWatch is larger than the number of data # points returned. # # CloudWatch needs raw data points to calculate percentile statistics. # If you publish data using a statistic set instead, you can only # retrieve percentile statistics for this data if one of the following # conditions is true: # # * The SampleCount value of the statistic set is 1. # # * The Min and the Max values of the statistic set are equal. # # Percentile statistics are not available for metrics when any of the # metric values are negative numbers. # # Amazon CloudWatch retains metric data as follows: # # * Data points with a period of less than 60 seconds are available for # 3 hours. These data points are high-resolution metrics and are # available only for custom metrics that have been defined with a # `StorageResolution` of 1. # # * Data points with a period of 60 seconds (1-minute) are available for # 15 days. # # * Data points with a period of 300 seconds (5-minute) are available # for 63 days. # # * Data points with a period of 3600 seconds (1 hour) are available for # 455 days (15 months). # # Data points that are initially published with a shorter period are # aggregated together for long-term storage. For example, if you collect # data using a period of 1 minute, the data remains available for 15 # days with 1-minute resolution. After 15 days, this data is still # available, but is aggregated and retrievable only with a resolution of # 5 minutes. After 63 days, the data is further aggregated and is # available with a resolution of 1 hour. # # CloudWatch started retaining 5-minute and 1-hour metric data as of # July 9, 2016. # # For information about metrics and dimensions supported by Amazon Web # Services services, see the [Amazon CloudWatch Metrics and Dimensions # Reference][1] in the *Amazon CloudWatch User Guide*. # # # # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CW_Support_For_AWS.html # # @option params [required, String] :namespace # The namespace of the metric, with or without spaces. # # @option params [required, String] :metric_name # The name of the metric, with or without spaces. # # @option params [Array] :dimensions # The dimensions. If the metric contains multiple dimensions, you must # include a value for each dimension. CloudWatch treats each unique # combination of dimensions as a separate metric. If a specific # combination of dimensions was not published, you can't retrieve # statistics for it. You must specify the same dimensions that were used # when the metrics were created. For an example, see [Dimension # Combinations][1] in the *Amazon CloudWatch User Guide*. For more # information about specifying dimensions, see [Publishing Metrics][2] # in the *Amazon CloudWatch User Guide*. # # # # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#dimension-combinations # [2]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html # # @option params [required, Time,DateTime,Date,Integer,String] :start_time # The time stamp that determines the first data point to return. Start # times are evaluated relative to the time that CloudWatch receives the # request. # # The value specified is inclusive; results include data points with the # specified time stamp. In a raw HTTP query, the time stamp must be in # ISO 8601 UTC format (for example, 2016-10-03T23:00:00Z). # # CloudWatch rounds the specified time stamp as follows: # # * Start time less than 15 days ago - Round down to the nearest whole # minute. For example, 12:32:34 is rounded down to 12:32:00. # # * Start time between 15 and 63 days ago - Round down to the nearest # 5-minute clock interval. For example, 12:32:34 is rounded down to # 12:30:00. # # * Start time greater than 63 days ago - Round down to the nearest # 1-hour clock interval. For example, 12:32:34 is rounded down to # 12:00:00. # # If you set `Period` to 5, 10, or 30, the start time of your request is # rounded down to the nearest time that corresponds to even 5-, 10-, or # 30-second divisions of a minute. For example, if you make a query at # (HH:mm:ss) 01:05:23 for the previous 10-second period, the start time # of your request is rounded down and you receive data from 01:05:10 to # 01:05:20. If you make a query at 15:07:17 for the previous 5 minutes # of data, using a period of 5 seconds, you receive data timestamped # between 15:02:15 and 15:07:15. # # @option params [required, Time,DateTime,Date,Integer,String] :end_time # The time stamp that determines the last data point to return. # # The value specified is exclusive; results include data points up to # the specified time stamp. In a raw HTTP query, the time stamp must be # in ISO 8601 UTC format (for example, 2016-10-10T23:00:00Z). # # @option params [required, Integer] :period # The granularity, in seconds, of the returned data points. For metrics # with regular resolution, a period can be as short as one minute (60 # seconds) and must be a multiple of 60. For high-resolution metrics # that are collected at intervals of less than one minute, the period # can be 1, 5, 10, 30, 60, or any multiple of 60. High-resolution # metrics are those metrics stored by a `PutMetricData` call that # includes a `StorageResolution` of 1 second. # # If the `StartTime` parameter specifies a time stamp that is greater # than 3 hours ago, you must specify the period as follows or no data # points in that time range is returned: # # * Start time between 3 hours and 15 days ago - Use a multiple of 60 # seconds (1 minute). # # * Start time between 15 and 63 days ago - Use a multiple of 300 # seconds (5 minutes). # # * Start time greater than 63 days ago - Use a multiple of 3600 seconds # (1 hour). # # @option params [Array] :statistics # The metric statistics, other than percentile. For percentile # statistics, use `ExtendedStatistics`. When calling # `GetMetricStatistics`, you must specify either `Statistics` or # `ExtendedStatistics`, but not both. # # @option params [Array] :extended_statistics # The percentile statistics. Specify values between p0.0 and p100. When # calling `GetMetricStatistics`, you must specify either `Statistics` or # `ExtendedStatistics`, but not both. Percentile statistics are not # available for metrics when any of the metric values are negative # numbers. # # @option params [String] :unit # The unit for a given metric. If you omit `Unit`, all data that was # collected with any unit is returned, along with the corresponding # units that were specified when the data was reported to CloudWatch. If # you specify a unit, the operation returns only data that was collected # with that unit specified. If you specify a unit that does not match # the data collected, the results of the operation are null. CloudWatch # does not perform unit conversions. # # @return [Types::GetMetricStatisticsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::GetMetricStatisticsOutput#label #label} => String # * {Types::GetMetricStatisticsOutput#datapoints #datapoints} => Array<Types::Datapoint> # # @example Request syntax with placeholder values # # resp = client.get_metric_statistics({ # namespace: "Namespace", # required # metric_name: "MetricName", # required # dimensions: [ # { # name: "DimensionName", # required # value: "DimensionValue", # required # }, # ], # start_time: Time.now, # required # end_time: Time.now, # required # period: 1, # required # statistics: ["SampleCount"], # accepts SampleCount, Average, Sum, Minimum, Maximum # extended_statistics: ["ExtendedStatistic"], # unit: "Seconds", # accepts 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 # }) # # @example Response structure # # resp.label #=> String # resp.datapoints #=> Array # resp.datapoints[0].timestamp #=> Time # resp.datapoints[0].sample_count #=> Float # resp.datapoints[0].average #=> Float # resp.datapoints[0].sum #=> Float # resp.datapoints[0].minimum #=> Float # resp.datapoints[0].maximum #=> Float # resp.datapoints[0].unit #=> String, one of "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" # resp.datapoints[0].extended_statistics #=> Hash # resp.datapoints[0].extended_statistics["ExtendedStatistic"] #=> Float # # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/GetMetricStatistics AWS API Documentation # # @overload get_metric_statistics(params = {}) # @param [Hash] params ({}) def get_metric_statistics(params = {}, options = {}) req = build_request(:get_metric_statistics, params) req.send_request(options) end # Returns information about the metric stream that you specify. # # @option params [required, String] :name # The name of the metric stream to retrieve information about. # # @return [Types::GetMetricStreamOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::GetMetricStreamOutput#arn #arn} => String # * {Types::GetMetricStreamOutput#name #name} => String # * {Types::GetMetricStreamOutput#include_filters #include_filters} => Array<Types::MetricStreamFilter> # * {Types::GetMetricStreamOutput#exclude_filters #exclude_filters} => Array<Types::MetricStreamFilter> # * {Types::GetMetricStreamOutput#firehose_arn #firehose_arn} => String # * {Types::GetMetricStreamOutput#role_arn #role_arn} => String # * {Types::GetMetricStreamOutput#state #state} => String # * {Types::GetMetricStreamOutput#creation_date #creation_date} => Time # * {Types::GetMetricStreamOutput#last_update_date #last_update_date} => Time # * {Types::GetMetricStreamOutput#output_format #output_format} => String # * {Types::GetMetricStreamOutput#statistics_configurations #statistics_configurations} => Array<Types::MetricStreamStatisticsConfiguration> # # @example Request syntax with placeholder values # # resp = client.get_metric_stream({ # name: "MetricStreamName", # required # }) # # @example Response structure # # resp.arn #=> String # resp.name #=> String # resp.include_filters #=> Array # resp.include_filters[0].namespace #=> String # resp.exclude_filters #=> Array # resp.exclude_filters[0].namespace #=> String # resp.firehose_arn #=> String # resp.role_arn #=> String # resp.state #=> String # resp.creation_date #=> Time # resp.last_update_date #=> Time # resp.output_format #=> String, one of "json", "opentelemetry0.7" # resp.statistics_configurations #=> Array # resp.statistics_configurations[0].include_metrics #=> Array # resp.statistics_configurations[0].include_metrics[0].namespace #=> String # resp.statistics_configurations[0].include_metrics[0].metric_name #=> String # resp.statistics_configurations[0].additional_statistics #=> Array # resp.statistics_configurations[0].additional_statistics[0] #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/GetMetricStream AWS API Documentation # # @overload get_metric_stream(params = {}) # @param [Hash] params ({}) def get_metric_stream(params = {}, options = {}) req = build_request(:get_metric_stream, params) req.send_request(options) end # You can use the `GetMetricWidgetImage` API to retrieve a snapshot # graph of one or more Amazon CloudWatch metrics as a bitmap image. You # can then embed this image into your services and products, such as # wiki pages, reports, and documents. You could also retrieve images # regularly, such as every minute, and create your own custom live # dashboard. # # The graph you retrieve can include all CloudWatch metric graph # features, including metric math and horizontal and vertical # annotations. # # There is a limit of 20 transactions per second for this API. Each # `GetMetricWidgetImage` action has the following limits: # # * As many as 100 metrics in the graph. # # * Up to 100 KB uncompressed payload. # # @option params [required, String] :metric_widget # A JSON string that defines the bitmap graph to be retrieved. The # string includes the metrics to include in the graph, statistics, # annotations, title, axis limits, and so on. You can include only one # `MetricWidget` parameter in each `GetMetricWidgetImage` call. # # For more information about the syntax of `MetricWidget` see # [GetMetricWidgetImage: Metric Widget Structure and Syntax][1]. # # If any metric on the graph could not load all the requested data # points, an orange triangle with an exclamation point appears next to # the graph legend. # # # # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/CloudWatch-Metric-Widget-Structure.html # # @option params [String] :output_format # The format of the resulting image. Only PNG images are supported. # # The default is `png`. If you specify `png`, the API returns an HTTP # response with the content-type set to `text/xml`. The image data is in # a `MetricWidgetImage` field. For example: # # ` >` # # ` ` # # ` ` # # ` iVBORw0KGgoAAAANSUhEUgAAAlgAAAGQEAYAAAAip...` # # ` ` # # ` ` # # ` ` # # ` 6f0d4192-4d42-11e8-82c1-f539a07e0e3b` # # ` ` # # `` # # The `image/png` setting is intended only for custom HTTP requests. For # most use cases, and all actions using an Amazon Web Services SDK, you # should use `png`. If you specify `image/png`, the HTTP response has a # content-type set to `image/png`, and the body of the response is a PNG # image. # # @return [Types::GetMetricWidgetImageOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::GetMetricWidgetImageOutput#metric_widget_image #metric_widget_image} => String # # @example Request syntax with placeholder values # # resp = client.get_metric_widget_image({ # metric_widget: "MetricWidget", # required # output_format: "OutputFormat", # }) # # @example Response structure # # resp.metric_widget_image #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/GetMetricWidgetImage AWS API Documentation # # @overload get_metric_widget_image(params = {}) # @param [Hash] params ({}) def get_metric_widget_image(params = {}, options = {}) req = build_request(:get_metric_widget_image, params) req.send_request(options) end # Returns a list of the dashboards for your account. If you include # `DashboardNamePrefix`, only those dashboards with names starting with # the prefix are listed. Otherwise, all dashboards in your account are # listed. # # `ListDashboards` returns up to 1000 results on one page. If there are # more than 1000 dashboards, you can call `ListDashboards` again and # include the value you received for `NextToken` in the first call, to # receive the next 1000 results. # # @option params [String] :dashboard_name_prefix # If you specify this parameter, only the dashboards with names starting # with the specified string are listed. The maximum length is 255, and # valid characters are A-Z, a-z, 0-9, ".", "-", and "\_". # # @option params [String] :next_token # The token returned by a previous call to indicate that there is more # data available. # # @return [Types::ListDashboardsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::ListDashboardsOutput#dashboard_entries #dashboard_entries} => Array<Types::DashboardEntry> # * {Types::ListDashboardsOutput#next_token #next_token} => String # # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}. # # @example Request syntax with placeholder values # # resp = client.list_dashboards({ # dashboard_name_prefix: "DashboardNamePrefix", # next_token: "NextToken", # }) # # @example Response structure # # resp.dashboard_entries #=> Array # resp.dashboard_entries[0].dashboard_name #=> String # resp.dashboard_entries[0].dashboard_arn #=> String # resp.dashboard_entries[0].last_modified #=> Time # resp.dashboard_entries[0].size #=> Integer # resp.next_token #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/ListDashboards AWS API Documentation # # @overload list_dashboards(params = {}) # @param [Hash] params ({}) def list_dashboards(params = {}, options = {}) req = build_request(:list_dashboards, params) req.send_request(options) end # Returns a list of metric streams in this account. # # @option params [String] :next_token # Include this value, if it was returned by the previous call, to get # the next set of metric streams. # # @option params [Integer] :max_results # The maximum number of results to return in one operation. # # @return [Types::ListMetricStreamsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::ListMetricStreamsOutput#next_token #next_token} => String # * {Types::ListMetricStreamsOutput#entries #data.entries} => Array<Types::MetricStreamEntry> (This method conflicts with a method on Response, call it through the data member) # # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}. # # @example Request syntax with placeholder values # # resp = client.list_metric_streams({ # next_token: "NextToken", # max_results: 1, # }) # # @example Response structure # # resp.next_token #=> String # resp.data.entries #=> Array # resp.data.entries[0].arn #=> String # resp.data.entries[0].creation_date #=> Time # resp.data.entries[0].last_update_date #=> Time # resp.data.entries[0].name #=> String # resp.data.entries[0].firehose_arn #=> String # resp.data.entries[0].state #=> String # resp.data.entries[0].output_format #=> String, one of "json", "opentelemetry0.7" # # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/ListMetricStreams AWS API Documentation # # @overload list_metric_streams(params = {}) # @param [Hash] params ({}) def list_metric_streams(params = {}, options = {}) req = build_request(:list_metric_streams, params) req.send_request(options) end # List the specified metrics. You can use the returned metrics with # [GetMetricData][1] or [GetMetricStatistics][2] to obtain statistical # data. # # Up to 500 results are returned for any one call. To retrieve # additional results, use the returned token with subsequent calls. # # After you create a metric, allow up to 15 minutes before the metric # appears. You can see statistics about the metric sooner by using # [GetMetricData][1] or [GetMetricStatistics][2]. # # `ListMetrics` doesn't return information about metrics if those # metrics haven't reported data in the past two weeks. To retrieve # those metrics, use [GetMetricData][1] or [GetMetricStatistics][2]. # # # # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html # [2]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricStatistics.html # # @option params [String] :namespace # The metric namespace to filter against. Only the namespace that # matches exactly will be returned. # # @option params [String] :metric_name # The name of the metric to filter against. Only the metrics with names # that match exactly will be returned. # # @option params [Array] :dimensions # The dimensions to filter against. Only the dimensions that match # exactly will be returned. # # @option params [String] :next_token # The token returned by a previous call to indicate that there is more # data available. # # @option params [String] :recently_active # To filter the results to show only metrics that have had data points # published in the past three hours, specify this parameter with a value # of `PT3H`. This is the only valid value for this parameter. # # The results that are returned are an approximation of the value you # specify. There is a low probability that the returned results include # metrics with last published data as much as 40 minutes more than the # specified time interval. # # @return [Types::ListMetricsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::ListMetricsOutput#metrics #metrics} => Array<Types::Metric> # * {Types::ListMetricsOutput#next_token #next_token} => String # # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}. # # @example Request syntax with placeholder values # # resp = client.list_metrics({ # namespace: "Namespace", # metric_name: "MetricName", # dimensions: [ # { # name: "DimensionName", # required # value: "DimensionValue", # }, # ], # next_token: "NextToken", # recently_active: "PT3H", # accepts PT3H # }) # # @example Response structure # # resp.metrics #=> Array # resp.metrics[0].namespace #=> String # resp.metrics[0].metric_name #=> String # resp.metrics[0].dimensions #=> Array # resp.metrics[0].dimensions[0].name #=> String # resp.metrics[0].dimensions[0].value #=> String # resp.next_token #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/ListMetrics AWS API Documentation # # @overload list_metrics(params = {}) # @param [Hash] params ({}) def list_metrics(params = {}, options = {}) req = build_request(:list_metrics, params) req.send_request(options) end # Displays the tags associated with a CloudWatch resource. Currently, # alarms and Contributor Insights rules support tagging. # # @option params [required, String] :resource_arn # The ARN of the CloudWatch resource that you want to view tags for. # # The ARN format of an alarm is # `arn:aws:cloudwatch:Region:account-id:alarm:alarm-name ` # # The ARN format of a Contributor Insights rule is # `arn:aws:cloudwatch:Region:account-id:insight-rule:insight-rule-name ` # # For more information about ARN format, see [ Resource Types Defined by # Amazon CloudWatch][1] in the *Amazon Web Services General Reference*. # # # # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazoncloudwatch.html#amazoncloudwatch-resources-for-iam-policies # # @return [Types::ListTagsForResourceOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::ListTagsForResourceOutput#tags #tags} => Array<Types::Tag> # # @example Request syntax with placeholder values # # resp = client.list_tags_for_resource({ # resource_arn: "AmazonResourceName", # required # }) # # @example Response structure # # resp.tags #=> Array # resp.tags[0].key #=> String # resp.tags[0].value #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/ListTagsForResource AWS API Documentation # # @overload list_tags_for_resource(params = {}) # @param [Hash] params ({}) def list_tags_for_resource(params = {}, options = {}) req = build_request(:list_tags_for_resource, params) req.send_request(options) end # Creates an anomaly detection model for a CloudWatch metric. You can # use the model to display a band of expected normal values when the # metric is graphed. # # For more information, see [CloudWatch Anomaly Detection][1]. # # # # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Anomaly_Detection.html # # @option params [String] :namespace # The namespace of the metric to create the anomaly detection model for. # # @option params [String] :metric_name # The name of the metric to create the anomaly detection model for. # # @option params [Array] :dimensions # The metric dimensions to create the anomaly detection model for. # # @option params [String] :stat # The statistic to use for the metric and the anomaly detection model. # # @option params [Types::AnomalyDetectorConfiguration] :configuration # The configuration specifies details about how the anomaly detection # model is to be trained, including time ranges to exclude when training # and updating the model. You can specify as many as 10 time ranges. # # The configuration can also include the time zone to use for the # metric. # # @option params [Types::SingleMetricAnomalyDetector] :single_metric_anomaly_detector # A single metric anomaly detector to be created. # # When using `SingleMetricAnomalyDetector`, you cannot include the # following parameters in the same operation: # # * `Dimensions` # # * `MetricName` # # * `Namespace` # # * `Stat` # # * the `MetricMatchAnomalyDetector` parameters of # `PutAnomalyDetectorInput` # # Instead, specify the single metric anomaly detector attributes as part # of the property `SingleMetricAnomalyDetector`. # # @option params [Types::MetricMathAnomalyDetector] :metric_math_anomaly_detector # The metric math anomaly detector to be created. # # When using `MetricMathAnomalyDetector`, you cannot include the # following parameters in the same operation: # # * `Dimensions` # # * `MetricName` # # * `Namespace` # # * `Stat` # # * the `SingleMetricAnomalyDetector` parameters of # `PutAnomalyDetectorInput` # # Instead, specify the metric math anomaly detector attributes as part # of the property `MetricMathAnomalyDetector`. # # @return [Struct] Returns an empty {Seahorse::Client::Response response}. # # @example Request syntax with placeholder values # # resp = client.put_anomaly_detector({ # namespace: "Namespace", # metric_name: "MetricName", # dimensions: [ # { # name: "DimensionName", # required # value: "DimensionValue", # required # }, # ], # stat: "AnomalyDetectorMetricStat", # configuration: { # excluded_time_ranges: [ # { # start_time: Time.now, # required # end_time: Time.now, # required # }, # ], # metric_timezone: "AnomalyDetectorMetricTimezone", # }, # single_metric_anomaly_detector: { # namespace: "Namespace", # metric_name: "MetricName", # dimensions: [ # { # name: "DimensionName", # required # value: "DimensionValue", # required # }, # ], # stat: "AnomalyDetectorMetricStat", # }, # metric_math_anomaly_detector: { # metric_data_queries: [ # { # id: "MetricId", # required # metric_stat: { # metric: { # required # namespace: "Namespace", # metric_name: "MetricName", # dimensions: [ # { # name: "DimensionName", # required # value: "DimensionValue", # required # }, # ], # }, # period: 1, # required # stat: "Stat", # required # unit: "Seconds", # accepts 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 # }, # expression: "MetricExpression", # label: "MetricLabel", # return_data: false, # period: 1, # account_id: "AccountId", # }, # ], # }, # }) # # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/PutAnomalyDetector AWS API Documentation # # @overload put_anomaly_detector(params = {}) # @param [Hash] params ({}) def put_anomaly_detector(params = {}, options = {}) req = build_request(:put_anomaly_detector, params) req.send_request(options) end # Creates or updates a *composite alarm*. When you create a composite # alarm, you specify a rule expression for the alarm that takes into # account the alarm states of other alarms that you have created. The # composite alarm goes into ALARM state only if all conditions of the # rule are met. # # The alarms specified in a composite alarm's rule expression can # include metric alarms and other composite alarms. The rule expression # of a composite alarm can include as many as 100 underlying alarms. Any # single alarm can be included in the rule expressions of as many as 150 # composite alarms. # # Using composite alarms can reduce alarm noise. You can create multiple # metric alarms, and also create a composite alarm and set up alerts # only for the composite alarm. For example, you could create a # composite alarm that goes into ALARM state only when more than one of # the underlying metric alarms are in ALARM state. # # Currently, the only alarm actions that can be taken by composite # alarms are notifying SNS topics. # # It is possible to create a loop or cycle of composite alarms, where # composite alarm A depends on composite alarm B, and composite alarm B # also depends on composite alarm A. In this scenario, you can't delete # any composite alarm that is part of the cycle because there is always # still a composite alarm that depends on that alarm that you want to # delete. # # To get out of such a situation, you must break the cycle by changing # the rule of one of the composite alarms in the cycle to remove a # dependency that creates the cycle. The simplest change to make to # break a cycle is to change the `AlarmRule` of one of the alarms to # `False`. # # Additionally, the evaluation of composite alarms stops if CloudWatch # detects a cycle in the evaluation path. # # # # When this operation creates an alarm, the alarm state is immediately # set to `INSUFFICIENT_DATA`. The alarm is then evaluated and its state # is set appropriately. Any actions associated with the new state are # then executed. For a composite alarm, this initial time after creation # is the only time that the alarm can be in `INSUFFICIENT_DATA` state. # # When you update an existing alarm, its state is left unchanged, but # the update completely overwrites the previous configuration of the # alarm. # # To use this operation, you must be signed on with the # `cloudwatch:PutCompositeAlarm` permission that is scoped to `*`. You # can't create a composite alarms if your # `cloudwatch:PutCompositeAlarm` permission has a narrower scope. # # If you are an IAM user, you must have `iam:CreateServiceLinkedRole` to # create a composite alarm that has Systems Manager OpsItem actions. # # @option params [Boolean] :actions_enabled # Indicates whether actions should be executed during any changes to the # alarm state of the composite alarm. The default is `TRUE`. # # @option params [Array] :alarm_actions # The actions to execute when this alarm transitions to the `ALARM` # state from any other state. Each action is specified as an Amazon # Resource Name (ARN). # # Valid Values: `arn:aws:sns:region:account-id:sns-topic-name ` \| # `arn:aws:ssm:region:account-id:opsitem:severity ` # # @option params [String] :alarm_description # The description for the composite alarm. # # @option params [required, String] :alarm_name # The name for the composite alarm. This name must be unique within the # Region. # # @option params [required, String] :alarm_rule # An expression that specifies which other alarms are to be evaluated to # determine this composite alarm's state. For each alarm that you # reference, you designate a function that specifies whether that alarm # needs to be in ALARM state, OK state, or INSUFFICIENT\_DATA state. You # can use operators (AND, OR and NOT) to combine multiple functions in a # single expression. You can use parenthesis to logically group the # functions in your expression. # # You can use either alarm names or ARNs to reference the other alarms # that are to be evaluated. # # Functions can include the following: # # * `ALARM("alarm-name or alarm-ARN")` is TRUE if the named alarm is in # ALARM state. # # * `OK("alarm-name or alarm-ARN")` is TRUE if the named alarm is in OK # state. # # * `INSUFFICIENT_DATA("alarm-name or alarm-ARN")` is TRUE if the named # alarm is in INSUFFICIENT\_DATA state. # # * `TRUE` always evaluates to TRUE. # # * `FALSE` always evaluates to FALSE. # # TRUE and FALSE are useful for testing a complex `AlarmRule` structure, # and for testing your alarm actions. # # Alarm names specified in `AlarmRule` can be surrounded with # double-quotes ("), but do not have to be. # # The following are some examples of `AlarmRule`\: # # * `ALARM(CPUUtilizationTooHigh) AND ALARM(DiskReadOpsTooHigh)` # specifies that the composite alarm goes into ALARM state only if # both CPUUtilizationTooHigh and DiskReadOpsTooHigh alarms are in # ALARM state. # # * `ALARM(CPUUtilizationTooHigh) AND NOT ALARM(DeploymentInProgress)` # specifies that the alarm goes to ALARM state if # CPUUtilizationTooHigh is in ALARM state and DeploymentInProgress is # not in ALARM state. This example reduces alarm noise during a known # deployment window. # # * `(ALARM(CPUUtilizationTooHigh) OR ALARM(DiskReadOpsTooHigh)) AND # OK(NetworkOutTooHigh)` goes into ALARM state if # CPUUtilizationTooHigh OR DiskReadOpsTooHigh is in ALARM state, and # if NetworkOutTooHigh is in OK state. This provides another example # of using a composite alarm to prevent noise. This rule ensures that # you are not notified with an alarm action on high CPU or disk usage # if a known network problem is also occurring. # # The `AlarmRule` can specify as many as 100 "children" alarms. The # `AlarmRule` expression can have as many as 500 elements. Elements are # child alarms, TRUE or FALSE statements, and parentheses. # # @option params [Array] :insufficient_data_actions # The actions to execute when this alarm transitions to the # `INSUFFICIENT_DATA` state from any other state. Each action is # specified as an Amazon Resource Name (ARN). # # Valid Values: `arn:aws:sns:region:account-id:sns-topic-name ` # # @option params [Array] :ok_actions # The actions to execute when this alarm transitions to an `OK` state # from any other state. Each action is specified as an Amazon Resource # Name (ARN). # # Valid Values: `arn:aws:sns:region:account-id:sns-topic-name ` # # @option params [Array] :tags # A list of key-value pairs to associate with the composite alarm. You # can associate as many as 50 tags with an alarm. # # Tags can help you organize and categorize your resources. You can also # use them to scope user permissions, by granting a user permission to # access or change only resources with certain tag values. # # @option params [String] :actions_suppressor # Actions will be suppressed if the suppressor alarm is in the `ALARM` # state. `ActionsSuppressor` can be an AlarmName or an Amazon Resource # Name (ARN) from an existing alarm. # # @option params [Integer] :actions_suppressor_wait_period # The maximum time in seconds that the composite alarm waits for the # suppressor alarm to go into the `ALARM` state. After this time, the # composite alarm performs its actions. # # `WaitPeriod` is required only when `ActionsSuppressor` is specified. # # @option params [Integer] :actions_suppressor_extension_period # The maximum time in seconds that the composite alarm waits after # suppressor alarm goes out of the `ALARM` state. After this time, the # composite alarm performs its actions. # # `ExtensionPeriod` is required only when `ActionsSuppressor` is # specified. # # @return [Struct] Returns an empty {Seahorse::Client::Response response}. # # @example Request syntax with placeholder values # # resp = client.put_composite_alarm({ # actions_enabled: false, # alarm_actions: ["ResourceName"], # alarm_description: "AlarmDescription", # alarm_name: "AlarmName", # required # alarm_rule: "AlarmRule", # required # insufficient_data_actions: ["ResourceName"], # ok_actions: ["ResourceName"], # tags: [ # { # key: "TagKey", # required # value: "TagValue", # required # }, # ], # actions_suppressor: "AlarmArn", # actions_suppressor_wait_period: 1, # actions_suppressor_extension_period: 1, # }) # # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/PutCompositeAlarm AWS API Documentation # # @overload put_composite_alarm(params = {}) # @param [Hash] params ({}) def put_composite_alarm(params = {}, options = {}) req = build_request(:put_composite_alarm, params) req.send_request(options) end # Creates a dashboard if it does not already exist, or updates an # existing dashboard. If you update a dashboard, the entire contents are # replaced with what you specify here. # # All dashboards in your account are global, not region-specific. # # A simple way to create a dashboard using `PutDashboard` is to copy an # existing dashboard. To copy an existing dashboard using the console, # you can load the dashboard and then use the View/edit source command # in the Actions menu to display the JSON block for that dashboard. # Another way to copy a dashboard is to use `GetDashboard`, and then use # the data returned within `DashboardBody` as the template for the new # dashboard when you call `PutDashboard`. # # When you create a dashboard with `PutDashboard`, a good practice is to # add a text widget at the top of the dashboard with a message that the # dashboard was created by script and should not be changed in the # console. This message could also point console users to the location # of the `DashboardBody` script or the CloudFormation template used to # create the dashboard. # # @option params [required, String] :dashboard_name # The name of the dashboard. If a dashboard with this name already # exists, this call modifies that dashboard, replacing its current # contents. Otherwise, a new dashboard is created. The maximum length is # 255, and valid characters are A-Z, a-z, 0-9, "-", and "\_". This # parameter is required. # # @option params [required, String] :dashboard_body # The detailed information about the dashboard in JSON format, including # the widgets to include and their location on the dashboard. This # parameter is required. # # For more information about the syntax, see [Dashboard Body Structure # and Syntax][1]. # # # # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/CloudWatch-Dashboard-Body-Structure.html # # @return [Types::PutDashboardOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::PutDashboardOutput#dashboard_validation_messages #dashboard_validation_messages} => Array<Types::DashboardValidationMessage> # # @example Request syntax with placeholder values # # resp = client.put_dashboard({ # dashboard_name: "DashboardName", # required # dashboard_body: "DashboardBody", # required # }) # # @example Response structure # # resp.dashboard_validation_messages #=> Array # resp.dashboard_validation_messages[0].data_path #=> String # resp.dashboard_validation_messages[0].message #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/PutDashboard AWS API Documentation # # @overload put_dashboard(params = {}) # @param [Hash] params ({}) def put_dashboard(params = {}, options = {}) req = build_request(:put_dashboard, params) req.send_request(options) end # Creates a Contributor Insights rule. Rules evaluate log events in a # CloudWatch Logs log group, enabling you to find contributor data for # the log events in that log group. For more information, see [Using # Contributor Insights to Analyze High-Cardinality Data][1]. # # If you create a rule, delete it, and then re-create it with the same # name, historical data from the first time the rule was created might # not be available. # # # # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContributorInsights.html # # @option params [required, String] :rule_name # A unique name for the rule. # # @option params [String] :rule_state # The state of the rule. Valid values are ENABLED and DISABLED. # # @option params [required, String] :rule_definition # The definition of the rule, as a JSON object. For details on the valid # syntax, see [Contributor Insights Rule Syntax][1]. # # # # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContributorInsights-RuleSyntax.html # # @option params [Array] :tags # A list of key-value pairs to associate with the Contributor Insights # rule. You can associate as many as 50 tags with a rule. # # Tags can help you organize and categorize your resources. You can also # use them to scope user permissions, by granting a user permission to # access or change only the resources that have certain tag values. # # To be able to associate tags with a rule, you must have the # `cloudwatch:TagResource` permission in addition to the # `cloudwatch:PutInsightRule` permission. # # If you are using this operation to update an existing Contributor # Insights rule, any tags you specify in this parameter are ignored. To # change the tags of an existing rule, use [TagResource][1]. # # # # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_TagResource.html # # @return [Struct] Returns an empty {Seahorse::Client::Response response}. # # @example Request syntax with placeholder values # # resp = client.put_insight_rule({ # rule_name: "InsightRuleName", # required # rule_state: "InsightRuleState", # rule_definition: "InsightRuleDefinition", # required # tags: [ # { # key: "TagKey", # required # value: "TagValue", # required # }, # ], # }) # # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/PutInsightRule AWS API Documentation # # @overload put_insight_rule(params = {}) # @param [Hash] params ({}) def put_insight_rule(params = {}, options = {}) req = build_request(:put_insight_rule, params) req.send_request(options) end # Creates or updates an alarm and associates it with the specified # metric, metric math expression, or anomaly detection model. # # Alarms based on anomaly detection models cannot have Auto Scaling # actions. # # When this operation creates an alarm, the alarm state is immediately # set to `INSUFFICIENT_DATA`. The alarm is then evaluated and its state # is set appropriately. Any actions associated with the new state are # then executed. # # When you update an existing alarm, its state is left unchanged, but # the update completely overwrites the previous configuration of the # alarm. # # If you are an IAM user, you must have Amazon EC2 permissions for some # alarm operations: # # * The `iam:CreateServiceLinkedRole` for all alarms with EC2 actions # # * The `iam:CreateServiceLinkedRole` to create an alarm with Systems # Manager OpsItem actions. # # The first time you create an alarm in the Amazon Web Services # Management Console, the CLI, or by using the PutMetricAlarm API, # CloudWatch creates the necessary service-linked role for you. The # service-linked roles are called `AWSServiceRoleForCloudWatchEvents` # and `AWSServiceRoleForCloudWatchAlarms_ActionSSM`. For more # information, see [Amazon Web Services service-linked role][1]. # # **Cross-account alarms** # # You can set an alarm on metrics in the current account, or in another # account. To create a cross-account alarm that watches a metric in a # different account, you must have completed the following # pre-requisites: # # * The account where the metrics are located (the *sharing account*) # must already have a sharing role named # **CloudWatch-CrossAccountSharingRole**. If it does not already have # this role, you must create it using the instructions in **Set up a # sharing account** in [ Cross-account cross-Region CloudWatch # console][2]. The policy for that role must grant access to the ID of # the account where you are creating the alarm. # # * The account where you are creating the alarm (the *monitoring # account*) must already have a service-linked role named # **AWSServiceRoleForCloudWatchCrossAccount** to allow CloudWatch to # assume the sharing role in the sharing account. If it does not, you # must create it following the directions in **Set up a monitoring # account** in [ Cross-account cross-Region CloudWatch console][2]. # # # # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role # [2]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Cross-Account-Cross-Region.html#enable-cross-account-cross-Region # # @option params [required, String] :alarm_name # The name for the alarm. This name must be unique within the Region. # # @option params [String] :alarm_description # The description for the alarm. # # @option params [Boolean] :actions_enabled # Indicates whether actions should be executed during any changes to the # alarm state. The default is `TRUE`. # # @option params [Array] :ok_actions # The actions to execute when this alarm transitions to an `OK` state # from any other state. Each action is specified as an Amazon Resource # Name (ARN). # # Valid Values: `arn:aws:automate:region:ec2:stop` \| # `arn:aws:automate:region:ec2:terminate` \| # `arn:aws:automate:region:ec2:recover` \| # `arn:aws:automate:region:ec2:reboot` \| # `arn:aws:sns:region:account-id:sns-topic-name ` \| # `arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name # ` # # Valid Values (for use with IAM roles): # `arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0` # \| # `arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0` # \| # `arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0` # \| # `arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Recover/1.0` # # @option params [Array] :alarm_actions # The actions to execute when this alarm transitions to the `ALARM` # state from any other state. Each action is specified as an Amazon # Resource Name (ARN). # # Valid Values: `arn:aws:automate:region:ec2:stop` \| # `arn:aws:automate:region:ec2:terminate` \| # `arn:aws:automate:region:ec2:recover` \| # `arn:aws:automate:region:ec2:reboot` \| # `arn:aws:sns:region:account-id:sns-topic-name ` \| # `arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name # ` \| `arn:aws:ssm:region:account-id:opsitem:severity ` \| # `arn:aws:ssm-incidents::account-id:response-plan:response-plan-name ` # # Valid Values (for use with IAM roles): # `arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0` # \| # `arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0` # \| # `arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0` # \| # `arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Recover/1.0` # # @option params [Array] :insufficient_data_actions # The actions to execute when this alarm transitions to the # `INSUFFICIENT_DATA` state from any other state. Each action is # specified as an Amazon Resource Name (ARN). # # Valid Values: `arn:aws:automate:region:ec2:stop` \| # `arn:aws:automate:region:ec2:terminate` \| # `arn:aws:automate:region:ec2:recover` \| # `arn:aws:automate:region:ec2:reboot` \| # `arn:aws:sns:region:account-id:sns-topic-name ` \| # `arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name # ` # # Valid Values (for use with IAM roles): # `>arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0` # \| # `arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0` # \| # `arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0` # # @option params [String] :metric_name # The name for the metric associated with the alarm. For each # `PutMetricAlarm` operation, you must specify either `MetricName` or a # `Metrics` array. # # If you are creating an alarm based on a math expression, you cannot # specify this parameter, or any of the `Dimensions`, `Period`, # `Namespace`, `Statistic`, or `ExtendedStatistic` parameters. Instead, # you specify all this information in the `Metrics` array. # # @option params [String] :namespace # The namespace for the metric associated specified in `MetricName`. # # @option params [String] :statistic # The statistic for the metric specified in `MetricName`, other than # percentile. For percentile statistics, use `ExtendedStatistic`. When # you call `PutMetricAlarm` and specify a `MetricName`, you must specify # either `Statistic` or `ExtendedStatistic,` but not both. # # @option params [String] :extended_statistic # The percentile statistic for the metric specified in `MetricName`. # Specify a value between p0.0 and p100. When you call `PutMetricAlarm` # and specify a `MetricName`, you must specify either `Statistic` or # `ExtendedStatistic,` but not both. # # @option params [Array] :dimensions # The dimensions for the metric specified in `MetricName`. # # @option params [Integer] :period # The length, in seconds, used each time the metric specified in # `MetricName` is evaluated. Valid values are 10, 30, and any multiple # of 60. # # `Period` is required for alarms based on static thresholds. If you are # creating an alarm based on a metric math expression, you specify the # period for each metric within the objects in the `Metrics` array. # # Be sure to specify 10 or 30 only for metrics that are stored by a # `PutMetricData` call with a `StorageResolution` of 1. If you specify a # period of 10 or 30 for a metric that does not have sub-minute # resolution, the alarm still attempts to gather data at the period rate # that you specify. In this case, it does not receive data for the # attempts that do not correspond to a one-minute data resolution, and # the alarm might often lapse into INSUFFICENT\_DATA status. Specifying # 10 or 30 also sets this alarm as a high-resolution alarm, which has a # higher charge than other alarms. For more information about pricing, # see [Amazon CloudWatch Pricing][1]. # # An alarm's total current evaluation period can be no longer than one # day, so `Period` multiplied by `EvaluationPeriods` cannot be more than # 86,400 seconds. # # # # [1]: https://aws.amazon.com/cloudwatch/pricing/ # # @option params [String] :unit # The unit of measure for the statistic. 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. # # If you don't specify `Unit`, CloudWatch retrieves all unit types that # have been published for the metric and attempts to evaluate the alarm. # Usually, metrics are published with only one unit, so the alarm works # as intended. # # However, if the metric is published with multiple types of units and # you don't specify a unit, the alarm's behavior is not defined and it # behaves predictably. # # We recommend omitting `Unit` so that you don't inadvertently specify # an incorrect unit that is not published for this metric. Doing so # causes the alarm to be stuck in the `INSUFFICIENT DATA` state. # # @option params [required, Integer] :evaluation_periods # The number of periods over which data is compared to the specified # threshold. If you are setting an alarm that requires that a number of # consecutive data points be breaching to trigger the alarm, this value # specifies that number. If you are setting an "M out of N" alarm, # this value is the N. # # An alarm's total current evaluation period can be no longer than one # day, so this number multiplied by `Period` cannot be more than 86,400 # seconds. # # @option params [Integer] :datapoints_to_alarm # The number of data points that must be breaching to trigger the alarm. # This is used only if you are setting an "M out of N" alarm. In that # case, this value is the M. For more information, see [Evaluating an # Alarm][1] in the *Amazon CloudWatch User Guide*. # # # # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation # # @option params [Float] :threshold # The value against which the specified statistic is compared. # # This parameter is required for alarms based on static thresholds, but # should not be used for alarms based on anomaly detection models. # # @option params [required, String] :comparison_operator # The arithmetic operation to use when comparing the specified statistic # and threshold. The specified statistic value is used as the first # operand. # # The values `LessThanLowerOrGreaterThanUpperThreshold`, # `LessThanLowerThreshold`, and `GreaterThanUpperThreshold` are used # only for alarms based on anomaly detection models. # # @option params [String] :treat_missing_data # Sets how this alarm is to handle missing data points. If # `TreatMissingData` is omitted, the default behavior of `missing` is # used. For more information, see [Configuring How CloudWatch Alarms # Treats Missing Data][1]. # # Valid Values: `breaching | notBreaching | ignore | missing` # # Alarms that evaluate metrics in the `AWS/DynamoDB` namespace always # `ignore` missing data even if you choose a different option for # `TreatMissingData`. When an `AWS/DynamoDB` metric has missing data, # alarms that evaluate that metric remain in their current state. # # # # # # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-missing-data # # @option params [String] :evaluate_low_sample_count_percentile # Used only for alarms based on percentiles. If you specify `ignore`, # the alarm state does not change during periods with too few data # points to be statistically significant. If you specify `evaluate` or # omit this parameter, the alarm is always evaluated and possibly # changes state no matter how many data points are available. For more # information, see [Percentile-Based CloudWatch Alarms and Low Data # Samples][1]. # # Valid Values: `evaluate | ignore` # # # # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#percentiles-with-low-samples # # @option params [Array] :metrics # An array of `MetricDataQuery` structures that enable you to create an # alarm based on the result of a metric math expression. For each # `PutMetricAlarm` operation, you must specify either `MetricName` or a # `Metrics` array. # # Each item in the `Metrics` array either retrieves a metric or performs # a math expression. # # One item in the `Metrics` array is the expression that the alarm # watches. You designate this expression by setting `ReturnData` to true # for this object in the array. For more information, see # [MetricDataQuery][1]. # # If you use the `Metrics` parameter, you cannot include the # `MetricName`, `Dimensions`, `Period`, `Namespace`, `Statistic`, or # `ExtendedStatistic` parameters of `PutMetricAlarm` in the same # operation. Instead, you retrieve the metrics you are using in your # math expression as part of the `Metrics` array. # # # # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDataQuery.html # # @option params [Array] :tags # A list of key-value pairs to associate with the alarm. You can # associate as many as 50 tags with an alarm. # # Tags can help you organize and categorize your resources. You can also # use them to scope user permissions by granting a user permission to # access or change only resources with certain tag values. # # If you are using this operation to update an existing alarm, any tags # you specify in this parameter are ignored. To change the tags of an # existing alarm, use [TagResource][1] or [UntagResource][2]. # # # # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_TagResource.html # [2]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_UntagResource.html # # @option params [String] :threshold_metric_id # If this is an alarm based on an anomaly detection model, make this # value match the ID of the `ANOMALY_DETECTION_BAND` function. # # For an example of how to use this parameter, see the **Anomaly # Detection Model Alarm** example on this page. # # If your alarm uses this parameter, it cannot have Auto Scaling # actions. # # @return [Struct] Returns an empty {Seahorse::Client::Response response}. # # @example Request syntax with placeholder values # # resp = client.put_metric_alarm({ # alarm_name: "AlarmName", # required # alarm_description: "AlarmDescription", # actions_enabled: false, # ok_actions: ["ResourceName"], # alarm_actions: ["ResourceName"], # insufficient_data_actions: ["ResourceName"], # metric_name: "MetricName", # namespace: "Namespace", # statistic: "SampleCount", # accepts SampleCount, Average, Sum, Minimum, Maximum # extended_statistic: "ExtendedStatistic", # dimensions: [ # { # name: "DimensionName", # required # value: "DimensionValue", # required # }, # ], # period: 1, # unit: "Seconds", # accepts 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 # evaluation_periods: 1, # required # datapoints_to_alarm: 1, # threshold: 1.0, # comparison_operator: "GreaterThanOrEqualToThreshold", # required, accepts GreaterThanOrEqualToThreshold, GreaterThanThreshold, LessThanThreshold, LessThanOrEqualToThreshold, LessThanLowerOrGreaterThanUpperThreshold, LessThanLowerThreshold, GreaterThanUpperThreshold # treat_missing_data: "TreatMissingData", # evaluate_low_sample_count_percentile: "EvaluateLowSampleCountPercentile", # metrics: [ # { # id: "MetricId", # required # metric_stat: { # metric: { # required # namespace: "Namespace", # metric_name: "MetricName", # dimensions: [ # { # name: "DimensionName", # required # value: "DimensionValue", # required # }, # ], # }, # period: 1, # required # stat: "Stat", # required # unit: "Seconds", # accepts 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 # }, # expression: "MetricExpression", # label: "MetricLabel", # return_data: false, # period: 1, # account_id: "AccountId", # }, # ], # tags: [ # { # key: "TagKey", # required # value: "TagValue", # required # }, # ], # threshold_metric_id: "MetricId", # }) # # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/PutMetricAlarm AWS API Documentation # # @overload put_metric_alarm(params = {}) # @param [Hash] params ({}) def put_metric_alarm(params = {}, options = {}) req = build_request(:put_metric_alarm, params) req.send_request(options) end # Publishes metric data points to Amazon CloudWatch. CloudWatch # associates the data points with the specified metric. If the specified # metric does not exist, CloudWatch creates the metric. When CloudWatch # creates a metric, it can take up to fifteen minutes for the metric to # appear in calls to [ListMetrics][1]. # # You can publish either individual data points in the `Value` field, or # arrays of values and the number of times each value occurred during # the period by using the `Values` and `Counts` fields in the # `MetricDatum` structure. Using the `Values` and `Counts` method # enables you to publish up to 150 values per metric with one # `PutMetricData` request, and supports retrieving percentile statistics # on this data. # # Each `PutMetricData` request is limited to 40 KB in size for HTTP POST # requests. You can send a payload compressed by gzip. Each request is # also limited to no more than 20 different metrics. # # Although the `Value` parameter accepts numbers of type `Double`, # CloudWatch rejects values that are either too small or too large. # Values must be in the range of -2^360 to 2^360. In addition, special # values (for example, NaN, +Infinity, -Infinity) are not supported. # # You can use up to 10 dimensions per metric to further clarify what # data the metric collects. Each dimension consists of a Name and Value # pair. For more information about specifying dimensions, see # [Publishing Metrics][2] in the *Amazon CloudWatch User Guide*. # # You specify the time stamp to be associated with each data point. You # can specify time stamps that are as much as two weeks before the # current date, and as much as 2 hours after the current day and time. # # Data points with time stamps from 24 hours ago or longer can take at # least 48 hours to become available for [GetMetricData][3] or # [GetMetricStatistics][4] from the time they are submitted. Data points # with time stamps between 3 and 24 hours ago can take as much as 2 # hours to become available for for [GetMetricData][3] or # [GetMetricStatistics][4]. # # CloudWatch needs raw data points to calculate percentile statistics. # If you publish data using a statistic set instead, you can only # retrieve percentile statistics for this data if one of the following # conditions is true: # # * The `SampleCount` value of the statistic set is 1 and `Min`, `Max`, # and `Sum` are all equal. # # * The `Min` and `Max` are equal, and `Sum` is equal to `Min` # multiplied by `SampleCount`. # # # # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html # [2]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html # [3]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html # [4]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricStatistics.html # # @option params [required, String] :namespace # The namespace for the metric data. # # To avoid conflicts with Amazon Web Services service namespaces, you # should not specify a namespace that begins with `AWS/` # # @option params [required, Array] :metric_data # The data for the metric. The array can include no more than 20 metrics # per call. # # @return [Struct] Returns an empty {Seahorse::Client::Response response}. # # @example Request syntax with placeholder values # # resp = client.put_metric_data({ # namespace: "Namespace", # required # metric_data: [ # required # { # metric_name: "MetricName", # required # dimensions: [ # { # name: "DimensionName", # required # value: "DimensionValue", # required # }, # ], # timestamp: Time.now, # value: 1.0, # statistic_values: { # sample_count: 1.0, # required # sum: 1.0, # required # minimum: 1.0, # required # maximum: 1.0, # required # }, # values: [1.0], # counts: [1.0], # unit: "Seconds", # accepts 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 # storage_resolution: 1, # }, # ], # }) # # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/PutMetricData AWS API Documentation # # @overload put_metric_data(params = {}) # @param [Hash] params ({}) def put_metric_data(params = {}, options = {}) req = build_request(:put_metric_data, params) req.send_request(options) end # Creates or updates a metric stream. Metric streams can automatically # stream CloudWatch metrics to Amazon Web Services destinations # including Amazon S3 and to many third-party solutions. # # For more information, see [ Using Metric Streams][1]. # # To create a metric stream, you must be logged on to an account that # has the `iam:PassRole` permission and either the # `CloudWatchFullAccess` policy or the `cloudwatch:PutMetricStream` # permission. # # When you create or update a metric stream, you choose one of the # following: # # * Stream metrics from all metric namespaces in the account. # # * Stream metrics from all metric namespaces in the account, except for # the namespaces that you list in `ExcludeFilters`. # # * Stream metrics from only the metric namespaces that you list in # `IncludeFilters`. # # By default, a metric stream always sends the `MAX`, `MIN`, `SUM`, and # `SAMPLECOUNT` statistics for each metric that is streamed. You can use # the `StatisticsConfigurations` parameter to have the metric stream # also send additional statistics in the stream. Streaming additional # statistics incurs additional costs. For more information, see [Amazon # CloudWatch Pricing][2]. # # When you use `PutMetricStream` to create a new metric stream, the # stream is created in the `running` state. If you use it to update an # existing stream, the state of the stream is not changed. # # # # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Metric-Streams.html # [2]: https://aws.amazon.com/cloudwatch/pricing/ # # @option params [required, String] :name # If you are creating a new metric stream, this is the name for the new # stream. The name must be different than the names of other metric # streams in this account and Region. # # If you are updating a metric stream, specify the name of that stream # here. # # Valid characters are A-Z, a-z, 0-9, "-" and "\_". # # @option params [Array] :include_filters # If you specify this parameter, the stream sends only the metrics from # the metric namespaces that you specify here. # # You cannot include `IncludeFilters` and `ExcludeFilters` in the same # operation. # # @option params [Array] :exclude_filters # If you specify this parameter, the stream sends metrics from all # metric namespaces except for the namespaces that you specify here. # # You cannot include `ExcludeFilters` and `IncludeFilters` in the same # operation. # # @option params [required, String] :firehose_arn # The ARN of the Amazon Kinesis Firehose delivery stream to use for this # metric stream. This Amazon Kinesis Firehose delivery stream must # already exist and must be in the same account as the metric stream. # # @option params [required, String] :role_arn # The ARN of an IAM role that this metric stream will use to access # Amazon Kinesis Firehose resources. This IAM role must already exist # and must be in the same account as the metric stream. This IAM role # must include the following permissions: # # * firehose:PutRecord # # * firehose:PutRecordBatch # # @option params [required, String] :output_format # The output format for the stream. Valid values are `json` and # `opentelemetry0.7`. For more information about metric stream output # formats, see [ Metric streams output formats][1]. # # # # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-metric-streams-formats.html # # @option params [Array] :tags # A list of key-value pairs to associate with the metric stream. You can # associate as many as 50 tags with a metric stream. # # Tags can help you organize and categorize your resources. You can also # use them to scope user permissions by granting a user permission to # access or change only resources with certain tag values. # # You can use this parameter only when you are creating a new metric # stream. If you are using this operation to update an existing metric # stream, any tags you specify in this parameter are ignored. To change # the tags of an existing metric stream, use [TagResource][1] or # [UntagResource][2]. # # # # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_TagResource.html # [2]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_UntagResource.html # # @option params [Array] :statistics_configurations # By default, a metric stream always sends the `MAX`, `MIN`, `SUM`, and # `SAMPLECOUNT` statistics for each metric that is streamed. You can use # this parameter to have the metric stream also send additional # statistics in the stream. This array can have up to 100 members. # # For each entry in this array, you specify one or more metrics and the # list of additional statistics to stream for those metrics. The # additional statistics that you can stream depend on the stream's # `OutputFormat`. If the `OutputFormat` is `json`, you can stream any # additional statistic that is supported by CloudWatch, listed in [ # CloudWatch statistics definitions][1]. If the `OutputFormat` is # `opentelemetry0.7`, you can stream percentile statistics such as p95, # p99.9 and so on. # # # # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Statistics-definitions.html.html # # @return [Types::PutMetricStreamOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::PutMetricStreamOutput#arn #arn} => String # # @example Request syntax with placeholder values # # resp = client.put_metric_stream({ # name: "MetricStreamName", # required # include_filters: [ # { # namespace: "Namespace", # }, # ], # exclude_filters: [ # { # namespace: "Namespace", # }, # ], # firehose_arn: "AmazonResourceName", # required # role_arn: "AmazonResourceName", # required # output_format: "json", # required, accepts json, opentelemetry0.7 # tags: [ # { # key: "TagKey", # required # value: "TagValue", # required # }, # ], # statistics_configurations: [ # { # include_metrics: [ # required # { # namespace: "Namespace", # required # metric_name: "MetricName", # required # }, # ], # additional_statistics: ["MetricStreamStatistic"], # required # }, # ], # }) # # @example Response structure # # resp.arn #=> String # # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/PutMetricStream AWS API Documentation # # @overload put_metric_stream(params = {}) # @param [Hash] params ({}) def put_metric_stream(params = {}, options = {}) req = build_request(:put_metric_stream, params) req.send_request(options) end # Temporarily sets the state of an alarm for testing purposes. When the # updated state 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 state to `ALARM` sends an SNS message. # # Metric alarms returns to their actual state quickly, often within # seconds. Because the metric alarm state change happens quickly, it is # typically only visible in the alarm's **History** tab in the Amazon # CloudWatch console or through [DescribeAlarmHistory][1]. # # If you use `SetAlarmState` on a composite alarm, the composite alarm # is not guaranteed to return to its actual state. It returns to its # actual state only once any of its children alarms change state. It is # also reevaluated if you update its configuration. # # If an alarm triggers EC2 Auto Scaling policies or application Auto # Scaling policies, you must include information in the # `StateReasonData` parameter to enable the policy to take the correct # action. # # # # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeAlarmHistory.html # # @option params [required, String] :alarm_name # The name of the alarm. # # @option params [required, String] :state_value # The value of the state. # # @option params [required, String] :state_reason # The reason that this alarm is set to this specific state, in text # format. # # @option params [String] :state_reason_data # The reason that this alarm is set to this specific state, in JSON # format. # # For SNS or EC2 alarm actions, this is just informational. But for EC2 # Auto Scaling or application Auto Scaling alarm actions, the Auto # Scaling policy uses the information in this field to take the correct # action. # # @return [Struct] Returns an empty {Seahorse::Client::Response response}. # # @example Request syntax with placeholder values # # resp = client.set_alarm_state({ # alarm_name: "AlarmName", # required # state_value: "OK", # required, accepts OK, ALARM, INSUFFICIENT_DATA # state_reason: "StateReason", # required # state_reason_data: "StateReasonData", # }) # # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/SetAlarmState AWS API Documentation # # @overload set_alarm_state(params = {}) # @param [Hash] params ({}) def set_alarm_state(params = {}, options = {}) req = build_request(:set_alarm_state, params) req.send_request(options) end # Starts the streaming of metrics for one or more of your metric # streams. # # @option params [required, Array] :names # The array of the names of metric streams to start streaming. # # This is an "all or nothing" operation. If you do not have permission # to access all of the metric streams that you list here, then none of # the streams that you list in the operation will start streaming. # # @return [Struct] Returns an empty {Seahorse::Client::Response response}. # # @example Request syntax with placeholder values # # resp = client.start_metric_streams({ # names: ["MetricStreamName"], # required # }) # # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/StartMetricStreams AWS API Documentation # # @overload start_metric_streams(params = {}) # @param [Hash] params ({}) def start_metric_streams(params = {}, options = {}) req = build_request(:start_metric_streams, params) req.send_request(options) end # Stops the streaming of metrics for one or more of your metric streams. # # @option params [required, Array] :names # The array of the names of metric streams to stop streaming. # # This is an "all or nothing" operation. If you do not have permission # to access all of the metric streams that you list here, then none of # the streams that you list in the operation will stop streaming. # # @return [Struct] Returns an empty {Seahorse::Client::Response response}. # # @example Request syntax with placeholder values # # resp = client.stop_metric_streams({ # names: ["MetricStreamName"], # required # }) # # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/StopMetricStreams AWS API Documentation # # @overload stop_metric_streams(params = {}) # @param [Hash] params ({}) def stop_metric_streams(params = {}, options = {}) req = build_request(:stop_metric_streams, params) req.send_request(options) end # Assigns one or more tags (key-value pairs) to the specified CloudWatch # resource. Currently, the only CloudWatch resources that can be tagged # are alarms and Contributor Insights rules. # # Tags can help you organize and categorize your resources. You can also # use them to scope user permissions by granting a user permission to # access or change only resources with certain tag values. # # Tags don't have any semantic meaning to Amazon Web Services and are # interpreted strictly as strings of characters. # # You can use the `TagResource` action with an alarm that already has # tags. If you specify a new tag key for the alarm, this tag is appended # to the list of tags associated with the alarm. If you specify a tag # key that is already associated with the alarm, the new tag value that # you specify replaces the previous value for that tag. # # You can associate as many as 50 tags with a CloudWatch resource. # # @option params [required, String] :resource_arn # The ARN of the CloudWatch resource that you're adding tags to. # # The ARN format of an alarm is # `arn:aws:cloudwatch:Region:account-id:alarm:alarm-name ` # # The ARN format of a Contributor Insights rule is # `arn:aws:cloudwatch:Region:account-id:insight-rule:insight-rule-name ` # # For more information about ARN format, see [ Resource Types Defined by # Amazon CloudWatch][1] in the *Amazon Web Services General Reference*. # # # # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazoncloudwatch.html#amazoncloudwatch-resources-for-iam-policies # # @option params [required, Array] :tags # The list of key-value pairs to associate with the alarm. # # @return [Struct] Returns an empty {Seahorse::Client::Response response}. # # @example Request syntax with placeholder values # # resp = client.tag_resource({ # resource_arn: "AmazonResourceName", # required # tags: [ # required # { # key: "TagKey", # required # value: "TagValue", # required # }, # ], # }) # # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/TagResource AWS API Documentation # # @overload tag_resource(params = {}) # @param [Hash] params ({}) def tag_resource(params = {}, options = {}) req = build_request(:tag_resource, params) req.send_request(options) end # Removes one or more tags from the specified resource. # # @option params [required, String] :resource_arn # The ARN of the CloudWatch resource that you're removing tags from. # # The ARN format of an alarm is # `arn:aws:cloudwatch:Region:account-id:alarm:alarm-name ` # # The ARN format of a Contributor Insights rule is # `arn:aws:cloudwatch:Region:account-id:insight-rule:insight-rule-name ` # # For more information about ARN format, see [ Resource Types Defined by # Amazon CloudWatch][1] in the *Amazon Web Services General Reference*. # # # # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazoncloudwatch.html#amazoncloudwatch-resources-for-iam-policies # # @option params [required, Array] :tag_keys # The list of tag keys to remove from the resource. # # @return [Struct] Returns an empty {Seahorse::Client::Response response}. # # @example Request syntax with placeholder values # # resp = client.untag_resource({ # resource_arn: "AmazonResourceName", # required # tag_keys: ["TagKey"], # required # }) # # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/UntagResource AWS API Documentation # # @overload untag_resource(params = {}) # @param [Hash] params ({}) def untag_resource(params = {}, options = {}) req = build_request(:untag_resource, params) req.send_request(options) end # @!endgroup # @param params ({}) # @api private def build_request(operation_name, params = {}) handlers = @handlers.for(operation_name) context = Seahorse::Client::RequestContext.new( operation_name: operation_name, operation: config.api.operation(operation_name), client: self, params: params, config: config) context[:gem_name] = 'aws-sdk-cloudwatch' context[:gem_version] = '1.65.0' Seahorse::Client::Request.new(handlers, context) end # Polls an API operation until a resource enters a desired state. # # ## Basic Usage # # A waiter will call an API operation until: # # * It is successful # * It enters a terminal state # * It makes the maximum number of attempts # # In between attempts, the waiter will sleep. # # # polls in a loop, sleeping between attempts # client.wait_until(waiter_name, params) # # ## Configuration # # You can configure the maximum number of polling attempts, and the # delay (in seconds) between each polling attempt. You can pass # configuration as the final arguments hash. # # # poll for ~25 seconds # client.wait_until(waiter_name, params, { # max_attempts: 5, # delay: 5, # }) # # ## Callbacks # # You can be notified before each polling attempt and before each # delay. If you throw `:success` or `:failure` from these callbacks, # it will terminate the waiter. # # started_at = Time.now # client.wait_until(waiter_name, params, { # # # disable max attempts # max_attempts: nil, # # # poll for 1 hour, instead of a number of attempts # before_wait: -> (attempts, response) do # throw :failure if Time.now - started_at > 3600 # end # }) # # ## Handling Errors # # When a waiter is unsuccessful, it will raise an error. # All of the failure errors extend from # {Aws::Waiters::Errors::WaiterFailed}. # # begin # client.wait_until(...) # rescue Aws::Waiters::Errors::WaiterFailed # # resource did not enter the desired state in time # end # # ## Valid Waiters # # The following table lists the valid waiter names, the operations they call, # and the default `:delay` and `:max_attempts` values. # # | waiter_name | params | :delay | :max_attempts | # | ---------------------- | ------------------------ | -------- | ------------- | # | alarm_exists | {Client#describe_alarms} | 5 | 40 | # | composite_alarm_exists | {Client#describe_alarms} | 5 | 40 | # # @raise [Errors::FailureStateError] Raised when the waiter terminates # because the waiter has entered a state that it will not transition # out of, preventing success. # # @raise [Errors::TooManyAttemptsError] Raised when the configured # maximum number of attempts have been made, and the waiter is not # yet successful. # # @raise [Errors::UnexpectedError] Raised when an error is encounted # while polling for a resource that is not expected. # # @raise [Errors::NoSuchWaiterError] Raised when you request to wait # for an unknown state. # # @return [Boolean] Returns `true` if the waiter was successful. # @param [Symbol] waiter_name # @param [Hash] params ({}) # @param [Hash] options ({}) # @option options [Integer] :max_attempts # @option options [Integer] :delay # @option options [Proc] :before_attempt # @option options [Proc] :before_wait def wait_until(waiter_name, params = {}, options = {}) w = waiter(waiter_name, options) yield(w.waiter) if block_given? # deprecated w.wait(params) end # @api private # @deprecated def waiter_names waiters.keys end private # @param [Symbol] waiter_name # @param [Hash] options ({}) def waiter(waiter_name, options = {}) waiter_class = waiters[waiter_name] if waiter_class waiter_class.new(options.merge(client: self)) else raise Aws::Waiters::Errors::NoSuchWaiterError.new(waiter_name, waiters.keys) end end def waiters { alarm_exists: Waiters::AlarmExists, composite_alarm_exists: Waiters::CompositeAlarmExists } end class << self # @api private attr_reader :identifier # @api private def errors_module Errors end end end end