aws-sdk-cloudwatch 1.139.0 → 1.141.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -481,6 +481,110 @@ module Aws::CloudWatch
481
481
 
482
482
  # @!group API Operations
483
483
 
484
+ # Associates an Amazon Web Services Key Management Service (Amazon Web
485
+ # Services KMS) customer managed key with the specified dataset. After
486
+ # this operation completes, all data published to the dataset is
487
+ # encrypted at rest using the specified KMS key. Callers must have
488
+ # `kms:Decrypt` permission on the key to read the encrypted data.
489
+ #
490
+ # Only the `default` dataset is supported. The `default` dataset is
491
+ # implicit for every account in every Region — you do not need to create
492
+ # it before calling this operation.
493
+ #
494
+ # You can call `AssociateDatasetKmsKey` on a dataset that is already
495
+ # associated with a KMS key to replace the existing key with a different
496
+ # one. To replace a key, the caller must have `kms:Decrypt` permission
497
+ # on both the current key and the new key.
498
+ #
499
+ # The KMS key that you specify must meet all of the following
500
+ # requirements:
501
+ #
502
+ # * It must be a symmetric encryption KMS key (key spec
503
+ # `SYMMETRIC_DEFAULT`, key usage `ENCRYPT_DECRYPT`). Asymmetric keys,
504
+ # HMAC keys, and key material types other than `SYMMETRIC_DEFAULT` are
505
+ # not supported.
506
+ #
507
+ # * It must be enabled and not pending deletion.
508
+ #
509
+ # * Its key policy must grant the CloudWatch service principal
510
+ # (`cloudwatch.amazonaws.com`) these permissions: `kms:DescribeKey`,
511
+ # `kms:GenerateDataKey`, `kms:Encrypt`, `kms:Decrypt`, and
512
+ # `kms:ReEncrypt*`. Amazon CloudWatch requires these permissions to
513
+ # manage the data on your behalf.
514
+ #
515
+ # * The calling principal must have `kms:Decrypt` permission on the key.
516
+ #
517
+ # * It must be specified as a fully qualified key ARN. Key IDs, aliases,
518
+ # and alias ARNs are not accepted.
519
+ #
520
+ # * It must be in the same Amazon Web Services Region as the dataset.
521
+ #
522
+ # Before completing the association, Amazon CloudWatch validates the key
523
+ # by performing a series of dry-run KMS operations. Service-principal
524
+ # checks run first to verify that the key policy grants the required
525
+ # access to Amazon CloudWatch. These checks include `kms:DescribeKey`,
526
+ # `kms:GenerateDataKey`, `kms:Encrypt`, `kms:Decrypt`, and
527
+ # `kms:ReEncrypt*`. After those succeed, a `kms:Decrypt` dry-run is run
528
+ # with the caller's credentials to verify that the calling principal
529
+ # can use the key. When you are replacing an existing key, the caller's
530
+ # `kms:Decrypt` dry-run is run on the current key first, and only then
531
+ # on the new key.
532
+ #
533
+ # If any of these checks fails, the operation fails and the existing key
534
+ # association (if any) remains unchanged. Common failure causes include
535
+ # the key being disabled, the key policy not granting the required
536
+ # permissions to Amazon CloudWatch, or the caller lacking `kms:Decrypt`
537
+ # permission on the key.
538
+ #
539
+ # For more information about using customer managed keys with Amazon
540
+ # CloudWatch, see [Encryption at rest with customer managed keys][1] in
541
+ # the *Amazon CloudWatch User Guide*.
542
+ #
543
+ #
544
+ #
545
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cmk-encryption.html
546
+ #
547
+ # @option params [required, String] :dataset_identifier
548
+ # Specifies the identifier of the dataset that you want to associate the
549
+ # KMS key with. For the `default` dataset, you can specify either
550
+ # `default` or the full dataset Amazon Resource Name (ARN) in the format
551
+ # `arn:aws:cloudwatch:Region:account-id:dataset/default`.
552
+ #
553
+ # @option params [required, String] :kms_key_arn
554
+ # Specifies the Amazon Resource Name (ARN) of the customer managed KMS
555
+ # key to associate with the dataset. The key must be a symmetric
556
+ # encryption KMS key (`SYMMETRIC_DEFAULT`) in the same Amazon Web
557
+ # Services Region as the dataset.
558
+ #
559
+ # The ARN must be in the format
560
+ # `arn:aws:kms:Region:account-id:key/key-id `. Key IDs, aliases, and
561
+ # alias ARNs are not accepted.
562
+ #
563
+ # For more information about KMS key ARNs, see [Key ARN][1] in the
564
+ # *Amazon Web Services Key Management Service Developer Guide*.
565
+ #
566
+ #
567
+ #
568
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN
569
+ #
570
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
571
+ #
572
+ # @example Request syntax with placeholder values
573
+ #
574
+ # resp = client.associate_dataset_kms_key({
575
+ # dataset_identifier: "DatasetIdentifier", # required
576
+ # kms_key_arn: "KmsKeyArn", # required
577
+ # })
578
+ #
579
+ # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/AssociateDatasetKmsKey AWS API Documentation
580
+ #
581
+ # @overload associate_dataset_kms_key(params = {})
582
+ # @param [Hash] params ({})
583
+ def associate_dataset_kms_key(params = {}, options = {})
584
+ req = build_request(:associate_dataset_kms_key, params)
585
+ req.send_request(options)
586
+ end
587
+
484
588
  # Deletes a specific alarm mute rule.
