aws-sdk-cloudwatchlogs 1.62.0 → 1.64.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 22968e38919223b8b25fb98065be7e4d838087a139cfda5682f25ae6ec2938ea
4
- data.tar.gz: a7a6bb4824c8b841b6c7e8f4c2b69bee0f7540786ef2e50603f45051b13de760
3
+ metadata.gz: 4087e11ea4a4fdd5a3bb5b6f145623058784baa35826f4ad4f9a53a3c67507e9
4
+ data.tar.gz: 8acbc2d70e6210c680edf2c63cf5d82844f2ae6439d30293e88bb526f908aeb5
5
5
  SHA512:
6
- metadata.gz: d87574d25967dcbcb7dcc06bf94b04bd0894e3b2de7fdf46a97727ff3ac3a5d3bd746753e961c17f34d6618a4f660fa260a3f4f83836a0b744ef102950227e23
7
- data.tar.gz: c7dcefd8399ea20ea000ab7a44754cd6599419d6e8bfe45e89d46630e5014bac67d4cca5ff627376baa4f1591c0aa0235f19bb7651de6d06d8a5bfd3f80145ed
6
+ metadata.gz: a25f75cccb56f477488eb71d5dbbd9266aa3fea01146d1cd6a08df41ef9ec20edaadc077a17934d623f8188ea7855a1bd4e3f40ff6612100118fb68ad55ba3ba
7
+ data.tar.gz: f66ec8453de6a4483cc6b762b1a16bff9c86817c76f87f217788e8ce3909c44533092e383c8deecbfb28e4000d2f122a9d7c31cc805da0ccc6d1b129556de080
data/CHANGELOG.md CHANGED
@@ -1,6 +1,16 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.64.0 (2023-06-07)
5
+ ------------------
6
+
7
+ * Feature - This change adds support for account level data protection policies using 3 new APIs, PutAccountPolicy, DeleteAccountPolicy and DescribeAccountPolicy. DescribeLogGroup API has been modified to indicate if account level policy is applied to the LogGroup via "inheritedProperties" list in the response.
8
+
9
+ 1.63.0 (2023-05-31)
10
+ ------------------
11
+
12
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
13
+
4
14
  1.62.0 (2023-01-19)
5
15
  ------------------
6
16
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.62.0
1
+ 1.64.0
@@ -275,6 +275,11 @@ module Aws::CloudWatchLogs
275
275
  # in the future.
276
276
  #
277
277
  #
278
+ # @option options [String] :sdk_ua_app_id
279
+ # A unique and opaque application ID that is appended to the
280
+ # User-Agent header as app/<sdk_ua_app_id>. It should have a
281
+ # maximum length of 50.
282
+ #
278
283
  # @option options [String] :secret_access_key
279
284
  #
280
285
  # @option options [String] :session_token
@@ -577,7 +582,7 @@ module Aws::CloudWatchLogs
577
582
  # enables CloudWatch Logs to decrypt this data whenever it is requested.
578
583
  #
579
584
  # If you attempt to associate a KMS key with the log group but the KMS
580
- # keydoes not exist or the KMS key is disabled, you receive an
585
+ # key does not exist or the KMS key is disabled, you receive an
581
586
  # `InvalidParameterException` error.
582
587
  #
583
588
  # CloudWatch Logs supports only symmetric KMS keys. Do not associate an
@@ -678,6 +683,37 @@ module Aws::CloudWatchLogs
678
683
  req.send_request(options)
679
684
  end
680
685
 
686
+ # Deletes a CloudWatch Logs account policy.
687
+ #
688
+ # To use this operation, you must be signed on with the
689
+ # `logs:DeleteDataProtectionPolicy` and `logs:DeleteAccountPolicy`
690
+ # permissions.
691
+ #
692
+ # @option params [required, String] :policy_name
693
+ # The name of the policy to delete.
694
+ #
695
+ # @option params [required, String] :policy_type
696
+ # The type of policy to delete. Currently, the only valid value is
697
+ # `DATA_PROTECTION_POLICY`.
698
+ #
699
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
700
+ #
701
+ # @example Request syntax with placeholder values
702
+ #
703
+ # resp = client.delete_account_policy({
704
+ # policy_name: "PolicyName", # required
705
+ # policy_type: "DATA_PROTECTION_POLICY", # required, accepts DATA_PROTECTION_POLICY
706
+ # })
707
+ #
708
+ # @see http://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/DeleteAccountPolicy AWS API Documentation
709
+ #
710
+ # @overload delete_account_policy(params = {})
711
+ # @param [Hash] params ({})
712
+ def delete_account_policy(params = {}, options = {})
713
+ req = build_request(:delete_account_policy, params)
714
+ req.send_request(options)
715
+ end
716
+
681
717
  # Deletes the data protection policy from the specified log group.
682
718
  #
683
719
  # For more information about data protection policies, see
@@ -924,6 +960,58 @@ module Aws::CloudWatchLogs
924
960
  req.send_request(options)
925
961
  end
926
962
 
963
+ # Returns a list of all CloudWatch Logs account policies in the account.
964
+ #
965
+ # @option params [required, String] :policy_type
966
+ # Use this parameter to limit the returned policies to only the policies
967
+ # that match the policy type that you specify. Currently, the only valid
968
+ # value is `DATA_PROTECTION_POLICY`.
969
+ #
970
+ # @option params [String] :policy_name
971
+ # Use this parameter to limit the returned policies to only the policy
972
+ # with the name that you specify.
973
+ #
974
+ # @option params [Array<String>] :account_identifiers
975
+ # If you are using an account that is set up as a monitoring account for
976
+ # CloudWatch unified cross-account observability, you can use this to
977
+ # specify the account ID of a source account. If you do, the operation
978
+ # returns the account policy for the specified account. Currently, you
979
+ # can specify only one account ID in this parameter.
980
+ #
981
+ # If you omit this parameter, only the policy in the current account is
982
+ # returned.
983
+ #
984
+ # @return [Types::DescribeAccountPoliciesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
985
+ #
986
+ # * {Types::DescribeAccountPoliciesResponse#account_policies #account_policies} => Array&lt;Types::AccountPolicy&gt;
987
+ #
988
+ # @example Request syntax with placeholder values
989
+ #
990
+ # resp = client.describe_account_policies({
991
+ # policy_type: "DATA_PROTECTION_POLICY", # required, accepts DATA_PROTECTION_POLICY
992
+ # policy_name: "PolicyName",
993
+ # account_identifiers: ["AccountId"],
994
+ # })
995
+ #
996
+ # @example Response structure
997
+ #
998
+ # resp.account_policies #=> Array
999
+ # resp.account_policies[0].policy_name #=> String
1000
+ # resp.account_policies[0].policy_document #=> String
1001
+ # resp.account_policies[0].last_updated_time #=> Integer
1002
+ # resp.account_policies[0].policy_type #=> String, one of "DATA_PROTECTION_POLICY"
1003
+ # resp.account_policies[0].scope #=> String, one of "ALL"
1004
+ # resp.account_policies[0].account_id #=> String
1005
+ #
1006
+ # @see http://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/DescribeAccountPolicies AWS API Documentation
1007
+ #
1008
+ # @overload describe_account_policies(params = {})
1009
+ # @param [Hash] params ({})
1010
+ def describe_account_policies(params = {}, options = {})
1011
+ req = build_request(:describe_account_policies, params)
1012
+ req.send_request(options)
1013
+ end
1014
+
927
1015
  # Lists all your destinations. The results are ASCII-sorted by
928
1016
  # destination name.
929
1017
  #
@@ -1073,6 +1161,9 @@ module Aws::CloudWatchLogs
1073
1161
  # log groups named `FooBar`, `aws/Foo`, and `GroupFoo` would match, but
1074
1162
  # `foo`, `F/o/o` and `Froo` would not match.
1075
1163
  #
1164
+ # If you specify `logGroupNamePattern` in your request, then only `arn`,
1165
+ # `creationTime`, and `logGroupName` are included in the response.
1166
+ #
1076
1167
  # <note markdown="1"> `logGroupNamePattern` and `logGroupNamePrefix` are mutually exclusive.
