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.
@@ -251,7 +251,7 @@ module Aws::Shield
251
251
  # @return [String]
252
252
  #
253
253
  # @!attribute [rw] top_contributors
254
- # The array of Contributor objects that includes the top five
254
+ # The array of contributor objects that includes the top five
255
255
  # contributors to an attack.
256
256
  # @return [Array<Types::Contributor>]
257
257
  #
@@ -276,6 +276,29 @@ module Aws::Shield
276
276
  include Aws::Structure
277
277
  end
278
278
 
279
+ # A single attack statistics data record. This is returned by
280
+ # DescribeAttackStatistics along with a time range indicating the time
281
+ # period that the attack statistics apply to.
282
+ #
283
+ # @!attribute [rw] attack_volume
284
+ # Information about the volume of attacks during the time period. If
285
+ # the accompanying `AttackCount` is zero, this setting might be empty.
286
+ # @return [Types::AttackVolume]
287
+ #
288
+ # @!attribute [rw] attack_count
289
+ # The number of attacks detected during the time period. This is
290
+ # always present, but might be zero.
291
+ # @return [Integer]
292
+ #
293
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/AttackStatisticsDataItem AWS API Documentation
294
+ #
295
+ class AttackStatisticsDataItem < Struct.new(
296
+ :attack_volume,
297
+ :attack_count)
298
+ SENSITIVE = []
299
+ include Aws::Structure
300
+ end
301
+
279
302
  # Summarizes all DDoS attacks for a specified time period.
280
303
  #
281
304
  # @!attribute [rw] attack_id
@@ -370,6 +393,51 @@ module Aws::Shield
370
393
  include Aws::Structure
371
394
  end
372
395
 
396
+ # Information about the volume of attacks during the time period,
397
+ # included in an AttackStatisticsDataItem. If the accompanying
398
+ # `AttackCount` in the statistics object is zero, this setting might be
399
+ # empty.
400
+ #
401
+ # @!attribute [rw] bits_per_second
402
+ # A statistics object that uses bits per second as the unit. This is
403
+ # included for network level attacks.
404
+ # @return [Types::AttackVolumeStatistics]
405
+ #
406
+ # @!attribute [rw] packets_per_second
407
+ # A statistics object that uses packets per second as the unit. This
408
+ # is included for network level attacks.
409
+ # @return [Types::AttackVolumeStatistics]
410
+ #
411
+ # @!attribute [rw] requests_per_second
412
+ # A statistics object that uses requests per second as the unit. This
413
+ # is included for application level attacks, and is only available for
414
+ # accounts that are subscribed to Shield Advanced.
415
+ # @return [Types::AttackVolumeStatistics]
416
+ #
417
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/AttackVolume AWS API Documentation
418
+ #
419
+ class AttackVolume < Struct.new(
420
+ :bits_per_second,
421
+ :packets_per_second,
422
+ :requests_per_second)
423
+ SENSITIVE = []
424
+ include Aws::Structure
425
+ end
426
+
427
+ # Statistics objects for the various data types in AttackVolume.
428
+ #
429
+ # @!attribute [rw] max
430
+ # The maximum attack volume observed for the given unit.
431
+ # @return [Float]
432
+ #
433
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/AttackVolumeStatistics AWS API Documentation
434
+ #
435
+ class AttackVolumeStatistics < Struct.new(
436
+ :max)
437
+ SENSITIVE = []
438
+ include Aws::Structure
439
+ end
440
+
373
441
  # A contributor to the attack and their contribution.
374
442
  #
375
443
  # @!attribute [rw] name
@@ -393,6 +461,80 @@ module Aws::Shield
393
461
  include Aws::Structure
394
462
  end
395
463
 
