aws-sdk-shield 1.31.0 → 1.36.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.
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 1.36.0
@@ -3,7 +3,7 @@
3
3
  # WARNING ABOUT GENERATED CODE
4
4
  #
5
5
  # This file is generated. See the contributing guide for more information:
6
- # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
7
  #
8
8
  # WARNING ABOUT GENERATED CODE
9
9
 
@@ -48,6 +48,6 @@ require_relative 'aws-sdk-shield/customizations'
48
48
  # @!group service
49
49
  module Aws::Shield
50
50
 
51
- GEM_VERSION = '1.31.0'
51
+ GEM_VERSION = '1.36.0'
52
52
 
53
53
  end
@@ -3,7 +3,7 @@
3
3
  # WARNING ABOUT GENERATED CODE
4
4
  #
5
5
  # This file is generated. See the contributing guide for more information:
6
- # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
7
  #
8
8
  # WARNING ABOUT GENERATED CODE
9
9
 
@@ -583,6 +583,10 @@ module Aws::Shield
583
583
  # * For an Elastic IP address:
584
584
  # `arn:aws:ec2:region:account-id:eip-allocation/allocation-id `
585
585
  #
586
+ # @option params [Array<Types::Tag>] :tags
587
+ # One or more tag key-value pairs for the Protection object that is
588
+ # created.
589
+ #
586
590
  # @return [Types::CreateProtectionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
587
591
  #
588
592
  # * {Types::CreateProtectionResponse#protection_id #protection_id} => String
@@ -592,6 +596,12 @@ module Aws::Shield
592
596
  # resp = client.create_protection({
593
597
  # name: "ProtectionName", # required
594
598
  # resource_arn: "ResourceArn", # required
599
+ # tags: [
600
+ # {
601
+ # key: "TagKey",
602
+ # value: "TagValue",
603
+ # },
604
+ # ],
595
605
  # })
596
606
  #
597
607
  # @example Response structure
@@ -607,6 +617,80 @@ module Aws::Shield
607
617
  req.send_request(options)
608
618
  end
609
619
 
620
+ # Creates a grouping of protected resources so they can be handled as a
621
+ # collective. This resource grouping improves the accuracy of detection
622
+ # and reduces false positives.
623
+ #
624
+ # @option params [required, String] :protection_group_id
625
+ # The name of the protection group. You use this to identify the
626
+ # protection group in lists and to manage the protection group, for
627
+ # example to update, delete, or describe it.
628
+ #
629
+ # @option params [required, String] :aggregation
630
+ # Defines how AWS Shield combines resource data for the group in order
631
+ # to detect, mitigate, and report events.
632
+ #
633
+ # * Sum - Use the total traffic across the group. This is a good choice
634
+ # for most cases. Examples include Elastic IP addresses for EC2
635
+ # instances that scale manually or automatically.
636
+ #
637
+ # * Mean - Use the average of the traffic across the group. This is a
638
+ # good choice for resources that share traffic uniformly. Examples
639
+ # include accelerators and load balancers.
640
+ #
641
+ # * Max - Use the highest traffic from each resource. This is useful for
642
+ # resources that don't share traffic and for resources that share
643
+ # that traffic in a non-uniform way. Examples include CloudFront
644
+ # distributions and origin resources for CloudFront distributions.
645
+ #
646
+ # @option params [required, String] :pattern
647
+ # The criteria to use to choose the protected resources for inclusion in
648
+ # the group. You can include all resources that have protections,
649
+ # provide a list of resource Amazon Resource Names (ARNs), or include
650
+ # all resources of a specified resource type.
651
+ #
652
+ # @option params [String] :resource_type
653
+ # The resource type to include in the protection group. All protected
654
+ # resources of this type are included in the protection group. Newly
655
+ # protected resources of this type are automatically added to the group.
656
+ # You must set this when you set `Pattern` to `BY_RESOURCE_TYPE` and you
657
+ # must not set it for any other `Pattern` setting.
658
+ #
659
+ # @option params [Array<String>] :members
660
+ # The Amazon Resource Names (ARNs) of the resources to include in the
661
+ # protection group. You must set this when you set `Pattern` to
662
+ # `ARBITRARY` and you must not set it for any other `Pattern` setting.
663
+ #
664
+ # @option params [Array<Types::Tag>] :tags
665
+ # One or more tag key-value pairs for the protection group.
666
+ #
667
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
668
+ #
669
+ # @example Request syntax with placeholder values
670
+ #
671
+ # resp = client.create_protection_group({
672
+ # protection_group_id: "ProtectionGroupId", # required
673
+ # aggregation: "SUM", # required, accepts SUM, MEAN, MAX
674
+ # pattern: "ALL", # required, accepts ALL, ARBITRARY, BY_RESOURCE_TYPE
675
+ # resource_type: "CLOUDFRONT_DISTRIBUTION", # accepts CLOUDFRONT_DISTRIBUTION, ROUTE_53_HOSTED_ZONE, ELASTIC_IP_ALLOCATION, CLASSIC_LOAD_BALANCER, APPLICATION_LOAD_BALANCER, GLOBAL_ACCELERATOR
676
+ # members: ["ResourceArn"],
677
+ # tags: [
678
+ # {
679
+ # key: "TagKey",
680
+ # value: "TagValue",
681
+ # },
682
+ # ],
683
+ # })
684
+ #
685
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/CreateProtectionGroup AWS API Documentation
686
+ #
687
+ # @overload create_protection_group(params = {})
688
+ # @param [Hash] params ({})
689
+ def create_protection_group(params = {}, options = {})
690
+ req = build_request(:create_protection_group, params)
691
+ req.send_request(options)
692
+ end
693
+
610
694
  # Activates AWS Shield Advanced for an account.
