aws-sdk-shield 1.29.0 → 1.34.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: d7a45988d874990055ef49cd9ad5da7d733be1bd6a150c19a30bf59a4fbbf237
4
- data.tar.gz: 12fd63a32d0f0b30dd2b5932180a2ee3d8ff93054af13b132c8e81bc72bd71fe
3
+ metadata.gz: 3ac82a17cacca4b5a293b83132ff40d0fe0359bdc28c1d97b72d725daf54c599
4
+ data.tar.gz: 7b8ffa6b55123f76e49085a6bce2b572fb7124ae51e7730ba41dc9210ab65303
5
5
  SHA512:
6
- metadata.gz: a630e0a4bd3cfe9001b5207e4f9821412ceb4f4a8233a3a1519485865503433ccccd82aec3b04578779d609796ccd2b51e6d5d7364ffdede7f1ad3a7b67491bb
7
- data.tar.gz: 00bd8b5e04a314b90a3ea86c73f563e2594e14192346b56934a36688a051df216e6372b2b45fcc973ffbe71bb441a16e68552f28c550ebacc9e3e4ce77f3a28d
6
+ metadata.gz: 2376b0ecc10e43857687117258e970390860f492a958f987c904546b55b8a0e65b9d52d1791e7a38292b34592688f639914e0df6ab842f362ed4dfc69681b43e
7
+ data.tar.gz: 7ac5d4cd1e504ba48221131e7025b319a451e0a5a01d5054f416ea2f0e5e493015fabe1cca4a65ef5e0ff1110a87996572bf156cf9b24ed816575354bf6aa007
@@ -7,6 +7,7 @@
7
7
  #
8
8
  # WARNING ABOUT GENERATED CODE
9
9
 
10
+
10
11
  require 'aws-sdk-core'
11
12
  require 'aws-sigv4'
12
13
 
@@ -44,9 +45,9 @@ require_relative 'aws-sdk-shield/customizations'
44
45
  #
45
46
  # See {Errors} for more information.
46
47
  #
47
- # @service
48
+ # @!group service
48
49
  module Aws::Shield
49
50
 
50
- GEM_VERSION = '1.29.0'
51
+ GEM_VERSION = '1.34.0'
51
52
 
52
53
  end
@@ -85,13 +85,28 @@ module Aws::Shield
85
85
  # * `Aws::Credentials` - Used for configuring static, non-refreshing
86
86
  # credentials.
87
87
  #
88
+ # * `Aws::SharedCredentials` - Used for loading static credentials from a
89
+ # shared file, such as `~/.aws/config`.
90
+ #
91
+ # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
92
+ #
93
+ # * `Aws::AssumeRoleWebIdentityCredentials` - Used when you need to
94
+ # assume a role after providing credentials via the web.
95
+ #
96
+ # * `Aws::SSOCredentials` - Used for loading credentials from AWS SSO using an
97
+ # access token generated from `aws login`.
98
+ #
99
+ # * `Aws::ProcessCredentials` - Used for loading credentials from a
100
+ # process that outputs to stdout.
101
+ #
88
102
  # * `Aws::InstanceProfileCredentials` - Used for loading credentials
89
103
  # from an EC2 IMDS on an EC2 instance.
90
104
  #
91
- # * `Aws::SharedCredentials` - Used for loading credentials from a
92
- # shared file, such as `~/.aws/config`.
105
+ # * `Aws::ECSCredentials` - Used for loading credentials from
106
+ # instances running in ECS.
93
107
  #
94
- # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
108
+ # * `Aws::CognitoIdentityCredentials` - Used for loading credentials
109
+ # from the Cognito Identity service.
95
110
  #
96
111
  # When `:credentials` are not configured directly, the following
97
112
  # locations will be searched for credentials:
@@ -101,10 +116,10 @@ module Aws::Shield
101
116
  # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
102
117
  # * `~/.aws/credentials`
103
118
  # * `~/.aws/config`
