aws-sdk-cloudwatchlogs 1.138.0 → 1.139.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: 69a58cf3fa74eddb5278a3227ed0727ddb5d95aeb46469a7a88496669dc2d013
4
- data.tar.gz: 0f11870a4527af40e84af2734c503ffabd51d07cf10bed708abce9cebd4dbd7f
3
+ metadata.gz: f19b0f64deb633c633108dcd9f37f28e2d7a185510f31801feb5fcdc3d5d50d8
4
+ data.tar.gz: c5a669da720f1b3070bfbf2a188d4873bac7d327a3e5aa4c6d0e950e22a3b293
5
5
  SHA512:
6
- metadata.gz: 9a4226cda156d271b357c1130e2729fd3678a2f18d54e500cea3a762005cd7ecf615e1ac98a66c627dde36c659bff5f868ebe85485ca6deee9653c6d1acb7117
7
- data.tar.gz: d6c41774921879cf9e62ce73717520659d09826bb936d002cffa1c7dde442cef973c293ca803255a9f99509c33385c918861f026c6b45d977c0a53affe6587bd
6
+ metadata.gz: 13ff2eaaa81fdca738fe86c1f8ad3140263a261afd2b31d5c9d0822a88c7f028f87d38885df359e706c00c676d2791ec44c1cbfb7ae986ada273ae521e57acec
7
+ data.tar.gz: e408534a92b4e15e9c02e0b7e1504c3f92bd3c104561a411d5be9bf7a9a0fb46ee3dbb2fdad6fb80d3d7165bbb2ea1fddd168cef4832aa29625603d82e856ca8
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.139.0 (2026-03-03)
5
+ ------------------
6
+
7
+ * Feature - CloudWatch Logs updates- Added support for the PutBearerTokenAuthentication API to enable or disable bearer token authentication on a log group. For more information, see CloudWatch Logs API documentation.
8
+
4
9
  1.138.0 (2026-01-16)
5
10
  ------------------
6
11
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.138.0
1
+ 1.139.0
@@ -973,9 +973,11 @@ module Aws::CloudWatchLogs
973
973
  #
974
974
  # * logs:PutResourcePolicy
975
975
  #
976
- # * (If source has an associated AWS KMS Key) kms:Decrypt
976
+ # * (If source has an associated Amazon Web Services KMS Key)
977
+ # kms:Decrypt
977
978
  #
978
- # * (If source has an associated AWS KMS Key) kms:GenerateDataKey
979
+ # * (If source has an associated Amazon Web Services KMS Key)
980
+ # kms:GenerateDataKey
979
981
  # Example IAM policy for provided import role:
980
982
  #
981
983
  # `[ { "Effect": "Allow", "Action": "iam:PassRole", "Resource":
@@ -2865,6 +2867,7 @@ module Aws::CloudWatchLogs
2865
2867
  # resp.log_groups[0].log_group_class #=> String, one of "STANDARD", "INFREQUENT_ACCESS", "DELIVERY"
2866
2868
  # resp.log_groups[0].log_group_arn #=> String
2867
2869
  # resp.log_groups[0].deletion_protection_enabled #=> Boolean
2870
+ # resp.log_groups[0].bearer_token_authentication_enabled #=> Boolean
2868
2871
  # resp.next_token #=> String
2869
2872
  #
2870
2873
  # @see http://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/DescribeLogGroups AWS API Documentation
@@ -4197,6 +4200,20 @@ module Aws::CloudWatchLogs
4197
4200
  # `@ptr.$['AAA']['BBB']['CCC']['DDD']`, `@ptr.$['AAA']`, or any other
4198
4201
  # path matching your log structure.
4199
4202
  #
4203
+ # <note markdown="1"> The `GetLogObject` API routes requests using SDK host prefix
4204
+ # injection. SDK versions released before April 1, 2026 route to
4205
+ # `streaming-logs.Region.amazonaws.com`, which does not support VPC
4206
+ # endpoints. SDK versions released on or after April 1, 2026 route to
4207
+ # `stream-logs.Region.amazonaws.com`, which supports VPC endpoints. To
4208
+ # set up a VPC endpoint for this API, see [Creating a VPC endpoint for
4209
+ # CloudWatch Logs ][1].
4210
+ #
4211
+ # </note>
4212
+ #
4213
+ #
4214
+ #
4215
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/cloudwatch-logs-and-interface-VPC.html#create-VPC-endpoint-for-CloudWatchLogs
4216
+ #
4200
4217
  # @option params [Boolean] :unmask