611
695
  #
612
696
  # When you initally create a subscription, your subscription is set to
@@ -647,6 +731,30 @@ module Aws::Shield
647
731
  req.send_request(options)
648
732
  end
649
733
 
734
+ # Removes the specified protection group.
735
+ #
736
+ # @option params [required, String] :protection_group_id
737
+ # The name of the protection group. You use this to identify the
738
+ # protection group in lists and to manage the protection group, for
739
+ # example to update, delete, or describe it.
740
+ #
741
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
742
+ #
743
+ # @example Request syntax with placeholder values
744
+ #
745
+ # resp = client.delete_protection_group({
746
+ # protection_group_id: "ProtectionGroupId", # required
747
+ # })
748
+ #
749
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DeleteProtectionGroup AWS API Documentation
750
+ #
751
+ # @overload delete_protection_group(params = {})
752
+ # @param [Hash] params ({})
753
+ def delete_protection_group(params = {}, options = {})
754
+ req = build_request(:delete_protection_group, params)
755
+ req.send_request(options)
756
+ end
757
+
650
758
  # Removes AWS Shield Advanced from an account. AWS Shield Advanced
651
759
  # requires a 1-year subscription commitment. You cannot delete a
652
760
  # subscription prior to the completion of that commitment.
@@ -729,6 +837,45 @@ module Aws::Shield
729
837
  req.send_request(options)
730
838
  end
731
839
 
840
+ # Provides information about the number and type of attacks AWS Shield
841
+ # has detected in the last year for all resources that belong to your
842
+ # account, regardless of whether you've defined Shield protections for
843
+ # them. This operation is available to Shield customers as well as to
844
+ # Shield Advanced customers.
845
+ #
846
+ # The operation returns data for the time range of midnight UTC, one
847
+ # year ago, to midnight UTC, today. For example, if the current time is
848
+ # `2020-10-26 15:39:32 PDT`, equal to `2020-10-26 22:39:32 UTC`, then
849
+ # the time range for the attack data returned is from `2019-10-26
850
+ # 00:00:00 UTC` to `2020-10-26 00:00:00 UTC`.
851
+ #
852
+ # The time range indicates the period covered by the attack statistics
853
+ # data items.
854
+ #
855
+ # @return [Types::DescribeAttackStatisticsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
856
+ #
857
+ # * {Types::DescribeAttackStatisticsResponse#time_range #time_range} => Types::TimeRange
858
+ # * {Types::DescribeAttackStatisticsResponse#data_items #data_items} => Array&lt;Types::AttackStatisticsDataItem&gt;
859
+ #
860
+ # @example Response structure
861
+ #
862
+ # resp.time_range.from_inclusive #=> Time
863
+ # resp.time_range.to_exclusive #=> Time
864
+ # resp.data_items #=> Array
865
+ # resp.data_items[0].attack_volume.bits_per_second.max #=> Float
866
+ # resp.data_items[0].attack_volume.packets_per_second.max #=> Float
867
+ # resp.data_items[0].attack_volume.requests_per_second.max #=> Float
868
+ # resp.data_items[0].attack_count #=> Integer
869
+ #
870
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeAttackStatistics AWS API Documentation
871
+ #
872
+ # @overload describe_attack_statistics(params = {})
873
+ # @param [Hash] params ({})
874
+ def describe_attack_statistics(params = {}, options = {})
875
+ req = build_request(:describe_attack_statistics, params)
876
+ req.send_request(options)
877
+ end
878
+
732
879
  # Returns the current role and list of Amazon S3 log buckets used by the
