aws-sdk-cloudwatch 1.139.0 → 1.140.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 34f44e2737cc02c488467995def12d1dbeef3872d456ed5c93a42c5a8002d811
4
- data.tar.gz: 8e30aa1f8353bd291c20a001f07045bc77c02ffa96d8883a27efa185861752f3
3
+ metadata.gz: 757903d0a14590e8a5b29e8e786811e98d4e9ee444bb83a173bff23a3643d18a
4
+ data.tar.gz: ea6e7efa72ebd26c537ef7ecc24028c934cda43f0010afe7bc750f6fb9089673
5
5
  SHA512:
6
- metadata.gz: 0335dfbc92ae4b4c94c0e4d981026ef739d89de0271425dc7b44d32f40f47e13a5f285e16d25180f2e92b21ad34fa9f95ce8b2a9942f9cc7a5e441e144b1ea01
7
- data.tar.gz: ed3ff883aff34427571b3850292b8defdd6f93da720d34e820383c5446c6f41e2f054c5256949356bcf31e780dbb272b6be95ec05d30db933e745d30ad254fdf
6
+ metadata.gz: 242d0143f4f1990be627456403aef91e8884a584cde8bc03577e423671168919c424112ee7fd1eabb30d19761f1841ba5685999ea280737272be24746fa8f6b4
7
+ data.tar.gz: 3fdf6143b7f052ab7b567e1ad7a3f7fe1508c9ffc019df4bf369e5b2fd2ccbf44da43e7ef97a94fef581358bfb75557159d5b9851f8e50181f28faa3982c1053
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.140.0 (2026-06-09)
5
+ ------------------
6
+
7
+ * Feature - This release adds the APIs (AssociateDatasetKmsKey, DisassociateDatasetKmsKey, GetDataset) to manage encryption at rest for OpenTelemetry metrics in CloudWatch using AWS KMS customer managed keys.
8
+
4
9
  1.139.0 (2026-06-02)
5
10
  ------------------
6
11
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.139.0
1
+ 1.140.0
@@ -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
@@ -1467,6 +1571,63 @@ module Aws::CloudWatch
1467
1571
  req.send_request(options)
1468
1572
  end
1469
1573
 
1574
+ # Removes the customer managed Amazon Web Services Key Management
1575
+ # Service (Amazon Web Services KMS) key association from the specified
1576
+ # dataset. After this operation completes, data that you publish to the
1577
+ # dataset is encrypted at rest using an Amazon Web Services owned key
1578
+ # managed by Amazon CloudWatch.
1579
+ #
1580
+ # Only the `default` dataset is supported. To call this operation, the
1581
+ # dataset must currently have a customer managed KMS key associated with
1582
+ # it. If the dataset has no associated KMS key, the operation fails with
1583
+ # `ResourceNotFoundException`.
1584
+ #
1585
+ # Amazon CloudWatch performs a dry-run `kms:Decrypt` call on the key as
1586
+ # part of this operation. This verifies that the caller is authorized to
1587
+ # use the currently associated key. The caller must have `kms:Decrypt`
1588
+ # permission on the currently associated key, and the key must be
1589
+ # enabled and accessible. If the key has been disabled or scheduled for
1590
+ # deletion, you must first re-enable or restore it before you can
1591
+ # disassociate it from the dataset.
1592
+ #
1593
+ # Disassociating a KMS key from a dataset does not immediately remove
1594
+ # the `kms:Decrypt` requirement on data plane operations. For up to
1595
+ # three hours after disassociation, callers must continue to have
1596
+ # `kms:Decrypt` permission on the previously associated key. Some data
1597
+ # may still be encrypted with that key during this window. After this
1598
+ # enforcement window elapses, the `kms:Decrypt` requirement is lifted.
1599
+ #
1600
+ # For more information about using customer managed keys with Amazon
1601
+ # CloudWatch, see [Encryption at rest with customer managed keys][1] in
1602
+ # the *Amazon CloudWatch User Guide*.
1603
+ #
1604
+ #
1605
+ #
1606
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cmk-encryption.html
1607
+ #
1608
+ # @option params [required, String] :dataset_identifier
1609
+ # Specifies the identifier of the dataset from which to remove the KMS
1610
+ # key association. For the `default` dataset, you can specify either
1611
+ # `default` or the full dataset Amazon Resource Name (ARN) in the format
1612
+ # `arn:aws:cloudwatch:Region:account-id:dataset/default`.
1613
+ #
1614
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1615
+ #
1616
+ # @example Request syntax with placeholder values
1617
+ #
1618
+ # resp = client.disassociate_dataset_kms_key({
1619
+ # dataset_identifier: "DatasetIdentifier", # required
1620
+ # })
1621
+ #
1622
+ # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DisassociateDatasetKmsKey AWS API Documentation
1623
+ #
1624
+ # @overload disassociate_dataset_kms_key(params = {})
1625
+ # @param [Hash] params ({})
1626
+ def disassociate_dataset_kms_key(params = {}, options = {})
1627
+ req = build_request(:disassociate_dataset_kms_key, params)
1628
+ req.send_request(options)
1629
+ end
1630
+
1470
1631
  # Enables the actions for the specified alarms.