4201
4218
  # A boolean flag that indicates whether to unmask sensitive log data.
4202
4219
  # When set to true, any masked or redacted data in the log object will
@@ -5699,12 +5716,12 @@ module Aws::CloudWatchLogs
5699
5716
  # in the EMF format are still ingested, but no CloudWatch Metrics are
5700
5717
  # created from them.
5701
5718
  #
5702
- # Creating a policy disables metrics for AWS features that use EMF to
5703
- # create metrics, such as CloudWatch Container Insights and CloudWatch
5704
- # Application Signals. To prevent turning off those features by
5705
- # accident, we recommend that you exclude the underlying log-groups
5706
- # through a selection-criteria such as `LogGroupNamePrefix NOT IN
5707
- # ["/aws/containerinsights", "/aws/ecs/containerinsights",
5719
+ # Creating a policy disables metrics for Amazon Web Services features
5720
+ # that use EMF to create metrics, such as CloudWatch Container Insights
5721
+ # and CloudWatch Application Signals. To prevent turning off those
5722
+ # features by accident, we recommend that you exclude the underlying
5723
+ # log-groups through a selection-criteria such as `LogGroupNamePrefix
5724
+ # NOT IN ["/aws/containerinsights", "/aws/ecs/containerinsights",
5708
5725
  # "/aws/application-signals/data"]`.
5709
5726
  #
5710
5727
  # Each account can have either one account-level metric extraction
@@ -5957,6 +5974,53 @@ module Aws::CloudWatchLogs
5957
5974
  req.send_request(options)
5958
5975
  end
5959
5976
 
5977
+ # Enables or disables bearer token authentication for the specified log
5978
+ # group. When enabled on a log group, bearer token authentication is
5979
+ # enabled on operations until it is explicitly disabled.
5980
+ #
5981
+ # For information about the parameters that are common to all actions,
5982
+ # see [Common Parameters][1].
5983
+ #
5984
+ #
5985
+ #
5986
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/CommonParameters.html
5987
+ #
5988
+ # @option params [required, String] :log_group_identifier
5989
+ # The name or ARN of the log group.
5990
+ #
5991
+ # Type: String
5992
+ #
5993
+ # Length Constraints: Minimum length of 1. Maximum length of 512.
5994
+ #
5995
+ # Pattern: `[\.\-_/#A-Za-z0-9]+`
5996
+ #
5997
+ # Required: Yes
5998
+ #
5999
+ # @option params [required, Boolean] :bearer_token_authentication_enabled
6000
+ # Whether to enable bearer token authentication.
6001
+ #
6002
+ # Type: Boolean
6003
+ #
6004
+ # Required: Yes
6005
+ #
6006
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
6007
+ #
6008
+ # @example Request syntax with placeholder values
6009
+ #
6010
+ # resp = client.put_bearer_token_authentication({
6011
+ # log_group_identifier: "LogGroupIdentifier", # required
6012
+ # bearer_token_authentication_enabled: false, # required
6013
+ # })
6014
+ #
6015
+ # @see http://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/PutBearerTokenAuthentication AWS API Documentation
6016
+ #
6017
+ # @overload put_bearer_token_authentication(params = {})
6018
+ # @param [Hash] params ({})
6019
+ def put_bearer_token_authentication(params = {}, options = {})
6020
+ req = build_request(:put_bearer_token_authentication, params)
6021
+ req.send_request(options)
6022
+ end
6023
+
5960
6024
  # Creates a data protection policy for the specified log group. A data
5961
6025
  # protection policy can help safeguard sensitive data that's ingested
5962
6026
  # by the log group by auditing and masking the sensitive log data.
@@ -7687,9 +7751,13 @@ module Aws::CloudWatchLogs
7687
7751
  # * A [SessionTimeoutException][5] object is returned when the session
7688
7752
  # times out, after it has been kept open for three hours.
7689
7753
  #
7690
- # <note markdown="1"> The `StartLiveTail` API routes requests to
7691
- # `streaming-logs.Region.amazonaws.com` using SDK host prefix injection.
7692
- # VPC endpoint support is not available for this API.
7754
+ # <note markdown="1"> The `StartLiveTail` API routes requests using SDK host prefix
7755
+ # injection. SDK versions released before April 1, 2026 route to
7756
+ # `streaming-logs.Region.amazonaws.com`, which does not support VPC
7757
+ # endpoints. SDK versions released on or after April 1, 2026 route to
7758
+ # `stream-logs.Region.amazonaws.com`, which supports VPC endpoints. To
7759
+ # set up a VPC endpoint for this API, see [Creating a VPC endpoint for
7760
+ # CloudWatch Logs ][6].
7693
7761
  #
