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.
@@ -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
 
@@ -135,6 +135,16 @@ module Aws::Shield
135
135
  def message
136
136
  @message || @data[:message]
137
137
  end
138
+
139
+ # @return [String]
140
+ def reason
141
+ @data[:reason]
142
+ end
143
+
144
+ # @return [String]
145
+ def fields
146
+ @data[:fields]
147
+ end
138
148
  end
139
149
 
140
150
  class InvalidResourceException < ServiceError
@@ -235,6 +245,11 @@ module Aws::Shield
235
245
  def message
236
246
  @message || @data[:message]
237
247
  end
248
+
249
+ # @return [String]
250
+ def resource_type
251
+ @data[:resource_type]
252
+ end
238
253
  end
239
254
 
240
255
  class ResourceNotFoundException < ServiceError
@@ -250,6 +265,11 @@ module Aws::Shield
250
265
  def message
251
266
  @message || @data[:message]
252
267
  end
268
+
269
+ # @return [String]
270
+ def resource_type
271
+ @data[:resource_type]
272
+ end
253
273
  end
254
274
 
255
275
  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
 
@@ -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
 
@@ -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,12 +461,103 @@ 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
+ # tags: [
474
+ # {
475
+ # key: "TagKey",
476
+ # value: "TagValue",
477
+ # },
478
+ # ],
479
+ # }
480
+ #
481
+ # @!attribute [rw] protection_group_id
482
+ # The name of the protection group. You use this to identify the
483
+ # protection group in lists and to manage the protection group, for
484
+ # example to update, delete, or describe it.
485
+ # @return [String]
486
+ #
487
+ # @!attribute [rw] aggregation
488
+ # Defines how AWS Shield combines resource data for the group in order
489
+ # to detect, mitigate, and report events.
490
+ #
491
+ # * Sum - Use the total traffic across the group. This is a good
492
+ # choice for most cases. Examples include Elastic IP addresses for
493
+ # EC2 instances that scale manually or automatically.
494
+ #
495
+ # * Mean - Use the average of the traffic across the group. This is a
496
+ # good choice for resources that share traffic uniformly. Examples
497
+ # include accelerators and load balancers.
498
+ #
499
+ # * Max - Use the highest traffic from each resource. This is useful
500
+ # for resources that don't share traffic and for resources that
501
+ # share that traffic in a non-uniform way. Examples include
502
+ # CloudFront distributions and origin resources for CloudFront
503
+ # distributions.
504
+ # @return [String]
505
+ #
506
+ # @!attribute [rw] pattern
507
+ # The criteria to use to choose the protected resources for inclusion
508
+ # in the group. You can include all resources that have protections,
509
+ # provide a list of resource Amazon Resource Names (ARNs), or include
510
+ # all resources of a specified resource type.
511
+ # @return [String]
512
+ #
513
+ # @!attribute [rw] resource_type
514
+ # The resource type to include in the protection group. All protected
515
+ # resources of this type are included in the protection group. Newly
516
+ # protected resources of this type are automatically added to the
517
+ # group. You must set this when you set `Pattern` to
518
+ # `BY_RESOURCE_TYPE` and you must not set it for any other `Pattern`
519
+ # setting.
520
+ # @return [String]
521
+ #
522
+ # @!attribute [rw] members
523
+ # The Amazon Resource Names (ARNs) of the resources to include in the
524
+ # protection group. You must set this when you set `Pattern` to
525
+ # `ARBITRARY` and you must not set it for any other `Pattern` setting.
526
+ # @return [Array<String>]
527
+ #
528
+ # @!attribute [rw] tags
529
+ # One or more tag key-value pairs for the protection group.
530
+ # @return [Array<Types::Tag>]
531
+ #
532
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/CreateProtectionGroupRequest AWS API Documentation
533
+ #
534
+ class CreateProtectionGroupRequest < Struct.new(
535
+ :protection_group_id,
536
+ :aggregation,
537
+ :pattern,
538
+ :resource_type,
539
+ :members,
540
+ :tags)
541
+ SENSITIVE = []
542
+ include Aws::Structure
543
+ end
544
+
545
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/CreateProtectionGroupResponse AWS API Documentation
546
+ #
547
+ class CreateProtectionGroupResponse < Aws::EmptyStructure; end
548
+
396
549
  # @note When making an API call, you may pass CreateProtectionRequest
397
550
  # data as a hash:
398
551
  #
399
552
  # {
400
553
  # name: "ProtectionName", # required
401
554
  # resource_arn: "ResourceArn", # required
555
+ # tags: [
556
+ # {
557
+ # key: "TagKey",
558
+ # value: "TagValue",
559
+ # },
560
+ # ],
402
561
  # }
403
562
  #
404
563
  # @!attribute [rw] name
@@ -432,11 +591,17 @@ module Aws::Shield
432
591
  # `arn:aws:ec2:region:account-id:eip-allocation/allocation-id `
433
592
  # @return [String]
434
593
  #