733
880
  # DDoS Response Team (DRT) to access your AWS account while assisting
734
881
  # with attack mitigation.
@@ -809,6 +956,7 @@ module Aws::Shield
809
956
  # resp.protection.resource_arn #=> String
810
957
  # resp.protection.health_check_ids #=> Array
811
958
  # resp.protection.health_check_ids[0] #=> String
959
+ # resp.protection.protection_arn #=> String
812
960
  #
813
961
  # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeProtection AWS API Documentation
814
962
  #
@@ -819,6 +967,42 @@ module Aws::Shield
819
967
  req.send_request(options)
820
968
  end
821
969
 
970
+ # Returns the specification for the specified protection group.
971
+ #
972
+ # @option params [required, String] :protection_group_id
973
+ # The name of the protection group. You use this to identify the
974
+ # protection group in lists and to manage the protection group, for
975
+ # example to update, delete, or describe it.
976
+ #
977
+ # @return [Types::DescribeProtectionGroupResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
978
+ #
979
+ # * {Types::DescribeProtectionGroupResponse#protection_group #protection_group} => Types::ProtectionGroup
980
+ #
981
+ # @example Request syntax with placeholder values
982
+ #
983
+ # resp = client.describe_protection_group({
984
+ # protection_group_id: "ProtectionGroupId", # required
985
+ # })
986
+ #
987
+ # @example Response structure
988
+ #
989
+ # resp.protection_group.protection_group_id #=> String
990
+ # resp.protection_group.aggregation #=> String, one of "SUM", "MEAN", "MAX"
991
+ # resp.protection_group.pattern #=> String, one of "ALL", "ARBITRARY", "BY_RESOURCE_TYPE"
992
+ # 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"
993
+ # resp.protection_group.members #=> Array
994
+ # resp.protection_group.members[0] #=> String
995
+ # resp.protection_group.protection_group_arn #=> String
996
+ #
997
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeProtectionGroup AWS API Documentation
998
+ #
999
+ # @overload describe_protection_group(params = {})
1000
+ # @param [Hash] params ({})
1001
+ def describe_protection_group(params = {}, options = {})
1002
+ req = build_request(:describe_protection_group, params)
1003
+ req.send_request(options)
1004
+ end
1005
+
822
1006
  # Provides details about the AWS Shield Advanced subscription for an
823
1007
  # account.
824
1008
  #
@@ -836,6 +1020,12 @@ module Aws::Shield
836
1020
  # resp.subscription.limits[0].type #=> String
837
1021
  # resp.subscription.limits[0].max #=> Integer
838
1022
  # resp.subscription.proactive_engagement_status #=> String, one of "ENABLED", "DISABLED", "PENDING"
1023
+ # resp.subscription.subscription_limits.protection_limits.protected_resource_type_limits #=> Array
1024
+ # resp.subscription.subscription_limits.protection_limits.protected_resource_type_limits[0].type #=> String
1025
+ # resp.subscription.subscription_limits.protection_limits.protected_resource_type_limits[0].max #=> Integer
1026
+ # resp.subscription.subscription_limits.protection_group_limits.max_protection_groups #=> Integer
1027
+ # resp.subscription.subscription_limits.protection_group_limits.pattern_type_limits.arbitrary_pattern_limits.max_members #=> Integer
1028
+ # resp.subscription.subscription_arn #=> String
839
1029
  #