485
589
  #
486
590
  # When you delete a mute rule, any alarms that are currently being muted
@@ -519,7 +623,8 @@ module Aws::CloudWatch
519
623
  # operation. However, this total can include no more than one composite
520
624
  # alarm. For example, you could delete 99 metric alarms and one
521
625
  # composite alarms with one operation, but you can't delete two
522
- # composite alarms with one operation.
626
+ # composite alarms with one operation. Log alarms cannot be batch
627
+ # deleted.
523
628
  #
524
629
  # If you specify any incorrect alarm names, the alarms you specify with
525
630
  # correct names are still deleted. Other syntax errors might result in
@@ -848,8 +953,8 @@ module Aws::CloudWatch
848
953
  #
849
954
  # @option params [Array<String>] :alarm_types
850
955
  # Use this parameter to specify whether you want the operation to return
851
- # metric alarms or composite alarms. If you omit this parameter, only
852
- # metric alarms are returned.
956
+ # metric alarms, composite alarms, or log alarms. If you omit this
957
+ # parameter, only metric alarms are returned.
853
958
  #
854
959
  # @option params [String] :history_item_type
855
960
  # The type of alarm histories to retrieve.
@@ -885,7 +990,7 @@ module Aws::CloudWatch
885
990
  # resp = client.describe_alarm_history({
886
991
  # alarm_name: "AlarmName",
887
992
  # alarm_contributor_id: "ContributorId",
888
- # alarm_types: ["CompositeAlarm"], # accepts CompositeAlarm, MetricAlarm
993
+ # alarm_types: ["CompositeAlarm"], # accepts CompositeAlarm, MetricAlarm, LogAlarm
889
994
  # history_item_type: "ConfigurationUpdate", # accepts ConfigurationUpdate, StateUpdate, Action, AlarmContributorStateUpdate, AlarmContributorAction
890
995
  # start_date: Time.now,
891
996
  # end_date: Time.now,
@@ -899,7 +1004,7 @@ module Aws::CloudWatch
899
1004
  # resp.alarm_history_items #=> Array
900
1005
  # resp.alarm_history_items[0].alarm_name #=> String
901
1006
  # resp.alarm_history_items[0].alarm_contributor_id #=> String
902
- # resp.alarm_history_items[0].alarm_type #=> String, one of "CompositeAlarm", "MetricAlarm"
1007
+ # resp.alarm_history_items[0].alarm_type #=> String, one of "CompositeAlarm", "MetricAlarm", "LogAlarm"
903
1008
  # resp.alarm_history_items[0].timestamp #=> Time
904
1009
  # resp.alarm_history_items[0].history_item_type #=> String, one of "ConfigurationUpdate", "StateUpdate", "Action", "AlarmContributorStateUpdate", "AlarmContributorAction"
905
1010
  # resp.alarm_history_items[0].history_summary #=> String
@@ -939,16 +1044,19 @@ module Aws::CloudWatch
939
1044
  #
940
1045
  # @option params [Array<String>] :alarm_types
941
1046
  # Use this parameter to specify whether you want the operation to return
942
- # metric alarms or composite alarms. If you omit this parameter, only
943
- # metric alarms are returned, even if composite alarms exist in the
944
- # account.
1047
+ # metric alarms, composite alarms, or log alarms. If you omit this
1048
+ # parameter, only metric alarms are returned, even if composite alarms
1049
+ # or log alarms exist in the account.
945
1050
  #