1471
1632
  #
1472
1633
  # @option params [required, Array<String>] :alarm_names
@@ -1636,6 +1797,60 @@ module Aws::CloudWatch
1636
1797
  req.send_request(options)
1637
1798
  end
1638
1799
 
1800
+ # Returns information about the specified dataset. This includes its
1801
+ # identifier, Amazon Resource Name (ARN), and any customer managed
1802
+ # Amazon Web Services Key Management Service (Amazon Web Services KMS)
1803
+ # key that is currently associated with it.
1804
+ #
1805
+ # Only the `default` dataset is supported. The `default` dataset is
1806
+ # implicit for every account in every Region — you can call `GetDataset`
1807
+ # for it without first creating it. If no customer managed KMS key has
1808
+ # been associated with the dataset, the response omits the `KmsKeyArn`
1809
+ # field, indicating that data is encrypted at rest using an Amazon Web
1810
+ # Services owned key managed by Amazon CloudWatch.
1811
+ #
1812
+ # To associate a customer managed KMS key with a dataset, use
1813
+ # [AssociateDatasetKmsKey][1]. To remove the association, use
1814
+ # [DisassociateDatasetKmsKey][2].
1815
+ #
1816
+ #
1817
+ #
1818
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_AssociateDatasetKmsKey.html
1819
+ # [2]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DisassociateDatasetKmsKey.html
1820
+ #
1821
+ # @option params [required, String] :dataset_identifier
1822
+ # Specifies the identifier of the dataset to retrieve. For the `default`
1823
+ # dataset, you can specify either `default` or the full dataset Amazon
1824
+ # Resource Name (ARN) in the format
1825
+ # `arn:aws:cloudwatch:Region:account-id:dataset/default`.
1826
+ #
1827
+ # @return [Types::GetDatasetOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1828
+ #
1829
+ # * {Types::GetDatasetOutput#dataset_id #dataset_id} => String
1830
+ # * {Types::GetDatasetOutput#arn #arn} => String
1831
+ # * {Types::GetDatasetOutput#kms_key_arn #kms_key_arn} => String
1832
+ #
1833
+ # @example Request syntax with placeholder values
1834
+ #
1835
+ # resp = client.get_dataset({
1836
+ # dataset_identifier: "DatasetIdentifier", # required
1837
+ # })
1838
+ #
1839
+ # @example Response structure
1840
+ #
1841
+ # resp.dataset_id #=> String
1842
+ # resp.arn #=> String
1843
+ # resp.kms_key_arn #=> String
1844
+ #
1845
+ # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/GetDataset AWS API Documentation
1846
+ #
1847
+ # @overload get_dataset(params = {})
1848
+ # @param [Hash] params ({})
1849
+ def get_dataset(params = {}, options = {})
1850
+ req = build_request(:get_dataset, params)
1851
+ req.send_request(options)
1852
+ end
1853
+
1639
1854
  # This operation returns the time series data collected by a Contributor
1640
1855
  # Insights rule. The data includes the identity and number of
1641
1856
  # contributors to the log group.
@@ -4846,7 +5061,7 @@ module Aws::CloudWatch
4846
5061
  tracer: tracer
4847
5062
  )
4848
5063
  context[:gem_name] = 'aws-sdk-cloudwatch'
4849
- context[:gem_version] = '1.139.0'
5064
+ context[:gem_version] = '1.140.0'
4850
5065
  Seahorse::Client::Request.new(handlers, context)
4851
5066
  end
4852
5067
 
@@ -47,6 +47,8 @@ module Aws::CloudWatch
47
47
  AnomalyDetectorTypes = Shapes::ListShape.new(name: 'AnomalyDetectorTypes')
48
48
  AnomalyDetectors = Shapes::ListShape.new(name: 'AnomalyDetectors')
49
49
  Arn = Shapes::StringShape.new(name: 'Arn')
50
+ AssociateDatasetKmsKeyInput = Shapes::StructureShape.new(name: 'AssociateDatasetKmsKeyInput')
51
+ AssociateDatasetKmsKeyOutput = Shapes::StructureShape.new(name: 'AssociateDatasetKmsKeyOutput')
50
52
  AttributeName = Shapes::StringShape.new(name: 'AttributeName')
51
53
  AttributeValue = Shapes::StringShape.new(name: 'AttributeValue')
52
54
  AwsQueryErrorMessage = Shapes::StringShape.new(name: 'AwsQueryErrorMessage')
@@ -78,6 +80,9 @@ module Aws::CloudWatch
78
80
  DatapointValues = Shapes::ListShape.new(name: 'DatapointValues')
79
81
  Datapoints = Shapes::ListShape.new(name: 'Datapoints')
80
82
  DatapointsToAlarm = Shapes::IntegerShape.new(name: 'DatapointsToAlarm')
83
+ DatasetArn = Shapes::StringShape.new(name: 'DatasetArn')
84
+ DatasetId = Shapes::StringShape.new(name: 'DatasetId')
85
+ DatasetIdentifier = Shapes::StringShape.new(name: 'DatasetIdentifier')
81
86
  DeleteAlarmMuteRuleInput = Shapes::StructureShape.new(name: 'DeleteAlarmMuteRuleInput')