594
+ # @!attribute [rw] tags
595
+ # One or more tag key-value pairs for the Protection object that is
596
+ # created.
597
+ # @return [Array<Types::Tag>]
598
+ #
435
599
  # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/CreateProtectionRequest AWS API Documentation
436
600
  #
437
601
  class CreateProtectionRequest < Struct.new(
438
602
  :name,
439
- :resource_arn)
603
+ :resource_arn,
604
+ :tags)
440
605
  SENSITIVE = []
441
606
  include Aws::Structure
442
607
  end
@@ -464,6 +629,31 @@ module Aws::Shield
464
629
  #
465
630
  class CreateSubscriptionResponse < Aws::EmptyStructure; end
466
631
 
632
+ # @note When making an API call, you may pass DeleteProtectionGroupRequest
633
+ # data as a hash:
634
+ #
635
+ # {
636
+ # protection_group_id: "ProtectionGroupId", # required
637
+ # }
638
+ #
639
+ # @!attribute [rw] protection_group_id
640
+ # The name of the protection group. You use this to identify the
641
+ # protection group in lists and to manage the protection group, for
642
+ # example to update, delete, or describe it.
643
+ # @return [String]
644
+ #
645
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DeleteProtectionGroupRequest AWS API Documentation
646
+ #
647
+ class DeleteProtectionGroupRequest < Struct.new(
648
+ :protection_group_id)
649
+ SENSITIVE = []
650
+ include Aws::Structure
651
+ end
652
+
653
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DeleteProtectionGroupResponse AWS API Documentation
654
+ #
655
+ class DeleteProtectionGroupResponse < Aws::EmptyStructure; end
656
+
467
657
  # @note When making an API call, you may pass DeleteProtectionRequest
468
658
  # data as a hash:
469
659
  #
@@ -528,6 +718,29 @@ module Aws::Shield
528
718
  include Aws::Structure
529
719
  end
530
720
 
721
+ # @api private
722
+ #
723
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeAttackStatisticsRequest AWS API Documentation
724
+ #
725
+ class DescribeAttackStatisticsRequest < Aws::EmptyStructure; end
726
+
727
+ # @!attribute [rw] time_range
728
+ # The time range.
729
+ # @return [Types::TimeRange]
730
+ #
731
+ # @!attribute [rw] data_items
732
+ # The data that describes the attacks detected during the time period.
733
+ # @return [Array<Types::AttackStatisticsDataItem>]
734
+ #
735
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeAttackStatisticsResponse AWS API Documentation
736
+ #
737
+ class DescribeAttackStatisticsResponse < Struct.new(
738
+ :time_range,
739
+ :data_items)
740
+ SENSITIVE = []
741
+ include Aws::Structure
742
+ end
743
+
531
744
  # @api private
532
745
  #
533
746
  # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeDRTAccessRequest AWS API Documentation
@@ -573,6 +786,41 @@ module Aws::Shield
573
786
  include Aws::Structure
574
787
  end
575
788
 
789
+ # @note When making an API call, you may pass DescribeProtectionGroupRequest
790
+ # data as a hash:
791
+ #
792
+ # {
793
+ # protection_group_id: "ProtectionGroupId", # required
794
+ # }
795
+ #
796
+ # @!attribute [rw] protection_group_id
797
+ # The name of the protection group. You use this to identify the
798
+ # protection group in lists and to manage the protection group, for
799
+ # example to update, delete, or describe it.
800
+ # @return [String]
801
+ #
802
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeProtectionGroupRequest AWS API Documentation
803
+ #
804
+ class DescribeProtectionGroupRequest < Struct.new(
805
+ :protection_group_id)
806
+ SENSITIVE = []
807
+ include Aws::Structure
808
+ end
809
+
810
+ # @!attribute [rw] protection_group
811
+ # A grouping of protected resources that you and AWS Shield Advanced
812
+ # can monitor as a collective. This resource grouping improves the
813
+ # accuracy of detection and reduces false positives.
814
+ # @return [Types::ProtectionGroup]
815
+ #
816
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeProtectionGroupResponse AWS API Documentation
817
+ #
818
+ class DescribeProtectionGroupResponse < Struct.new(
819
+ :protection_group)
820
+ SENSITIVE = []
821
+ include Aws::Structure
822
+ end
823
+
576
824
  # @note When making an API call, you may pass DescribeProtectionRequest
577
825
  # data as a hash:
578
826
  #
@@ -815,15 +1063,26 @@ module Aws::Shield
815
1063
  end
816
1064
 
817
1065
  # Exception that indicates that the parameters passed to the API are
818
- # invalid.
1066
+ # invalid. If available, this exception includes details in additional
1067
+ # properties.
819
1068
  #
820
1069
  # @!attribute [rw] message
821
1070
  # @return [String]
822
1071
  #