7694
7762
  # </note>
7695
7763
  #
@@ -7699,7 +7767,7 @@ module Aws::CloudWatchLogs
7699
7767
  # the server breaks.
7700
7768
  #
7701
7769
  # For examples of using an SDK to start a Live Tail session, see [ Start
7702
- # a Live Tail session using an Amazon Web Services SDK][6].
7770
+ # a Live Tail session using an Amazon Web Services SDK][7].
7703
7771
  #
7704
7772
  #
7705
7773
  #
@@ -7708,7 +7776,8 @@ module Aws::CloudWatchLogs
7708
7776
  # [3]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_LiveTailSessionUpdate.html
7709
7777
  # [4]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_StartLiveTailResponseStream.html#CWL-Type-StartLiveTailResponseStream-SessionStreamingException
7710
7778
  # [5]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_StartLiveTailResponseStream.html#CWL-Type-StartLiveTailResponseStream-SessionTimeoutException
7711
- # [6]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/example_cloudwatch-logs_StartLiveTail_section.html
7779
+ # [6]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/cloudwatch-logs-and-interface-VPC.html#create-VPC-endpoint-for-CloudWatchLogs
7780
+ # [7]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/example_cloudwatch-logs_StartLiveTail_section.html
7712
7781
  #
7713
7782
  # @option params [required, Array<String>] :log_group_identifiers
7714
7783
  # An array where each item in the array is a log group to include in the
@@ -8878,7 +8947,7 @@ module Aws::CloudWatchLogs
8878
8947
  tracer: tracer
8879
8948
  )
8880
8949
  context[:gem_name] = 'aws-sdk-cloudwatchlogs'
8881
- context[:gem_version] = '1.138.0'
8950
+ context[:gem_version] = '1.139.0'
8882
8951
  Seahorse::Client::Request.new(handlers, context)
8883
8952
  end
8884
8953
 
@@ -47,6 +47,7 @@ module Aws::CloudWatchLogs
47
47
  AssociateSourceToS3TableIntegrationResponse = Shapes::StructureShape.new(name: 'AssociateSourceToS3TableIntegrationResponse')
48
48
  Baseline = Shapes::BooleanShape.new(name: 'Baseline')
49
49
  BatchId = Shapes::StringShape.new(name: 'BatchId')
50
+ BearerTokenAuthenticationEnabled = Shapes::BooleanShape.new(name: 'BearerTokenAuthenticationEnabled')
50
51
  Boolean = Shapes::BooleanShape.new(name: 'Boolean')
51
52
  CSV = Shapes::StructureShape.new(name: 'CSV')
52
53
  CancelExportTaskRequest = Shapes::StructureShape.new(name: 'CancelExportTaskRequest')
@@ -465,6 +466,7 @@ module Aws::CloudWatchLogs
465
466
  Processors = Shapes::ListShape.new(name: 'Processors')
466
467
  PutAccountPolicyRequest = Shapes::StructureShape.new(name: 'PutAccountPolicyRequest')
467
468
  PutAccountPolicyResponse = Shapes::StructureShape.new(name: 'PutAccountPolicyResponse')
469
+ PutBearerTokenAuthenticationRequest = Shapes::StructureShape.new(name: 'PutBearerTokenAuthenticationRequest')
468
470
  PutDataProtectionPolicyRequest = Shapes::StructureShape.new(name: 'PutDataProtectionPolicyRequest')
469
471
  PutDataProtectionPolicyResponse = Shapes::StructureShape.new(name: 'PutDataProtectionPolicyResponse')
470
472
  PutDeliveryDestinationPolicyRequest = Shapes::StructureShape.new(name: 'PutDeliveryDestinationPolicyRequest')
@@ -1696,6 +1698,7 @@ module Aws::CloudWatchLogs
1696
1698
  LogGroup.add_member(:log_group_class, Shapes::ShapeRef.new(shape: LogGroupClass, location_name: "logGroupClass"))
1697
1699
  LogGroup.add_member(:log_group_arn, Shapes::ShapeRef.new(shape: Arn, location_name: "logGroupArn"))
1698
1700
  LogGroup.add_member(:deletion_protection_enabled, Shapes::ShapeRef.new(shape: DeletionProtectionEnabled, location_name: "deletionProtectionEnabled"))