104
- # * EC2 IMDS instance profile - When used by default, the timeouts are
105
- # very aggressive. Construct and pass an instance of
106
- # `Aws::InstanceProfileCredentails` to enable retries and extended
107
- # timeouts.
119
+ # * EC2/ECS IMDS instance profile - When used by default, the timeouts
120
+ # are very aggressive. Construct and pass an instance of
121
+ # `Aws::InstanceProfileCredentails` or `Aws::ECSCredentials` to
122
+ # enable retries and extended timeouts.
108
123
  #
109
124
  # @option options [required, String] :region
110
125
  # The AWS region to connect to. The configured `:region` is
@@ -592,6 +607,71 @@ module Aws::Shield
592
607
  req.send_request(options)
593
608
  end
594
609
 
610
+ # Creates a grouping of protected resources so they can be handled as a
611
+ # collective. This resource grouping improves the accuracy of detection
612
+ # and reduces false positives.
613
+ #
614
+ # @option params [required, String] :protection_group_id
615
+ # The name of the protection group. You use this to identify the
616
+ # protection group in lists and to manage the protection group, for
617
+ # example to update, delete, or describe it.
618
+ #
619
+ # @option params [required, String] :aggregation
620
+ # Defines how AWS Shield combines resource data for the group in order
621
+ # to detect, mitigate, and report events.
622
+ #
623
+ # * Sum - Use the total traffic across the group. This is a good choice
624
+ # for most cases. Examples include Elastic IP addresses for EC2
625
+ # instances that scale manually or automatically.
626
+ #
627
+ # * Mean - Use the average of the traffic across the group. This is a
628
+ # good choice for resources that share traffic uniformly. Examples
629
+ # include accelerators and load balancers.
630
+ #
631
+ # * Max - Use the highest traffic from each resource. This is useful for
632
+ # resources that don't share traffic and for resources that share
633
+ # that traffic in a non-uniform way. Examples include CloudFront
634
+ # distributions and origin resources for CloudFront distributions.
635
+ #
636
+ # @option params [required, String] :pattern
637
+ # The criteria to use to choose the protected resources for inclusion in
638
+ # the group. You can include all resources that have protections,
639
+ # provide a list of resource Amazon Resource Names (ARNs), or include
640
+ # all resources of a specified resource type.
641
+ #
642
+ # @option params [String] :resource_type
643
+ # The resource type to include in the protection group. All protected
644
+ # resources of this type are included in the protection group. Newly
645
+ # protected resources of this type are automatically added to the group.
646
+ # You must set this when you set `Pattern` to `BY_RESOURCE_TYPE` and you
647
+ # must not set it for any other `Pattern` setting.
648
+ #
649
+ # @option params [Array<String>] :members
650
+ # The Amazon Resource Names (ARNs) of the resources to include in the
651
+ # protection group. You must set this when you set `Pattern` to
652
+ # `ARBITRARY` and you must not set it for any other `Pattern` setting.
653
+ #
654
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
655
+ #
656
+ # @example Request syntax with placeholder values
657
+ #
658
+ # resp = client.create_protection_group({
659
+ # protection_group_id: "ProtectionGroupId", # required
660
+ # aggregation: "SUM", # required, accepts SUM, MEAN, MAX
661
+ # pattern: "ALL", # required, accepts ALL, ARBITRARY, BY_RESOURCE_TYPE
662
+ # resource_type: "CLOUDFRONT_DISTRIBUTION", # accepts CLOUDFRONT_DISTRIBUTION, ROUTE_53_HOSTED_ZONE, ELASTIC_IP_ALLOCATION, CLASSIC_LOAD_BALANCER, APPLICATION_LOAD_BALANCER, GLOBAL_ACCELERATOR
663
+ # members: ["ResourceArn"],
664
+ # })
665
+ #
666
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/CreateProtectionGroup AWS API Documentation
667
+ #
668
+ # @overload create_protection_group(params = {})
669
+ # @param [Hash] params ({})
670
+ def create_protection_group(params = {}, options = {})
671
+ req = build_request(:create_protection_group, params)
672
+ req.send_request(options)
673
+ end
674
+
595
675
  # Activates AWS Shield Advanced for an account.