946
1051
  # For example, if you omit this parameter or specify `MetricAlarms`, the
947
1052
  # operation returns only a list of metric alarms. It does not return any
948
- # composite alarms, even if composite alarms exist in the account.
1053
+ # composite alarms or log alarms, even if they exist in the account.
949
1054
  #
950
1055
  # If you specify `CompositeAlarms`, the operation returns only a list of
951
- # composite alarms, and does not return any metric alarms.
1056
+ # composite alarms, and does not return any metric alarms or log alarms.
1057
+ #
1058
+ # If you specify `LogAlarms`, the operation returns only a list of log
1059
+ # alarms, and does not return any metric alarms or composite alarms.
952
1060
  #
953
1061
  # @option params [String] :children_of_alarm_name
954
1062
  # If you use this parameter and specify the name of a composite alarm,
@@ -1011,6 +1119,7 @@ module Aws::CloudWatch
1011
1119
  #
1012
1120
  # * {Types::DescribeAlarmsOutput#composite_alarms #composite_alarms} => Array&lt;Types::CompositeAlarm&gt;
1013
1121
  # * {Types::DescribeAlarmsOutput#metric_alarms #metric_alarms} => Array&lt;Types::MetricAlarm&gt;
1122
+ # * {Types::DescribeAlarmsOutput#log_alarms #log_alarms} => Array&lt;Types::LogAlarm&gt;
1014
1123
  # * {Types::DescribeAlarmsOutput#next_token #next_token} => String
1015
1124
  #
1016
1125
  # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
@@ -1020,7 +1129,7 @@ module Aws::CloudWatch
1020
1129
  # resp = client.describe_alarms({
1021
1130
  # alarm_names: ["AlarmName"],
1022
1131
  # alarm_name_prefix: "AlarmNamePrefix",
1023
- # alarm_types: ["CompositeAlarm"], # accepts CompositeAlarm, MetricAlarm
1132
+ # alarm_types: ["CompositeAlarm"], # accepts CompositeAlarm, MetricAlarm, LogAlarm
1024
1133
  # children_of_alarm_name: "AlarmName",
1025
1134
  # parents_of_alarm_name: "AlarmName",
1026
1135
  # state_value: "OK", # accepts OK, ALARM, INSUFFICIENT_DATA
@@ -1107,6 +1216,43 @@ module Aws::CloudWatch
1107
1216
  # resp.metric_alarms[0].evaluation_criteria.prom_ql_criteria.pending_period #=> Integer
1108
1217
  # resp.metric_alarms[0].evaluation_criteria.prom_ql_criteria.recovery_period #=> Integer
1109
1218
  # resp.metric_alarms[0].evaluation_interval #=> Integer