464
+ # @note When making an API call, you may pass CreateProtectionGroupRequest
465
+ # data as a hash:
466
+ #
467
+ # {
468
+ # protection_group_id: "ProtectionGroupId", # required
469
+ # aggregation: "SUM", # required, accepts SUM, MEAN, MAX
470
+ # pattern: "ALL", # required, accepts ALL, ARBITRARY, BY_RESOURCE_TYPE
471
+ # resource_type: "CLOUDFRONT_DISTRIBUTION", # accepts CLOUDFRONT_DISTRIBUTION, ROUTE_53_HOSTED_ZONE, ELASTIC_IP_ALLOCATION, CLASSIC_LOAD_BALANCER, APPLICATION_LOAD_BALANCER, GLOBAL_ACCELERATOR
472
+ # members: ["ResourceArn"],
473
+ # }
474
+ #
475
+ # @!attribute [rw] protection_group_id
476
+ # The name of the protection group. You use this to identify the
477
+ # protection group in lists and to manage the protection group, for
478
+ # example to update, delete, or describe it.
479
+ # @return [String]
480
+ #
481
+ # @!attribute [rw] aggregation
482
+ # Defines how AWS Shield combines resource data for the group in order
483
+ # to detect, mitigate, and report events.
484
+ #
485
+ # * Sum - Use the total traffic across the group. This is a good
486
+ # choice for most cases. Examples include Elastic IP addresses for
487
+ # EC2 instances that scale manually or automatically.
488
+ #
489
+ # * Mean - Use the average of the traffic across the group. This is a
490
+ # good choice for resources that share traffic uniformly. Examples
491
+ # include accelerators and load balancers.
492
+ #
493
+ # * Max - Use the highest traffic from each resource. This is useful
494
+ # for resources that don't share traffic and for resources that
495
+ # share that traffic in a non-uniform way. Examples include
496
+ # CloudFront distributions and origin resources for CloudFront
497
+ # distributions.
498
+ # @return [String]
499
+ #
500
+ # @!attribute [rw] pattern
501
+ # The criteria to use to choose the protected resources for inclusion
502
+ # in the group. You can include all resources that have protections,
503
+ # provide a list of resource Amazon Resource Names (ARNs), or include
504
+ # all resources of a specified resource type.
505
+ # @return [String]
506
+ #
507
+ # @!attribute [rw] resource_type
508
+ # The resource type to include in the protection group. All protected
509
+ # resources of this type are included in the protection group. Newly
510
+ # protected resources of this type are automatically added to the
511
+ # group. You must set this when you set `Pattern` to
512
+ # `BY_RESOURCE_TYPE` and you must not set it for any other `Pattern`
513
+ # setting.
514
+ # @return [String]
515
+ #
516
+ # @!attribute [rw] members
517
+ # The Amazon Resource Names (ARNs) of the resources to include in the
518
+ # protection group. You must set this when you set `Pattern` to
519
+ # `ARBITRARY` and you must not set it for any other `Pattern` setting.
520
+ # @return [Array<String>]
521
+ #
522
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/CreateProtectionGroupRequest AWS API Documentation
523
+ #
524
+ class CreateProtectionGroupRequest < Struct.new(
525
+ :protection_group_id,
526
+ :aggregation,
527
+ :pattern,
528
+ :resource_type,
529
+ :members)
530
+ SENSITIVE = []
531
+ include Aws::Structure
532
+ end
533
+
534
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/CreateProtectionGroupResponse AWS API Documentation
535
+ #
536
+ class CreateProtectionGroupResponse < Aws::EmptyStructure; end
537
+
396
538
  # @note When making an API call, you may pass CreateProtectionRequest
397
539
  # data as a hash:
398
540
  #
@@ -464,6 +606,31 @@ module Aws::Shield
464
606
  #
465
607
  class CreateSubscriptionResponse < Aws::EmptyStructure; end
466
608
 
609
+ # @note When making an API call, you may pass DeleteProtectionGroupRequest
610
+ # data as a hash:
611
+ #
612
+ # {
613
+ # protection_group_id: "ProtectionGroupId", # required
614
+ # }
615
+ #
616
+ # @!attribute [rw] protection_group_id
617
+ # The name of the protection group. You use this to identify the
618
+ # protection group in lists and to manage the protection group, for
619
+ # example to update, delete, or describe it.
620
+ # @return [String]
621
+ #
622
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DeleteProtectionGroupRequest AWS API Documentation
623
+ #
624
+ class DeleteProtectionGroupRequest < Struct.new(
625
+ :protection_group_id)
626
+ SENSITIVE = []
627
+ include Aws::Structure
628
+ end
629
+
630
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DeleteProtectionGroupResponse AWS API Documentation
631
+ #
632
+ class DeleteProtectionGroupResponse < Aws::EmptyStructure; end
633
+
467
634
  # @note When making an API call, you may pass DeleteProtectionRequest
468
635
  # data as a hash:
469
636
  #
@@ -528,6 +695,29 @@ module Aws::Shield
528
695
  include Aws::Structure
529
696
  end
530
697
 