1072
+ # @!attribute [rw] reason
1073
+ # Additional information about the exception.
1074
+ # @return [String]
1075
+ #
1076
+ # @!attribute [rw] fields
1077
+ # Fields that caused the exception.
1078
+ # @return [Array<Types::ValidationExceptionField>]
1079
+ #
823
1080
  # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/InvalidParameterException AWS API Documentation
824
1081
  #
825
1082
  class InvalidParameterException < Struct.new(
826
- :message)
1083
+ :message,
1084
+ :reason,
1085
+ :fields)
827
1086
  SENSITIVE = []
828
1087
  include Aws::Structure
829
1088
  end
@@ -938,15 +1197,15 @@ module Aws::Shield
938
1197
  # @return [String]
939
1198
  #
940
1199
  # @!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`.
1200
+ # The maximum number of AttackSummary objects to return. If you leave
1201
+ # this blank, Shield Advanced returns the first 20 results.
1202
+ #
1203
+ # This is a maximum value. Shield Advanced might return the results in
1204
+ # smaller batches. That is, the number of objects returned could be
1205
+ # less than `MaxResults`, even if there are still more objects yet to
1206
+ # return. If there are more objects to return, Shield Advanced returns
1207
+ # a value in `NextToken` that you can use in your next request, to get
1208
+ # the next batch of objects.
950
1209
  # @return [Integer]
951
1210
  #
952
1211
  # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListAttacksRequest AWS API Documentation
@@ -971,10 +1230,10 @@ module Aws::Shield
971
1230
  # value for the `NextMarker` parameter in a subsequent call to
972
1231
  # `ListAttacks` to retrieve the next set of items.
973
1232
  #
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`.
1233
+ # Shield Advanced might return the list of AttackSummary objects in
1234
+ # batches smaller than the number specified by MaxResults. If there
1235
+ # are more attack summary objects to return, Shield Advanced will
1236
+ # always also return a `NextToken`.
978
1237
  # @return [String]
979
1238
  #
980
1239
  # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListAttacksResponse AWS API Documentation
@@ -986,6 +1245,59 @@ module Aws::Shield
986
1245
  include Aws::Structure
987
1246
  end
988
1247
 
1248
+ # @note When making an API call, you may pass ListProtectionGroupsRequest
1249
+ # data as a hash:
1250
+ #
1251
+ # {
1252
+ # next_token: "Token",
1253
+ # max_results: 1,
1254
+ # }
1255
+ #
1256
+ # @!attribute [rw] next_token
1257
+ # The next token value from a previous call to `ListProtectionGroups`.
1258
+ # Pass null if this is the first call.
1259
+ # @return [String]
1260
+ #
1261
+ # @!attribute [rw] max_results
1262
+ # The maximum number of ProtectionGroup objects to return. If you
1263
+ # leave this blank, Shield Advanced returns the first 20 results.
1264
+ #
1265
+ # This is a maximum value. Shield Advanced might return the results in
1266
+ # smaller batches. That is, the number of objects returned could be
1267
+ # less than `MaxResults`, even if there are still more objects yet to
1268
+ # return. If there are more objects to return, Shield Advanced returns
1269
+ # a value in `NextToken` that you can use in your next request, to get
1270
+ # the next batch of objects.
1271
+ # @return [Integer]
1272
+ #
1273
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListProtectionGroupsRequest AWS API Documentation
1274
+ #
1275
+ class ListProtectionGroupsRequest < Struct.new(
1276
+ :next_token,
1277
+ :max_results)
1278
+ SENSITIVE = []
1279
+ include Aws::Structure
1280
+ end
1281
+
1282
+ # @!attribute [rw] protection_groups
1283
+ # @return [Array<Types::ProtectionGroup>]
1284
+ #
1285
+ # @!attribute [rw] next_token
1286
+ # If you specify a value for `MaxResults` and you have more protection
1287
+ # groups than the value of MaxResults, AWS Shield Advanced returns
1288
+ # this token that you can use in your next request, to get the next
1289
+ # batch of objects.
1290
+ # @return [String]
1291
+ #
1292
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListProtectionGroupsResponse AWS API Documentation
1293
+ #
1294
+ class ListProtectionGroupsResponse < Struct.new(
1295
+ :protection_groups,
1296
+ :next_token)
1297
+ SENSITIVE = []
1298
+ include Aws::Structure
1299
+ end
1300
+
989
1301
  # @note When making an API call, you may pass ListProtectionsRequest
990
1302
  # data as a hash:
991
1303
  #
@@ -1000,15 +1312,15 @@ module Aws::Shield
1000
1312
  # @return [String]
1001
1313
  #
1002
1314
  # @!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`.
1315
+ # The maximum number of Protection objects to return. If you leave
1316
+ # this blank, Shield Advanced returns the first 20 results.
1317
+ #
1318
+ # This is a maximum value. Shield Advanced might return the results in
1319
+ # smaller batches. That is, the number of objects returned could be
1320
+ # less than `MaxResults`, even if there are still more objects yet to
1321
+ # return. If there are more objects to return, Shield Advanced returns
1322
+ # a value in `NextToken` that you can use in your next request, to get
1323
+ # the next batch of objects.
1012
1324
  # @return [Integer]