596
676
  #
597
677
  # When you initally create a subscription, your subscription is set to
@@ -632,6 +712,30 @@ module Aws::Shield
632
712
  req.send_request(options)
633
713
  end
634
714
 
715
+ # Removes the specified protection group.
716
+ #
717
+ # @option params [required, String] :protection_group_id
718
+ # The name of the protection group. You use this to identify the
719
+ # protection group in lists and to manage the protection group, for
720
+ # example to update, delete, or describe it.
721
+ #
722
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
723
+ #
724
+ # @example Request syntax with placeholder values
725
+ #
726
+ # resp = client.delete_protection_group({
727
+ # protection_group_id: "ProtectionGroupId", # required
728
+ # })
729
+ #
730
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DeleteProtectionGroup AWS API Documentation
731
+ #
732
+ # @overload delete_protection_group(params = {})
733
+ # @param [Hash] params ({})
734
+ def delete_protection_group(params = {}, options = {})
735
+ req = build_request(:delete_protection_group, params)
736
+ req.send_request(options)
737
+ end
738
+
635
739
  # Removes AWS Shield Advanced from an account. AWS Shield Advanced
636
740
  # requires a 1-year subscription commitment. You cannot delete a
637
741
  # subscription prior to the completion of that commitment.
@@ -714,6 +818,45 @@ module Aws::Shield
714
818
  req.send_request(options)
715
819
  end
716
820
 
821
+ # Provides information about the number and type of attacks AWS Shield
822
+ # has detected in the last year for all resources that belong to your
823
+ # account, regardless of whether you've defined Shield protections for
824
+ # them. This operation is available to Shield customers as well as to
825
+ # Shield Advanced customers.
826
+ #
827
+ # The operation returns data for the time range of midnight UTC, one
828
+ # year ago, to midnight UTC, today. For example, if the current time is
829
+ # `2020-10-26 15:39:32 PDT`, equal to `2020-10-26 22:39:32 UTC`, then
830
+ # the time range for the attack data returned is from `2019-10-26
831
+ # 00:00:00 UTC` to `2020-10-26 00:00:00 UTC`.
832
+ #
833
+ # The time range indicates the period covered by the attack statistics
834
+ # data items.
835
+ #
836
+ # @return [Types::DescribeAttackStatisticsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
837
+ #
838
+ # * {Types::DescribeAttackStatisticsResponse#time_range #time_range} => Types::TimeRange
839
+ # * {Types::DescribeAttackStatisticsResponse#data_items #data_items} => Array&lt;Types::AttackStatisticsDataItem&gt;
840
+ #
841
+ # @example Response structure
842
+ #
843
+ # resp.time_range.from_inclusive #=> Time
844
+ # resp.time_range.to_exclusive #=> Time
845
+ # resp.data_items #=> Array
846
+ # resp.data_items[0].attack_volume.bits_per_second.max #=> Float
847
+ # resp.data_items[0].attack_volume.packets_per_second.max #=> Float
848
+ # resp.data_items[0].attack_volume.requests_per_second.max #=> Float
849
+ # resp.data_items[0].attack_count #=> Integer
850
+ #
851
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeAttackStatistics AWS API Documentation
852
+ #
853
+ # @overload describe_attack_statistics(params = {})
854
+ # @param [Hash] params ({})
855
+ def describe_attack_statistics(params = {}, options = {})
856
+ req = build_request(:describe_attack_statistics, params)
857
+ req.send_request(options)
858
+ end
859
+
717
860
  # Returns the current role and list of Amazon S3 log buckets used by the
718
861
  # DDoS Response Team (DRT) to access your AWS account while assisting
719
862
  # with attack mitigation.
@@ -804,6 +947,41 @@ module Aws::Shield
804
947
  req.send_request(options)