698
+ # @api private
699
+ #
700
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeAttackStatisticsRequest AWS API Documentation
701
+ #
702
+ class DescribeAttackStatisticsRequest < Aws::EmptyStructure; end
703
+
704
+ # @!attribute [rw] time_range
705
+ # The time range.
706
+ # @return [Types::TimeRange]
707
+ #
708
+ # @!attribute [rw] data_items
709
+ # The data that describes the attacks detected during the time period.
710
+ # @return [Array<Types::AttackStatisticsDataItem>]
711
+ #
712
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeAttackStatisticsResponse AWS API Documentation
713
+ #
714
+ class DescribeAttackStatisticsResponse < Struct.new(
715
+ :time_range,
716
+ :data_items)
717
+ SENSITIVE = []
718
+ include Aws::Structure
719
+ end
720
+
531
721
  # @api private
532
722
  #
533
723
  # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeDRTAccessRequest AWS API Documentation
@@ -573,6 +763,41 @@ module Aws::Shield
573
763
  include Aws::Structure
574
764
  end
575
765
 
766
+ # @note When making an API call, you may pass DescribeProtectionGroupRequest
767
+ # data as a hash:
768
+ #
769
+ # {
770
+ # protection_group_id: "ProtectionGroupId", # required
771
+ # }
772
+ #
773
+ # @!attribute [rw] protection_group_id
774
+ # The name of the protection group. You use this to identify the
775
+ # protection group in lists and to manage the protection group, for
776
+ # example to update, delete, or describe it.
777
+ # @return [String]
778
+ #
779
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeProtectionGroupRequest AWS API Documentation
780
+ #
781
+ class DescribeProtectionGroupRequest < Struct.new(
782
+ :protection_group_id)
783
+ SENSITIVE = []
784
+ include Aws::Structure
785
+ end
786
+
787
+ # @!attribute [rw] protection_group
788
+ # A grouping of protected resources that you and AWS Shield Advanced
789
+ # can monitor as a collective. This resource grouping improves the
790
+ # accuracy of detection and reduces false positives.
791
+ # @return [Types::ProtectionGroup]
792
+ #
793
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeProtectionGroupResponse AWS API Documentation
794
+ #
795
+ class DescribeProtectionGroupResponse < Struct.new(
796
+ :protection_group)
797
+ SENSITIVE = []
798
+ include Aws::Structure
799
+ end
800
+
576
801
  # @note When making an API call, you may pass DescribeProtectionRequest
577
802
  # data as a hash:
578
803
  #
@@ -815,15 +1040,26 @@ module Aws::Shield
815
1040
  end
816
1041
 
817
1042
  # Exception that indicates that the parameters passed to the API are
818
- # invalid.
1043
+ # invalid. If available, this exception includes details in additional
1044
+ # properties.
819
1045
  #
820
1046
  # @!attribute [rw] message
821
1047
  # @return [String]
822
1048
  #
1049
+ # @!attribute [rw] reason
1050
+ # Additional information about the exception.
1051
+ # @return [String]
1052
+ #
1053
+ # @!attribute [rw] fields
1054
+ # Fields that caused the exception.
1055
+ # @return [Array<Types::ValidationExceptionField>]
1056
+ #
823
1057
  # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/InvalidParameterException AWS API Documentation
824
1058
  #
825
1059
  class InvalidParameterException < Struct.new(
826
- :message)
1060
+ :message,
1061
+ :reason,
1062
+ :fields)
827
1063
  SENSITIVE = []
828
1064
  include Aws::Structure
829
1065
  end
@@ -938,15 +1174,15 @@ module Aws::Shield
938
1174
  # @return [String]
939
1175
  #
940
1176
  # @!attribute [rw] max_results
941
- # The maximum number of AttackSummary objects to be returned. If this
942
- # is left blank, the first 20 results will be returned.
943
- #
944
- # This is a maximum value; it is possible that AWS WAF will return the
945
- # results in smaller batches. That is, the number of AttackSummary
946
- # objects returned could be less than `MaxResults`, even if there are
947
- # still more AttackSummary objects yet to return. If there are more
948
- # AttackSummary objects to return, AWS WAF will always also return a
949
- # `NextToken`.
1177
+ # The maximum number of AttackSummary objects to return. If you leave
1178
+ # this blank, Shield Advanced returns the first 20 results.
1179
+ #
1180
+ # This is a maximum value. Shield Advanced might return the results in
1181
+ # smaller batches. That is, the number of objects returned could be
1182
+ # less than `MaxResults`, even if there are still more objects yet to
1183
+ # return. If there are more objects to return, Shield Advanced returns
1184
+ # a value in `NextToken` that you can use in your next request, to get
1185
+ # the next batch of objects.
950
1186
  # @return [Integer]
951
1187
  #
952
1188
  # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListAttacksRequest AWS API Documentation