1013
1325
  #
1014
1326
  # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListProtectionsRequest AWS API Documentation
@@ -1033,10 +1345,10 @@ module Aws::Shield
1033
1345
  # previous response to get information about another batch of
1034
1346
  # Protections.
1035
1347
  #
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`.
1348
+ # Shield Advanced might return the list of Protection objects in
1349
+ # batches smaller than the number specified by MaxResults. If there
1350
+ # are more Protection objects to return, Shield Advanced will always
1351
+ # also return a `NextToken`.
1040
1352
  # @return [String]
1041
1353
  #
1042
1354
  # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListProtectionsResponse AWS API Documentation
@@ -1048,6 +1360,102 @@ module Aws::Shield
1048
1360
  include Aws::Structure
1049
1361
  end
1050
1362
 
1363
+ # @note When making an API call, you may pass ListResourcesInProtectionGroupRequest
1364
+ # data as a hash:
1365
+ #
1366
+ # {
1367
+ # protection_group_id: "ProtectionGroupId", # required
1368
+ # next_token: "Token",
1369
+ # max_results: 1,
1370
+ # }
1371
+ #
1372
+ # @!attribute [rw] protection_group_id
1373
+ # The name of the protection group. You use this to identify the
1374
+ # protection group in lists and to manage the protection group, for
1375
+ # example to update, delete, or describe it.
1376
+ # @return [String]
1377
+ #
1378
+ # @!attribute [rw] next_token
1379
+ # The next token value from a previous call to
1380
+ # `ListResourcesInProtectionGroup`. Pass null if this is the first
1381
+ # call.
1382
+ # @return [String]
1383
+ #
1384
+ # @!attribute [rw] max_results
1385
+ # The maximum number of resource ARN objects to return. If you leave
1386
+ # this blank, Shield Advanced returns the first 20 results.
1387
+ #
1388
+ # This is a maximum value. Shield Advanced might return the results in
1389
+ # smaller batches. That is, the number of objects returned could be
1390
+ # less than `MaxResults`, even if there are still more objects yet to
1391
+ # return. If there are more objects to return, Shield Advanced returns
1392
+ # a value in `NextToken` that you can use in your next request, to get
1393
+ # the next batch of objects.
1394
+ # @return [Integer]
1395
+ #
1396
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListResourcesInProtectionGroupRequest AWS API Documentation
1397
+ #
1398
+ class ListResourcesInProtectionGroupRequest < Struct.new(
1399
+ :protection_group_id,
1400
+ :next_token,
1401
+ :max_results)
1402
+ SENSITIVE = []
1403
+ include Aws::Structure
1404
+ end
1405
+
1406
+ # @!attribute [rw] resource_arns
1407
+ # The Amazon Resource Names (ARNs) of the resources that are included
1408
+ # in the protection group.
1409
+ # @return [Array<String>]
1410
+ #
1411
+ # @!attribute [rw] next_token
1412
+ # If you specify a value for `MaxResults` and you have more resources
1413
+ # in the protection group than the value of MaxResults, AWS Shield
1414
+ # Advanced returns this token that you can use in your next request,
1415
+ # to get the next batch of objects.
1416
+ # @return [String]
1417
+ #
1418
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListResourcesInProtectionGroupResponse AWS API Documentation
1419
+ #
1420
+ class ListResourcesInProtectionGroupResponse < Struct.new(
1421
+ :resource_arns,
1422
+ :next_token)
1423
+ SENSITIVE = []
1424
+ include Aws::Structure
1425
+ end
1426
+
1427
+ # @note When making an API call, you may pass ListTagsForResourceRequest
1428
+ # data as a hash:
1429
+ #
1430
+ # {
1431
+ # resource_arn: "ResourceArn", # required
1432
+ # }
1433
+ #
1434
+ # @!attribute [rw] resource_arn
1435
+ # The Amazon Resource Name (ARN) of the resource to get tags for.
1436
+ # @return [String]
1437
+ #
1438
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListTagsForResourceRequest AWS API Documentation
1439
+ #
1440
+ class ListTagsForResourceRequest < Struct.new(
1441
+ :resource_arn)
1442
+ SENSITIVE = []
1443
+ include Aws::Structure
1444
+ end
1445
+
1446
+ # @!attribute [rw] tags
1447
+ # A list of tag key and value pairs associated with the specified
1448
+ # resource.
1449
+ # @return [Array<Types::Tag>]
1450
+ #
1451
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListTagsForResourceResponse AWS API Documentation
1452
+ #
1453
+ class ListTagsForResourceResponse < Struct.new(
1454
+ :tags)
1455
+ SENSITIVE = []
1456
+ include Aws::Structure
1457
+ end
1458
+
1051
1459
  # You are trying to update a subscription that has not yet completed the
1052
1460
  # 1-year commitment. You can change the `AutoRenew` parameter during the
1053
1461
  # last 30 days of your subscription. This exception indicates that you
@@ -1112,7 +1520,7 @@ module Aws::Shield
1112
1520
  # @return [String]
1113
1521
  #
1114
1522
  # @!attribute [rw] name
1115
- # The friendly name of the protection. For example, `My CloudFront
1523
+ # The name of the protection. For example, `My CloudFront
1116
1524
  # distributions`.