1219
+ # resp.log_alarms #=> Array
1220
+ # resp.log_alarms[0].alarm_name #=> String
1221
+ # resp.log_alarms[0].alarm_arn #=> String
1222
+ # resp.log_alarms[0].alarm_description #=> String
1223
+ # resp.log_alarms[0].alarm_configuration_updated_timestamp #=> Time
1224
+ # resp.log_alarms[0].actions_enabled #=> Boolean
1225
+ # resp.log_alarms[0].ok_actions #=> Array
1226
+ # resp.log_alarms[0].ok_actions[0] #=> String
1227
+ # resp.log_alarms[0].alarm_actions #=> Array
1228
+ # resp.log_alarms[0].alarm_actions[0] #=> String
1229
+ # resp.log_alarms[0].insufficient_data_actions #=> Array
1230
+ # resp.log_alarms[0].insufficient_data_actions[0] #=> String
1231
+ # resp.log_alarms[0].state_value #=> String, one of "OK", "ALARM", "INSUFFICIENT_DATA"
1232
+ # resp.log_alarms[0].state_reason #=> String
1233
+ # resp.log_alarms[0].state_reason_data #=> String
1234
+ # resp.log_alarms[0].state_updated_timestamp #=> Time
1235
+ # resp.log_alarms[0].scheduled_query_configuration.query_string #=> String
1236
+ # resp.log_alarms[0].scheduled_query_configuration.log_group_identifiers #=> Array
1237
+ # resp.log_alarms[0].scheduled_query_configuration.log_group_identifiers[0] #=> String
1238
+ # resp.log_alarms[0].scheduled_query_configuration.query_arn #=> String
1239
+ # resp.log_alarms[0].scheduled_query_configuration.scheduled_query_role_arn #=> String
1240
+ # resp.log_alarms[0].scheduled_query_configuration.schedule_configuration.schedule_expression #=> String
1241
+ # resp.log_alarms[0].scheduled_query_configuration.schedule_configuration.start_time_offset #=> Integer
1242
+ # resp.log_alarms[0].scheduled_query_configuration.schedule_configuration.end_time_offset #=> Integer
1243
+ # resp.log_alarms[0].scheduled_query_configuration.aggregation_expression #=> String
1244
+ # resp.log_alarms[0].scheduled_query_configuration.tags #=> Array
1245
+ # resp.log_alarms[0].scheduled_query_configuration.tags[0].key #=> String
1246
+ # resp.log_alarms[0].scheduled_query_configuration.tags[0].value #=> String
1247
+ # resp.log_alarms[0].query_results_to_evaluate #=> Integer
1248
+ # resp.log_alarms[0].query_results_to_alarm #=> Integer
1249
+ # resp.log_alarms[0].threshold #=> Float
1250
+ # resp.log_alarms[0].comparison_operator #=> String, one of "GreaterThanOrEqualToThreshold", "GreaterThanThreshold", "LessThanThreshold", "LessThanOrEqualToThreshold", "LessThanLowerOrGreaterThanUpperThreshold", "LessThanLowerThreshold", "GreaterThanUpperThreshold"
1251
+ # resp.log_alarms[0].treat_missing_data #=> String
1252
+ # resp.log_alarms[0].state_transitioned_timestamp #=> Time
1253
+ # resp.log_alarms[0].evaluation_state #=> String, one of "PARTIAL_DATA", "EVALUATION_FAILURE", "EVALUATION_ERROR"
1254
+ # resp.log_alarms[0].action_log_line_count #=> Integer
1255
+ # resp.log_alarms[0].action_log_line_role_arn #=> String
1110
1256
  # resp.next_token #=> String
1111
1257
  #
1112
1258
  #
@@ -1114,6 +1260,7 @@ module Aws::CloudWatch
1114
1260
  #
1115
1261
  # * alarm_exists
1116
1262
  # * composite_alarm_exists
1263
+ # * log_alarm_exists
1117
1264
  #
1118
1265
  # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DescribeAlarms AWS API Documentation
1119
1266
  #
@@ -1467,6 +1614,63 @@ module Aws::CloudWatch
1467
1614
  req.send_request(options)
1468
1615
  end
1469
1616
 
1617
+ # Removes the customer managed Amazon Web Services Key Management
1618
+ # Service (Amazon Web Services KMS) key association from the specified
1619
+ # dataset. After this operation completes, data that you publish to the
1620
+ # dataset is encrypted at rest using an Amazon Web Services owned key
1621
+ # managed by Amazon CloudWatch.
1622
+ #
1623
+ # Only the `default` dataset is supported. To call this operation, the
1624
+ # dataset must currently have a customer managed KMS key associated with
1625
+ # it. If the dataset has no associated KMS key, the operation fails with
1626
+ # `ResourceNotFoundException`.
1627
+ #
1628
+ # Amazon CloudWatch performs a dry-run `kms:Decrypt` call on the key as
1629
+ # part of this operation. This verifies that the caller is authorized to
1630
+ # use the currently associated key. The caller must have `kms:Decrypt`
1631
+ # permission on the currently associated key, and the key must be
1632
+ # enabled and accessible. If the key has been disabled or scheduled for
1633
+ # deletion, you must first re-enable or restore it before you can
1634
+ # disassociate it from the dataset.
1635
+ #
1636
+ # Disassociating a KMS key from a dataset does not immediately remove
1637
+ # the `kms:Decrypt` requirement on data plane operations. For up to
1638
+ # three hours after disassociation, callers must continue to have
1639
+ # `kms:Decrypt` permission on the previously associated key. Some data
1640
+ # may still be encrypted with that key during this window. After this
1641
+ # enforcement window elapses, the `kms:Decrypt` requirement is lifted.
1642
+ #
1643
+ # For more information about using customer managed keys with Amazon
1644
+ # CloudWatch, see [Encryption at rest with customer managed keys][1] in
1645
+ # the *Amazon CloudWatch User Guide*.
1646
+ #
1647
+ #
1648
+ #
1649
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cmk-encryption.html
1650
+ #
1651
+ # @option params [required, String] :dataset_identifier
1652
+ # Specifies the identifier of the dataset from which to remove the KMS
1653
+ # key association. For the `default` dataset, you can specify either
1654
+ # `default` or the full dataset Amazon Resource Name (ARN) in the format
1655
+ # `arn:aws:cloudwatch:Region:account-id:dataset/default`.
1656
+ #
1657
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1658
+ #
1659
+ # @example Request syntax with placeholder values
1660
+ #
1661
+ # resp = client.disassociate_dataset_kms_key({
1662
+ # dataset_identifier: "DatasetIdentifier", # required
1663
+ # })
1664
+ #
1665
+ # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DisassociateDatasetKmsKey AWS API Documentation
1666
+ #
1667
+ # @overload disassociate_dataset_kms_key(params = {})
1668
+ # @param [Hash] params ({})
1669
+ def disassociate_dataset_kms_key(params = {}, options = {})
1670
+ req = build_request(:disassociate_dataset_kms_key, params)
1671
+ req.send_request(options)
1672
+ end
1673
+
1470
1674
  # Enables the actions for the specified alarms.