805
948
  end
806
949
 
950
+ # Returns the specification for the specified protection group.
951
+ #
952
+ # @option params [required, String] :protection_group_id
953
+ # The name of the protection group. You use this to identify the
954
+ # protection group in lists and to manage the protection group, for
955
+ # example to update, delete, or describe it.
956
+ #
957
+ # @return [Types::DescribeProtectionGroupResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
958
+ #
959
+ # * {Types::DescribeProtectionGroupResponse#protection_group #protection_group} => Types::ProtectionGroup
960
+ #
961
+ # @example Request syntax with placeholder values
962
+ #
963
+ # resp = client.describe_protection_group({
964
+ # protection_group_id: "ProtectionGroupId", # required
965
+ # })
966
+ #
967
+ # @example Response structure
968
+ #
969
+ # resp.protection_group.protection_group_id #=> String
970
+ # resp.protection_group.aggregation #=> String, one of "SUM", "MEAN", "MAX"
971
+ # resp.protection_group.pattern #=> String, one of "ALL", "ARBITRARY", "BY_RESOURCE_TYPE"
972
+ # resp.protection_group.resource_type #=> String, one of "CLOUDFRONT_DISTRIBUTION", "ROUTE_53_HOSTED_ZONE", "ELASTIC_IP_ALLOCATION", "CLASSIC_LOAD_BALANCER", "APPLICATION_LOAD_BALANCER", "GLOBAL_ACCELERATOR"
973
+ # resp.protection_group.members #=> Array
974
+ # resp.protection_group.members[0] #=> String
975
+ #
976
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeProtectionGroup AWS API Documentation
977
+ #
978
+ # @overload describe_protection_group(params = {})
979
+ # @param [Hash] params ({})
980
+ def describe_protection_group(params = {}, options = {})
981
+ req = build_request(:describe_protection_group, params)
982
+ req.send_request(options)
983
+ end
984
+
807
985
  # Provides details about the AWS Shield Advanced subscription for an
808
986
  # account.
809
987
  #
@@ -821,6 +999,11 @@ module Aws::Shield
821
999
  # resp.subscription.limits[0].type #=> String
822
1000
  # resp.subscription.limits[0].max #=> Integer
823
1001
  # resp.subscription.proactive_engagement_status #=> String, one of "ENABLED", "DISABLED", "PENDING"
1002
+ # resp.subscription.subscription_limits.protection_limits.protected_resource_type_limits #=> Array
1003
+ # resp.subscription.subscription_limits.protection_limits.protected_resource_type_limits[0].type #=> String
1004
+ # resp.subscription.subscription_limits.protection_limits.protected_resource_type_limits[0].max #=> Integer
1005
+ # resp.subscription.subscription_limits.protection_group_limits.max_protection_groups #=> Integer
1006
+ # resp.subscription.subscription_limits.protection_group_limits.pattern_type_limits.arbitrary_pattern_limits.max_members #=> Integer
824
1007
  #
825
1008
  # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeSubscription AWS API Documentation
826
1009
  #
@@ -1013,15 +1196,15 @@ module Aws::Shield
1013
1196
  # `ListAttacksRequest`. Pass null if this is the first call.
1014
1197
  #
1015
1198
  # @option params [Integer] :max_results
1016
- # The maximum number of AttackSummary objects to be returned. If this is
1017
- # left blank, the first 20 results will be returned.
1199
+ # The maximum number of AttackSummary objects to return. If you leave
1200
+ # this blank, Shield Advanced returns the first 20 results.
1018
1201
  #
1019
- # This is a maximum value; it is possible that AWS WAF will return the
1020
- # results in smaller batches. That is, the number of AttackSummary
1021
- # objects returned could be less than `MaxResults`, even if there are
1022
- # still more AttackSummary objects yet to return. If there are more
1023
- # AttackSummary objects to return, AWS WAF will always also return a
1024
- # `NextToken`.
1202
+ # This is a maximum value. Shield Advanced might return the results in
1203
+ # smaller batches. That is, the number of objects returned could be less
1204
+ # than `MaxResults`, even if there are still more objects yet to return.
1205
+ # If there are more objects to return, Shield Advanced returns a value
1206
+ # in `NextToken` that you can use in your next request, to get the next
1207
+ # batch of objects.
1025
1208
  #