@@ -971,10 +1207,10 @@ module Aws::Shield
971
1207
  # value for the `NextMarker` parameter in a subsequent call to
972
1208
  # `ListAttacks` to retrieve the next set of items.
973
1209
  #
974
- # AWS WAF might return the list of AttackSummary objects in batches
975
- # smaller than the number specified by MaxResults. If there are more
976
- # AttackSummary objects to return, AWS WAF will always also return a
977
- # `NextToken`.
1210
+ # Shield Advanced might return the list of AttackSummary objects in
1211
+ # batches smaller than the number specified by MaxResults. If there
1212
+ # are more attack summary objects to return, Shield Advanced will
1213
+ # always also return a `NextToken`.
978
1214
  # @return [String]
979
1215
  #
980
1216
  # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListAttacksResponse AWS API Documentation
@@ -986,6 +1222,59 @@ module Aws::Shield
986
1222
  include Aws::Structure
987
1223
  end
988
1224
 
1225
+ # @note When making an API call, you may pass ListProtectionGroupsRequest
1226
+ # data as a hash:
1227
+ #
1228
+ # {
1229
+ # next_token: "Token",
1230
+ # max_results: 1,
1231
+ # }
1232
+ #
1233
+ # @!attribute [rw] next_token
1234
+ # The next token value from a previous call to `ListProtectionGroups`.
1235
+ # Pass null if this is the first call.
1236
+ # @return [String]
1237
+ #
1238
+ # @!attribute [rw] max_results
1239
+ # The maximum number of ProtectionGroup objects to return. If you
1240
+ # leave this blank, Shield Advanced returns the first 20 results.
1241
+ #
1242
+ # This is a maximum value. Shield Advanced might return the results in
1243
+ # smaller batches. That is, the number of objects returned could be
1244
+ # less than `MaxResults`, even if there are still more objects yet to
1245
+ # return. If there are more objects to return, Shield Advanced returns
1246
+ # a value in `NextToken` that you can use in your next request, to get
1247
+ # the next batch of objects.
1248
+ # @return [Integer]
1249
+ #
1250
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListProtectionGroupsRequest AWS API Documentation
1251
+ #
1252
+ class ListProtectionGroupsRequest < Struct.new(
1253
+ :next_token,
1254
+ :max_results)
1255
+ SENSITIVE = []
1256
+ include Aws::Structure
1257
+ end
1258
+
1259
+ # @!attribute [rw] protection_groups
1260
+ # @return [Array<Types::ProtectionGroup>]
1261
+ #
1262
+ # @!attribute [rw] next_token
1263
+ # If you specify a value for `MaxResults` and you have more protection
1264
+ # groups than the value of MaxResults, AWS Shield Advanced returns
1265
+ # this token that you can use in your next request, to get the next
1266
+ # batch of objects.
1267
+ # @return [String]
1268
+ #
1269
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListProtectionGroupsResponse AWS API Documentation
1270
+ #
1271
+ class ListProtectionGroupsResponse < Struct.new(
1272
+ :protection_groups,
1273
+ :next_token)
1274
+ SENSITIVE = []
1275
+ include Aws::Structure
1276
+ end
1277
+
989
1278
  # @note When making an API call, you may pass ListProtectionsRequest
990
1279
  # data as a hash:
991
1280
  #
@@ -1000,15 +1289,15 @@ module Aws::Shield
1000
1289
  # @return [String]
1001
1290
  #
1002
1291
  # @!attribute [rw] max_results
1003
- # The maximum number of Protection objects to be returned. If this is
1004
- # left blank the first 20 results will be returned.
1005
- #
1006
- # This is a maximum value; it is possible that AWS WAF will return the
1007
- # results in smaller batches. That is, the number of Protection
1008
- # objects returned could be less than `MaxResults`, even if there are
1009
- # still more Protection objects yet to return. If there are more
1010
- # Protection objects to return, AWS WAF will always also return a
1011
- # `NextToken`.
1292
+ # The maximum number of Protection objects to return. If you leave
1293
+ # this blank, Shield Advanced returns the first 20 results.
1294
+ #
1295
+ # This is a maximum value. Shield Advanced might return the results in
1296
+ # smaller batches. That is, the number of objects returned could be
1297
+ # less than `MaxResults`, even if there are still more objects yet to
1298
+ # return. If there are more objects to return, Shield Advanced returns
1299
+ # a value in `NextToken` that you can use in your next request, to get
1300
+ # the next batch of objects.
1012
1301
  # @return [Integer]
1013
1302
  #