1077
1168
  # Only one of these parameters can be passed.
1078
1169
  #
@@ -1096,12 +1187,6 @@ module Aws::CloudWatchLogs
1096
1187
  # account and all log groups in all source accounts that are linked to
1097
1188
  # the monitoring account.
1098
1189
  #
1099
- # <note markdown="1"> If you specify `includeLinkedAccounts` in your request, then
1100
- # `metricFilterCount`, `retentionInDays`, and `storedBytes` are not
1101
- # included in the response.
1102
- #
1103
- # </note>
1104
- #
1105
1190
  # @return [Types::DescribeLogGroupsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1106
1191
  #
1107
1192
  # * {Types::DescribeLogGroupsResponse#log_groups #log_groups} => Array&lt;Types::LogGroup&gt;
@@ -1131,6 +1216,8 @@ module Aws::CloudWatchLogs
1131
1216
  # resp.log_groups[0].stored_bytes #=> Integer
1132
1217
  # resp.log_groups[0].kms_key_id #=> String
1133
1218
  # resp.log_groups[0].data_protection_status #=> String, one of "ACTIVATED", "DELETED", "ARCHIVED", "DISABLED"
1219
+ # resp.log_groups[0].inherited_properties #=> Array
1220
+ # resp.log_groups[0].inherited_properties[0] #=> String, one of "ACCOUNT_DATA_PROTECTION"
1134
1221
  # resp.next_token #=> String
1135
1222
  #
1136
1223
  # @see http://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/DescribeLogGroups AWS API Documentation
@@ -1561,7 +1648,7 @@ module Aws::CloudWatchLogs
1561
1648
  # log events or filter the results using a filter pattern, a time range,
1562
1649
  # and the name of the log stream.
1563
1650
  #
1564
- # You must have the `logs;FilterLogEvents` permission to perform this
1651
+ # You must have the `logs:FilterLogEvents` permission to perform this
1565
1652
  # operation.
1566
1653
  #
1567
1654
  # You can specify the log group to search by using either
@@ -2132,6 +2219,141 @@ module Aws::CloudWatchLogs
2132
2219
  req.send_request(options)
2133
2220
  end
2134
2221
 
2222
+ # Creates an account-level data protection policy that applies to all
2223
+ # log groups in the account. A data protection policy can help safeguard
2224
+ # sensitive data that's ingested by your log groups by auditing and
2225
+ # masking the sensitive log data. Each account can have only one
2226
+ # account-level policy.
2227
+ #
2228
+ # Sensitive data is detected and masked when it is ingested into a log
2229
+ # group. When you set a data protection policy, log events ingested into
2230
+ # the log groups before that time are not masked.
2231
+ #
2232
+ # If you use `PutAccountPolicy` to create a data protection policy for
2233
+ # your whole account, it applies to both existing log groups and all log
2234
+ # groups that are created later in this account. The account policy is
2235
+ # applied to existing log groups with eventual consistency. It might
2236
+ # take up to 5 minutes before sensitive data in existing log groups
2237
+ # begins to be masked.
2238
+ #
2239
+ # By default, when a user views a log event that includes masked data,
2240
+ # the sensitive data is replaced by asterisks. A user who has the
2241
+ # `logs:Unmask` permission can use a [GetLogEvents][1] or
2242
+ # [FilterLogEvents][2] operation with the `unmask` parameter set to
2243
+ # `true` to view the unmasked log events. Users with the `logs:Unmask`
2244
+ # can also view unmasked data in the CloudWatch Logs console by running
2245
+ # a CloudWatch Logs Insights query with the `unmask` query command.
2246
+ #
2247
+ # For more information, including a list of types of data that can be
2248
+ # audited and masked, see [Protect sensitive log data with masking][3].
2249
+ #
2250
+ # To use the `PutAccountPolicy` operation, you must be signed on with
2251
+ # the `logs:PutDataProtectionPolicy` and `logs:PutAccountPolicy`
2252
+ # permissions.
2253
+ #
2254
+ # The `PutAccountPolicy` operation applies to all log groups in the
2255
+ # account. You can also use [PutDataProtectionPolicy][4] to create a
2256
+ # data protection policy that applies to just one log group. If a log
2257
+ # group has its own data protection policy and the account also has an
2258
+ # account-level data protection policy, then the two policies are
2259
+ # cumulative. Any sensitive term specified in either policy is masked.
2260
+ #
2261
+ #
2262
+ #
2263
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_GetLogEvents.html
2264
+ # [2]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_FilterLogEvents.html
2265
+ # [3]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html
2266
+ # [4]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDataProtectionPolicy.html
2267
+ #
2268
+ # @option params [required, String] :policy_name
2269
+ # A name for the policy. This must be unique within the account.
2270
+ #
2271
+ # @option params [required, String] :policy_document
2272
+ # Specify the data protection policy, in JSON.
2273
+ #
2274
+ # This policy must include two JSON blocks:
2275
+ #
2276
+ # * The first block must include both a `DataIdentifer` array and an
2277
+ # `Operation` property with an `Audit` action. The `DataIdentifer`
2278
+ # array lists the types of sensitive data that you want to mask. For
2279
+ # more information about the available options, see [Types of data
2280
+ # that you can mask][1].
2281
+ #
2282
+ # The `Operation` property with an `Audit` action is required to find
2283
+ # the sensitive data terms. This `Audit` action must contain a
2284
+ # `FindingsDestination` object. You can optionally use that
2285
+ # `FindingsDestination` object to list one or more destinations to
2286
+ # send audit findings to. If you specify destinations such as log
2287
+ # groups, Kinesis Data Firehose streams, and S3 buckets, they must
2288
+ # already exist.
2289
+ #
2290
+ # * The second block must include both a `DataIdentifer` array and an
2291
+ # `Operation` property with an `Deidentify` action. The
2292
+ # `DataIdentifer` array must exactly match the `DataIdentifer` array
2293
+ # in the first block of the policy.
2294
+ #
2295
+ # The `Operation` property with the `Deidentify` action is what
2296
+ # actually masks the data, and it must contain the ` "MaskConfig":
2297
+ # \{\}` object. The ` "MaskConfig": \{\}` object must be empty.
2298
+ #
2299
+ # For an example data protection policy, see the **Examples** section on
2300
+ # this page.
2301
+ #
2302
+ # The contents of the two `DataIdentifer` arrays must match exactly.
2303
+ #
2304
+ # In addition to the two JSON blocks, the `policyDocument` can also
2305
+ # include `Name`, `Description`, and `Version` fields. The `Name` is
2306
+ # different than the operation's `policyName` parameter, and is used as
2307
+ # a dimension when CloudWatch Logs reports audit findings metrics to
2308
+ # CloudWatch.
2309
+ #
2310
+ # The JSON specified in `policyDocument` can be up to 30,720 characters.
2311
+ #
2312
+ #
2313
+ #
2314
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data-types.html
2315
+ #
2316
+ # @option params [required, String] :policy_type
2317
+ # Currently the only valid value for this parameter is
2318
+ # `DATA_PROTECTION_POLICY`.
2319
+ #
2320
+ # @option params [String] :scope
2321
+ # Currently the only valid value for this parameter is `GLOBAL`, which
2322
+ # specifies that the data protection policy applies to all log groups in
2323
+ # the account. If you omit this parameter, the default of `GLOBAL` is
2324
+ # used.
2325
+ #
2326
+ # @return [Types::PutAccountPolicyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2327
+ #
2328
+ # * {Types::PutAccountPolicyResponse#account_policy #account_policy} => Types::AccountPolicy
2329
+ #
2330
+ # @example Request syntax with placeholder values
2331
+ #
2332
+ # resp = client.put_account_policy({
2333
+ # policy_name: "PolicyName", # required
2334
+ # policy_document: "AccountPolicyDocument", # required
2335
+ # policy_type: "DATA_PROTECTION_POLICY", # required, accepts DATA_PROTECTION_POLICY
2336
+ # scope: "ALL", # accepts ALL
2337
+ # })
2338
+ #
2339
+ # @example Response structure
2340
+ #
2341
+ # resp.account_policy.policy_name #=> String
2342
+ # resp.account_policy.policy_document #=> String
2343
+ # resp.account_policy.last_updated_time #=> Integer
2344
+ # resp.account_policy.policy_type #=> String, one of "DATA_PROTECTION_POLICY"
2345
+ # resp.account_policy.scope #=> String, one of "ALL"
2346
+ # resp.account_policy.account_id #=> String
2347
+ #
2348
+ # @see http://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/PutAccountPolicy AWS API Documentation
2349
+ #
2350
+ # @overload put_account_policy(params = {})
2351
+ # @param [Hash] params ({})
2352
+ def put_account_policy(params = {}, options = {})
2353
+ req = build_request(:put_account_policy, params)
2354
+ req.send_request(options)
2355
+ end
2356
+
2135
2357
  # Creates a data protection policy for the specified log group. A data