1026
1209
  # @return [Types::ListAttacksResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1027
1210
  #
@@ -1066,6 +1249,57 @@ module Aws::Shield
1066
1249
  req.send_request(options)
1067
1250
  end
1068
1251
 
1252
+ # Retrieves the ProtectionGroup objects for the account.
1253
+ #
1254
+ # @option params [String] :next_token
1255
+ # The next token value from a previous call to `ListProtectionGroups`.
1256
+ # Pass null if this is the first call.
1257
+ #
1258
+ # @option params [Integer] :max_results
1259
+ # The maximum number of ProtectionGroup objects to return. If you leave
1260
+ # this blank, Shield Advanced returns the first 20 results.
1261
+ #
1262
+ # This is a maximum value. Shield Advanced might return the results in
1263
+ # smaller batches. That is, the number of objects returned could be less
1264
+ # than `MaxResults`, even if there are still more objects yet to return.
1265
+ # If there are more objects to return, Shield Advanced returns a value
1266
+ # in `NextToken` that you can use in your next request, to get the next
1267
+ # batch of objects.
1268
+ #
1269
+ # @return [Types::ListProtectionGroupsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1270
+ #
1271
+ # * {Types::ListProtectionGroupsResponse#protection_groups #protection_groups} => Array&lt;Types::ProtectionGroup&gt;
1272
+ # * {Types::ListProtectionGroupsResponse#next_token #next_token} => String
1273
+ #
1274
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1275
+ #
1276
+ # @example Request syntax with placeholder values
1277
+ #
1278
+ # resp = client.list_protection_groups({
1279
+ # next_token: "Token",
1280
+ # max_results: 1,
1281
+ # })
1282
+ #
1283
+ # @example Response structure
1284
+ #
1285
+ # resp.protection_groups #=> Array
1286
+ # resp.protection_groups[0].protection_group_id #=> String
1287
+ # resp.protection_groups[0].aggregation #=> String, one of "SUM", "MEAN", "MAX"
1288
+ # resp.protection_groups[0].pattern #=> String, one of "ALL", "ARBITRARY", "BY_RESOURCE_TYPE"
1289
+ # resp.protection_groups[0].resource_type #=> String, one of "CLOUDFRONT_DISTRIBUTION", "ROUTE_53_HOSTED_ZONE", "ELASTIC_IP_ALLOCATION", "CLASSIC_LOAD_BALANCER", "APPLICATION_LOAD_BALANCER", "GLOBAL_ACCELERATOR"
1290
+ # resp.protection_groups[0].members #=> Array
1291
+ # resp.protection_groups[0].members[0] #=> String
1292
+ # resp.next_token #=> String
1293
+ #
1294
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListProtectionGroups AWS API Documentation
1295
+ #
1296
+ # @overload list_protection_groups(params = {})
1297
+ # @param [Hash] params ({})
1298
+ def list_protection_groups(params = {}, options = {})
1299
+ req = build_request(:list_protection_groups, params)
1300
+ req.send_request(options)
1301
+ end
1302
+
1069
1303
  # Lists all Protection objects for the account.
1070
1304
  #
1071
1305
  # @option params [String] :next_token
@@ -1073,14 +1307,15 @@ module Aws::Shield
1073
1307
  # `ListProtections`. Pass null if this is the first call.
1074
1308
  #
1075
1309
  # @option params [Integer] :max_results
1076
- # The maximum number of Protection objects to be returned. If this is
1077
- # left blank the first 20 results will be returned.
1310
+ # The maximum number of Protection objects to return. If you leave this
1311
+ # blank, Shield Advanced returns the first 20 results.
1078
1312
  #