1014
1303
  # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListProtectionsRequest AWS API Documentation
@@ -1033,10 +1322,10 @@ module Aws::Shield
1033
1322
  # previous response to get information about another batch of
1034
1323
  # Protections.
1035
1324
  #
1036
- # AWS WAF might return the list of Protection objects in batches
1037
- # smaller than the number specified by MaxResults. If there are more
1038
- # Protection objects to return, AWS WAF will always also return a
1039
- # `NextToken`.
1325
+ # Shield Advanced might return the list of Protection objects in
1326
+ # batches smaller than the number specified by MaxResults. If there
1327
+ # are more Protection objects to return, Shield Advanced will always
1328
+ # also return a `NextToken`.
1040
1329
  # @return [String]
1041
1330
  #
1042
1331
  # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListProtectionsResponse AWS API Documentation
@@ -1048,6 +1337,70 @@ module Aws::Shield
1048
1337
  include Aws::Structure
1049
1338
  end
1050
1339
 
1340
+ # @note When making an API call, you may pass ListResourcesInProtectionGroupRequest
1341
+ # data as a hash:
1342
+ #
1343
+ # {
1344
+ # protection_group_id: "ProtectionGroupId", # required
1345
+ # next_token: "Token",
1346
+ # max_results: 1,
1347
+ # }
1348
+ #
1349
+ # @!attribute [rw] protection_group_id
1350
+ # The name of the protection group. You use this to identify the
1351
+ # protection group in lists and to manage the protection group, for
1352
+ # example to update, delete, or describe it.
1353
+ # @return [String]
1354
+ #
1355
+ # @!attribute [rw] next_token
1356
+ # The next token value from a previous call to
1357
+ # `ListResourcesInProtectionGroup`. Pass null if this is the first
1358
+ # call.
1359
+ # @return [String]
1360
+ #
1361
+ # @!attribute [rw] max_results
1362
+ # The maximum number of resource ARN objects to return. If you leave
1363
+ # this blank, Shield Advanced returns the first 20 results.
1364
+ #
1365
+ # This is a maximum value. Shield Advanced might return the results in
1366
+ # smaller batches. That is, the number of objects returned could be
1367
+ # less than `MaxResults`, even if there are still more objects yet to
1368
+ # return. If there are more objects to return, Shield Advanced returns
1369
+ # a value in `NextToken` that you can use in your next request, to get
1370
+ # the next batch of objects.
1371
+ # @return [Integer]
1372
+ #
1373
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListResourcesInProtectionGroupRequest AWS API Documentation
1374
+ #
1375
+ class ListResourcesInProtectionGroupRequest < Struct.new(
1376
+ :protection_group_id,
1377
+ :next_token,
1378
+ :max_results)
1379
+ SENSITIVE = []
1380
+ include Aws::Structure
1381
+ end
1382
+
1383
+ # @!attribute [rw] resource_arns
1384
+ # The Amazon Resource Names (ARNs) of the resources that are included
1385
+ # in the protection group.
1386
+ # @return [Array<String>]
1387
+ #
1388
+ # @!attribute [rw] next_token
1389
+ # If you specify a value for `MaxResults` and you have more resources
1390
+ # in the protection group than the value of MaxResults, AWS Shield
1391
+ # Advanced returns this token that you can use in your next request,
1392
+ # to get the next batch of objects.
1393
+ # @return [String]
1394
+ #
1395
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListResourcesInProtectionGroupResponse AWS API Documentation
1396
+ #
1397
+ class ListResourcesInProtectionGroupResponse < Struct.new(
1398
+ :resource_arns,
1399
+ :next_token)
1400
+ SENSITIVE = []
1401
+ include Aws::Structure
1402
+ end
1403
+
1051
1404
  # You are trying to update a subscription that has not yet completed the
1052
1405
  # 1-year commitment. You can change the `AutoRenew` parameter during the
1053
1406
  # last 30 days of your subscription. This exception indicates that you
@@ -1112,7 +1465,7 @@ module Aws::Shield
1112
1465
  # @return [String]
1113
1466
  #
1114
1467
  # @!attribute [rw] name
1115
- # The friendly name of the protection. For example, `My CloudFront
1468
+ # The name of the protection. For example, `My CloudFront
1116
1469
  # distributions`.
1117
1470
  # @return [String]
1118
1471
  #
@@ -1137,28 +1490,167 @@ module Aws::Shield
1137
1490
  include Aws::Structure
1138
1491
  end
1139
1492
 