82
87
  DeleteAlarmsInput = Shapes::StructureShape.new(name: 'DeleteAlarmsInput')
83
88
  DeleteAnomalyDetectorInput = Shapes::StructureShape.new(name: 'DeleteAnomalyDetectorInput')
@@ -109,6 +114,8 @@ module Aws::CloudWatch
109
114
  DisableAlarmActionsInput = Shapes::StructureShape.new(name: 'DisableAlarmActionsInput')
110
115
  DisableInsightRulesInput = Shapes::StructureShape.new(name: 'DisableInsightRulesInput')
111
116
  DisableInsightRulesOutput = Shapes::StructureShape.new(name: 'DisableInsightRulesOutput')
117
+ DisassociateDatasetKmsKeyInput = Shapes::StructureShape.new(name: 'DisassociateDatasetKmsKeyInput')
118
+ DisassociateDatasetKmsKeyOutput = Shapes::StructureShape.new(name: 'DisassociateDatasetKmsKeyOutput')
112
119
  Duration = Shapes::StringShape.new(name: 'Duration')
113
120
  EnableAlarmActionsInput = Shapes::StructureShape.new(name: 'EnableAlarmActionsInput')
114
121
  EnableInsightRulesInput = Shapes::StructureShape.new(name: 'EnableInsightRulesInput')
@@ -140,6 +147,8 @@ module Aws::CloudWatch
140
147
  GetAlarmMuteRuleOutput = Shapes::StructureShape.new(name: 'GetAlarmMuteRuleOutput')
141
148
  GetDashboardInput = Shapes::StructureShape.new(name: 'GetDashboardInput')
142
149
  GetDashboardOutput = Shapes::StructureShape.new(name: 'GetDashboardOutput')
150
+ GetDatasetInput = Shapes::StructureShape.new(name: 'GetDatasetInput')
151
+ GetDatasetOutput = Shapes::StructureShape.new(name: 'GetDatasetOutput')
143
152
  GetInsightRuleReportInput = Shapes::StructureShape.new(name: 'GetInsightRuleReportInput')
144
153
  GetInsightRuleReportOutput = Shapes::StructureShape.new(name: 'GetInsightRuleReportOutput')
145
154
  GetMetricDataInput = Shapes::StructureShape.new(name: 'GetMetricDataInput')
@@ -191,6 +200,10 @@ module Aws::CloudWatch
191
200
  InvalidNextToken = Shapes::StructureShape.new(name: 'InvalidNextToken', error: {"code" => "InvalidNextToken", "httpStatusCode" => 400, "senderFault" => true})
192
201
  InvalidParameterCombinationException = Shapes::StructureShape.new(name: 'InvalidParameterCombinationException', error: {"code" => "InvalidParameterCombination", "httpStatusCode" => 400, "senderFault" => true})
193
202
  InvalidParameterValueException = Shapes::StructureShape.new(name: 'InvalidParameterValueException', error: {"code" => "InvalidParameterValue", "httpStatusCode" => 400, "senderFault" => true})
203
+ KmsAccessDeniedException = Shapes::StructureShape.new(name: 'KmsAccessDeniedException')
204
+ KmsKeyArn = Shapes::StringShape.new(name: 'KmsKeyArn')
205
+ KmsKeyDisabledException = Shapes::StructureShape.new(name: 'KmsKeyDisabledException')
206
+ KmsKeyNotFoundException = Shapes::StructureShape.new(name: 'KmsKeyNotFoundException')
194
207
  LabelOptions = Shapes::StructureShape.new(name: 'LabelOptions')
195
208
  LastModified = Shapes::TimestampShape.new(name: 'LastModified')
196
209
  LimitExceededException = Shapes::StructureShape.new(name: 'LimitExceededException', error: {"code" => "LimitExceededException", "httpStatusCode" => 400, "senderFault" => true})
@@ -318,6 +331,7 @@ module Aws::CloudWatch
318
331
  StopOTelEnrichmentOutput = Shapes::StructureShape.new(name: 'StopOTelEnrichmentOutput')
319
332
  StorageResolution = Shapes::IntegerShape.new(name: 'StorageResolution')
320
333
  StrictEntityValidation = Shapes::BooleanShape.new(name: 'StrictEntityValidation')
334
+ String = Shapes::StringShape.new(name: 'String')
321
335
  SuppressorPeriod = Shapes::IntegerShape.new(name: 'SuppressorPeriod')
322
336
  Tag = Shapes::StructureShape.new(name: 'Tag')
323
337
  TagKey = Shapes::StringShape.new(name: 'TagKey')
@@ -397,6 +411,12 @@ module Aws::CloudWatch
397
411
 
398
412
  AnomalyDetectors.member = Shapes::ShapeRef.new(shape: AnomalyDetector)
399
413
 