1079
- # This is a maximum value; it is possible that AWS WAF will return the
1080
- # results in smaller batches. That is, the number of Protection objects
1081
- # returned could be less than `MaxResults`, even if there are still more
1082
- # Protection objects yet to return. If there are more Protection objects
1083
- # to return, AWS WAF will always also return a `NextToken`.
1313
+ # This is a maximum value. Shield Advanced might return the results in
1314
+ # smaller batches. That is, the number of objects returned could be less
1315
+ # than `MaxResults`, even if there are still more objects yet to return.
1316
+ # If there are more objects to return, Shield Advanced returns a value
1317
+ # in `NextToken` that you can use in your next request, to get the next
1318
+ # batch of objects.
1084
1319
  #
1085
1320
  # @return [Types::ListProtectionsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1086
1321
  #
@@ -1115,6 +1350,58 @@ module Aws::Shield
1115
1350
  req.send_request(options)
1116
1351
  end
1117
1352
 
1353
+ # Retrieves the resources that are included in the protection group.
1354
+ #
1355
+ # @option params [required, String] :protection_group_id
1356
+ # The name of the protection group. You use this to identify the
1357
+ # protection group in lists and to manage the protection group, for
1358
+ # example to update, delete, or describe it.
1359
+ #
1360
+ # @option params [String] :next_token
1361
+ # The next token value from a previous call to
1362
+ # `ListResourcesInProtectionGroup`. Pass null if this is the first call.
1363
+ #
1364
+ # @option params [Integer] :max_results
1365
+ # The maximum number of resource ARN objects to return. If you leave
1366
+ # this blank, Shield Advanced returns the first 20 results.
1367
+ #
1368
+ # This is a maximum value. Shield Advanced might return the results in
1369
+ # smaller batches. That is, the number of objects returned could be less
1370
+ # than `MaxResults`, even if there are still more objects yet to return.
1371
+ # If there are more objects to return, Shield Advanced returns a value
1372
+ # in `NextToken` that you can use in your next request, to get the next
1373
+ # batch of objects.
1374
+ #
1375
+ # @return [Types::ListResourcesInProtectionGroupResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1376
+ #
1377
+ # * {Types::ListResourcesInProtectionGroupResponse#resource_arns #resource_arns} => Array&lt;String&gt;
1378
+ # * {Types::ListResourcesInProtectionGroupResponse#next_token #next_token} => String
1379
+ #
1380
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1381
+ #
1382
+ # @example Request syntax with placeholder values
1383
+ #
1384
+ # resp = client.list_resources_in_protection_group({
1385
+ # protection_group_id: "ProtectionGroupId", # required
1386
+ # next_token: "Token",
1387
+ # max_results: 1,
1388
+ # })
1389
+ #
1390
+ # @example Response structure
1391
+ #
1392
+ # resp.resource_arns #=> Array
1393
+ # resp.resource_arns[0] #=> String
1394
+ # resp.next_token #=> String
1395
+ #
1396
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListResourcesInProtectionGroup AWS API Documentation
1397
+ #
1398
+ # @overload list_resources_in_protection_group(params = {})
1399
+ # @param [Hash] params ({})
1400
+ def list_resources_in_protection_group(params = {}, options = {})
1401
+ req = build_request(:list_resources_in_protection_group, params)
1402
+ req.send_request(options)
1403
+ end
1404
+
1118
1405
  # Updates the details of the list of email addresses and phone numbers
1119
1406
  # that the DDoS Response Team (DRT) can use to contact you if you have
1120
1407
  # proactive engagement enabled, for escalations to the DRT and to
@@ -1152,6 +1439,71 @@ module Aws::Shield
1152
1439
  req.send_request(options)
1153
1440
  end
1154
1441
 