1140
- # Exception indicating the specified resource already exists.
1493
+ # A grouping of protected resources that you and AWS Shield Advanced can
1494
+ # monitor as a collective. This resource grouping improves the accuracy
1495
+ # of detection and reduces false positives.
1496
+ #
1497
+ # @!attribute [rw] protection_group_id
1498
+ # The name of the protection group. You use this to identify the
1499
+ # protection group in lists and to manage the protection group, for
1500
+ # example to update, delete, or describe it.
1501
+ # @return [String]
1502
+ #
1503
+ # @!attribute [rw] aggregation
1504
+ # Defines how AWS Shield combines resource data for the group in order
1505
+ # to detect, mitigate, and report events.
1506
+ #
1507
+ # * Sum - Use the total traffic across the group. This is a good
1508
+ # choice for most cases. Examples include Elastic IP addresses for
1509
+ # EC2 instances that scale manually or automatically.
1510
+ #
1511
+ # * Mean - Use the average of the traffic across the group. This is a
1512
+ # good choice for resources that share traffic uniformly. Examples
1513
+ # include accelerators and load balancers.
1514
+ #
1515
+ # * Max - Use the highest traffic from each resource. This is useful
1516
+ # for resources that don't share traffic and for resources that
1517
+ # share that traffic in a non-uniform way. Examples include
1518
+ # CloudFront distributions and origin resources for CloudFront
1519
+ # distributions.
1520
+ # @return [String]
1521
+ #
1522
+ # @!attribute [rw] pattern
1523
+ # The criteria to use to choose the protected resources for inclusion
1524
+ # in the group. You can include all resources that have protections,
1525
+ # provide a list of resource Amazon Resource Names (ARNs), or include
1526
+ # all resources of a specified resource type.
1527
+ # @return [String]
1528
+ #
1529
+ # @!attribute [rw] resource_type
1530
+ # The resource type to include in the protection group. All protected
1531
+ # resources of this type are included in the protection group. You
1532
+ # must set this when you set `Pattern` to `BY_RESOURCE_TYPE` and you
1533
+ # must not set it for any other `Pattern` setting.
1534
+ # @return [String]
1535
+ #
1536
+ # @!attribute [rw] members
1537
+ # The Amazon Resource Names (ARNs) of the resources to include in the
1538
+ # protection group. You must set this when you set `Pattern` to
1539
+ # `ARBITRARY` and you must not set it for any other `Pattern` setting.
1540
+ # @return [Array<String>]
1541
+ #
1542
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ProtectionGroup AWS API Documentation
1543
+ #
1544
+ class ProtectionGroup < Struct.new(
1545
+ :protection_group_id,
1546
+ :aggregation,
1547
+ :pattern,
1548
+ :resource_type,
1549
+ :members)
1550
+ SENSITIVE = []
1551
+ include Aws::Structure
1552
+ end
1553
+
1554
+ # Limits settings on protection groups with arbitrary pattern type.
1555
+ #
1556
+ # @!attribute [rw] max_members
1557
+ # The maximum number of resources you can specify for a single
1558
+ # arbitrary pattern in a protection group.
1559
+ # @return [Integer]
1560
+ #
1561
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ProtectionGroupArbitraryPatternLimits AWS API Documentation
1562
+ #
1563
+ class ProtectionGroupArbitraryPatternLimits < Struct.new(
1564
+ :max_members)
1565
+ SENSITIVE = []
1566
+ include Aws::Structure
1567
+ end
1568
+
1569
+ # Limits settings on protection groups for your subscription.
1570
+ #
1571
+ # @!attribute [rw] max_protection_groups
1572
+ # The maximum number of protection groups that you can have at one
1573
+ # time.
1574
+ # @return [Integer]
1575
+ #
1576
+ # @!attribute [rw] pattern_type_limits
1577
+ # Limits settings by pattern type in the protection groups for your
1578
+ # subscription.
1579
+ # @return [Types::ProtectionGroupPatternTypeLimits]
1580
+ #
1581
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ProtectionGroupLimits AWS API Documentation
1582
+ #
1583
+ class ProtectionGroupLimits < Struct.new(
1584
+ :max_protection_groups,
1585
+ :pattern_type_limits)
1586
+ SENSITIVE = []
1587
+ include Aws::Structure
1588
+ end
1589
+
1590
+ # Limits settings by pattern type in the protection groups for your
1591
+ # subscription.
1592
+ #
1593
+ # @!attribute [rw] arbitrary_pattern_limits
1594
+ # Limits settings on protection groups with arbitrary pattern type.
1595
+ # @return [Types::ProtectionGroupArbitraryPatternLimits]
1596
+ #
1597
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ProtectionGroupPatternTypeLimits AWS API Documentation
1598
+ #
1599
+ class ProtectionGroupPatternTypeLimits < Struct.new(
1600
+ :arbitrary_pattern_limits)
1601
+ SENSITIVE = []
1602
+ include Aws::Structure
1603
+ end
1604
+
1605
+ # Limits settings on protections for your subscription.
1606
+ #
1607
+ # @!attribute [rw] protected_resource_type_limits
1608
+ # The maximum number of resource types that you can specify in a
1609
+ # protection.
1610
+ # @return [Array<Types::Limit>]
1611
+ #
1612
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ProtectionLimits AWS API Documentation
1613
+ #
1614
+ class ProtectionLimits < Struct.new(
1615
+ :protected_resource_type_limits)
1616
+ SENSITIVE = []
1617
+ include Aws::Structure
1618
+ end
1619
+
1620
+ # Exception indicating the specified resource already exists. If
1621
+ # available, this exception includes details in additional properties.
1141
1622
  #