414
+ AssociateDatasetKmsKeyInput.add_member(:dataset_identifier, Shapes::ShapeRef.new(shape: DatasetIdentifier, required: true, location_name: "DatasetIdentifier"))
415
+ AssociateDatasetKmsKeyInput.add_member(:kms_key_arn, Shapes::ShapeRef.new(shape: KmsKeyArn, required: true, location_name: "KmsKeyArn"))
416
+ AssociateDatasetKmsKeyInput.struct_class = Types::AssociateDatasetKmsKeyInput
417
+
418
+ AssociateDatasetKmsKeyOutput.struct_class = Types::AssociateDatasetKmsKeyOutput
419
+
400
420
  BatchFailures.member = Shapes::ShapeRef.new(shape: PartialFailure)
401
421
 
402
422
  CompositeAlarm.add_member(:actions_enabled, Shapes::ShapeRef.new(shape: ActionsEnabled, location_name: "ActionsEnabled"))
@@ -596,6 +616,11 @@ module Aws::CloudWatch
596
616
  DisableInsightRulesOutput.add_member(:failures, Shapes::ShapeRef.new(shape: BatchFailures, location_name: "Failures"))
597
617
  DisableInsightRulesOutput.struct_class = Types::DisableInsightRulesOutput
598
618
 
619
+ DisassociateDatasetKmsKeyInput.add_member(:dataset_identifier, Shapes::ShapeRef.new(shape: DatasetIdentifier, required: true, location_name: "DatasetIdentifier"))
620
+ DisassociateDatasetKmsKeyInput.struct_class = Types::DisassociateDatasetKmsKeyInput
621
+
622
+ DisassociateDatasetKmsKeyOutput.struct_class = Types::DisassociateDatasetKmsKeyOutput
623
+
599
624
  EnableAlarmActionsInput.add_member(:alarm_names, Shapes::ShapeRef.new(shape: AlarmNames, required: true, location_name: "AlarmNames"))
600
625
  EnableAlarmActionsInput.struct_class = Types::EnableAlarmActionsInput
601
626
 
@@ -652,6 +677,14 @@ module Aws::CloudWatch
652
677
  GetDashboardOutput.add_member(:dashboard_name, Shapes::ShapeRef.new(shape: DashboardName, location_name: "DashboardName"))
653
678
  GetDashboardOutput.struct_class = Types::GetDashboardOutput
654
679
 
680
+ GetDatasetInput.add_member(:dataset_identifier, Shapes::ShapeRef.new(shape: DatasetIdentifier, required: true, location_name: "DatasetIdentifier"))
681
+ GetDatasetInput.struct_class = Types::GetDatasetInput
682
+
683
+ GetDatasetOutput.add_member(:dataset_id, Shapes::ShapeRef.new(shape: DatasetId, required: true, location_name: "DatasetId"))
684
+ GetDatasetOutput.add_member(:arn, Shapes::ShapeRef.new(shape: DatasetArn, required: true, location_name: "Arn"))
685
+ GetDatasetOutput.add_member(:kms_key_arn, Shapes::ShapeRef.new(shape: KmsKeyArn, location_name: "KmsKeyArn"))
686
+ GetDatasetOutput.struct_class = Types::GetDatasetOutput
687
+
655
688
  GetInsightRuleReportInput.add_member(:rule_name, Shapes::ShapeRef.new(shape: InsightRuleName, required: true, location_name: "RuleName"))
656
689
  GetInsightRuleReportInput.add_member(:start_time, Shapes::ShapeRef.new(shape: Timestamp, required: true, location_name: "StartTime"))
657
690
  GetInsightRuleReportInput.add_member(:end_time, Shapes::ShapeRef.new(shape: Timestamp, required: true, location_name: "EndTime"))
@@ -785,6 +818,15 @@ module Aws::CloudWatch
785
818
  InvalidParameterValueException.add_member(:message, Shapes::ShapeRef.new(shape: AwsQueryErrorMessage, location_name: "message"))
786
819
  InvalidParameterValueException.struct_class = Types::InvalidParameterValueException
787
820
 