1701
+ LogGroup.add_member(:bearer_token_authentication_enabled, Shapes::ShapeRef.new(shape: BearerTokenAuthenticationEnabled, location_name: "bearerTokenAuthenticationEnabled"))
1699
1702
  LogGroup.struct_class = Types::LogGroup
1700
1703
 
1701
1704
  LogGroupArnList.member = Shapes::ShapeRef.new(shape: LogGroupArn)
@@ -1937,6 +1940,10 @@ module Aws::CloudWatchLogs
1937
1940
  PutAccountPolicyResponse.add_member(:account_policy, Shapes::ShapeRef.new(shape: AccountPolicy, location_name: "accountPolicy"))
1938
1941
  PutAccountPolicyResponse.struct_class = Types::PutAccountPolicyResponse
1939
1942
 
1943
+ PutBearerTokenAuthenticationRequest.add_member(:log_group_identifier, Shapes::ShapeRef.new(shape: LogGroupIdentifier, required: true, location_name: "logGroupIdentifier"))
1944
+ PutBearerTokenAuthenticationRequest.add_member(:bearer_token_authentication_enabled, Shapes::ShapeRef.new(shape: BearerTokenAuthenticationEnabled, required: true, location_name: "bearerTokenAuthenticationEnabled"))
1945
+ PutBearerTokenAuthenticationRequest.struct_class = Types::PutBearerTokenAuthenticationRequest
1946
+
1940
1947
  PutDataProtectionPolicyRequest.add_member(:log_group_identifier, Shapes::ShapeRef.new(shape: LogGroupIdentifier, required: true, location_name: "logGroupIdentifier"))
1941
1948
  PutDataProtectionPolicyRequest.add_member(:policy_document, Shapes::ShapeRef.new(shape: DataProtectionPolicyDocument, required: true, location_name: "policyDocument"))
1942
1949
  PutDataProtectionPolicyRequest.struct_class = Types::PutDataProtectionPolicyRequest
@@ -3510,6 +3517,20 @@ module Aws::CloudWatchLogs
3510
3517
  o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
3511
3518
  end)
3512
3519
 
3520
+ api.add_operation(:put_bearer_token_authentication, Seahorse::Model::Operation.new.tap do |o|
3521
+ o.name = "PutBearerTokenAuthentication"
3522
+ o.http_method = "POST"
3523
+ o.http_request_uri = "/"
3524
+ o.input = Shapes::ShapeRef.new(shape: PutBearerTokenAuthenticationRequest)
3525
+ o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
3526
+ o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
3527
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
3528
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
3529
+ o.errors << Shapes::ShapeRef.new(shape: OperationAbortedException)
3530
+ o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
3531
+ o.errors << Shapes::ShapeRef.new(shape: InvalidOperationException)
3532
+ end)
3533
+
3513
3534
  api.add_operation(:put_data_protection_policy, Seahorse::Model::Operation.new.tap do |o|
3514
3535
  o.name = "PutDataProtectionPolicy"
3515
3536
  o.http_method = "POST"
@@ -4302,7 +4302,7 @@ module Aws::CloudWatchLogs
4302
4302
  #
4303
4303
  #
4304
4304
  #
4305
- # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation-Processors.html#CloudWatch-Logs-Transformation-Grok
4305
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation-Configurable.html#CloudWatch-Logs-Transformation-Grok
4306
4306
  #
4307
4307
  # @!attribute [rw] source
4308
4308
  # The path to the field in the log event that you want to parse. If
@@ -4315,7 +4315,7 @@ module Aws::CloudWatchLogs
4315
4315
  #
4316
4316
  #
4317
4317
  #
4318
- # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation-Processors.html#Grok-Patterns
4318
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch-Logs-Transformation-Configurable.html#CloudWatch-Logs-Transformation-Grok
4319
4319
  # @return [String]
4320
4320
  #
4321
4321
  # @see http://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/Grok AWS API Documentation
@@ -5572,6 +5572,12 @@ module Aws::CloudWatchLogs
5572
5572
  # until it is explicitly disabled.
5573
5573
  # @return [Boolean]
5574
5574
  #
5575
+ # @!attribute [rw] bearer_token_authentication_enabled
5576
+ # Indicates whether bearer token authentication is enabled for this
5577
+ # log group. When enabled, bearer token authentication is allowed on
5578
+ # operations until it is explicitly disabled.
5579
+ # @return [Boolean]
5580
+ #
5575
5581
  # @see http://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/LogGroup AWS API Documentation
5576
5582
  #
5577
5583
  class LogGroup < Struct.new(
@@ -5586,7 +5592,8 @@ module Aws::CloudWatchLogs
5586
5592
  :inherited_properties,
5587
5593
  :log_group_class,
5588
5594
  :log_group_arn,
5589
- :deletion_protection_enabled)
5595
+ :deletion_protection_enabled,
5596
+ :bearer_token_authentication_enabled)
5590
5597
  SENSITIVE = []
