aws-sdk-shield 1.31.0 → 1.36.0

Sign up to get free protection for your applications and to get access to all the features.
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