1471
1675
  #
1472
1676
  # @option params [required, Array<String>] :alarm_names
@@ -1636,6 +1840,60 @@ module Aws::CloudWatch
1636
1840
  req.send_request(options)
1637
1841
  end
1638
1842
 
1843
+ # Returns information about the specified dataset. This includes its
1844
+ # identifier, Amazon Resource Name (ARN), and any customer managed
1845
+ # Amazon Web Services Key Management Service (Amazon Web Services KMS)
1846
+ # key that is currently associated with it.
1847
+ #
1848
+ # Only the `default` dataset is supported. The `default` dataset is
1849
+ # implicit for every account in every Region — you can call `GetDataset`
1850
+ # for it without first creating it. If no customer managed KMS key has
1851
+ # been associated with the dataset, the response omits the `KmsKeyArn`
1852
+ # field, indicating that data is encrypted at rest using an Amazon Web
1853
+ # Services owned key managed by Amazon CloudWatch.
1854
+ #
1855
+ # To associate a customer managed KMS key with a dataset, use
1856
+ # [AssociateDatasetKmsKey][1]. To remove the association, use
1857
+ # [DisassociateDatasetKmsKey][2].
1858
+ #
1859
+ #
1860
+ #
1861
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_AssociateDatasetKmsKey.html
1862
+ # [2]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DisassociateDatasetKmsKey.html
1863
+ #
1864
+ # @option params [required, String] :dataset_identifier
1865
+ # Specifies the identifier of the dataset to retrieve. For the `default`
1866
+ # dataset, you can specify either `default` or the full dataset Amazon
1867
+ # Resource Name (ARN) in the format
1868
+ # `arn:aws:cloudwatch:Region:account-id:dataset/default`.
1869
+ #
1870
+ # @return [Types::GetDatasetOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1871
+ #
1872
+ # * {Types::GetDatasetOutput#dataset_id #dataset_id} => String
1873
+ # * {Types::GetDatasetOutput#arn #arn} => String
1874
+ # * {Types::GetDatasetOutput#kms_key_arn #kms_key_arn} => String
1875
+ #
1876
+ # @example Request syntax with placeholder values
1877
+ #
1878
+ # resp = client.get_dataset({
1879
+ # dataset_identifier: "DatasetIdentifier", # required
1880
+ # })
1881
+ #
1882
+ # @example Response structure
1883
+ #
1884
+ # resp.dataset_id #=> String
1885
+ # resp.arn #=> String
1886
+ # resp.kms_key_arn #=> String
1887
+ #
1888
+ # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/GetDataset AWS API Documentation
1889
+ #
1890
+ # @overload get_dataset(params = {})
1891
+ # @param [Hash] params ({})
1892
+ def get_dataset(params = {}, options = {})
1893
+ req = build_request(:get_dataset, params)
1894
+ req.send_request(options)
1895
+ end
1896
+
1639
1897
  # This operation returns the time series data collected by a Contributor
1640
1898
  # Insights rule. The data includes the identity and number of
1641
1899
  # contributors to the log group.
@@ -2312,7 +2570,7 @@ module Aws::CloudWatch
2312
2570
  #
2313
2571
  #
2314
2572
  #
2315
- # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/CloudWatch-Metric-Widget-Structure.html
2573
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Metric-Widget-Structure.html
2316
2574
  #
2317
2575
  # @option params [String] :output_format