2136
2358
  # protection policy can help safeguard sensitive data that's ingested
2137
2359
  # by the log group by auditing and masking the sensitive log data.
@@ -2151,11 +2373,21 @@ module Aws::CloudWatchLogs
2151
2373
  # For more information, including a list of types of data that can be
2152
2374
  # audited and masked, see [Protect sensitive log data with masking][3].
2153
2375
  #
2376
+ # The `PutDataProtectionPolicy` operation applies to only the specified
2377
+ # log group. You can also use [PutAccountPolicy][4] to create an
2378
+ # account-level data protection policy that applies to all log groups in
2379
+ # the account, including both existing log groups and log groups that
2380
+ # are created level. If a log group has its own data protection policy
2381
+ # and the account also has an account-level data protection policy, then
2382
+ # the two policies are cumulative. Any sensitive term specified in
2383
+ # either policy is masked.
2384
+ #
2154
2385
  #
2155
2386
  #
2156
2387
  # [1]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_GetLogEvents.html
2157
2388
  # [2]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_FilterLogEvents.html
2158
2389
  # [3]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html
2390
+ # [4]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutAccountPolicy.html
2159
2391
  #
2160
2392
  # @option params [required, String] :log_group_identifier
2161
2393
  # Specify either the log group name or log group ARN.
@@ -2191,7 +2423,14 @@ module Aws::CloudWatchLogs
2191
2423
  # For an example data protection policy, see the **Examples** section on
2192
2424
  # this page.
2193
2425
  #
2194
- # The contents of two `DataIdentifer` arrays must match exactly.
2426
+ # The contents of the two `DataIdentifer` arrays must match exactly.
2427
+ #
2428
+ # In addition to the two JSON blocks, the `policyDocument` can also
2429
+ # include `Name`, `Description`, and `Version` fields. The `Name` is
2430
+ # used as a dimension when CloudWatch Logs reports audit findings
2431
+ # metrics to CloudWatch.
2432
+ #
2433
+ # The JSON specified in `policyDocument` can be up to 30,720 characters.
2195
2434
  #
2196
2435
  #
2197
2436
  #
@@ -2323,11 +2562,11 @@ module Aws::CloudWatchLogs
2323
2562
  # @option params [Boolean] :force_update
2324
2563
  # Specify true if you are updating an existing destination policy to
2325
2564
  # grant permission to an organization ID instead of granting permission
2326
- # to individual AWS accounts. Before you update a destination policy
2327
- # this way, you must first update the subscription filters in the
2328
- # accounts that send logs to this destination. If you do not, the
2329
- # subscription filters might stop working. By specifying `true` for
2330
- # `forceUpdate`, you are affirming that you have already updated the
2565
+ # to individual Amazon Web Services accounts. Before you update a
2566
+ # destination policy this way, you must first update the subscription
2567
+ # filters in the accounts that send logs to this destination. If you do
2568
+ # not, the subscription filters might stop working. By specifying `true`
2569
+ # for `forceUpdate`, you are affirming that you have already updated the
2331
2570
  # subscription filters. For more information, see [ Updating an existing
2332
2571
  # cross-account subscription][1]
2333
2572
  #
@@ -2387,6 +2626,8 @@ module Aws::CloudWatchLogs
2387
2626
  # * A batch of log events in a single request cannot span more than 24
2388
2627
  # hours. Otherwise, the operation fails.
2389
2628
  #
2629
+ # * Each log event can be no larger than 256 KB.
2630
+ #
2390
2631
  # * The maximum number of log events in a batch is 10,000.
2391
2632
  #
2392
2633
  # * The quota of five requests per second per log stream has been
@@ -2703,7 +2944,7 @@ module Aws::CloudWatchLogs
2703
2944
  # @option params [required, Integer] :retention_in_days
2704
2945
  # The number of days to retain the log events in the specified log
2705
2946
  # group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180,
2706
- # 365, 400, 545, 731, 1827, 2192, 2557, 2922, 3288, and 3653.
2947
+ # 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, and 3653.
2707
2948
  #
2708
2949
  # To set a log group so that its log events do not expire, use
2709
2950
  # [DeleteRetentionPolicy][1].
@@ -2755,8 +2996,9 @@ module Aws::CloudWatchLogs
2755
2996
  # it. If you are updating an existing filter, you must specify the
2756
2997
  # correct name in `filterName`.
2757
2998
  #
2758
- # To perform a `PutSubscriptionFilter` operation, you must also have the
2759
- # `iam:PassRole` permission.
2999
+ # To perform a `PutSubscriptionFilter` operation for any destination
3000
+ # except a Lambda function, you must also have the `iam:PassRole`
3001
+ # permission.
2760
3002
  #
2761
3003
  #
2762
3004
  #
@@ -2843,7 +3085,7 @@ module Aws::CloudWatchLogs
2843
3085
  #
2844
3086
  # For more information, see [CloudWatch Logs Insights Query Syntax][1].
2845
3087
  #
2846
- # Queries time out after 15 minutes of runtime. If your queries are
3088
+ # Queries time out after 60 minutes of runtime. If your queries are
2847
3089
  # timing out, reduce the time range being searched or partition your
2848
3090
  # query into a number of queries.
2849
3091
  #
@@ -2853,7 +3095,7 @@ module Aws::CloudWatchLogs
2853
3095
  # observability][2]. For a cross-account `StartQuery` operation, the
2854
3096
  # query definition must be defined in the monitoring account.
2855
3097
  #
2856
- # You can have up to 20 concurrent CloudWatch Logs insights queries,
3098
+ # You can have up to 30 concurrent CloudWatch Logs insights queries,
2857
3099
  # including queries that have been added to dashboards.
2858
3100
  #
2859
3101
  #
@@ -3219,7 +3461,7 @@ module Aws::CloudWatchLogs
3219
3461
  params: params,
3220
3462
  config: config)
3221
3463
  context[:gem_name] = 'aws-sdk-cloudwatchlogs'
3222
- context[:gem_version] = '1.62.0'
3464
+ context[:gem_version] = '1.64.0'
3223
3465
  Seahorse::Client::Request.new(handlers, context)
3224
3466
  end
3225
3467
 
@@ -16,6 +16,9 @@ module Aws::CloudWatchLogs
16
16
  AccessPolicy = Shapes::StringShape.new(name: 'AccessPolicy')
17
17
  AccountId = Shapes::StringShape.new(name: 'AccountId')
18
18
  AccountIds = Shapes::ListShape.new(name: 'AccountIds')
19
+ AccountPolicies = Shapes::ListShape.new(name: 'AccountPolicies')
20
+ AccountPolicy = Shapes::StructureShape.new(name: 'AccountPolicy')
21
+ AccountPolicyDocument = Shapes::StringShape.new(name: 'AccountPolicyDocument')
19
22
  AmazonResourceName = Shapes::StringShape.new(name: 'AmazonResourceName')
20
23
  Arn = Shapes::StringShape.new(name: 'Arn')
21
24
  AssociateKmsKeyRequest = Shapes::StructureShape.new(name: 'AssociateKmsKeyRequest')