840
1030
  # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeSubscription AWS API Documentation
841
1031
  #
@@ -1028,15 +1218,15 @@ module Aws::Shield
1028
1218
  # `ListAttacksRequest`. Pass null if this is the first call.
1029
1219
  #
1030
1220
  # @option params [Integer] :max_results
1031
- # The maximum number of AttackSummary objects to be returned. If this is
1032
- # left blank, the first 20 results will be returned.
1221
+ # The maximum number of AttackSummary objects to return. If you leave
1222
+ # this blank, Shield Advanced returns the first 20 results.
1033
1223
  #
1034
- # This is a maximum value; it is possible that AWS WAF will return the
1035
- # results in smaller batches. That is, the number of AttackSummary
1036
- # objects returned could be less than `MaxResults`, even if there are
1037
- # still more AttackSummary objects yet to return. If there are more
1038
- # AttackSummary objects to return, AWS WAF will always also return a
1039
- # `NextToken`.
1224
+ # This is a maximum value. Shield Advanced might return the results in
1225
+ # smaller batches. That is, the number of objects returned could be less
1226
+ # than `MaxResults`, even if there are still more objects yet to return.
1227
+ # If there are more objects to return, Shield Advanced returns a value
1228
+ # in `NextToken` that you can use in your next request, to get the next
1229
+ # batch of objects.
1040
1230
  #
1041
1231
  # @return [Types::ListAttacksResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1042
1232
  #
@@ -1081,6 +1271,58 @@ module Aws::Shield
1081
1271
  req.send_request(options)
1082
1272
  end
1083
1273
 
1274
+ # Retrieves the ProtectionGroup objects for the account.
1275
+ #
1276
+ # @option params [String] :next_token
1277
+ # The next token value from a previous call to `ListProtectionGroups`.
1278
+ # Pass null if this is the first call.
1279
+ #
1280
+ # @option params [Integer] :max_results
1281
+ # The maximum number of ProtectionGroup objects to return. If you leave
1282
+ # this blank, Shield Advanced returns the first 20 results.
1283
+ #
1284
+ # This is a maximum value. Shield Advanced might return the results in
1285
+ # smaller batches. That is, the number of objects returned could be less
1286
+ # than `MaxResults`, even if there are still more objects yet to return.
1287
+ # If there are more objects to return, Shield Advanced returns a value
1288
+ # in `NextToken` that you can use in your next request, to get the next
1289
+ # batch of objects.
1290
+ #
1291
+ # @return [Types::ListProtectionGroupsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1292
+ #
1293
+ # * {Types::ListProtectionGroupsResponse#protection_groups #protection_groups} => Array&lt;Types::ProtectionGroup&gt;
1294
+ # * {Types::ListProtectionGroupsResponse#next_token #next_token} => String
1295
+ #
1296
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1297
+ #
1298
+ # @example Request syntax with placeholder values
1299
+ #
1300
+ # resp = client.list_protection_groups({
1301
+ # next_token: "Token",
1302
+ # max_results: 1,
1303
+ # })
1304
+ #
1305
+ # @example Response structure
1306
+ #
1307
+ # resp.protection_groups #=> Array
1308
+ # resp.protection_groups[0].protection_group_id #=> String
1309
+ # resp.protection_groups[0].aggregation #=> String, one of "SUM", "MEAN", "MAX"
1310
+ # resp.protection_groups[0].pattern #=> String, one of "ALL", "ARBITRARY", "BY_RESOURCE_TYPE"
1311
+ # 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"
1312
+ # resp.protection_groups[0].members #=> Array
1313
+ # resp.protection_groups[0].members[0] #=> String
1314
+ # resp.protection_groups[0].protection_group_arn #=> String
1315
+ # resp.next_token #=> String
1316
+ #
1317
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListProtectionGroups AWS API Documentation
1318
+ #
1319
+ # @overload list_protection_groups(params = {})
1320
+ # @param [Hash] params ({})
1321
+ def list_protection_groups(params = {}, options = {})
1322
+ req = build_request(:list_protection_groups, params)
1323
+ req.send_request(options)
1324
+ end
1325
+
1084
1326
  # Lists all Protection objects for the account.