1117
1525
  # @return [String]
1118
1526
  #
@@ -1126,39 +1534,188 @@ module Aws::Shield
1126
1534
  # associated with the protection.
1127
1535
  # @return [Array<String>]
1128
1536
  #
1537
+ # @!attribute [rw] protection_arn
1538
+ # The ARN (Amazon Resource Name) of the protection.
1539
+ # @return [String]
1540
+ #
1129
1541
  # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/Protection AWS API Documentation
1130
1542
  #
1131
1543
  class Protection < Struct.new(
1132
1544
  :id,
1133
1545
  :name,
1134
1546
  :resource_arn,
1135
- :health_check_ids)
1547
+ :health_check_ids,
1548
+ :protection_arn)
1549
+ SENSITIVE = []
1550
+ include Aws::Structure
1551
+ end
1552
+
1553
+ # A grouping of protected resources that you and AWS Shield Advanced can
1554
+ # monitor as a collective. This resource grouping improves the accuracy
1555
+ # of detection and reduces false positives.
1556
+ #
1557
+ # @!attribute [rw] protection_group_id
1558
+ # The name of the protection group. You use this to identify the
1559
+ # protection group in lists and to manage the protection group, for
1560
+ # example to update, delete, or describe it.
1561
+ # @return [String]
1562
+ #
1563
+ # @!attribute [rw] aggregation
1564
+ # Defines how AWS Shield combines resource data for the group in order
1565
+ # to detect, mitigate, and report events.
1566
+ #
1567
+ # * Sum - Use the total traffic across the group. This is a good
1568
+ # choice for most cases. Examples include Elastic IP addresses for
1569
+ # EC2 instances that scale manually or automatically.
1570
+ #
1571
+ # * Mean - Use the average of the traffic across the group. This is a
1572
+ # good choice for resources that share traffic uniformly. Examples
1573
+ # include accelerators and load balancers.
1574
+ #
1575
+ # * Max - Use the highest traffic from each resource. This is useful
1576
+ # for resources that don't share traffic and for resources that
1577
+ # share that traffic in a non-uniform way. Examples include
1578
+ # CloudFront distributions and origin resources for CloudFront
1579
+ # distributions.
1580
+ # @return [String]
1581
+ #
1582
+ # @!attribute [rw] pattern
1583
+ # The criteria to use to choose the protected resources for inclusion
1584
+ # in the group. You can include all resources that have protections,
1585
+ # provide a list of resource Amazon Resource Names (ARNs), or include
1586
+ # all resources of a specified resource type.
1587
+ # @return [String]
1588
+ #
1589
+ # @!attribute [rw] 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
1592
+ # must set this when you set `Pattern` to `BY_RESOURCE_TYPE` and you
1593
+ # must not set it for any other `Pattern` setting.
1594
+ # @return [String]
1595
+ #
1596
+ # @!attribute [rw] members
1597
+ # The Amazon Resource Names (ARNs) of the resources to include in the
1598
+ # protection group. You must set this when you set `Pattern` to
1599
+ # `ARBITRARY` and you must not set it for any other `Pattern` setting.
1600
+ # @return [Array<String>]
1601
+ #
1602
+ # @!attribute [rw] protection_group_arn
1603
+ # The ARN (Amazon Resource Name) of the protection group.
1604
+ # @return [String]
1605
+ #
1606
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ProtectionGroup AWS API Documentation
1607
+ #
1608
+ class ProtectionGroup < Struct.new(
1609
+ :protection_group_id,
1610
+ :aggregation,
1611
+ :pattern,
1612
+ :resource_type,
1613
+ :members,
1614
+ :protection_group_arn)
1136
1615
  SENSITIVE = []
1137
1616
  include Aws::Structure
1138
1617
  end
1139
1618
 