2318
2576
  # The format of the resulting image. Only PNG images are supported.
@@ -3358,7 +3616,7 @@ module Aws::CloudWatch
3358
3616
  #
3359
3617
  #
3360
3618
  #
3361
- # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/CloudWatch-Dashboard-Body-Structure.html
3619
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Dashboard-Body-Structure.html
3362
3620
  #
3363
3621
  # @option params [Array<Types::Tag>] :tags
3364
3622
  # A list of key-value pairs to associate with the dashboard. You can
@@ -3505,6 +3763,222 @@ module Aws::CloudWatch
3505
3763
  req.send_request(options)
3506
3764
  end
3507
3765
 
3766
+ # Creates or updates a log alarm. A log alarm evaluates the results of a
3767
+ # CloudWatch Logs scheduled query against the configured threshold and
3768
+ # comparison operator to determine its state.
3769
+ #
3770
+ # When you create a log alarm, the operation creates a service-managed
3771
+ # CloudWatch Logs scheduled query that runs the query string you provide
3772
+ # on the schedule you configure. Each scheduled query execution returns
3773
+ # one or more aggregated values determined by the
3774
+ # `AggregationExpression`, and each aggregated value is compared against
3775
+ # the alarm `Threshold` to determine the alarm state. The alarm uses
3776
+ # M-out-of-N evaluation: if `QueryResultsToAlarm` out of the most recent
3777
+ # `QueryResultsToEvaluate` query results breach the threshold, the alarm
3778
+ # transitions to `ALARM`.
3779
+ #
3780
+ # Log alarms support the alarm states (`OK`, `ALARM`,
3781
+ # `INSUFFICIENT_DATA`). Configure transition actions using `OKActions`,
3782
+ # `AlarmActions`, and `InsufficientDataActions`.
3783
+ #
3784
+ # If you call this operation with the name of an existing log alarm, the
3785
+ # operation replaces the previous configuration of that alarm.
3786
+ #
3787
+ # **Permissions**
3788
+ #
3789
+ # To create or update a log alarm, you must have the
3790
+ # `cloudwatch:PutLogAlarm` permission. The IAM role specified in
3791
+ # `ScheduledQueryRoleARN` must grant the CloudWatch Alarms service
3792
+ # permission to execute scheduled queries on the specified log groups.
3793
+ # If you set `ActionLogLineCount`, the role specified in
3794
+ # `ActionLogLineRoleArn` must grant permission to retrieve log events
3795
+ # for inclusion in alarm notifications.
3796
+ #
3797
+ # @option params [required, String] :alarm_name
3798
+ # The name for the alarm. This name must be unique within the Amazon Web
3799
+ # Services account and Region.
3800
+ #
3801
+ # @option params [String] :alarm_description
3802
+ # The description for the alarm.
3803
+ #
3804
+ # @option params [required, Types::ScheduledQueryConfiguration] :scheduled_query_configuration
3805
+ # The configuration of the underlying CloudWatch Logs scheduled query
3806
+ # that this alarm evaluates, including the query string, log groups,
3807
+ # schedule, and aggregation expression.
3808
+ #
3809
+ # @option params [Integer] :action_log_line_count
3810
+ # The number of log lines from the most recent scheduled query execution
3811
+ # to include in alarm action notifications. Valid range is 0 through 50.
3812
+ # The default is 0, which means no log lines are included.
3813
+ #
3814
+ # @option params [String] :action_log_line_role_arn
3815
+ # The Amazon Resource Name (ARN) of an IAM role that CloudWatch assumes
3816
+ # to retrieve log events for inclusion in alarm action notifications.
3817
+ # Required when `ActionLogLineCount` is greater than 0.
3818
+ #
3819
+ # @option params [Boolean] :actions_enabled
3820
+ # Indicates whether actions should be executed during any changes to the
3821
+ # alarm state. The default is `true`.
3822
+ #
3823
+ # @option params [Array<String>] :ok_actions
3824
+ # The actions to execute when this alarm transitions to the `OK` state
3825
+ # from any other state. Each action is specified as an Amazon Resource
3826
+ # Name (ARN).
3827
+ #
3828
+ # Valid Values:
3829
+ #
3830
+ # **Amazon SNS actions:**
3831
+ #
3832
+ # `arn:aws:sns:region:account-id:sns-topic-name `
3833
+ #
3834
+ # **Lambda actions:**
3835
+ #
3836
+ # * Invoke the latest version of a Lambda function:
3837
+ # `arn:aws:lambda:region:account-id:function:function-name `
3838
+ #
3839
+ # * Invoke a specific version of a Lambda function:
3840
+ # `arn:aws:lambda:region:account-id:function:function-name:version-number
3841
+ # `
3842
+ #
3843
+ # * Invoke a function by using an alias Lambda function:
3844
+ # `arn:aws:lambda:region:account-id:function:function-name:alias-name
3845
+ # `
3846
+ #
3847
+ # @option params [Array<String>] :alarm_actions
3848
+ # The actions to execute when this alarm transitions to the `ALARM`
3849
+ # state from any other state. Each action is specified as an Amazon
3850
+ # Resource Name (ARN).
3851
+ #
3852
+ # Valid Values:
3853
+ #
3854
+ # **Amazon SNS actions:**
3855
+ #
3856
+ # `arn:aws:sns:region:account-id:sns-topic-name `
3857
+ #
3858
+ # **Lambda actions:**
3859
+ #
3860
+ # * Invoke the latest version of a Lambda function:
3861
+ # `arn:aws:lambda:region:account-id:function:function-name `
3862
+ #
3863
+ # * Invoke a specific version of a Lambda function:
3864
+ # `arn:aws:lambda:region:account-id:function:function-name:version-number
3865
+ # `
3866
+ #
3867
+ # * Invoke a function by using an alias Lambda function:
3868
+ # `arn:aws:lambda:region:account-id:function:function-name:alias-name
3869
+ # `
3870
+ #
3871
+ # **Systems Manager actions:**
3872
+ #
3873
+ # `arn:aws:ssm:region:account-id:opsitem:severity `
3874
+ #
3875
+ # @option params [Array<String>] :insufficient_data_actions
3876
+ # The actions to execute when this alarm transitions to the
3877
+ # `INSUFFICIENT_DATA` state from any other state. Each action is
3878
+ # specified as an Amazon Resource Name (ARN).
3879
+ #
3880
+ # Valid Values:
3881
+ #
3882
+ # **Amazon SNS actions:**
3883
+ #
3884
+ # `arn:aws:sns:region:account-id:sns-topic-name `
3885
+ #
3886
+ # **Lambda actions:**
3887
+ #
3888
+ # * Invoke the latest version of a Lambda function:
3889
+ # `arn:aws:lambda:region:account-id:function:function-name `
3890
+ #
3891
+ # * Invoke a specific version of a Lambda function:
3892
+ # `arn:aws:lambda:region:account-id:function:function-name:version-number
3893
+ # `
3894
+ #
3895
+ # * Invoke a function by using an alias Lambda function:
3896
+ # `arn:aws:lambda:region:account-id:function:function-name:alias-name
3897
+ # `
3898
+ #
3899
+ # @option params [required, Integer] :query_results_to_evaluate
3900
+ # The number of most recent scheduled query results to evaluate against
3901
+ # the threshold (the N in M-of-N evaluation). Valid range is 1 through
3902
+ # 100.
3903
+ #
3904
+ # @option params [required, Integer] :query_results_to_alarm
3905
+ # The number of query results, out of the most recent
3906
+ # `QueryResultsToEvaluate` results, that must breach the threshold to
3907
+ # trigger the alarm to transition to `ALARM` (the M in M-of-N
3908
+ # evaluation). Must be less than or equal to `QueryResultsToEvaluate`.
3909
+ #
3910
+ # @option params [required, Float] :threshold
3911
+ # The value to compare with the aggregated query result.
3912
+ #
3913
+ # @option params [required, String] :comparison_operator
3914
+ # The arithmetic operation to use when comparing the aggregated query
3915
+ # result and the threshold. The aggregated query result is used as the
3916
+ # first operand. Valid values are `GreaterThanThreshold`,
3917
+ # `GreaterThanOrEqualToThreshold`, `LessThanThreshold`, and
3918
+ # `LessThanOrEqualToThreshold`.
3919
+ #
3920
+ # @option params [String] :treat_missing_data
3921
+ # Sets how this alarm is to handle missing data points. Valid values are
3922
+ # `breaching`, `notBreaching`, `ignore`, and `missing`. If this
3923
+ # parameter is omitted, the default behavior of `missing` is used.
3924
+ #
3925
+ # @option params [Array<Types::Tag>] :tags
3926
+ # A list of key-value pairs to associate with the alarm. You can use
3927
+ # tags to categorize and manage your alarms.
3928
+ #
3929
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
3930
+ #
3931
+ # @example Request syntax with placeholder values
3932
+ #
3933
+ # resp = client.put_log_alarm({
3934
+ # alarm_name: "AlarmName", # required
3935
+ # alarm_description: "AlarmDescription",
3936
+ # scheduled_query_configuration: { # required
3937
+ # query_string: "QueryString", # required
3938
+ # log_group_identifiers: ["AmazonResourceName"],
3939
+ # query_arn: "AmazonResourceName",
3940
+ # scheduled_query_role_arn: "AmazonResourceName", # required
3941
+ # schedule_configuration: { # required
3942
+ # schedule_expression: "ScheduleExpression", # required
3943
+ # start_time_offset: 1,
3944
+ # end_time_offset: 1,
3945
+ # },
3946
+ # aggregation_expression: "AggregationExpression", # required
3947
+ # tags: [
3948
+ # {
3949
+ # key: "TagKey", # required
3950
+ # value: "TagValue", # required
3951
+ # },
3952
+ # ],
3953
+ # },
3954
+ # action_log_line_count: 1,
3955
+ # action_log_line_role_arn: "ActionLogLineRoleArn",
3956
+ # actions_enabled: false,
3957
+ # ok_actions: ["ResourceName"],
3958
+ # alarm_actions: ["ResourceName"],
3959
+ # insufficient_data_actions: ["ResourceName"],
3960
+ # query_results_to_evaluate: 1, # required
3961
+ # query_results_to_alarm: 1, # required
3962
+ # threshold: 1.0, # required
3963
+ # comparison_operator: "GreaterThanOrEqualToThreshold", # required, accepts GreaterThanOrEqualToThreshold, GreaterThanThreshold, LessThanThreshold, LessThanOrEqualToThreshold, LessThanLowerOrGreaterThanUpperThreshold, LessThanLowerThreshold, GreaterThanUpperThreshold
3964
+ # treat_missing_data: "TreatMissingData",
3965
+ # tags: [
3966
+ # {
3967
+ # key: "TagKey", # required
3968
+ # value: "TagValue", # required
3969
+ # },
3970
+ # ],
3971
+ # })
3972
+ #
3973
+ # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/PutLogAlarm AWS API Documentation
3974
+ #
3975
+ # @overload put_log_alarm(params = {})
3976
+ # @param [Hash] params ({})
3977
+ def put_log_alarm(params = {}, options = {})
3978
+ req = build_request(:put_log_alarm, params)
3979
+ req.send_request(options)
3980
+ end
3981
+
3508
3982
  # Creates a managed Contributor Insights rule for a specified Amazon Web