1085
1327
  #
1086
1328
  # @option params [String] :next_token
@@ -1088,14 +1330,15 @@ module Aws::Shield
1088
1330
  # `ListProtections`. Pass null if this is the first call.
1089
1331
  #
1090
1332
  # @option params [Integer] :max_results
1091
- # The maximum number of Protection objects to be returned. If this is
1092
- # left blank the first 20 results will be returned.
1333
+ # The maximum number of Protection objects to return. If you leave this
1334
+ # blank, Shield Advanced returns the first 20 results.
1093
1335
  #
1094
- # This is a maximum value; it is possible that AWS WAF will return the
1095
- # results in smaller batches. That is, the number of Protection objects
1096
- # returned could be less than `MaxResults`, even if there are still more
1097
- # Protection objects yet to return. If there are more Protection objects
1098
- # to return, AWS WAF will always also return a `NextToken`.
1336
+ # This is a maximum value. Shield Advanced might return the results in
1337
+ # smaller batches. That is, the number of objects returned could be less
1338
+ # than `MaxResults`, even if there are still more objects yet to return.
1339
+ # If there are more objects to return, Shield Advanced returns a value
1340
+ # in `NextToken` that you can use in your next request, to get the next
1341
+ # batch of objects.
1099
1342
  #
1100
1343
  # @return [Types::ListProtectionsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1101
1344
  #
@@ -1119,6 +1362,7 @@ module Aws::Shield
1119
1362
  # resp.protections[0].resource_arn #=> String
1120
1363
  # resp.protections[0].health_check_ids #=> Array
1121
1364
  # resp.protections[0].health_check_ids[0] #=> String
1365
+ # resp.protections[0].protection_arn #=> String
1122
1366
  # resp.next_token #=> String
1123
1367
  #
1124
1368
  # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListProtections AWS API Documentation
@@ -1130,6 +1374,148 @@ module Aws::Shield
1130
1374
  req.send_request(options)
1131
1375
  end
1132
1376
 