1142
1623
  # @!attribute [rw] message
1143
1624
  # @return [String]
1144
1625
  #
1626
+ # @!attribute [rw] resource_type
1627
+ # The type of resource that already exists.
1628
+ # @return [String]
1629
+ #
1145
1630
  # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ResourceAlreadyExistsException AWS API Documentation
1146
1631
  #
1147
1632
  class ResourceAlreadyExistsException < Struct.new(
1148
- :message)
1633
+ :message,
1634
+ :resource_type)
1149
1635
  SENSITIVE = []
1150
1636
  include Aws::Structure
1151
1637
  end
1152
1638
 
1153
- # Exception indicating the specified resource does not exist.
1639
+ # Exception indicating the specified resource does not exist. If
1640
+ # available, this exception includes details in additional properties.
1154
1641
  #
1155
1642
  # @!attribute [rw] message
1156
1643
  # @return [String]
1157
1644
  #
1645
+ # @!attribute [rw] resource_type
1646
+ # Type of resource.
1647
+ # @return [String]
1648
+ #
1158
1649
  # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ResourceNotFoundException AWS API Documentation
1159
1650
  #
1160
1651
  class ResourceNotFoundException < Struct.new(
1161
- :message)
1652
+ :message,
1653
+ :resource_type)
1162
1654
  SENSITIVE = []
1163
1655
  include Aws::Structure
1164
1656
  end
@@ -1240,6 +1732,10 @@ module Aws::Shield
1240
1732
  # escalations or to initiate proactive customer support.
1241
1733
  # @return [String]
1242
1734
  #
1735
+ # @!attribute [rw] subscription_limits
1736
+ # Limits settings for your subscription.
1737
+ # @return [Types::SubscriptionLimits]
1738
+ #
1243
1739
  # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/Subscription AWS API Documentation
1244
1740
  #
1245
1741
  class Subscription < Struct.new(
@@ -1248,7 +1744,27 @@ module Aws::Shield
1248
1744
  :time_commitment_in_seconds,
1249
1745
  :auto_renew,
1250
1746
  :limits,
1251
- :proactive_engagement_status)
1747
+ :proactive_engagement_status,
1748
+ :subscription_limits)
1749
+ SENSITIVE = []
1750
+ include Aws::Structure
1751
+ end
1752
+
1753
+ # Limits settings for your subscription.
1754
+ #
1755
+ # @!attribute [rw] protection_limits
1756
+ # Limits settings on protections for your subscription.
1757
+ # @return [Types::ProtectionLimits]
1758
+ #
1759
+ # @!attribute [rw] protection_group_limits
1760
+ # Limits settings on protection groups for your subscription.
1761
+ # @return [Types::ProtectionGroupLimits]
1762
+ #
1763
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/SubscriptionLimits AWS API Documentation
1764
+ #
1765
+ class SubscriptionLimits < Struct.new(
1766
+ :protection_limits,
1767
+ :protection_group_limits)
1252
1768
  SENSITIVE = []
1253
1769
  include Aws::Structure
1254
1770
  end
@@ -1383,6 +1899,78 @@ module Aws::Shield
1383
1899
  #
1384
1900
  class UpdateEmergencyContactSettingsResponse < Aws::EmptyStructure; end
1385
1901
 