@@ -29,6 +32,7 @@ module Aws::CloudWatchLogs
29
32
  DataProtectionStatus = Shapes::StringShape.new(name: 'DataProtectionStatus')
30
33
  Days = Shapes::IntegerShape.new(name: 'Days')
31
34
  DefaultValue = Shapes::FloatShape.new(name: 'DefaultValue')
35
+ DeleteAccountPolicyRequest = Shapes::StructureShape.new(name: 'DeleteAccountPolicyRequest')
32
36
  DeleteDataProtectionPolicyRequest = Shapes::StructureShape.new(name: 'DeleteDataProtectionPolicyRequest')
33
37
  DeleteDestinationRequest = Shapes::StructureShape.new(name: 'DeleteDestinationRequest')
34
38
  DeleteLogGroupRequest = Shapes::StructureShape.new(name: 'DeleteLogGroupRequest')
@@ -40,6 +44,8 @@ module Aws::CloudWatchLogs
40
44
  DeleteRetentionPolicyRequest = Shapes::StructureShape.new(name: 'DeleteRetentionPolicyRequest')
41
45
  DeleteSubscriptionFilterRequest = Shapes::StructureShape.new(name: 'DeleteSubscriptionFilterRequest')
42
46
  Descending = Shapes::BooleanShape.new(name: 'Descending')
47
+ DescribeAccountPoliciesRequest = Shapes::StructureShape.new(name: 'DescribeAccountPoliciesRequest')
48
+ DescribeAccountPoliciesResponse = Shapes::StructureShape.new(name: 'DescribeAccountPoliciesResponse')
43
49
  DescribeDestinationsRequest = Shapes::StructureShape.new(name: 'DescribeDestinationsRequest')
44
50
  DescribeDestinationsResponse = Shapes::StructureShape.new(name: 'DescribeDestinationsResponse')
45
51
  DescribeExportTasksRequest = Shapes::StructureShape.new(name: 'DescribeExportTasksRequest')
@@ -104,6 +110,8 @@ module Aws::CloudWatchLogs
104
110
  GetQueryResultsRequest = Shapes::StructureShape.new(name: 'GetQueryResultsRequest')
105
111
  GetQueryResultsResponse = Shapes::StructureShape.new(name: 'GetQueryResultsResponse')
106
112
  IncludeLinkedAccounts = Shapes::BooleanShape.new(name: 'IncludeLinkedAccounts')
113
+ InheritedProperties = Shapes::ListShape.new(name: 'InheritedProperties')
114
+ InheritedProperty = Shapes::StringShape.new(name: 'InheritedProperty')
107
115
  InputLogEvent = Shapes::StructureShape.new(name: 'InputLogEvent')
108
116
  InputLogEvents = Shapes::ListShape.new(name: 'InputLogEvents')
109
117
  InputLogStreamNames = Shapes::ListShape.new(name: 'InputLogStreamNames')
@@ -152,6 +160,9 @@ module Aws::CloudWatchLogs
152
160
  Percentage = Shapes::IntegerShape.new(name: 'Percentage')
153
161
  PolicyDocument = Shapes::StringShape.new(name: 'PolicyDocument')
154
162
  PolicyName = Shapes::StringShape.new(name: 'PolicyName')
163
+ PolicyType = Shapes::StringShape.new(name: 'PolicyType')
164
+ PutAccountPolicyRequest = Shapes::StructureShape.new(name: 'PutAccountPolicyRequest')
165
+ PutAccountPolicyResponse = Shapes::StructureShape.new(name: 'PutAccountPolicyResponse')
155
166
  PutDataProtectionPolicyRequest = Shapes::StructureShape.new(name: 'PutDataProtectionPolicyRequest')
156
167
  PutDataProtectionPolicyResponse = Shapes::StructureShape.new(name: 'PutDataProtectionPolicyResponse')
157
168
  PutDestinationPolicyRequest = Shapes::StructureShape.new(name: 'PutDestinationPolicyRequest')
@@ -189,6 +200,7 @@ module Aws::CloudWatchLogs
189
200
  ResultField = Shapes::StructureShape.new(name: 'ResultField')
190
201
  ResultRows = Shapes::ListShape.new(name: 'ResultRows')
191
202
  RoleArn = Shapes::StringShape.new(name: 'RoleArn')
203
+ Scope = Shapes::StringShape.new(name: 'Scope')
192
204
  SearchedLogStream = Shapes::StructureShape.new(name: 'SearchedLogStream')
193
205
  SearchedLogStreams = Shapes::ListShape.new(name: 'SearchedLogStreams')
194
206
  SequenceToken = Shapes::StringShape.new(name: 'SequenceToken')
@@ -226,6 +238,16 @@ module Aws::CloudWatchLogs
226
238
 
227
239
  AccountIds.member = Shapes::ShapeRef.new(shape: AccountId)
228
240
 
241
+ AccountPolicies.member = Shapes::ShapeRef.new(shape: AccountPolicy)
242
+
243
+ AccountPolicy.add_member(:policy_name, Shapes::ShapeRef.new(shape: PolicyName, location_name: "policyName"))
244
+ AccountPolicy.add_member(:policy_document, Shapes::ShapeRef.new(shape: AccountPolicyDocument, location_name: "policyDocument"))
245
+ AccountPolicy.add_member(:last_updated_time, Shapes::ShapeRef.new(shape: Timestamp, location_name: "lastUpdatedTime"))
246
+ AccountPolicy.add_member(:policy_type, Shapes::ShapeRef.new(shape: PolicyType, location_name: "policyType"))
247
+ AccountPolicy.add_member(:scope, Shapes::ShapeRef.new(shape: Scope, location_name: "scope"))
248
+ AccountPolicy.add_member(:account_id, Shapes::ShapeRef.new(shape: AccountId, location_name: "accountId"))
249
+ AccountPolicy.struct_class = Types::AccountPolicy
250
+
229
251
  AssociateKmsKeyRequest.add_member(:log_group_name, Shapes::ShapeRef.new(shape: LogGroupName, required: true, location_name: "logGroupName"))
230
252
  AssociateKmsKeyRequest.add_member(:kms_key_id, Shapes::ShapeRef.new(shape: KmsKeyId, required: true, location_name: "kmsKeyId"))
231
253
  AssociateKmsKeyRequest.struct_class = Types::AssociateKmsKeyRequest
@@ -257,6 +279,10 @@ module Aws::CloudWatchLogs
257
279
  DataAlreadyAcceptedException.add_member(:expected_sequence_token, Shapes::ShapeRef.new(shape: SequenceToken, location_name: "expectedSequenceToken"))
258
280
  DataAlreadyAcceptedException.struct_class = Types::DataAlreadyAcceptedException
259
281
 
282
+ DeleteAccountPolicyRequest.add_member(:policy_name, Shapes::ShapeRef.new(shape: PolicyName, required: true, location_name: "policyName"))
283
+ DeleteAccountPolicyRequest.add_member(:policy_type, Shapes::ShapeRef.new(shape: PolicyType, required: true, location_name: "policyType"))
284
+ DeleteAccountPolicyRequest.struct_class = Types::DeleteAccountPolicyRequest
285
+
260
286
  DeleteDataProtectionPolicyRequest.add_member(:log_group_identifier, Shapes::ShapeRef.new(shape: LogGroupIdentifier, required: true, location_name: "logGroupIdentifier"))
261
287
  DeleteDataProtectionPolicyRequest.struct_class = Types::DeleteDataProtectionPolicyRequest
262
288
 
@@ -290,6 +316,14 @@ module Aws::CloudWatchLogs
290
316
  DeleteSubscriptionFilterRequest.add_member(:filter_name, Shapes::ShapeRef.new(shape: FilterName, required: true, location_name: "filterName"))
291
317
  DeleteSubscriptionFilterRequest.struct_class = Types::DeleteSubscriptionFilterRequest
292
318
 