1377
+ # Retrieves the resources that are included in the protection group.
1378
+ #
1379
+ # @option params [required, String] :protection_group_id
1380
+ # The name of the protection group. You use this to identify the
1381
+ # protection group in lists and to manage the protection group, for
1382
+ # example to update, delete, or describe it.
1383
+ #
1384
+ # @option params [String] :next_token
1385
+ # The next token value from a previous call to
1386
+ # `ListResourcesInProtectionGroup`. Pass null if this is the first call.
1387
+ #
1388
+ # @option params [Integer] :max_results
1389
+ # The maximum number of resource ARN objects to return. If you leave
1390
+ # this blank, Shield Advanced returns the first 20 results.
1391
+ #
1392
+ # This is a maximum value. Shield Advanced might return the results in
1393
+ # smaller batches. That is, the number of objects returned could be less
1394
+ # than `MaxResults`, even if there are still more objects yet to return.
1395
+ # If there are more objects to return, Shield Advanced returns a value
1396
+ # in `NextToken` that you can use in your next request, to get the next
1397
+ # batch of objects.
1398
+ #
1399
+ # @return [Types::ListResourcesInProtectionGroupResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1400
+ #
1401
+ # * {Types::ListResourcesInProtectionGroupResponse#resource_arns #resource_arns} => Array&lt;String&gt;
1402
+ # * {Types::ListResourcesInProtectionGroupResponse#next_token #next_token} => String
1403
+ #
1404
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1405
+ #
1406
+ # @example Request syntax with placeholder values
1407
+ #
1408
+ # resp = client.list_resources_in_protection_group({
1409
+ # protection_group_id: "ProtectionGroupId", # required
1410
+ # next_token: "Token",
1411
+ # max_results: 1,
1412
+ # })
1413
+ #
1414
+ # @example Response structure
1415
+ #
1416
+ # resp.resource_arns #=> Array
1417
+ # resp.resource_arns[0] #=> String
1418
+ # resp.next_token #=> String
1419
+ #
1420
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListResourcesInProtectionGroup AWS API Documentation
1421
+ #
1422
+ # @overload list_resources_in_protection_group(params = {})
1423
+ # @param [Hash] params ({})
1424
+ def list_resources_in_protection_group(params = {}, options = {})
1425
+ req = build_request(:list_resources_in_protection_group, params)
1426
+ req.send_request(options)
1427
+ end
1428
+
1429
+ # Gets information about AWS tags for a specified Amazon Resource Name
1430
+ # (ARN) in AWS Shield.
1431
+ #
1432
+ # @option params [required, String] :resource_arn
1433
+ # The Amazon Resource Name (ARN) of the resource to get tags for.
1434
+ #
1435
+ # @return [Types::ListTagsForResourceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1436
+ #
1437
+ # * {Types::ListTagsForResourceResponse#tags #tags} => Array&lt;Types::Tag&gt;
1438
+ #
1439
+ # @example Request syntax with placeholder values
1440
+ #
1441
+ # resp = client.list_tags_for_resource({
1442
+ # resource_arn: "ResourceArn", # required
1443
+ # })
1444
+ #
1445
+ # @example Response structure
1446
+ #
1447
+ # resp.tags #=> Array
1448
+ # resp.tags[0].key #=> String
1449
+ # resp.tags[0].value #=> String
1450
+ #
1451
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListTagsForResource AWS API Documentation
1452
+ #
1453
+ # @overload list_tags_for_resource(params = {})
1454
+ # @param [Hash] params ({})
1455
+ def list_tags_for_resource(params = {}, options = {})
1456
+ req = build_request(:list_tags_for_resource, params)
1457
+ req.send_request(options)
1458
+ end
1459
+
1460
+ # Adds or updates tags for a resource in AWS Shield.
1461
+ #
1462
+ # @option params [required, String] :resource_arn
1463
+ # The Amazon Resource Name (ARN) of the resource that you want to add or
1464
+ # update tags for.
1465
+ #
1466
+ # @option params [required, Array<Types::Tag>] :tags
1467
+ # The tags that you want to modify or add to the resource.
1468
+ #
1469
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1470
+ #
1471
+ # @example Request syntax with placeholder values
1472
+ #
1473
+ # resp = client.tag_resource({
1474
+ # resource_arn: "ResourceArn", # required
1475
+ # tags: [ # required
1476
+ # {
1477
+ # key: "TagKey",
1478
+ # value: "TagValue",
1479
+ # },
1480
+ # ],
1481
+ # })
1482
+ #
1483
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/TagResource AWS API Documentation
1484
+ #
1485
+ # @overload tag_resource(params = {})
1486
+ # @param [Hash] params ({})
1487
+ def tag_resource(params = {}, options = {})
1488
+ req = build_request(:tag_resource, params)
1489
+ req.send_request(options)
1490
+ end
1491
+
1492
+ # Removes tags from a resource in AWS Shield.
1493
+ #
1494
+ # @option params [required, String] :resource_arn
1495
+ # The Amazon Resource Name (ARN) of the resource that you want to remove
1496
+ # tags from.
1497
+ #
1498
+ # @option params [required, Array<String>] :tag_keys
1499
+ # The tag key for each tag that you want to remove from the resource.
1500
+ #
1501
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1502
+ #
1503
+ # @example Request syntax with placeholder values
1504
+ #
1505
+ # resp = client.untag_resource({
1506
+ # resource_arn: "ResourceArn", # required
1507
+ # tag_keys: ["TagKey"], # required
1508
+ # })
1509
+ #
1510
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/UntagResource AWS API Documentation
1511
+ #
1512
+ # @overload untag_resource(params = {})
1513
+ # @param [Hash] params ({})
1514
+ def untag_resource(params = {}, options = {})
1515
+ req = build_request(:untag_resource, params)
1516
+ req.send_request(options)
1517
+ end
1518
+
1133
1519
  # Updates the details of the list of email addresses and phone numbers
1134
1520
  # that the DDoS Response Team (DRT) can use to contact you if you have
1135
1521
  # proactive engagement enabled, for escalations to the DRT and to
@@ -1167,6 +1553,71 @@ module Aws::Shield
1167
1553
  req.send_request(options)