1140
- # Exception indicating the specified resource already exists.
1619
+ # Limits settings on protection groups with arbitrary pattern type.
1620
+ #
1621
+ # @!attribute [rw] max_members
1622
+ # The maximum number of resources you can specify for a single
1623
+ # arbitrary pattern in a protection group.
1624
+ # @return [Integer]
1625
+ #
1626
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ProtectionGroupArbitraryPatternLimits AWS API Documentation
1627
+ #
1628
+ class ProtectionGroupArbitraryPatternLimits < Struct.new(
1629
+ :max_members)
1630
+ SENSITIVE = []
1631
+ include Aws::Structure
1632
+ end
1633
+
1634
+ # Limits settings on protection groups for your subscription.
1635
+ #
1636
+ # @!attribute [rw] max_protection_groups
1637
+ # The maximum number of protection groups that you can have at one
1638
+ # time.
1639
+ # @return [Integer]
1640
+ #
1641
+ # @!attribute [rw] pattern_type_limits
1642
+ # Limits settings by pattern type in the protection groups for your
1643
+ # subscription.
1644
+ # @return [Types::ProtectionGroupPatternTypeLimits]
1645
+ #
1646
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ProtectionGroupLimits AWS API Documentation
1647
+ #
1648
+ class ProtectionGroupLimits < Struct.new(
1649
+ :max_protection_groups,
1650
+ :pattern_type_limits)
1651
+ SENSITIVE = []
1652
+ include Aws::Structure
1653
+ end
1654
+
1655
+ # Limits settings by pattern type in the protection groups for your
1656
+ # subscription.
1657
+ #
1658
+ # @!attribute [rw] arbitrary_pattern_limits
1659
+ # Limits settings on protection groups with arbitrary pattern type.
1660
+ # @return [Types::ProtectionGroupArbitraryPatternLimits]
1661
+ #
1662
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ProtectionGroupPatternTypeLimits AWS API Documentation
1663
+ #
1664
+ class ProtectionGroupPatternTypeLimits < Struct.new(
1665
+ :arbitrary_pattern_limits)
1666
+ SENSITIVE = []
1667
+ include Aws::Structure
1668
+ end
1669
+
1670
+ # Limits settings on protections for your subscription.
1671
+ #
1672
+ # @!attribute [rw] protected_resource_type_limits
1673
+ # The maximum number of resource types that you can specify in a
1674
+ # protection.
1675
+ # @return [Array<Types::Limit>]
1676
+ #
1677
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ProtectionLimits AWS API Documentation
1678
+ #
1679
+ class ProtectionLimits < Struct.new(
1680
+ :protected_resource_type_limits)
1681
+ SENSITIVE = []
1682
+ include Aws::Structure
1683
+ end
1684
+
1685
+ # Exception indicating the specified resource already exists. If
1686
+ # available, this exception includes details in additional properties.
1141
1687
  #
1142
1688
  # @!attribute [rw] message
1143
1689
  # @return [String]
1144
1690
  #
1691
+ # @!attribute [rw] resource_type
1692
+ # The type of resource that already exists.
1693
+ # @return [String]
1694
+ #
1145
1695
  # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ResourceAlreadyExistsException AWS API Documentation
1146
1696
  #
1147
1697
  class ResourceAlreadyExistsException < Struct.new(
1148
- :message)
1698
+ :message,
1699
+ :resource_type)
1149
1700
  SENSITIVE = []
1150
1701
  include Aws::Structure
1151
1702
  end
1152
1703
 
1153
- # Exception indicating the specified resource does not exist.
1704
+ # Exception indicating the specified resource does not exist. If
1705
+ # available, this exception includes details in additional properties.
1154
1706
  #
1155
1707
  # @!attribute [rw] message
1156
1708
  # @return [String]
1157
1709
  #
1710
+ # @!attribute [rw] resource_type
1711
+ # Type of resource.
1712
+ # @return [String]
1713
+ #
1158
1714
  # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ResourceNotFoundException AWS API Documentation
1159
1715
  #
1160
1716
  class ResourceNotFoundException < Struct.new(
1161
- :message)
1717
+ :message,
1718
+ :resource_type)
1162
1719
  SENSITIVE = []
1163
1720
  include Aws::Structure
1164
1721
  end
@@ -1240,6 +1797,14 @@ module Aws::Shield
1240
1797
  # escalations or to initiate proactive customer support.
1241
1798
  # @return [String]
1242
1799
  #
1800
+ # @!attribute [rw] subscription_limits
1801
+ # Limits settings for your subscription.
1802
+ # @return [Types::SubscriptionLimits]
1803
+ #
1804
+ # @!attribute [rw] subscription_arn
1805
+ # The ARN (Amazon Resource Name) of the subscription.
1806
+ # @return [String]
1807
+ #
1243
1808
  # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/Subscription AWS API Documentation
1244
1809
  #
1245
1810
  class Subscription < Struct.new(
@@ -1248,7 +1813,28 @@ module Aws::Shield
1248
1813
  :time_commitment_in_seconds,
1249
1814
  :auto_renew,
1250
1815
  :limits,
1251
- :proactive_engagement_status)
1816
+ :proactive_engagement_status,
1817
+ :subscription_limits,
1818
+ :subscription_arn)
1819
+ SENSITIVE = []
1820
+ include Aws::Structure
1821
+ end
1822
+
1823
+ # Limits settings for your subscription.
1824
+ #
1825
+ # @!attribute [rw] protection_limits
1826
+ # Limits settings on protections for your subscription.
1827
+ # @return [Types::ProtectionLimits]
1828
+ #
1829
+ # @!attribute [rw] protection_group_limits
1830
+ # Limits settings on protection groups for your subscription.
1831
+ # @return [Types::ProtectionGroupLimits]
1832
+ #
1833
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/SubscriptionLimits AWS API Documentation
1834
+ #
1835
+ class SubscriptionLimits < Struct.new(
1836
+ :protection_limits,
1837
+ :protection_group_limits)
1252
1838
  SENSITIVE = []
