aws-sdk-shield 1.29.0 → 1.34.0

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