3509
3983
  # Services resource. When you enable a managed rule, you create a
3510
3984
  # Contributor Insights rule that collects data from Amazon Web Services
@@ -4846,7 +5320,7 @@ module Aws::CloudWatch
4846
5320
  tracer: tracer
4847
5321
  )
4848
5322
  context[:gem_name] = 'aws-sdk-cloudwatch'
4849
- context[:gem_version] = '1.139.0'
5323
+ context[:gem_version] = '1.141.0'
4850
5324
  Seahorse::Client::Request.new(handlers, context)
4851
5325
  end
4852
5326
 
@@ -4917,6 +5391,7 @@ module Aws::CloudWatch
4917
5391
  # | alarm_exists | {Client#describe_alarms} | 5 | 40 |
4918
5392
  # | alarm_mute_rule_exists | {Client#get_alarm_mute_rule} | 5 | 40 |
4919
5393
  # | composite_alarm_exists | {Client#describe_alarms} | 5 | 40 |
5394
+ # | log_alarm_exists | {Client#describe_alarms} | 5 | 40 |
4920
5395
  #
4921
5396
  # @raise [Errors::FailureStateError] Raised when the waiter terminates
4922
5397
  # because the waiter has entered a state that it will not transition
@@ -4969,7 +5444,8 @@ module Aws::CloudWatch
4969
5444
  {
4970
5445
  alarm_exists: Waiters::AlarmExists,
4971
5446
  alarm_mute_rule_exists: Waiters::AlarmMuteRuleExists,
4972
- composite_alarm_exists: Waiters::CompositeAlarmExists
5447
+ composite_alarm_exists: Waiters::CompositeAlarmExists,
5448
+ log_alarm_exists: Waiters::LogAlarmExists
4973
5449
  }
4974
5450
  end
4975
5451