1168
1554
  end
1169
1555
 
1556
+ # Updates an existing protection group. A protection group is a grouping
1557
+ # of protected resources so they can be handled as a collective. This
1558
+ # resource grouping improves the accuracy of detection and reduces false
1559
+ # positives.
1560
+ #
1561
+ # @option params [required, String] :protection_group_id
1562
+ # The name of the protection group. You use this to identify the
1563
+ # protection group in lists and to manage the protection group, for
1564
+ # example to update, delete, or describe it.
1565
+ #
1566
+ # @option params [required, String] :aggregation
1567
+ # Defines how AWS Shield combines resource data for the group in order
1568
+ # to detect, mitigate, and report events.
1569
+ #
1570
+ # * Sum - Use the total traffic across the group. This is a good choice
1571
+ # for most cases. Examples include Elastic IP addresses for EC2
1572
+ # instances that scale manually or automatically.
1573
+ #
1574
+ # * Mean - Use the average of the traffic across the group. This is a
1575
+ # good choice for resources that share traffic uniformly. Examples
1576
+ # include accelerators and load balancers.
1577
+ #
1578
+ # * Max - Use the highest traffic from each resource. This is useful for
1579
+ # resources that don't share traffic and for resources that share
1580
+ # that traffic in a non-uniform way. Examples include CloudFront
1581
+ # distributions and origin resources for CloudFront distributions.
1582
+ #
1583
+ # @option params [required, String] :pattern
1584
+ # The criteria to use to choose the protected resources for inclusion in
1585
+ # the group. You can include all resources that have protections,
1586
+ # provide a list of resource Amazon Resource Names (ARNs), or include
1587
+ # all resources of a specified resource type.
1588
+ #
1589
+ # @option params [String] :resource_type
1590
+ # The resource type to include in the protection group. All protected
1591
+ # resources of this type are included in the protection group. You must
1592
+ # set this when you set `Pattern` to `BY_RESOURCE_TYPE` and you must not
1593
+ # set it for any other `Pattern` setting.
1594
+ #
1595
+ # @option params [Array<String>] :members
1596
+ # The Amazon Resource Names (ARNs) of the resources to include in the
1597
+ # protection group. You must set this when you set `Pattern` to
1598
+ # `ARBITRARY` and you must not set it for any other `Pattern` setting.
1599
+ #
1600
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1601
+ #
1602
+ # @example Request syntax with placeholder values
1603
+ #
1604
+ # resp = client.update_protection_group({
1605
+ # protection_group_id: "ProtectionGroupId", # required
1606
+ # aggregation: "SUM", # required, accepts SUM, MEAN, MAX
1607
+ # pattern: "ALL", # required, accepts ALL, ARBITRARY, BY_RESOURCE_TYPE
1608
+ # resource_type: "CLOUDFRONT_DISTRIBUTION", # accepts CLOUDFRONT_DISTRIBUTION, ROUTE_53_HOSTED_ZONE, ELASTIC_IP_ALLOCATION, CLASSIC_LOAD_BALANCER, APPLICATION_LOAD_BALANCER, GLOBAL_ACCELERATOR
1609
+ # members: ["ResourceArn"],
1610
+ # })
1611
+ #
1612
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/UpdateProtectionGroup AWS API Documentation
1613
+ #
1614
+ # @overload update_protection_group(params = {})
1615
+ # @param [Hash] params ({})
1616
+ def update_protection_group(params = {}, options = {})
1617
+ req = build_request(:update_protection_group, params)
1618
+ req.send_request(options)
1619
+ end
1620
+
1170
1621
  # Updates the details of an existing subscription. Only enter values for
1171
1622
  # parameters you want to change. Empty parameters are not updated.
1172
1623
  #
@@ -1208,7 +1659,7 @@ module Aws::Shield
1208
1659
  params: params,
1209
1660
  config: config)
1210
1661
  context[:gem_name] = 'aws-sdk-shield'
1211
- context[:gem_version] = '1.31.0'
1662
+ context[:gem_version] = '1.36.0'
1212
1663
  Seahorse::Client::Request.new(handlers, context)
1213
1664
  end
1214
1665