1442
+ # Updates an existing protection group. A protection group is a grouping
1443
+ # of protected resources so they can be handled as a collective. This
1444
+ # resource grouping improves the accuracy of detection and reduces false
1445
+ # positives.
1446
+ #
1447
+ # @option params [required, String] :protection_group_id
1448
+ # The name of the protection group. You use this to identify the
1449
+ # protection group in lists and to manage the protection group, for
1450
+ # example to update, delete, or describe it.
1451
+ #
1452
+ # @option params [required, String] :aggregation
1453
+ # Defines how AWS Shield combines resource data for the group in order
1454
+ # to detect, mitigate, and report events.
1455
+ #
1456
+ # * Sum - Use the total traffic across the group. This is a good choice
1457
+ # for most cases. Examples include Elastic IP addresses for EC2
1458
+ # instances that scale manually or automatically.
1459
+ #
1460
+ # * Mean - Use the average of the traffic across the group. This is a
1461
+ # good choice for resources that share traffic uniformly. Examples
1462
+ # include accelerators and load balancers.
1463
+ #
1464
+ # * Max - Use the highest traffic from each resource. This is useful for
1465
+ # resources that don't share traffic and for resources that share
1466
+ # that traffic in a non-uniform way. Examples include CloudFront
1467
+ # distributions and origin resources for CloudFront distributions.
1468
+ #
1469
+ # @option params [required, String] :pattern
1470
+ # The criteria to use to choose the protected resources for inclusion in
1471
+ # the group. You can include all resources that have protections,
1472
+ # provide a list of resource Amazon Resource Names (ARNs), or include
1473
+ # all resources of a specified resource type.
1474
+ #
1475
+ # @option params [String] :resource_type
1476
+ # The resource type to include in the protection group. All protected
1477
+ # resources of this type are included in the protection group. You must
1478
+ # set this when you set `Pattern` to `BY_RESOURCE_TYPE` and you must not
1479
+ # set it for any other `Pattern` setting.
1480
+ #
1481
+ # @option params [Array<String>] :members
1482
+ # The Amazon Resource Names (ARNs) of the resources to include in the
1483
+ # protection group. You must set this when you set `Pattern` to
1484
+ # `ARBITRARY` and you must not set it for any other `Pattern` setting.
1485
+ #
1486
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1487
+ #
1488
+ # @example Request syntax with placeholder values
1489
+ #
1490
+ # resp = client.update_protection_group({
1491
+ # protection_group_id: "ProtectionGroupId", # required
1492
+ # aggregation: "SUM", # required, accepts SUM, MEAN, MAX
1493
+ # pattern: "ALL", # required, accepts ALL, ARBITRARY, BY_RESOURCE_TYPE
1494
+ # resource_type: "CLOUDFRONT_DISTRIBUTION", # accepts CLOUDFRONT_DISTRIBUTION, ROUTE_53_HOSTED_ZONE, ELASTIC_IP_ALLOCATION, CLASSIC_LOAD_BALANCER, APPLICATION_LOAD_BALANCER, GLOBAL_ACCELERATOR
1495
+ # members: ["ResourceArn"],
1496
+ # })
1497
+ #
1498
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/UpdateProtectionGroup AWS API Documentation
1499
+ #
1500
+ # @overload update_protection_group(params = {})
1501
+ # @param [Hash] params ({})
1502
+ def update_protection_group(params = {}, options = {})
1503
+ req = build_request(:update_protection_group, params)
1504
+ req.send_request(options)
1505
+ end
1506
+
1155
1507
  # Updates the details of an existing subscription. Only enter values for
1156
1508
  # parameters you want to change. Empty parameters are not updated.
1157
1509
  #
@@ -1193,7 +1545,7 @@ module Aws::Shield
1193
1545
  params: params,
1194
1546
  config: config)
1195
1547
  context[:gem_name] = 'aws-sdk-shield'
1196
- context[:gem_version] = '1.29.0'
1548
+ context[:gem_version] = '1.34.0'
1197
1549
  Seahorse::Client::Request.new(handlers, context)
1198
1550
  end
1199
1551