821
+ KmsAccessDeniedException.add_member(:message, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Message"))
822
+ KmsAccessDeniedException.struct_class = Types::KmsAccessDeniedException
823
+
824
+ KmsKeyDisabledException.add_member(:message, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Message"))
825
+ KmsKeyDisabledException.struct_class = Types::KmsKeyDisabledException
826
+
827
+ KmsKeyNotFoundException.add_member(:message, Shapes::ShapeRef.new(shape: String, required: true, location_name: "Message"))
828
+ KmsKeyNotFoundException.struct_class = Types::KmsKeyNotFoundException
829
+
788
830
  LabelOptions.add_member(:timezone, Shapes::ShapeRef.new(shape: GetMetricDataLabelTimezone, location_name: "Timezone"))
789
831
  LabelOptions.struct_class = Types::LabelOptions
790
832
 
@@ -1221,6 +1263,19 @@ module Aws::CloudWatch
1221
1263
  "xmlNamespace" => "http://monitoring.amazonaws.com/doc/2010-08-01/",
1222
1264
  }
1223
1265
 
1266
+ api.add_operation(:associate_dataset_kms_key, Seahorse::Model::Operation.new.tap do |o|
1267
+ o.name = "AssociateDatasetKmsKey"
1268
+ o.http_method = "POST"
1269
+ o.http_request_uri = "/"
1270
+ o.input = Shapes::ShapeRef.new(shape: AssociateDatasetKmsKeyInput)
1271
+ o.output = Shapes::ShapeRef.new(shape: AssociateDatasetKmsKeyOutput)
1272
+ o.errors << Shapes::ShapeRef.new(shape: KmsAccessDeniedException)
1273
+ o.errors << Shapes::ShapeRef.new(shape: KmsKeyNotFoundException)
1274
+ o.errors << Shapes::ShapeRef.new(shape: ConflictException)
1275
+ o.errors << Shapes::ShapeRef.new(shape: KmsKeyDisabledException)
1276
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
1277
+ end)
1278
+
1224
1279
  api.add_operation(:delete_alarm_mute_rule, Seahorse::Model::Operation.new.tap do |o|
1225
1280
  o.name = "DeleteAlarmMuteRule"
1226
1281
  o.http_method = "POST"
@@ -1382,6 +1437,16 @@ module Aws::CloudWatch
1382
1437
  o.errors << Shapes::ShapeRef.new(shape: MissingRequiredParameterException)
1383
1438
  end)
1384
1439
 
1440
+ api.add_operation(:disassociate_dataset_kms_key, Seahorse::Model::Operation.new.tap do |o|
1441
+ o.name = "DisassociateDatasetKmsKey"
1442
+ o.http_method = "POST"
1443
+ o.http_request_uri = "/"
1444
+ o.input = Shapes::ShapeRef.new(shape: DisassociateDatasetKmsKeyInput)
1445
+ o.output = Shapes::ShapeRef.new(shape: DisassociateDatasetKmsKeyOutput)
1446
+ o.errors << Shapes::ShapeRef.new(shape: ConflictException)
1447
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
1448
+ end)
1449
+
1385
1450
  api.add_operation(:enable_alarm_actions, Seahorse::Model::Operation.new.tap do |o|
1386
1451
  o.name = "EnableAlarmActions"
1387
1452
  o.http_method = "POST"
@@ -1421,6 +1486,15 @@ module Aws::CloudWatch
1421
1486
  o.errors << Shapes::ShapeRef.new(shape: InternalServiceFault)
1422
1487
  end)
1423
1488
 
1489
+ api.add_operation(:get_dataset, Seahorse::Model::Operation.new.tap do |o|
1490
+ o.name = "GetDataset"
1491
+ o.http_method = "POST"
1492
+ o.http_request_uri = "/"
1493
+ o.input = Shapes::ShapeRef.new(shape: GetDatasetInput)
1494
+ o.output = Shapes::ShapeRef.new(shape: GetDatasetOutput)
1495
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
1496
+ end)
1497
+
1424
1498
  api.add_operation(:get_insight_rule_report, Seahorse::Model::Operation.new.tap do |o|
1425
1499
  o.name = "GetInsightRuleReport"
1426
1500
  o.http_method = "POST"
@@ -42,6 +42,9 @@ module Aws::CloudWatch
42
42
  # * This error class is not used. `InvalidParameterCombination` is used during parsing instead.
43
43
  # * {InvalidParameterValueException}
44
44
  # * This error class is not used. `InvalidParameterValue` is used during parsing instead.
45
+ # * {KmsAccessDeniedException}
46
+ # * {KmsKeyDisabledException}
47
+ # * {KmsKeyNotFoundException}
45
48
  # * {LimitExceededException}
46
49
  # * {LimitExceededFault}
47
50
  # * This error class is not used. `LimitExceeded` is used during parsing instead.
@@ -203,6 +206,51 @@ module Aws::CloudWatch
203
206
  end
204
207
  end
205
208
 
209
+ class KmsAccessDeniedException < ServiceError
210
+
211
+ # @param [Seahorse::Client::RequestContext] context
212
+ # @param [String] message
213
+ # @param [Aws::CloudWatch::Types::KmsAccessDeniedException] data
214
+ def initialize(context, message, data = Aws::EmptyStructure.new)
215
+ super(context, message, data)
216
+ end
217
+
218
+ # @return [String]
219
+ def message
220
+ @message || @data[:message]
221
+ end
222
+ end
223
+
224
+ class KmsKeyDisabledException < ServiceError
225
+
226
+ # @param [Seahorse::Client::RequestContext] context
227
+ # @param [String] message
228
+ # @param [Aws::CloudWatch::Types::KmsKeyDisabledException] data
229
+ def initialize(context, message, data = Aws::EmptyStructure.new)
230
+ super(context, message, data)
231
+ end
232
+
233
+ # @return [String]
234
+ def message
235
+ @message || @data[:message]
236
+ end
237
+ end
238
+
239
+ class KmsKeyNotFoundException < ServiceError
240
+
241
+ # @param [Seahorse::Client::RequestContext] context
242
+ # @param [String] message
243
+ # @param [Aws::CloudWatch::Types::KmsKeyNotFoundException] data
244
+ def initialize(context, message, data = Aws::EmptyStructure.new)
245
+ super(context, message, data)
246
+ end
247
+
248
+ # @return [String]
249
+ def message
250
+ @message || @data[:message]
251
+ end
252
+ end
253
+
206
254
  class LimitExceededException < ServiceError
207
255
 
208
256
  # @param [Seahorse::Client::RequestContext] context
@@ -265,6 +265,44 @@ module Aws::CloudWatch
265
265
  include Aws::Structure
266
266
  end
267
267
 
268
+ # @!attribute [rw] dataset_identifier
269
+ # Specifies the identifier of the dataset that you want to associate
270
+ # the KMS key with. For the `default` dataset, you can specify either
271
+ # `default` or the full dataset Amazon Resource Name (ARN) in the
272
+ # format `arn:aws:cloudwatch:Region:account-id:dataset/default`.
273
+ # @return [String]
274
+ #
275
+ # @!attribute [rw] kms_key_arn
276
+ # Specifies the Amazon Resource Name (ARN) of the customer managed KMS
277
+ # key to associate with the dataset. The key must be a symmetric
278
+ # encryption KMS key (`SYMMETRIC_DEFAULT`) in the same Amazon Web
279
+ # Services Region as the dataset.
280
+ #
281
+ # The ARN must be in the format
282
+ # `arn:aws:kms:Region:account-id:key/key-id `. Key IDs, aliases, and
283
+ # alias ARNs are not accepted.
284
+ #
285
+ # For more information about KMS key ARNs, see [Key ARN][1] in the
286
+ # *Amazon Web Services Key Management Service Developer Guide*.
287
+ #
288
+ #
289
+ #
290
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id-key-ARN
291
+ # @return [String]
292
+ #
293
+ # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/AssociateDatasetKmsKeyInput AWS API Documentation
294
+ #
295
+ class AssociateDatasetKmsKeyInput < Struct.new(
296
+ :dataset_identifier,
297
+ :kms_key_arn)
298
+ SENSITIVE = []
299
+ include Aws::Structure
300
+ end
301
+
302
+ # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/AssociateDatasetKmsKeyOutput AWS API Documentation
303
+ #
304
+ class AssociateDatasetKmsKeyOutput < Aws::EmptyStructure; end
305
+
268
306
  # The details about a composite alarm.
269
307
  #
270
308
  # @!attribute [rw] actions_enabled
@@ -1215,6 +1253,25 @@ module Aws::CloudWatch
1215
1253
  include Aws::Structure
1216
1254
  end
1217
1255
 
1256
+ # @!attribute [rw] dataset_identifier
1257
+ # Specifies the identifier of the dataset from which to remove the KMS
1258
+ # key association. For the `default` dataset, you can specify either
1259
+ # `default` or the full dataset Amazon Resource Name (ARN) in the
1260
+ # format `arn:aws:cloudwatch:Region:account-id:dataset/default`.
1261
+ # @return [String]
1262
+ #
1263
+ # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DisassociateDatasetKmsKeyInput AWS API Documentation
1264
+ #
1265
+ class DisassociateDatasetKmsKeyInput < Struct.new(
1266
+ :dataset_identifier)
1267
+ SENSITIVE = []
1268
+ include Aws::Structure
1269
+ end
1270
+
1271
+ # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DisassociateDatasetKmsKeyOutput AWS API Documentation
1272
+ #
1273
+ class DisassociateDatasetKmsKeyOutput < Aws::EmptyStructure; end
1274
+
1218
1275
  # @!attribute [rw] alarm_names
1219
1276
  # The names of the alarms.
1220
1277
  # @return [Array<String>]
@@ -1462,6 +1519,48 @@ module Aws::CloudWatch
1462
1519
  include Aws::Structure
1463
1520
  end
1464
1521
 
1522
+ # @!attribute [rw] dataset_identifier
1523
+ # Specifies the identifier of the dataset to retrieve. For the
1524
+ # `default` dataset, you can specify either `default` or the full
1525
+ # dataset Amazon Resource Name (ARN) in the format
1526
+ # `arn:aws:cloudwatch:Region:account-id:dataset/default`.
1527
+ # @return [String]
1528
+ #
1529
+ # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/GetDatasetInput AWS API Documentation
1530
+ #
1531
+ class GetDatasetInput < Struct.new(
1532
+ :dataset_identifier)
1533
+ SENSITIVE = []
1534
+ include Aws::Structure
1535
+ end
1536
+
1537
+ # @!attribute [rw] dataset_id
1538
+ # Returns the identifier of the dataset.
1539
+ # @return [String]
1540
+ #
1541
+ # @!attribute [rw] arn
1542
+ # Returns the Amazon Resource Name (ARN) of the dataset, in the format
1543
+ # `arn:aws:cloudwatch:Region:account-id:dataset/dataset-id `.
1544
+ # @return [String]
1545
+ #
1546
+ # @!attribute [rw] kms_key_arn
1547
+ # Returns the Amazon Resource Name (ARN) of the customer managed
1548
+ # Amazon Web Services KMS key that is currently associated with the
1549
+ # dataset, if any. If the dataset is not associated with a customer
1550
+ # managed KMS key, this field is not included in the response and the
1551
+ # dataset is encrypted at rest using an Amazon Web Services owned key.
1552
+ # @return [String]
1553
+ #
1554
+ # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/GetDatasetOutput AWS API Documentation
1555
+ #
1556
+ class GetDatasetOutput < Struct.new(
1557
+ :dataset_id,
1558
+ :arn,
1559
+ :kms_key_arn)
1560
+ SENSITIVE = []
1561
+ include Aws::Structure
1562
+ end
1563
+
1465
1564
  # @!attribute [rw] rule_name
1466
1565
  # The name of the rule that you want to see data from.
1467
1566
  # @return [String]
@@ -2341,6 +2440,61 @@ module Aws::CloudWatch
2341
2440
  include Aws::Structure
2342
2441
  end
2343
2442
 
2443
+ # The operation was denied because either the calling principal lacks
2444
+ # the required Amazon Web Services Key Management Service (Amazon Web
2445
+ # Services KMS) permission on the key, or the key policy does not grant
2446
+ # Amazon CloudWatch the permissions it needs to use the key. Verify that
2447
+ # the caller has `kms:Decrypt` permission on the key, and that the key
2448
+ # policy grants the CloudWatch service principal the `kms:DescribeKey`,
2449
+ # `kms:GenerateDataKey`, `kms:Encrypt`, `kms:Decrypt`, and
2450
+ # `kms:ReEncrypt*` permissions described in [AssociateDatasetKmsKey][1].
2451
+ #
2452
+ #
2453
+ #
2454
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_AssociateDatasetKmsKey.html
2455
+ #
2456
+ # @!attribute [rw] message
2457
+ # @return [String]
2458
+ #
2459
+ # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/KmsAccessDeniedException AWS API Documentation
2460
+ #
2461
+ class KmsAccessDeniedException < Struct.new(
2462
+ :message)
2463
+ SENSITIVE = []
2464
+ include Aws::Structure
2465
+ end
2466
+
2467
+ # The specified Amazon Web Services Key Management Service (Amazon Web
2468
+ # Services KMS) key is disabled or pending deletion. Re-enable the key
2469
+ # (or restore it, if it is pending deletion) and retry the operation.
2470
+ #
2471
+ # @!attribute [rw] message
2472
+ # @return [String]
2473
+ #
2474
+ # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/KmsKeyDisabledException AWS API Documentation
2475
+ #
2476
+ class KmsKeyDisabledException < Struct.new(
2477
+ :message)
2478
+ SENSITIVE = []
2479
+ include Aws::Structure
2480
+ end
2481
+
2482
+ # The specified Amazon Web Services Key Management Service (Amazon Web
2483
+ # Services KMS) key could not be found. Verify that the key Amazon
2484
+ # Resource Name (ARN) is correct, that the key exists, and that it is in
2485
+ # the same Amazon Web Services Region as the resource.
2486
+ #
2487
+ # @!attribute [rw] message
2488
+ # @return [String]
2489
+ #
2490
+ # @see http://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/KmsKeyNotFoundException AWS API Documentation
2491
+ #
2492
+ class KmsKeyNotFoundException < Struct.new(
2493
+ :message)
2494
+ SENSITIVE = []
2495
+ include Aws::Structure
2496
+ end
2497
+
2344
2498
  # This structure includes the `Timezone` parameter, which you can use to
2345
2499
  # specify your time zone so that the labels that are associated with
2346
2500
  # returned metrics display the correct time for your time zone.
@@ -23,7 +23,7 @@ Aws::Plugins::GlobalConfiguration.add_identifier(:cloudwatch)
23
23
  # structure.
24
24
  #
25
25
  # cloud_watch = Aws::CloudWatch::Client.new
26
- # resp = cloud_watch.delete_alarm_mute_rule(params)
26
+ # resp = cloud_watch.associate_dataset_kms_key(params)
27
27
  #
28
28
  # See {Client} for more information.
29
29
  #
@@ -58,7 +58,7 @@ module Aws::CloudWatch
58
58
  autoload :CompositeAlarm, 'aws-sdk-cloudwatch/composite_alarm'
59
59
  autoload :Metric, 'aws-sdk-cloudwatch/metric'
60
60
 
61
- GEM_VERSION = '1.139.0'
61
+ GEM_VERSION = '1.140.0'
62
62
 
63
63
  end
64
64
 
data/sig/client.rbs CHANGED
@@ -79,6 +79,16 @@ module Aws
79
79
  | (?Hash[Symbol, untyped]) -> instance
80
80
 
81
81
 
82
+ interface _AssociateDatasetKmsKeyResponseSuccess
83
+ include ::Seahorse::Client::_ResponseSuccess[Types::AssociateDatasetKmsKeyOutput]
84
+ end
85
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/CloudWatch/Client.html#associate_dataset_kms_key-instance_method
86
+ def associate_dataset_kms_key: (
87
+ dataset_identifier: ::String,
88
+ kms_key_arn: ::String
89
+ ) -> _AssociateDatasetKmsKeyResponseSuccess
90
+ | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _AssociateDatasetKmsKeyResponseSuccess
91
+
82
92
  # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/CloudWatch/Client.html#delete_alarm_mute_rule-instance_method
83
93
  def delete_alarm_mute_rule: (
84
94
  alarm_mute_rule_name: ::String
@@ -259,6 +269,15 @@ module Aws
259
269
  ) -> _DisableInsightRulesResponseSuccess
260
270
  | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _DisableInsightRulesResponseSuccess
261
271
 
272
+ interface _DisassociateDatasetKmsKeyResponseSuccess
273
+ include ::Seahorse::Client::_ResponseSuccess[Types::DisassociateDatasetKmsKeyOutput]
274
+ end
275
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/CloudWatch/Client.html#disassociate_dataset_kms_key-instance_method
276
+ def disassociate_dataset_kms_key: (
277
+ dataset_identifier: ::String
278
+ ) -> _DisassociateDatasetKmsKeyResponseSuccess
279
+ | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _DisassociateDatasetKmsKeyResponseSuccess
280
+
262
281
  # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/CloudWatch/Client.html#enable_alarm_actions-instance_method
263
282
  def enable_alarm_actions: (
264
283
  alarm_names: Array[::String]
@@ -306,6 +325,18 @@ module Aws
306
325
  ) -> _GetDashboardResponseSuccess
307
326
  | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _GetDashboardResponseSuccess
308
327
 
328
+ interface _GetDatasetResponseSuccess
329
+ include ::Seahorse::Client::_ResponseSuccess[Types::GetDatasetOutput]
330
+ def dataset_id: () -> ::String
331
+ def arn: () -> ::String
332
+ def kms_key_arn: () -> ::String
333
+ end
334
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/CloudWatch/Client.html#get_dataset-instance_method
335
+ def get_dataset: (
336
+ dataset_identifier: ::String
337
+ ) -> _GetDatasetResponseSuccess
338
+ | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _GetDatasetResponseSuccess
339
+
309
340
  interface _GetInsightRuleReportResponseSuccess
310
341
  include ::Seahorse::Client::_ResponseSuccess[Types::GetInsightRuleReportOutput]
311
342
  def key_labels: () -> ::Array[::String]
data/sig/errors.rbs CHANGED
@@ -38,6 +38,15 @@ module Aws
38
38
  class InvalidParameterValueException < ::Aws::Errors::ServiceError
39
39
  def message: () -> ::String
40
40
  end
41
+ class KmsAccessDeniedException < ::Aws::Errors::ServiceError
42
+ def message: () -> ::String
43
+ end
44
+ class KmsKeyDisabledException < ::Aws::Errors::ServiceError
45
+ def message: () -> ::String
46
+ end
47
+ class KmsKeyNotFoundException < ::Aws::Errors::ServiceError
48
+ def message: () -> ::String
49
+ end
41
50
  class LimitExceededException < ::Aws::Errors::ServiceError
42
51
  end
43
52
  class LimitExceededFault < ::Aws::Errors::ServiceError
data/sig/types.rbs CHANGED
@@ -63,6 +63,15 @@ module Aws::CloudWatch
63
63
  SENSITIVE: []
64
64
  end
65
65
 
66
+ class AssociateDatasetKmsKeyInput
67
+ attr_accessor dataset_identifier: ::String
68
+ attr_accessor kms_key_arn: ::String
69
+ SENSITIVE: []
70
+ end
71
+
72
+ class AssociateDatasetKmsKeyOutput < Aws::EmptyStructure
73
+ end
74
+
66
75
  class CompositeAlarm
67
76
  attr_accessor actions_enabled: bool
68
77
  attr_accessor alarm_actions: ::Array[::String]
@@ -302,6 +311,14 @@ module Aws::CloudWatch
302
311
  SENSITIVE: []
303
312
  end
304
313
 
314
+ class DisassociateDatasetKmsKeyInput
315
+ attr_accessor dataset_identifier: ::String
316
+ SENSITIVE: []
317
+ end
318
+
319
+ class DisassociateDatasetKmsKeyOutput < Aws::EmptyStructure
320
+ end
321
+
305
322
  class EnableAlarmActionsInput
306
323
  attr_accessor alarm_names: ::Array[::String]
307
324
  SENSITIVE: []
@@ -371,6 +388,18 @@ module Aws::CloudWatch
371
388
  SENSITIVE: []
372
389
  end
373
390
 
391
+ class GetDatasetInput
392
+ attr_accessor dataset_identifier: ::String
393
+ SENSITIVE: []
394
+ end
395
+
396
+ class GetDatasetOutput
397
+ attr_accessor dataset_id: ::String
398
+ attr_accessor arn: ::String
399
+ attr_accessor kms_key_arn: ::String
400
+ SENSITIVE: []
401
+ end
402
+
374
403
  class GetInsightRuleReportInput
375
404
  attr_accessor rule_name: ::String
376
405
  attr_accessor start_time: ::Time
@@ -529,6 +558,21 @@ module Aws::CloudWatch
529
558
  SENSITIVE: []
530
559
  end
531
560
 
561
+ class KmsAccessDeniedException
562
+ attr_accessor message: ::String
563
+ SENSITIVE: []
564
+ end
565
+
566
+ class KmsKeyDisabledException
567
+ attr_accessor message: ::String
568
+ SENSITIVE: []
569
+ end
570
+
571
+ class KmsKeyNotFoundException
572
+ attr_accessor message: ::String
573
+ SENSITIVE: []
574
+ end
575
+
532
576
  class LabelOptions
533
577
  attr_accessor timezone: ::String
534
578
  SENSITIVE: []
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-cloudwatch
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.139.0
4
+ version: 1.140.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services