1902
+ # @note When making an API call, you may pass UpdateProtectionGroupRequest
1903
+ # data as a hash:
1904
+ #
1905
+ # {
1906
+ # protection_group_id: "ProtectionGroupId", # required
1907
+ # aggregation: "SUM", # required, accepts SUM, MEAN, MAX
1908
+ # pattern: "ALL", # required, accepts ALL, ARBITRARY, BY_RESOURCE_TYPE
1909
+ # resource_type: "CLOUDFRONT_DISTRIBUTION", # accepts CLOUDFRONT_DISTRIBUTION, ROUTE_53_HOSTED_ZONE, ELASTIC_IP_ALLOCATION, CLASSIC_LOAD_BALANCER, APPLICATION_LOAD_BALANCER, GLOBAL_ACCELERATOR
1910
+ # members: ["ResourceArn"],
1911
+ # }
1912
+ #
1913
+ # @!attribute [rw] protection_group_id
1914
+ # The name of the protection group. You use this to identify the
1915
+ # protection group in lists and to manage the protection group, for
1916
+ # example to update, delete, or describe it.
1917
+ # @return [String]
1918
+ #
1919
+ # @!attribute [rw] aggregation
1920
+ # Defines how AWS Shield combines resource data for the group in order
1921
+ # to detect, mitigate, and report events.
1922
+ #
1923
+ # * Sum - Use the total traffic across the group. This is a good
1924
+ # choice for most cases. Examples include Elastic IP addresses for
1925
+ # EC2 instances that scale manually or automatically.
1926
+ #
1927
+ # * Mean - Use the average of the traffic across the group. This is a
1928
+ # good choice for resources that share traffic uniformly. Examples
1929
+ # include accelerators and load balancers.
1930
+ #
1931
+ # * Max - Use the highest traffic from each resource. This is useful
1932
+ # for resources that don't share traffic and for resources that
1933
+ # share that traffic in a non-uniform way. Examples include
1934
+ # CloudFront distributions and origin resources for CloudFront
1935
+ # distributions.
1936
+ # @return [String]
1937
+ #
1938
+ # @!attribute [rw] pattern
1939
+ # The criteria to use to choose the protected resources for inclusion
1940
+ # in the group. You can include all resources that have protections,
1941
+ # provide a list of resource Amazon Resource Names (ARNs), or include
1942
+ # all resources of a specified resource type.
1943
+ # @return [String]
1944
+ #
1945
+ # @!attribute [rw] resource_type
1946
+ # The resource type to include in the protection group. All protected
1947
+ # resources of this type are included in the protection group. You
1948
+ # must set this when you set `Pattern` to `BY_RESOURCE_TYPE` and you
1949
+ # must not set it for any other `Pattern` setting.
1950
+ # @return [String]
1951
+ #
1952
+ # @!attribute [rw] members
1953
+ # The Amazon Resource Names (ARNs) of the resources to include in the
1954
+ # protection group. You must set this when you set `Pattern` to
1955
+ # `ARBITRARY` and you must not set it for any other `Pattern` setting.
1956
+ # @return [Array<String>]
1957
+ #
1958
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/UpdateProtectionGroupRequest AWS API Documentation
1959
+ #
1960
+ class UpdateProtectionGroupRequest < Struct.new(
1961
+ :protection_group_id,
1962
+ :aggregation,
1963
+ :pattern,
1964
+ :resource_type,
1965
+ :members)
1966
+ SENSITIVE = []
1967
+ include Aws::Structure
1968
+ end
1969
+
1970
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/UpdateProtectionGroupResponse AWS API Documentation
1971
+ #
1972
+ class UpdateProtectionGroupResponse < Aws::EmptyStructure; end
1973
+
1386
1974
  # @note When making an API call, you may pass UpdateSubscriptionRequest
1387
1975
  # data as a hash:
1388
1976
  #
@@ -1411,5 +1999,25 @@ module Aws::Shield
1411
1999
  #
1412
2000
  class UpdateSubscriptionResponse < Aws::EmptyStructure; end
1413
2001
 
2002
+ # Provides information about a particular parameter passed inside a
2003
+ # request that resulted in an exception.
2004
+ #
2005
+ # @!attribute [rw] name
2006
+ # The name of the parameter that failed validation.
2007
+ # @return [String]
2008
+ #
2009
+ # @!attribute [rw] message
2010
+ # The message describing why the parameter failed validation.
2011
+ # @return [String]
2012
+ #
2013
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ValidationExceptionField AWS API Documentation
2014
+ #
2015
+ class ValidationExceptionField < Struct.new(
2016
+ :name,
2017
+ :message)
2018
+ SENSITIVE = []
2019
+ include Aws::Structure
2020
+ end
2021
+
1414
2022
  end
1415
2023
  end