319
+ DescribeAccountPoliciesRequest.add_member(:policy_type, Shapes::ShapeRef.new(shape: PolicyType, required: true, location_name: "policyType"))
320
+ DescribeAccountPoliciesRequest.add_member(:policy_name, Shapes::ShapeRef.new(shape: PolicyName, location_name: "policyName"))
321
+ DescribeAccountPoliciesRequest.add_member(:account_identifiers, Shapes::ShapeRef.new(shape: AccountIds, location_name: "accountIdentifiers"))
322
+ DescribeAccountPoliciesRequest.struct_class = Types::DescribeAccountPoliciesRequest
323
+
324
+ DescribeAccountPoliciesResponse.add_member(:account_policies, Shapes::ShapeRef.new(shape: AccountPolicies, location_name: "accountPolicies"))
325
+ DescribeAccountPoliciesResponse.struct_class = Types::DescribeAccountPoliciesResponse
326
+
293
327
  DescribeDestinationsRequest.add_member(:destination_name_prefix, Shapes::ShapeRef.new(shape: DestinationName, location_name: "DestinationNamePrefix"))
294
328
  DescribeDestinationsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
295
329
  DescribeDestinationsRequest.add_member(:limit, Shapes::ShapeRef.new(shape: DescribeLimit, location_name: "limit"))
@@ -497,6 +531,8 @@ module Aws::CloudWatchLogs
497
531
  GetQueryResultsResponse.add_member(:status, Shapes::ShapeRef.new(shape: QueryStatus, location_name: "status"))
498
532
  GetQueryResultsResponse.struct_class = Types::GetQueryResultsResponse
499
533
 
534
+ InheritedProperties.member = Shapes::ShapeRef.new(shape: InheritedProperty)
535
+
500
536
  InputLogEvent.add_member(:timestamp, Shapes::ShapeRef.new(shape: Timestamp, required: true, location_name: "timestamp"))
501
537
  InputLogEvent.add_member(:message, Shapes::ShapeRef.new(shape: EventMessage, required: true, location_name: "message"))
502
538
  InputLogEvent.struct_class = Types::InputLogEvent
@@ -534,6 +570,7 @@ module Aws::CloudWatchLogs
534
570
  LogGroup.add_member(:stored_bytes, Shapes::ShapeRef.new(shape: StoredBytes, location_name: "storedBytes"))
535
571
  LogGroup.add_member(:kms_key_id, Shapes::ShapeRef.new(shape: KmsKeyId, location_name: "kmsKeyId"))
536
572
  LogGroup.add_member(:data_protection_status, Shapes::ShapeRef.new(shape: DataProtectionStatus, location_name: "dataProtectionStatus"))
573
+ LogGroup.add_member(:inherited_properties, Shapes::ShapeRef.new(shape: InheritedProperties, location_name: "inheritedProperties"))
537
574
  LogGroup.struct_class = Types::LogGroup
538
575
 
539
576
  LogGroupField.add_member(:name, Shapes::ShapeRef.new(shape: Field, location_name: "name"))
@@ -601,6 +638,15 @@ module Aws::CloudWatchLogs
601
638
 
602
639
  OutputLogEvents.member = Shapes::ShapeRef.new(shape: OutputLogEvent)
603
640
 
641
+ PutAccountPolicyRequest.add_member(:policy_name, Shapes::ShapeRef.new(shape: PolicyName, required: true, location_name: "policyName"))
642
+ PutAccountPolicyRequest.add_member(:policy_document, Shapes::ShapeRef.new(shape: AccountPolicyDocument, required: true, location_name: "policyDocument"))
643
+ PutAccountPolicyRequest.add_member(:policy_type, Shapes::ShapeRef.new(shape: PolicyType, required: true, location_name: "policyType"))
644
+ PutAccountPolicyRequest.add_member(:scope, Shapes::ShapeRef.new(shape: Scope, location_name: "scope"))
645
+ PutAccountPolicyRequest.struct_class = Types::PutAccountPolicyRequest
646
+
647
+ PutAccountPolicyResponse.add_member(:account_policy, Shapes::ShapeRef.new(shape: AccountPolicy, location_name: "accountPolicy"))
648
+ PutAccountPolicyResponse.struct_class = Types::PutAccountPolicyResponse
649
+
604
650
  PutDataProtectionPolicyRequest.add_member(:log_group_identifier, Shapes::ShapeRef.new(shape: LogGroupIdentifier, required: true, location_name: "logGroupIdentifier"))
605
651
  PutDataProtectionPolicyRequest.add_member(:policy_document, Shapes::ShapeRef.new(shape: DataProtectionPolicyDocument, required: true, location_name: "policyDocument"))
606
652
  PutDataProtectionPolicyRequest.struct_class = Types::PutDataProtectionPolicyRequest
@@ -879,6 +925,18 @@ module Aws::CloudWatchLogs
879
925
  o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
880
926
  end)
881
927
 
928
+ api.add_operation(:delete_account_policy, Seahorse::Model::Operation.new.tap do |o|
929
+ o.name = "DeleteAccountPolicy"
930
+ o.http_method = "POST"
931
+ o.http_request_uri = "/"
932
+ o.input = Shapes::ShapeRef.new(shape: DeleteAccountPolicyRequest)
933
+ o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
934
+ o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
935
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
936
+ o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
937
+ o.errors << Shapes::ShapeRef.new(shape: OperationAbortedException)
938
+ end)
939
+
882
940
  api.add_operation(:delete_data_protection_policy, Seahorse::Model::Operation.new.tap do |o|
883
941
  o.name = "DeleteDataProtectionPolicy"
884
942
  o.http_method = "POST"
@@ -985,6 +1043,18 @@ module Aws::CloudWatchLogs
985
1043
  o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
986
1044
  end)
987
1045
 
1046
+ api.add_operation(:describe_account_policies, Seahorse::Model::Operation.new.tap do |o|
1047
+ o.name = "DescribeAccountPolicies"
1048
+ o.http_method = "POST"
1049
+ o.http_request_uri = "/"
1050
+ o.input = Shapes::ShapeRef.new(shape: DescribeAccountPoliciesRequest)
1051
+ o.output = Shapes::ShapeRef.new(shape: DescribeAccountPoliciesResponse)
1052
+ o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
1053
+ o.errors << Shapes::ShapeRef.new(shape: OperationAbortedException)
1054
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
1055
+ o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
1056
+ end)
1057
+
988
1058
  api.add_operation(:describe_destinations, Seahorse::Model::Operation.new.tap do |o|
989
1059
  o.name = "DescribeDestinations"
990
1060
  o.http_method = "POST"
@@ -1224,6 +1294,18 @@ module Aws::CloudWatchLogs
1224
1294
  o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
1225
1295
  end)
1226
1296
 