1253
1839
  include Aws::Structure
1254
1840
  end
@@ -1311,6 +1897,80 @@ module Aws::Shield
1311
1897
  include Aws::Structure
1312
1898
  end
1313
1899
 
1900
+ # A tag associated with an AWS resource. Tags are key:value pairs that
1901
+ # you can use to categorize and manage your resources, for purposes like
1902
+ # billing or other management. Typically, the tag key represents a
1903
+ # category, such as "environment", and the tag value represents a
1904
+ # specific value within that category, such as "test,"
1905
+ # "development," or "production". Or you might set the tag key to
1906
+ # "customer" and the value to the customer name or ID. You can specify
1907
+ # one or more tags to add to each AWS resource, up to 50 tags for a
1908
+ # resource.
1909
+ #
1910
+ # @note When making an API call, you may pass Tag
1911
+ # data as a hash:
1912
+ #
1913
+ # {
1914
+ # key: "TagKey",
1915
+ # value: "TagValue",
1916
+ # }
1917
+ #
1918
+ # @!attribute [rw] key
1919
+ # Part of the key:value pair that defines a tag. You can use a tag key
1920
+ # to describe a category of information, such as "customer." Tag
1921
+ # keys are case-sensitive.
1922
+ # @return [String]
1923
+ #
1924
+ # @!attribute [rw] value
1925
+ # Part of the key:value pair that defines a tag. You can use a tag
1926
+ # value to describe a specific value within a category, such as
1927
+ # "companyA" or "companyB." Tag values are case-sensitive.
1928
+ # @return [String]
1929
+ #
1930
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/Tag AWS API Documentation
1931
+ #
1932
+ class Tag < Struct.new(
1933
+ :key,
1934
+ :value)
1935
+ SENSITIVE = []
1936
+ include Aws::Structure
1937
+ end
1938
+
1939
+ # @note When making an API call, you may pass TagResourceRequest
1940
+ # data as a hash:
1941
+ #
1942
+ # {
1943
+ # resource_arn: "ResourceArn", # required
1944
+ # tags: [ # required
1945
+ # {
1946
+ # key: "TagKey",
1947
+ # value: "TagValue",
1948
+ # },
1949
+ # ],
1950
+ # }
1951
+ #
1952
+ # @!attribute [rw] resource_arn
1953
+ # The Amazon Resource Name (ARN) of the resource that you want to add
1954
+ # or update tags for.
1955
+ # @return [String]
1956
+ #
1957
+ # @!attribute [rw] tags
1958
+ # The tags that you want to modify or add to the resource.
1959
+ # @return [Array<Types::Tag>]
1960
+ #
1961
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/TagResourceRequest AWS API Documentation
1962
+ #
1963
+ class TagResourceRequest < Struct.new(
1964
+ :resource_arn,
1965
+ :tags)
1966
+ SENSITIVE = []
1967
+ include Aws::Structure
1968
+ end
1969
+
1970
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/TagResourceResponse AWS API Documentation
1971
+ #
1972
+ class TagResourceResponse < Aws::EmptyStructure; end
1973
+
1314
1974
  # The time range.
1315
1975
  #
1316
1976
  # @note When making an API call, you may pass TimeRange
@@ -1348,6 +2008,36 @@ module Aws::Shield
1348
2008
  include Aws::Structure
1349
2009
  end
1350
2010
 
2011
+ # @note When making an API call, you may pass UntagResourceRequest
2012
+ # data as a hash:
2013
+ #
2014
+ # {
2015
+ # resource_arn: "ResourceArn", # required
2016
+ # tag_keys: ["TagKey"], # required
2017
+ # }
2018
+ #
2019
+ # @!attribute [rw] resource_arn
2020
+ # The Amazon Resource Name (ARN) of the resource that you want to
2021
+ # remove tags from.
2022
+ # @return [String]
2023
+ #
2024
+ # @!attribute [rw] tag_keys
2025
+ # The tag key for each tag that you want to remove from the resource.
2026
+ # @return [Array<String>]
2027
+ #
2028
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/UntagResourceRequest AWS API Documentation
2029
+ #
2030
+ class UntagResourceRequest < Struct.new(
2031
+ :resource_arn,
2032
+ :tag_keys)
2033
+ SENSITIVE = []
2034
+ include Aws::Structure
2035
+ end
2036
+
2037
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/UntagResourceResponse AWS API Documentation
2038
+ #
2039
+ class UntagResourceResponse < Aws::EmptyStructure; end
2040
+
1351
2041
  # @note When making an API call, you may pass UpdateEmergencyContactSettingsRequest
1352
2042
  # data as a hash:
1353
2043
  #
