aws-sdk-shield 1.31.0 → 1.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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