1297
+ api.add_operation(:put_account_policy, Seahorse::Model::Operation.new.tap do |o|
1298
+ o.name = "PutAccountPolicy"
1299
+ o.http_method = "POST"
1300
+ o.http_request_uri = "/"
1301
+ o.input = Shapes::ShapeRef.new(shape: PutAccountPolicyRequest)
1302
+ o.output = Shapes::ShapeRef.new(shape: PutAccountPolicyResponse)
1303
+ o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
1304
+ o.errors << Shapes::ShapeRef.new(shape: OperationAbortedException)
1305
+ o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
1306
+ o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
1307
+ end)
1308
+
1227
1309
  api.add_operation(:put_data_protection_policy, Seahorse::Model::Operation.new.tap do |o|
1228
1310
  o.name = "PutDataProtectionPolicy"
1229
1311
  o.http_method = "POST"
@@ -50,9 +50,6 @@ module Aws::CloudWatchLogs
50
50
 
51
51
  def initialize(options = {})
52
52
  self[:region] = options[:region]
53
- if self[:region].nil?
54
- raise ArgumentError, "Missing required EndpointParameter: :region"
55
- end
56
53
  self[:use_dual_stack] = options[:use_dual_stack]
57
54
  self[:use_dual_stack] = false if self[:use_dual_stack].nil?
58
55
  if self[:use_dual_stack].nil?
@@ -14,42 +14,45 @@ module Aws::CloudWatchLogs
14
14
  use_dual_stack = parameters.use_dual_stack
15
15
  use_fips = parameters.use_fips
16
16
  endpoint = parameters.endpoint
17
- if (partition_result = Aws::Endpoints::Matchers.aws_partition(region))
18
- if Aws::Endpoints::Matchers.set?(endpoint)
19
- if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
20
- raise ArgumentError, "Invalid Configuration: FIPS and custom endpoint are not supported"
21
- end
22
- if Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
23
- raise ArgumentError, "Invalid Configuration: Dualstack and custom endpoint are not supported"
24
- end
25
- return Aws::Endpoints::Endpoint.new(url: endpoint, headers: {}, properties: {})
17
+ if Aws::Endpoints::Matchers.set?(endpoint)
18
+ if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
19
+ raise ArgumentError, "Invalid Configuration: FIPS and custom endpoint are not supported"
26
20
  end
27
- if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true) && Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
28
- if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsFIPS")) && Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsDualStack"))
29
- return Aws::Endpoints::Endpoint.new(url: "https://logs-fips.#{region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
30
- end
31
- raise ArgumentError, "FIPS and DualStack are enabled, but this partition does not support one or both"
21
+ if Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
22
+ raise ArgumentError, "Invalid Configuration: Dualstack and custom endpoint are not supported"
32
23
  end
33
- if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
34
- if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsFIPS"))
35
- if Aws::Endpoints::Matchers.string_equals?(region, "us-gov-east-1")
36
- return Aws::Endpoints::Endpoint.new(url: "https://logs.us-gov-east-1.amazonaws.com", headers: {}, properties: {})
24
+ return Aws::Endpoints::Endpoint.new(url: endpoint, headers: {}, properties: {})
25
+ end
26
+ if Aws::Endpoints::Matchers.set?(region)
27
+ if (partition_result = Aws::Endpoints::Matchers.aws_partition(region))
28
+ if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true) && Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
29
+ if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsFIPS")) && Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsDualStack"))
30
+ return Aws::Endpoints::Endpoint.new(url: "https://logs-fips.#{region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
37
31
  end
38
- if Aws::Endpoints::Matchers.string_equals?(region, "us-gov-west-1")
39
- return Aws::Endpoints::Endpoint.new(url: "https://logs.us-gov-west-1.amazonaws.com", headers: {}, properties: {})
32
+ raise ArgumentError, "FIPS and DualStack are enabled, but this partition does not support one or both"
33
+ end
34
+ if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
35
+ if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsFIPS"))
36
+ if Aws::Endpoints::Matchers.string_equals?(region, "us-gov-east-1")
37
+ return Aws::Endpoints::Endpoint.new(url: "https://logs.us-gov-east-1.amazonaws.com", headers: {}, properties: {})
38
+ end
39
+ if Aws::Endpoints::Matchers.string_equals?(region, "us-gov-west-1")
40
+ return Aws::Endpoints::Endpoint.new(url: "https://logs.us-gov-west-1.amazonaws.com", headers: {}, properties: {})
41
+ end
42
+ return Aws::Endpoints::Endpoint.new(url: "https://logs-fips.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
40
43
  end
41
- return Aws::Endpoints::Endpoint.new(url: "https://logs-fips.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
44
+ raise ArgumentError, "FIPS is enabled but this partition does not support FIPS"
42
45
  end
43
- raise ArgumentError, "FIPS is enabled but this partition does not support FIPS"
44
- end
45
- if Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
46
- if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsDualStack"))
47
- return Aws::Endpoints::Endpoint.new(url: "https://logs.#{region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
46
+ if Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
47
+ if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsDualStack"))
48
+ return Aws::Endpoints::Endpoint.new(url: "https://logs.#{region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
49
+ end
50
+ raise ArgumentError, "DualStack is enabled but this partition does not support DualStack"
48
51
  end
49
- raise ArgumentError, "DualStack is enabled but this partition does not support DualStack"
52
+ return Aws::Endpoints::Endpoint.new(url: "https://logs.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
50
53
  end
51
- return Aws::Endpoints::Endpoint.new(url: "https://logs.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
52
54
  end
55
+ raise ArgumentError, "Invalid Configuration: Missing Region"
53
56
  raise ArgumentError, 'No endpoint could be resolved'
54
57
 
55
58
  end
@@ -81,6 +81,20 @@ module Aws::CloudWatchLogs
81
81
  end
82
82
  end
83
83
 
84
+ class DeleteAccountPolicy
85
+ def self.build(context)
86
+ unless context.config.regional_endpoint
87
+ endpoint = context.config.endpoint.to_s
88
+ end
89
+ Aws::CloudWatchLogs::EndpointParameters.new(
90
+ region: context.config.region,
91
+ use_dual_stack: context.config.use_dualstack_endpoint,
92
+ use_fips: context.config.use_fips_endpoint,
93
+ endpoint: endpoint,
94
+ )
95
+ end
96
+ end
97
+
84
98
  class DeleteDataProtectionPolicy
85
99
  def self.build(context)
86
100
  unless context.config.regional_endpoint
@@ -207,6 +221,20 @@ module Aws::CloudWatchLogs
207
221
  end
208
222
  end
209
223
 
224
+ class DescribeAccountPolicies
225
+ def self.build(context)
226
+ unless context.config.regional_endpoint
227
+ endpoint = context.config.endpoint.to_s
228
+ end
229
+ Aws::CloudWatchLogs::EndpointParameters.new(
230
+ region: context.config.region,
231
+ use_dual_stack: context.config.use_dualstack_endpoint,
232
+ use_fips: context.config.use_fips_endpoint,
233
+ endpoint: endpoint,
234
+ )
235
+ end
236
+ end
237
+
210
238
  class DescribeDestinations
211
239
  def self.build(context)
212
240
  unless context.config.regional_endpoint
@@ -459,6 +487,20 @@ module Aws::CloudWatchLogs
459
487
  end
460
488
  end
461
489
 
490
+ class PutAccountPolicy
491
+ def self.build(context)
492
+ unless context.config.regional_endpoint
493
+ endpoint = context.config.endpoint.to_s
494
+ end
495
+ Aws::CloudWatchLogs::EndpointParameters.new(
496
+ region: context.config.region,
497
+ use_dual_stack: context.config.use_dualstack_endpoint,
498
+ use_fips: context.config.use_fips_endpoint,
499
+ endpoint: endpoint,
500
+ )
501
+ end
502
+ end
503
+
462
504
  class PutDataProtectionPolicy
463
505
  def self.build(context)
464
506
  unless context.config.regional_endpoint
@@ -66,6 +66,8 @@ module Aws::CloudWatchLogs
66
66
  Aws::CloudWatchLogs::Endpoints::CreateLogGroup.build(context)
67
67
  when :create_log_stream
68
68
  Aws::CloudWatchLogs::Endpoints::CreateLogStream.build(context)
69
+ when :delete_account_policy
70
+ Aws::CloudWatchLogs::Endpoints::DeleteAccountPolicy.build(context)
69
71
  when :delete_data_protection_policy
70
72
  Aws::CloudWatchLogs::Endpoints::DeleteDataProtectionPolicy.build(context)
71
73
  when :delete_destination
@@ -84,6 +86,8 @@ module Aws::CloudWatchLogs
84
86
  Aws::CloudWatchLogs::Endpoints::DeleteRetentionPolicy.build(context)
85
87
  when :delete_subscription_filter
86
88
  Aws::CloudWatchLogs::Endpoints::DeleteSubscriptionFilter.build(context)
89
+ when :describe_account_policies
90
+ Aws::CloudWatchLogs::Endpoints::DescribeAccountPolicies.build(context)
87
91
  when :describe_destinations
88
92
  Aws::CloudWatchLogs::Endpoints::DescribeDestinations.build(context)
89
93
  when :describe_export_tasks
@@ -120,6 +124,8 @@ module Aws::CloudWatchLogs
120
124
  Aws::CloudWatchLogs::Endpoints::ListTagsForResource.build(context)
121
125
  when :list_tags_log_group
122
126
  Aws::CloudWatchLogs::Endpoints::ListTagsLogGroup.build(context)
127
+ when :put_account_policy
128
+ Aws::CloudWatchLogs::Endpoints::PutAccountPolicy.build(context)
123
129
  when :put_data_protection_policy
124
130
  Aws::CloudWatchLogs::Endpoints::PutDataProtectionPolicy.build(context)
125
131
  when :put_destination
@@ -10,6 +10,49 @@
10
10
  module Aws::CloudWatchLogs
11
11
  module Types
12
12
 
13
+ # A structure that contains information about one CloudWatch Logs
14
+ # account policy.
15
+ #
16
+ # @!attribute [rw] policy_name
17
+ # The name of the account policy.
18
+ # @return [String]
19
+ #
20
+ # @!attribute [rw] policy_document
21
+ # The policy document for this account policy.
22
+ #
23
+ # The JSON specified in `policyDocument` can be up to 30,720
24
+ # characters.
25
+ # @return [String]
26
+ #
27
+ # @!attribute [rw] last_updated_time
28
+ # The date and time that this policy was most recently updated.
29
+ # @return [Integer]
30
+ #
31
+ # @!attribute [rw] policy_type
32
+ # The type of policy for this account policy.
33
+ # @return [String]
34
+ #
35
+ # @!attribute [rw] scope
36
+ # The scope of the account policy.
37
+ # @return [String]
38
+ #
39
+ # @!attribute [rw] account_id
40
+ # The Amazon Web Services account ID that the policy applies to.
41
+ # @return [String]
42
+ #
43
+ # @see http://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/AccountPolicy AWS API Documentation
44
+ #
45
+ class AccountPolicy < Struct.new(
46
+ :policy_name,
47
+ :policy_document,
48
+ :last_updated_time,
49
+ :policy_type,
50
+ :scope,
51
+ :account_id)
52
+ SENSITIVE = []
53
+ include Aws::Structure
54
+ end
55
+
13
56
  # @!attribute [rw] log_group_name
14
57
  # The name of the log group.
15
58
  # @return [String]
@@ -186,6 +229,24 @@ module Aws::CloudWatchLogs
186
229
  include Aws::Structure
187
230
  end
188
231
 
232
+ # @!attribute [rw] policy_name
233
+ # The name of the policy to delete.
234
+ # @return [String]
235
+ #
236
+ # @!attribute [rw] policy_type
237
+ # The type of policy to delete. Currently, the only valid value is
238
+ # `DATA_PROTECTION_POLICY`.
239
+ # @return [String]
240
+ #
241
+ # @see http://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/DeleteAccountPolicyRequest AWS API Documentation
242
+ #
243
+ class DeleteAccountPolicyRequest < Struct.new(
244
+ :policy_name,
245
+ :policy_type)
246
+ SENSITIVE = []
247
+ include Aws::Structure
248
+ end
249
+
189
250
  # @!attribute [rw] log_group_identifier
190
251
  # The name or ARN of the log group that you want to delete the data
191
252
  # protection policy for.
@@ -329,6 +390,51 @@ module Aws::CloudWatchLogs
329
390
  include Aws::Structure
330
391
  end
331
392
 
393
+ # @!attribute [rw] policy_type
394
+ # Use this parameter to limit the returned policies to only the
395
+ # policies that match the policy type that you specify. Currently, the
396
+ # only valid value is `DATA_PROTECTION_POLICY`.
397
+ # @return [String]
398
+ #
399
+ # @!attribute [rw] policy_name
400
+ # Use this parameter to limit the returned policies to only the policy
401
+ # with the name that you specify.
402
+ # @return [String]
403
+ #
404
+ # @!attribute [rw] account_identifiers
405
+ # If you are using an account that is set up as a monitoring account
406
+ # for CloudWatch unified cross-account observability, you can use this
407
+ # to specify the account ID of a source account. If you do, the
408
+ # operation returns the account policy for the specified account.
409
+ # Currently, you can specify only one account ID in this parameter.
410
+ #
411
+ # If you omit this parameter, only the policy in the current account
412
+ # is returned.
413
+ # @return [Array<String>]
414
+ #
415
+ # @see http://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/DescribeAccountPoliciesRequest AWS API Documentation
416
+ #
417
+ class DescribeAccountPoliciesRequest < Struct.new(
418
+ :policy_type,
419
+ :policy_name,
420
+ :account_identifiers)
421
+ SENSITIVE = []
422
+ include Aws::Structure
423
+ end
424
+
425
+ # @!attribute [rw] account_policies
426
+ # An array of structures that contain information about the CloudWatch
427
+ # Logs account policies that match the specified filters.
428
+ # @return [Array<Types::AccountPolicy>]
429
+ #
430
+ # @see http://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/DescribeAccountPoliciesResponse AWS API Documentation
431
+ #
432
+ class DescribeAccountPoliciesResponse < Struct.new(
433
+ :account_policies)
434
+ SENSITIVE = []
435
+ include Aws::Structure
436
+ end
437
+
332
438
  # @!attribute [rw] destination_name_prefix
333
439
  # The prefix to match. If you don't specify a value, no prefix filter
334
440
  # is applied.
@@ -443,6 +549,10 @@ module Aws::CloudWatchLogs
443
549
  # log groups named `FooBar`, `aws/Foo`, and `GroupFoo` would match,
444
550
  # but `foo`, `F/o/o` and `Froo` would not match.
445
551
  #
552
+ # If you specify `logGroupNamePattern` in your request, then only
553
+ # `arn`, `creationTime`, and `logGroupName` are included in the
554
+ # response.
555
+ #
446
556
  # <note markdown="1"> `logGroupNamePattern` and `logGroupNamePrefix` are mutually
447
557
  # exclusive. Only one of these parameters can be passed.
448
558
  #
@@ -468,12 +578,6 @@ module Aws::CloudWatchLogs
468
578
  # a null value, the operation returns all log groups in the monitoring
469
579
  # account and all log groups in all source accounts that are linked to
470
580
  # the monitoring account.
471
- #
472
- # <note markdown="1"> If you specify `includeLinkedAccounts` in your request, then
473
- # `metricFilterCount`, `retentionInDays`, and `storedBytes` are not
474
- # included in the response.
475
- #
476
- # </note>
477
581
  # @return [Boolean]
478
582
  #
479
583
  # @see http://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/DescribeLogGroupsRequest AWS API Documentation
@@ -1434,7 +1538,7 @@ module Aws::CloudWatchLogs
1434
1538
  # are `Cancelled`, `Complete`, `Failed`, `Running`, `Scheduled`,
1435
1539
  # `Timeout`, and `Unknown`.
1436
1540
  #
1437
- # Queries time out after 15 minutes of runtime. To avoid having your
1541
+ # Queries time out after 60 minutes of runtime. To avoid having your
1438
1542
  # queries time out, reduce the time range being searched or partition
1439
1543
  # your query into a number of queries.
1440
1544
  # @return [String]
@@ -1458,7 +1562,7 @@ module Aws::CloudWatchLogs
1458
1562
  # @return [Integer]
1459
1563
  #
1460
1564
  # @!attribute [rw] message
1461
- # The raw event message.
1565
+ # The raw event message. Each log event can be no larger than 256 KB.
1462
1566
  # @return [String]
1463
1567
  #
1464
1568
  # @see http://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/InputLogEvent AWS API Documentation
@@ -1582,7 +1686,8 @@ module Aws::CloudWatchLogs
1582
1686
  # @!attribute [rw] retention_in_days
1583
1687
  # The number of days to retain the log events in the specified log
1584
1688
  # group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150,
1585
- # 180, 365, 400, 545, 731, 1827, 2192, 2557, 2922, 3288, and 3653.
1689
+ # 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, and
1690
+ # 3653.
1586
1691
  #
1587
1692
  # To set a log group so that its log events do not expire, use
1588
1693
  # [DeleteRetentionPolicy][1].
@@ -1619,6 +1724,11 @@ module Aws::CloudWatchLogs
1619
1724
  # [1]: https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDataProtectionPolicy.html
1620
1725
  # @return [String]
1621
1726
  #
1727
+ # @!attribute [rw] inherited_properties
1728
+ # Displays all the properties that this log group has inherited from
1729
+ # account-level settings.
1730
+ # @return [Array<String>]
1731
+ #
1622
1732
  # @see http://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/LogGroup AWS API Documentation
1623
1733
  #
1624
1734
  class LogGroup < Struct.new(
@@ -1629,7 +1739,8 @@ module Aws::CloudWatchLogs
1629
1739
  :arn,
1630
1740
  :stored_bytes,
1631
1741
  :kms_key_id,
1632
- :data_protection_status)
1742
+ :data_protection_status,
1743
+ :inherited_properties)
1633
1744
  SENSITIVE = []
1634
1745
  include Aws::Structure
1635
1746
  end
@@ -1916,6 +2027,92 @@ module Aws::CloudWatchLogs
1916
2027
  include Aws::Structure
1917
2028
  end
1918
2029
 
2030
+ # @!attribute [rw] policy_name
2031
+ # A name for the policy. This must be unique within the account.
2032
+ # @return [String]
2033
+ #
2034
+ # @!attribute [rw] policy_document
2035
+ # Specify the data protection policy, in JSON.
2036
+ #
2037
+ # This policy must include two JSON blocks:
2038
+ #
2039
+ # * The first block must include both a `DataIdentifer` array and an
2040
+ # `Operation` property with an `Audit` action. The `DataIdentifer`
2041
+ # array lists the types of sensitive data that you want to mask. For
2042
+ # more information about the available options, see [Types of data
2043
+ # that you can mask][1].
2044
+ #
2045
+ # The `Operation` property with an `Audit` action is required to
2046
+ # find the sensitive data terms. This `Audit` action must contain a
2047
+ # `FindingsDestination` object. You can optionally use that
2048
+ # `FindingsDestination` object to list one or more destinations to
2049
+ # send audit findings to. If you specify destinations such as log
2050
+ # groups, Kinesis Data Firehose streams, and S3 buckets, they must
2051
+ # already exist.
2052
+ #
2053
+ # * The second block must include both a `DataIdentifer` array and an
2054
+ # `Operation` property with an `Deidentify` action. The
2055
+ # `DataIdentifer` array must exactly match the `DataIdentifer` array
2056
+ # in the first block of the policy.
2057
+ #
2058
+ # The `Operation` property with the `Deidentify` action is what
2059
+ # actually masks the data, and it must contain the ` "MaskConfig":
2060
+ # \{\}` object. The ` "MaskConfig": \{\}` object must be empty.
2061
+ #
2062
+ # For an example data protection policy, see the **Examples** section
2063
+ # on this page.
2064
+ #
2065
+ # The contents of the two `DataIdentifer` arrays must match exactly.
2066
+ #
2067
+ # In addition to the two JSON blocks, the `policyDocument` can also
2068
+ # include `Name`, `Description`, and `Version` fields. The `Name` is
2069
+ # different than the operation's `policyName` parameter, and is used
2070
+ # as a dimension when CloudWatch Logs reports audit findings metrics
2071
+ # to CloudWatch.
2072
+ #
2073
+ # The JSON specified in `policyDocument` can be up to 30,720
2074
+ # characters.
2075
+ #
2076
+ #
2077
+ #
2078
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data-types.html
2079
+ # @return [String]
2080
+ #
2081
+ # @!attribute [rw] policy_type
2082
+ # Currently the only valid value for this parameter is
2083
+ # `DATA_PROTECTION_POLICY`.
2084
+ # @return [String]
2085
+ #
2086
+ # @!attribute [rw] scope
2087
+ # Currently the only valid value for this parameter is `GLOBAL`, which
2088
+ # specifies that the data protection policy applies to all log groups
2089
+ # in the account. If you omit this parameter, the default of `GLOBAL`
2090
+ # is used.
2091
+ # @return [String]
2092
+ #
2093
+ # @see http://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/PutAccountPolicyRequest AWS API Documentation
2094
+ #
2095
+ class PutAccountPolicyRequest < Struct.new(
2096
+ :policy_name,
2097
+ :policy_document,
2098
+ :policy_type,
2099
+ :scope)
2100
+ SENSITIVE = []
2101
+ include Aws::Structure
2102
+ end
2103
+
2104
+ # @!attribute [rw] account_policy
2105
+ # The account policy that you created.
2106
+ # @return [Types::AccountPolicy]
2107
+ #
2108
+ # @see http://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/PutAccountPolicyResponse AWS API Documentation
2109
+ #
2110
+ class PutAccountPolicyResponse < Struct.new(
2111
+ :account_policy)
2112
+ SENSITIVE = []
2113
+ include Aws::Structure
2114
+ end
2115
+
1919
2116
  # @!attribute [rw] log_group_identifier
1920
2117
  # Specify either the log group name or log group ARN.
1921
2118
  # @return [String]
@@ -1951,7 +2148,15 @@ module Aws::CloudWatchLogs
1951
2148
  # For an example data protection policy, see the **Examples** section
1952
2149
  # on this page.
1953
2150
  #
1954
- # The contents of two `DataIdentifer` arrays must match exactly.
2151
+ # The contents of the two `DataIdentifer` arrays must match exactly.
2152
+ #
2153
+ # In addition to the two JSON blocks, the `policyDocument` can also
2154
+ # include `Name`, `Description`, and `Version` fields. The `Name` is
2155
+ # used as a dimension when CloudWatch Logs reports audit findings
2156
+ # metrics to CloudWatch.
2157
+ #
2158
+ # The JSON specified in `policyDocument` can be up to 30,720
2159
+ # characters.
1955
2160
  #
1956
2161
  #
1957
2162
  #
@@ -2002,13 +2207,14 @@ module Aws::CloudWatchLogs
2002
2207
  # @!attribute [rw] force_update
2003
2208
  # Specify true if you are updating an existing destination policy to
2004
2209
  # grant permission to an organization ID instead of granting
2005
- # permission to individual AWS accounts. Before you update a
2006
- # destination policy this way, you must first update the subscription
2007
- # filters in the accounts that send logs to this destination. If you
2008
- # do not, the subscription filters might stop working. By specifying
2009
- # `true` for `forceUpdate`, you are affirming that you have already
2010
- # updated the subscription filters. For more information, see [
2011
- # Updating an existing cross-account subscription][1]
2210
+ # permission to individual Amazon Web Services accounts. Before you
2211
+ # update a destination policy this way, you must first update the
2212
+ # subscription filters in the accounts that send logs to this
2213
+ # destination. If you do not, the subscription filters might stop
2214
+ # working. By specifying `true` for `forceUpdate`, you are affirming
2215
+ # that you have already updated the subscription filters. For more
2216
+ # information, see [ Updating an existing cross-account
2217
+ # subscription][1]
2012
2218
  #
2013
2219
  # If you omit this parameter, the default of `false` is used.
2014
2220
  #
@@ -2297,7 +2503,8 @@ module Aws::CloudWatchLogs
2297
2503
  # @!attribute [rw] retention_in_days
2298
2504
  # The number of days to retain the log events in the specified log
2299
2505
  # group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150,
2300
- # 180, 365, 400, 545, 731, 1827, 2192, 2557, 2922, 3288, and 3653.
2506
+ # 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, and
2507
+ # 3653.
2301
2508
  #
2302
2509
  # To set a log group so that its log events do not expire, use
2303
2510
  # [DeleteRetentionPolicy][1].
@@ -52,6 +52,6 @@ require_relative 'aws-sdk-cloudwatchlogs/customizations'
52
52
  # @!group service
53
53
  module Aws::CloudWatchLogs
54
54
 
55
- GEM_VERSION = '1.62.0'
55
+ GEM_VERSION = '1.64.0'
56
56
 
57
57
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-cloudwatchlogs
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.62.0
4
+ version: 1.64.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-01-19 00:00:00.000000000 Z
11
+ date: 2023-06-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-core
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: '3'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 3.165.0
22
+ version: 3.174.0
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +29,7 @@ dependencies:
29
29
  version: '3'
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 3.165.0
32
+ version: 3.174.0
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: aws-sigv4
35
35
  requirement: !ruby/object:Gem::Requirement