5591
5598
  include Aws::Structure
5592
5599
  end
@@ -7257,6 +7264,35 @@ module Aws::CloudWatchLogs
7257
7264
  include Aws::Structure
7258
7265
  end
7259
7266
 
7267
+ # @!attribute [rw] log_group_identifier
7268
+ # The name or ARN of the log group.
7269
+ #
7270
+ # Type: String
7271
+ #
7272
+ # Length Constraints: Minimum length of 1. Maximum length of 512.
7273
+ #
7274
+ # Pattern: `[\.\-_/#A-Za-z0-9]+`
7275
+ #
7276
+ # Required: Yes
7277
+ # @return [String]
7278
+ #
7279
+ # @!attribute [rw] bearer_token_authentication_enabled
7280
+ # Whether to enable bearer token authentication.
7281
+ #
7282
+ # Type: Boolean
7283
+ #
7284
+ # Required: Yes
7285
+ # @return [Boolean]
7286
+ #
7287
+ # @see http://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/PutBearerTokenAuthenticationRequest AWS API Documentation
7288
+ #
7289
+ class PutBearerTokenAuthenticationRequest < Struct.new(
7290
+ :log_group_identifier,
7291
+ :bearer_token_authentication_enabled)
7292
+ SENSITIVE = []
7293
+ include Aws::Structure
7294
+ end
7295
+
7260
7296
  # @!attribute [rw] log_group_identifier
7261
7297
  # Specify either the log group name or log group ARN.
7262
7298
  # @return [String]
@@ -55,7 +55,7 @@ module Aws::CloudWatchLogs
55
55
  autoload :Endpoints, 'aws-sdk-cloudwatchlogs/endpoints'
56
56
  autoload :EventStreams, 'aws-sdk-cloudwatchlogs/event_streams'
57
57
 
58
- GEM_VERSION = '1.138.0'
58
+ GEM_VERSION = '1.139.0'
59
59
 
60
60
  end
61
61
 
data/sig/client.rbs CHANGED
@@ -1044,6 +1044,13 @@ module Aws
1044
1044
  ) -> _PutAccountPolicyResponseSuccess
1045
1045
  | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _PutAccountPolicyResponseSuccess
1046
1046
 
1047
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/CloudWatchLogs/Client.html#put_bearer_token_authentication-instance_method
1048
+ def put_bearer_token_authentication: (
1049
+ log_group_identifier: ::String,
1050
+ bearer_token_authentication_enabled: bool
1051
+ ) -> ::Seahorse::Client::_ResponseSuccess[::Aws::EmptyStructure]
1052
+ | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> ::Seahorse::Client::_ResponseSuccess[::Aws::EmptyStructure]
1053
+
1047
1054
  interface _PutDataProtectionPolicyResponseSuccess
1048
1055
  include ::Seahorse::Client::_ResponseSuccess[Types::PutDataProtectionPolicyResponse]
1049
1056
  def log_group_identifier: () -> ::String
data/sig/types.rbs CHANGED
@@ -1337,6 +1337,7 @@ module Aws::CloudWatchLogs
1337
1337
  attr_accessor log_group_class: ("STANDARD" | "INFREQUENT_ACCESS" | "DELIVERY")
1338
1338
  attr_accessor log_group_arn: ::String
1339
1339
  attr_accessor deletion_protection_enabled: bool
1340
+ attr_accessor bearer_token_authentication_enabled: bool
1340
1341
  SENSITIVE: []
1341
1342
  end
1342
1343
 
@@ -1609,6 +1610,12 @@ module Aws::CloudWatchLogs
1609
1610
  SENSITIVE: []
1610
1611
  end
1611
1612
 
1613
+ class PutBearerTokenAuthenticationRequest
1614
+ attr_accessor log_group_identifier: ::String
1615
+ attr_accessor bearer_token_authentication_enabled: bool
1616
+ SENSITIVE: []
1617
+ end
1618
+
1612
1619
  class PutDataProtectionPolicyRequest
1613
1620
  attr_accessor log_group_identifier: ::String
1614
1621
  attr_accessor policy_document: ::String
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-cloudwatchlogs
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.138.0
4
+ version: 1.139.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services