@@ -1383,6 +2073,78 @@ module Aws::Shield
1383
2073
  #
1384
2074
  class UpdateEmergencyContactSettingsResponse < Aws::EmptyStructure; end
1385
2075
 
2076
+ # @note When making an API call, you may pass UpdateProtectionGroupRequest
2077
+ # data as a hash:
2078
+ #
2079
+ # {
2080
+ # protection_group_id: "ProtectionGroupId", # required
2081
+ # aggregation: "SUM", # required, accepts SUM, MEAN, MAX
2082
+ # pattern: "ALL", # required, accepts ALL, ARBITRARY, BY_RESOURCE_TYPE
2083
+ # resource_type: "CLOUDFRONT_DISTRIBUTION", # accepts CLOUDFRONT_DISTRIBUTION, ROUTE_53_HOSTED_ZONE, ELASTIC_IP_ALLOCATION, CLASSIC_LOAD_BALANCER, APPLICATION_LOAD_BALANCER, GLOBAL_ACCELERATOR
2084
+ # members: ["ResourceArn"],
2085
+ # }
2086
+ #
2087
+ # @!attribute [rw] protection_group_id
2088
+ # The name of the protection group. You use this to identify the
2089
+ # protection group in lists and to manage the protection group, for
2090
+ # example to update, delete, or describe it.
2091
+ # @return [String]
2092
+ #
2093
+ # @!attribute [rw] aggregation
2094
+ # Defines how AWS Shield combines resource data for the group in order
2095
+ # to detect, mitigate, and report events.
2096
+ #
2097
+ # * Sum - Use the total traffic across the group. This is a good
2098
+ # choice for most cases. Examples include Elastic IP addresses for
2099
+ # EC2 instances that scale manually or automatically.
2100
+ #
2101
+ # * Mean - Use the average of the traffic across the group. This is a
2102
+ # good choice for resources that share traffic uniformly. Examples
2103
+ # include accelerators and load balancers.
2104
+ #
2105
+ # * Max - Use the highest traffic from each resource. This is useful
2106
+ # for resources that don't share traffic and for resources that
2107
+ # share that traffic in a non-uniform way. Examples include
2108
+ # CloudFront distributions and origin resources for CloudFront
2109
+ # distributions.
2110
+ # @return [String]
2111
+ #
2112
+ # @!attribute [rw] pattern
2113
+ # The criteria to use to choose the protected resources for inclusion
2114
+ # in the group. You can include all resources that have protections,
2115
+ # provide a list of resource Amazon Resource Names (ARNs), or include
2116
+ # all resources of a specified resource type.
2117
+ # @return [String]
2118
+ #
2119
+ # @!attribute [rw] resource_type
2120
+ # The resource type to include in the protection group. All protected
2121
+ # resources of this type are included in the protection group. You
2122
+ # must set this when you set `Pattern` to `BY_RESOURCE_TYPE` and you
2123
+ # must not set it for any other `Pattern` setting.
2124
+ # @return [String]
2125
+ #
2126
+ # @!attribute [rw] members
2127
+ # The Amazon Resource Names (ARNs) of the resources to include in the
2128
+ # protection group. You must set this when you set `Pattern` to
2129
+ # `ARBITRARY` and you must not set it for any other `Pattern` setting.
2130
+ # @return [Array<String>]
2131
+ #
2132
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/UpdateProtectionGroupRequest AWS API Documentation
2133
+ #
2134
+ class UpdateProtectionGroupRequest < Struct.new(
2135
+ :protection_group_id,
2136
+ :aggregation,
2137
+ :pattern,
2138
+ :resource_type,
2139
+ :members)
2140
+ SENSITIVE = []
2141
+ include Aws::Structure
2142
+ end
2143
+
2144
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/UpdateProtectionGroupResponse AWS API Documentation
2145
+ #
2146
+ class UpdateProtectionGroupResponse < Aws::EmptyStructure; end
2147
+
1386
2148
  # @note When making an API call, you may pass UpdateSubscriptionRequest
1387
2149
  # data as a hash:
1388
2150
  #
@@ -1411,5 +2173,25 @@ module Aws::Shield
1411
2173
  #
1412
2174
  class UpdateSubscriptionResponse < Aws::EmptyStructure; end
1413
2175
 
2176
+ # Provides information about a particular parameter passed inside a
2177
+ # request that resulted in an exception.
2178
+ #
2179
+ # @!attribute [rw] name
2180
+ # The name of the parameter that failed validation.
2181
+ # @return [String]
2182
+ #
2183
+ # @!attribute [rw] message
2184
+ # The message describing why the parameter failed validation.
2185
+ # @return [String]
2186
+ #
2187
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ValidationExceptionField AWS API Documentation
2188
+ #
2189
+ class ValidationExceptionField < Struct.new(
2190
+ :name,
2191
+ :message)
2192
+ SENSITIVE = []
2193
+ include Aws::Structure
2194
+ end
2195
+
1414
2196
  end
1415
2197
  end