aws-sdk-shield 1.1.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 66456865bc53e76b4f90f28f1b99f2e09ba7c8f3
4
- data.tar.gz: af1f5c1cf8b432abe59c0fef39803d7d7189854f
3
+ metadata.gz: ed949de8a54dd0b10959353797d3113b96701378
4
+ data.tar.gz: 45de422455469ab5a4ec03dae155026a10047db7
5
5
  SHA512:
6
- metadata.gz: 8d32ed1e3df7b6b7d13ab90fcb6acbd988cb2d46335af9354f7864def8c4738f3c090b1843279b307da754038b011be0226e50d87cfa46d0d25a5ccfc6edc52a
7
- data.tar.gz: 99b64bf4d985619e909fbbbc509cf2b0f0783fd524101480aa320d2e8bd27b4113816dcc7299c6011420be16255681a9d4d6f6c41c9e23e155a7722521708fca
6
+ metadata.gz: '009e607231d1542124b50f8b1c7e11f6a2c77cdcb9ebdfed5b47be1e9fee8ad6364f6a78976183a815e01c92210f97f1e3d6d5ee3c9a133da7c4adf6a13d108a'
7
+ data.tar.gz: 703c885a150aee001d02269b5a7e0682e86a67cb1945b1ef03669afdebaad5d3075be46f64ceac433b4d6c6c0ef8960ccaf90197b2a8de311103729b95c9f1a1
@@ -42,6 +42,6 @@ require_relative 'aws-sdk-shield/customizations'
42
42
  # @service
43
43
  module Aws::Shield
44
44
 
45
- GEM_VERSION = '1.1.0'
45
+ GEM_VERSION = '1.2.0'
46
46
 
47
47
  end
@@ -155,10 +155,126 @@ module Aws::Shield
155
155
 
156
156
  # @!group API Operations
157
157
 
158
+ # Authorizes the DDoS Response team (DRT) to access the specified Amazon
159
+ # S3 bucket containing your flow logs. You can associate up to 10 Amazon
160
+ # S3 buckets with your subscription.
161
+ #
162
+ # To use the services of the DRT and make an `AssociateDRTLogBucket`
163
+ # request, you must be subscribed to the [Business Support plan][1] or
164
+ # the [Enterprise Support plan][2].
165
+ #
166
+ #
167
+ #
168
+ # [1]: https://aws.amazon.com/premiumsupport/business-support/
169
+ # [2]: https://aws.amazon.com/premiumsupport/enterprise-support/
170
+ #
171
+ # @option params [required, String] :log_bucket
172
+ # The Amazon S3 bucket that contains your flow logs.
173
+ #
174
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
175
+ #
176
+ # @example Request syntax with placeholder values
177
+ #
178
+ # resp = client.associate_drt_log_bucket({
179
+ # log_bucket: "LogBucket", # required
180
+ # })
181
+ #
182
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/AssociateDRTLogBucket AWS API Documentation
183
+ #
184
+ # @overload associate_drt_log_bucket(params = {})
185
+ # @param [Hash] params ({})
186
+ def associate_drt_log_bucket(params = {}, options = {})
187
+ req = build_request(:associate_drt_log_bucket, params)
188
+ req.send_request(options)
189
+ end
190
+
191
+ # Authorizes the DDoS Response team (DRT), using the specified role, to
192
+ # access your AWS account to assist with DDoS attack mitigation during
193
+ # potential attacks. This enables the DRT to inspect your AWS WAF
194
+ # configuration and create or update AWS WAF rules and web ACLs.
195
+ #
196
+ # You can associate only one `RoleArn` with your subscription. If you
197
+ # submit an `AssociateDRTRole` request for an account that already has
198
+ # an associated role, the new `RoleArn` will replace the existing
199
+ # `RoleArn`.
200
+ #
201
+ # Prior to making the `AssociateDRTRole` request, you must attach the
202
+ # [AWSShieldDRTAccessPolicy][1] managed policy to the role you will
203
+ # specify in the request. For more information see [Attaching and
204
+ # Detaching IAM Policies](
205
+ # https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html).
206
+ # The role must also trust the service principal `
207
+ # drt.shield.amazonaws.com`. For more information, see [IAM JSON Policy
208
+ # Elements: Principal][2].
209
+ #
210
+ # The DRT will have access only to your AWS WAF and Shield resources. By
211
+ # submitting this request, you authorize the DRT to inspect your AWS WAF
212
+ # and Shield configuration and create and update AWS WAF rules and web
213
+ # ACLs on your behalf. The DRT takes these actions only if explicitly
214
+ # authorized by you.
215
+ #
216
+ # You must have the `iam:PassRole` permission to make an
217
+ # `AssociateDRTRole` request. For more information, see [Granting a User
218
+ # Permissions to Pass a Role to an AWS Service][3].
219
+ #
220
+ # To use the services of the DRT and make an `AssociateDRTRole` request,
221
+ # you must be subscribed to the [Business Support plan][4] or the
222
+ # [Enterprise Support plan][5].
223
+ #
224
+ #
225
+ #
226
+ # [1]: https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy
227
+ # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html
228
+ # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html
229
+ # [4]: https://aws.amazon.com/premiumsupport/business-support/
230
+ # [5]: https://aws.amazon.com/premiumsupport/enterprise-support/
231
+ #
232
+ # @option params [required, String] :role_arn
233
+ # The Amazon Resource Name (ARN) of the role the DRT will use to access
234
+ # your AWS account.
235
+ #
236
+ # Prior to making the `AssociateDRTRole` request, you must attach the
237
+ # [AWSShieldDRTAccessPolicy][1] managed policy to this role. For more
238
+ # information see [Attaching and Detaching IAM Policies](
239
+ # https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html).
240
+ #
241
+ #
242
+ #
243
+ # [1]: https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy
244
+ #
245
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
246
+ #
247
+ # @example Request syntax with placeholder values
248
+ #
249
+ # resp = client.associate_drt_role({
250
+ # role_arn: "RoleArn", # required
251
+ # })
252
+ #
253
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/AssociateDRTRole AWS API Documentation
254
+ #
255
+ # @overload associate_drt_role(params = {})
256
+ # @param [Hash] params ({})
257
+ def associate_drt_role(params = {}, options = {})
258
+ req = build_request(:associate_drt_role, params)
259
+ req.send_request(options)
260
+ end
261
+
158
262
  # Enables AWS Shield Advanced for a specific AWS resource. The resource
159
263
  # can be an Amazon CloudFront distribution, Elastic Load Balancing load
160
264
  # balancer, Elastic IP Address, or an Amazon Route 53 hosted zone.
161
265
  #
266
+ # You can add protection to only a single resource with each
267
+ # CreateProtection request. If you want to add protection to multiple
268
+ # resources at once, use the [AWS WAF console][1]. For more information
269
+ # see [Getting Started with AWS Shield Advanced][2] and [Add AWS Shield
270
+ # Advanced Protection to more AWS Resources][3].
271
+ #
272
+ #
273
+ #
274
+ # [1]: https://console.aws.amazon.com/waf/
275
+ # [2]: https://docs.aws.amazon.com/waf/latest/developerguide/getting-started-ddos.html
276
+ # [3]: https://docs.aws.amazon.com/waf/latest/developerguide/configure-new-protection.html
277
+ #
162
278
  # @option params [required, String] :name
163
279
  # Friendly name for the `Protection` you are creating.
164
280
  #
@@ -210,6 +326,21 @@ module Aws::Shield
210
326
 
211
327
  # Activates AWS Shield Advanced for an account.
212
328
  #
329
+ # As part of this request you can specify `EmergencySettings` that
330
+ # automaticaly grant the DDoS response team (DRT) needed permissions to
331
+ # assist you during a suspected DDoS attack. For more information see
332
+ # [Authorize the DDoS Response Team to Create Rules and Web ACLs on Your
333
+ # Behalf][1].
334
+ #
335
+ # When you initally create a subscription, your subscription is set to
336
+ # be automatically renewed at the end of the existing subscription
337
+ # period. You can change this by submitting an `UpdateSubscription`
338
+ # request.
339
+ #
340
+ #
341
+ #
342
+ # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/authorize-DRT.html
343
+ #
213
344
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
214
345
  #
215
346
  # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/CreateSubscription AWS API Documentation
@@ -325,6 +456,51 @@ module Aws::Shield
325
456
  req.send_request(options)
326
457
  end
327
458
 
459
+ # Returns the current role and list of Amazon S3 log buckets used by the
460
+ # DDoS Response team (DRT) to access your AWS account while assisting
461
+ # with attack mitigation.
462
+ #
463
+ # @return [Types::DescribeDRTAccessResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
464
+ #
465
+ # * {Types::DescribeDRTAccessResponse#role_arn #role_arn} => String
466
+ # * {Types::DescribeDRTAccessResponse#log_bucket_list #log_bucket_list} => Array<String>
467
+ #
468
+ # @example Response structure
469
+ #
470
+ # resp.role_arn #=> String
471
+ # resp.log_bucket_list #=> Array
472
+ # resp.log_bucket_list[0] #=> String
473
+ #
474
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeDRTAccess AWS API Documentation
475
+ #
476
+ # @overload describe_drt_access(params = {})
477
+ # @param [Hash] params ({})
478
+ def describe_drt_access(params = {}, options = {})
479
+ req = build_request(:describe_drt_access, params)
480
+ req.send_request(options)
481
+ end
482
+
483
+ # Lists the email addresses that the DRT can use to contact you during a
484
+ # suspected attack.
485
+ #
486
+ # @return [Types::DescribeEmergencyContactSettingsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
487
+ #
488
+ # * {Types::DescribeEmergencyContactSettingsResponse#emergency_contact_list #emergency_contact_list} => Array<Types::EmergencyContact>
489
+ #
490
+ # @example Response structure
491
+ #
492
+ # resp.emergency_contact_list #=> Array
493
+ # resp.emergency_contact_list[0].email_address #=> String
494
+ #
495
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeEmergencyContactSettings AWS API Documentation
496
+ #
497
+ # @overload describe_emergency_contact_settings(params = {})
498
+ # @param [Hash] params ({})
499
+ def describe_emergency_contact_settings(params = {}, options = {})
500
+ req = build_request(:describe_emergency_contact_settings, params)
501
+ req.send_request(options)
502
+ end
503
+
328
504
  # Lists the details of a Protection object.
329
505
  #
330
506
  # @option params [required, String] :protection_id
@@ -366,7 +542,12 @@ module Aws::Shield
366
542
  # @example Response structure
367
543
  #
368
544
  # resp.subscription.start_time #=> Time
545
+ # resp.subscription.end_time #=> Time
369
546
  # resp.subscription.time_commitment_in_seconds #=> Integer
547
+ # resp.subscription.auto_renew #=> String, one of "ENABLED", "DISABLED"
548
+ # resp.subscription.limits #=> Array
549
+ # resp.subscription.limits[0].type #=> String
550
+ # resp.subscription.limits[0].max #=> Integer
370
551
  #
371
552
  # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeSubscription AWS API Documentation
372
553
  #
@@ -377,6 +558,65 @@ module Aws::Shield
377
558
  req.send_request(options)
378
559
  end
379
560
 
561
+ # Removes the DDoS Response team's (DRT) access to the specified Amazon
562
+ # S3 bucket containing your flow logs.
563
+ #
564
+ # To make a `DisassociateDRTLogBucket` request, you must be subscribed
565
+ # to the [Business Support plan][1] or the [Enterprise Support plan][2].
566
+ # However, if you are not subscribed to one of these support plans, but
567
+ # had been previously and had granted the DRT access to your account,
568
+ # you can submit a `DisassociateDRTLogBucket` request to remove this
569
+ # access.
570
+ #
571
+ #
572
+ #
573
+ # [1]: https://aws.amazon.com/premiumsupport/business-support/
574
+ # [2]: https://aws.amazon.com/premiumsupport/enterprise-support/
575
+ #
576
+ # @option params [required, String] :log_bucket
577
+ # The Amazon S3 bucket that contains your flow logs.
578
+ #
579
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
580
+ #
581
+ # @example Request syntax with placeholder values
582
+ #
583
+ # resp = client.disassociate_drt_log_bucket({
584
+ # log_bucket: "LogBucket", # required
585
+ # })
586
+ #
587
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DisassociateDRTLogBucket AWS API Documentation
588
+ #
589
+ # @overload disassociate_drt_log_bucket(params = {})
590
+ # @param [Hash] params ({})
591
+ def disassociate_drt_log_bucket(params = {}, options = {})
592
+ req = build_request(:disassociate_drt_log_bucket, params)
593
+ req.send_request(options)
594
+ end
595
+
596
+ # Removes the DDoS Response team's (DRT) access to your AWS account.
597
+ #
598
+ # To make a `DisassociateDRTRole` request, you must be subscribed to the
599
+ # [Business Support plan][1] or the [Enterprise Support plan][2].
600
+ # However, if you are not subscribed to one of these support plans, but
601
+ # had been previously and had granted the DRT access to your account,
602
+ # you can submit a `DisassociateDRTRole` request to remove this access.
603
+ #
604
+ #
605
+ #
606
+ # [1]: https://aws.amazon.com/premiumsupport/business-support/
607
+ # [2]: https://aws.amazon.com/premiumsupport/enterprise-support/
608
+ #
609
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
610
+ #
611
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DisassociateDRTRole AWS API Documentation
612
+ #
613
+ # @overload disassociate_drt_role(params = {})
614
+ # @param [Hash] params ({})
615
+ def disassociate_drt_role(params = {}, options = {})
616
+ req = build_request(:disassociate_drt_role, params)
617
+ req.send_request(options)
618
+ end
619
+
380
620
  # Returns the `SubscriptionState`, either `Active` or `Inactive`.
381
621
  #
382
622
  # @return [Types::GetSubscriptionStateResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
@@ -512,6 +752,62 @@ module Aws::Shield
512
752
  req.send_request(options)
513
753
  end
514
754
 
755
+ # Updates the details of the list of email addresses that the DRT can
756
+ # use to contact you during a suspected attack.
757
+ #
758
+ # @option params [Array<Types::EmergencyContact>] :emergency_contact_list
759
+ # A list of email addresses that the DRT can use to contact you during a
760
+ # suspected attack.
761
+ #
762
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
763
+ #
764
+ # @example Request syntax with placeholder values
765
+ #
766
+ # resp = client.update_emergency_contact_settings({
767
+ # emergency_contact_list: [
768
+ # {
769
+ # email_address: "EmailAddress", # required
770
+ # },
771
+ # ],
772
+ # })
773
+ #
774
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/UpdateEmergencyContactSettings AWS API Documentation
775
+ #
776
+ # @overload update_emergency_contact_settings(params = {})
777
+ # @param [Hash] params ({})
778
+ def update_emergency_contact_settings(params = {}, options = {})
779
+ req = build_request(:update_emergency_contact_settings, params)
780
+ req.send_request(options)
781
+ end
782
+
783
+ # Updates the details of an existing subscription. Only enter values for
784
+ # parameters you want to change. Empty parameters are not updated.
785
+ #
786
+ # @option params [String] :auto_renew
787
+ # When you initally create a subscription, `AutoRenew` is set to
788
+ # `ENABLED`. If `ENABLED`, the subscription will be automatically
789
+ # renewed at the end of the existing subscription period. You can change
790
+ # this by submitting an `UpdateSubscription` request. If the
791
+ # `UpdateSubscription` request does not included a value for
792
+ # `AutoRenew`, the existing value for `AutoRenew` remains unchanged.
793
+ #
794
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
795
+ #
796
+ # @example Request syntax with placeholder values
797
+ #
798
+ # resp = client.update_subscription({
799
+ # auto_renew: "ENABLED", # accepts ENABLED, DISABLED
800
+ # })
801
+ #
802
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/UpdateSubscription AWS API Documentation
803
+ #
804
+ # @overload update_subscription(params = {})
805
+ # @param [Hash] params ({})
806
+ def update_subscription(params = {}, options = {})
807
+ req = build_request(:update_subscription, params)
808
+ req.send_request(options)
809
+ end
810
+
515
811
  # @!endgroup
516
812
 
517
813
  # @param params ({})
@@ -525,7 +821,7 @@ module Aws::Shield
525
821
  params: params,
526
822
  config: config)
527
823
  context[:gem_name] = 'aws-sdk-shield'
528
- context[:gem_version] = '1.1.0'
824
+ context[:gem_version] = '1.2.0'
529
825
  Seahorse::Client::Request.new(handlers, context)
530
826
  end
531
827
 
@@ -11,6 +11,11 @@ module Aws::Shield
11
11
 
12
12
  include Seahorse::Model
13
13
 
14
+ AccessDeniedForDependencyException = Shapes::StructureShape.new(name: 'AccessDeniedForDependencyException')
15
+ AssociateDRTLogBucketRequest = Shapes::StructureShape.new(name: 'AssociateDRTLogBucketRequest')
16
+ AssociateDRTLogBucketResponse = Shapes::StructureShape.new(name: 'AssociateDRTLogBucketResponse')
17
+ AssociateDRTRoleRequest = Shapes::StructureShape.new(name: 'AssociateDRTRoleRequest')
18
+ AssociateDRTRoleResponse = Shapes::StructureShape.new(name: 'AssociateDRTRoleResponse')
14
19
  AttackDetail = Shapes::StructureShape.new(name: 'AttackDetail')
15
20
  AttackId = Shapes::StringShape.new(name: 'AttackId')
16
21
  AttackLayer = Shapes::StringShape.new(name: 'AttackLayer')
@@ -22,6 +27,7 @@ module Aws::Shield
22
27
  AttackTimestamp = Shapes::TimestampShape.new(name: 'AttackTimestamp')
23
28
  AttackVectorDescription = Shapes::StructureShape.new(name: 'AttackVectorDescription')
24
29
  AttackVectorDescriptionList = Shapes::ListShape.new(name: 'AttackVectorDescriptionList')
30
+ AutoRenew = Shapes::StringShape.new(name: 'AutoRenew')
25
31
  Contributor = Shapes::StructureShape.new(name: 'Contributor')
26
32
  CreateProtectionRequest = Shapes::StructureShape.new(name: 'CreateProtectionRequest')
27
33
  CreateProtectionResponse = Shapes::StructureShape.new(name: 'CreateProtectionResponse')
@@ -33,31 +39,48 @@ module Aws::Shield
33
39
  DeleteSubscriptionResponse = Shapes::StructureShape.new(name: 'DeleteSubscriptionResponse')
34
40
  DescribeAttackRequest = Shapes::StructureShape.new(name: 'DescribeAttackRequest')
35
41
  DescribeAttackResponse = Shapes::StructureShape.new(name: 'DescribeAttackResponse')
42
+ DescribeDRTAccessRequest = Shapes::StructureShape.new(name: 'DescribeDRTAccessRequest')
43
+ DescribeDRTAccessResponse = Shapes::StructureShape.new(name: 'DescribeDRTAccessResponse')
44
+ DescribeEmergencyContactSettingsRequest = Shapes::StructureShape.new(name: 'DescribeEmergencyContactSettingsRequest')
45
+ DescribeEmergencyContactSettingsResponse = Shapes::StructureShape.new(name: 'DescribeEmergencyContactSettingsResponse')
36
46
  DescribeProtectionRequest = Shapes::StructureShape.new(name: 'DescribeProtectionRequest')
37
47
  DescribeProtectionResponse = Shapes::StructureShape.new(name: 'DescribeProtectionResponse')
38
48
  DescribeSubscriptionRequest = Shapes::StructureShape.new(name: 'DescribeSubscriptionRequest')
39
49
  DescribeSubscriptionResponse = Shapes::StructureShape.new(name: 'DescribeSubscriptionResponse')
50
+ DisassociateDRTLogBucketRequest = Shapes::StructureShape.new(name: 'DisassociateDRTLogBucketRequest')
51
+ DisassociateDRTLogBucketResponse = Shapes::StructureShape.new(name: 'DisassociateDRTLogBucketResponse')
52
+ DisassociateDRTRoleRequest = Shapes::StructureShape.new(name: 'DisassociateDRTRoleRequest')
53
+ DisassociateDRTRoleResponse = Shapes::StructureShape.new(name: 'DisassociateDRTRoleResponse')
40
54
  Double = Shapes::FloatShape.new(name: 'Double')
41
55
  DurationInSeconds = Shapes::IntegerShape.new(name: 'DurationInSeconds')
56
+ EmailAddress = Shapes::StringShape.new(name: 'EmailAddress')
57
+ EmergencyContact = Shapes::StructureShape.new(name: 'EmergencyContact')
58
+ EmergencyContactList = Shapes::ListShape.new(name: 'EmergencyContactList')
42
59
  GetSubscriptionStateRequest = Shapes::StructureShape.new(name: 'GetSubscriptionStateRequest')
43
60
  GetSubscriptionStateResponse = Shapes::StructureShape.new(name: 'GetSubscriptionStateResponse')
44
61
  Integer = Shapes::IntegerShape.new(name: 'Integer')
45
62
  InternalErrorException = Shapes::StructureShape.new(name: 'InternalErrorException')
46
63
  InvalidOperationException = Shapes::StructureShape.new(name: 'InvalidOperationException')
64
+ InvalidPaginationTokenException = Shapes::StructureShape.new(name: 'InvalidPaginationTokenException')
47
65
  InvalidParameterException = Shapes::StructureShape.new(name: 'InvalidParameterException')
48
66
  InvalidResourceException = Shapes::StructureShape.new(name: 'InvalidResourceException')
67
+ Limit = Shapes::StructureShape.new(name: 'Limit')
49
68
  LimitNumber = Shapes::IntegerShape.new(name: 'LimitNumber')
50
69
  LimitType = Shapes::StringShape.new(name: 'LimitType')
70
+ Limits = Shapes::ListShape.new(name: 'Limits')
51
71
  LimitsExceededException = Shapes::StructureShape.new(name: 'LimitsExceededException')
52
72
  ListAttacksRequest = Shapes::StructureShape.new(name: 'ListAttacksRequest')
53
73
  ListAttacksResponse = Shapes::StructureShape.new(name: 'ListAttacksResponse')
54
74
  ListProtectionsRequest = Shapes::StructureShape.new(name: 'ListProtectionsRequest')
55
75
  ListProtectionsResponse = Shapes::StructureShape.new(name: 'ListProtectionsResponse')
56
76
  LockedSubscriptionException = Shapes::StructureShape.new(name: 'LockedSubscriptionException')
77
+ LogBucket = Shapes::StringShape.new(name: 'LogBucket')
78
+ LogBucketList = Shapes::ListShape.new(name: 'LogBucketList')
57
79
  Long = Shapes::IntegerShape.new(name: 'Long')
58
80
  MaxResults = Shapes::IntegerShape.new(name: 'MaxResults')
59
81
  Mitigation = Shapes::StructureShape.new(name: 'Mitigation')
60
82
  MitigationList = Shapes::ListShape.new(name: 'MitigationList')
83
+ NoAssociatedRoleException = Shapes::StructureShape.new(name: 'NoAssociatedRoleException')
61
84
  OptimisticLockException = Shapes::StructureShape.new(name: 'OptimisticLockException')
62
85
  Protection = Shapes::StructureShape.new(name: 'Protection')
63
86
  ProtectionId = Shapes::StringShape.new(name: 'ProtectionId')
@@ -67,6 +90,7 @@ module Aws::Shield
67
90
  ResourceArn = Shapes::StringShape.new(name: 'ResourceArn')
68
91
  ResourceArnFilterList = Shapes::ListShape.new(name: 'ResourceArnFilterList')
69
92
  ResourceNotFoundException = Shapes::StructureShape.new(name: 'ResourceNotFoundException')
93
+ RoleArn = Shapes::StringShape.new(name: 'RoleArn')
70
94
  String = Shapes::StringShape.new(name: 'String')
71
95
  SubResourceSummary = Shapes::StructureShape.new(name: 'SubResourceSummary')
72
96
  SubResourceSummaryList = Shapes::ListShape.new(name: 'SubResourceSummaryList')
@@ -82,8 +106,22 @@ module Aws::Shield
82
106
  Token = Shapes::StringShape.new(name: 'Token')
83
107
  TopContributors = Shapes::ListShape.new(name: 'TopContributors')
84
108
  Unit = Shapes::StringShape.new(name: 'Unit')
109
+ UpdateEmergencyContactSettingsRequest = Shapes::StructureShape.new(name: 'UpdateEmergencyContactSettingsRequest')
110
+ UpdateEmergencyContactSettingsResponse = Shapes::StructureShape.new(name: 'UpdateEmergencyContactSettingsResponse')
111
+ UpdateSubscriptionRequest = Shapes::StructureShape.new(name: 'UpdateSubscriptionRequest')
112
+ UpdateSubscriptionResponse = Shapes::StructureShape.new(name: 'UpdateSubscriptionResponse')
85
113
  errorMessage = Shapes::StringShape.new(name: 'errorMessage')
86
114
 
115
+ AssociateDRTLogBucketRequest.add_member(:log_bucket, Shapes::ShapeRef.new(shape: LogBucket, required: true, location_name: "LogBucket"))
116
+ AssociateDRTLogBucketRequest.struct_class = Types::AssociateDRTLogBucketRequest
117
+
118
+ AssociateDRTLogBucketResponse.struct_class = Types::AssociateDRTLogBucketResponse
119
+
120
+ AssociateDRTRoleRequest.add_member(:role_arn, Shapes::ShapeRef.new(shape: RoleArn, required: true, location_name: "RoleArn"))
121
+ AssociateDRTRoleRequest.struct_class = Types::AssociateDRTRoleRequest
122
+
123
+ AssociateDRTRoleResponse.struct_class = Types::AssociateDRTRoleResponse
124
+
87
125
  AttackDetail.add_member(:attack_id, Shapes::ShapeRef.new(shape: AttackId, location_name: "AttackId"))
88
126
  AttackDetail.add_member(:resource_arn, Shapes::ShapeRef.new(shape: ResourceArn, location_name: "ResourceArn"))
89
127
  AttackDetail.add_member(:sub_resources, Shapes::ShapeRef.new(shape: SubResourceSummaryList, location_name: "SubResources"))
@@ -147,6 +185,17 @@ module Aws::Shield
147
185
  DescribeAttackResponse.add_member(:attack, Shapes::ShapeRef.new(shape: AttackDetail, location_name: "Attack"))
148
186
  DescribeAttackResponse.struct_class = Types::DescribeAttackResponse
149
187
 
188
+ DescribeDRTAccessRequest.struct_class = Types::DescribeDRTAccessRequest
189
+
190
+ DescribeDRTAccessResponse.add_member(:role_arn, Shapes::ShapeRef.new(shape: RoleArn, location_name: "RoleArn"))
191
+ DescribeDRTAccessResponse.add_member(:log_bucket_list, Shapes::ShapeRef.new(shape: LogBucketList, location_name: "LogBucketList"))
192
+ DescribeDRTAccessResponse.struct_class = Types::DescribeDRTAccessResponse
193
+
194
+ DescribeEmergencyContactSettingsRequest.struct_class = Types::DescribeEmergencyContactSettingsRequest
195
+
196
+ DescribeEmergencyContactSettingsResponse.add_member(:emergency_contact_list, Shapes::ShapeRef.new(shape: EmergencyContactList, location_name: "EmergencyContactList"))
197
+ DescribeEmergencyContactSettingsResponse.struct_class = Types::DescribeEmergencyContactSettingsResponse
198
+
150
199
  DescribeProtectionRequest.add_member(:protection_id, Shapes::ShapeRef.new(shape: ProtectionId, required: true, location_name: "ProtectionId"))
151
200
  DescribeProtectionRequest.struct_class = Types::DescribeProtectionRequest
152
201
 
@@ -158,11 +207,31 @@ module Aws::Shield
158
207
  DescribeSubscriptionResponse.add_member(:subscription, Shapes::ShapeRef.new(shape: Subscription, location_name: "Subscription"))
159
208
  DescribeSubscriptionResponse.struct_class = Types::DescribeSubscriptionResponse
160
209
 
210
+ DisassociateDRTLogBucketRequest.add_member(:log_bucket, Shapes::ShapeRef.new(shape: LogBucket, required: true, location_name: "LogBucket"))
211
+ DisassociateDRTLogBucketRequest.struct_class = Types::DisassociateDRTLogBucketRequest
212
+
213
+ DisassociateDRTLogBucketResponse.struct_class = Types::DisassociateDRTLogBucketResponse
214
+
215
+ DisassociateDRTRoleRequest.struct_class = Types::DisassociateDRTRoleRequest
216
+
217
+ DisassociateDRTRoleResponse.struct_class = Types::DisassociateDRTRoleResponse
218
+
219
+ EmergencyContact.add_member(:email_address, Shapes::ShapeRef.new(shape: EmailAddress, required: true, location_name: "EmailAddress"))
220
+ EmergencyContact.struct_class = Types::EmergencyContact
221
+
222
+ EmergencyContactList.member = Shapes::ShapeRef.new(shape: EmergencyContact)
223
+
161
224
  GetSubscriptionStateRequest.struct_class = Types::GetSubscriptionStateRequest
162
225
 
163
226
  GetSubscriptionStateResponse.add_member(:subscription_state, Shapes::ShapeRef.new(shape: SubscriptionState, required: true, location_name: "SubscriptionState"))
164
227
  GetSubscriptionStateResponse.struct_class = Types::GetSubscriptionStateResponse
165
228
 
229
+ Limit.add_member(:type, Shapes::ShapeRef.new(shape: String, location_name: "Type"))
230
+ Limit.add_member(:max, Shapes::ShapeRef.new(shape: Long, location_name: "Max"))
231
+ Limit.struct_class = Types::Limit
232
+
233
+ Limits.member = Shapes::ShapeRef.new(shape: Limit)
234
+
166
235
  ListAttacksRequest.add_member(:resource_arns, Shapes::ShapeRef.new(shape: ResourceArnFilterList, location_name: "ResourceArns"))
167
236
  ListAttacksRequest.add_member(:start_time, Shapes::ShapeRef.new(shape: TimeRange, location_name: "StartTime"))
168
237
  ListAttacksRequest.add_member(:end_time, Shapes::ShapeRef.new(shape: TimeRange, location_name: "EndTime"))
@@ -182,6 +251,8 @@ module Aws::Shield
182
251
  ListProtectionsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: Token, location_name: "NextToken"))
183
252
  ListProtectionsResponse.struct_class = Types::ListProtectionsResponse
184
253
 
254
+ LogBucketList.member = Shapes::ShapeRef.new(shape: LogBucket)
255
+
185
256
  Mitigation.add_member(:mitigation_name, Shapes::ShapeRef.new(shape: String, location_name: "MitigationName"))
186
257
  Mitigation.struct_class = Types::Mitigation
187
258
 
@@ -205,7 +276,10 @@ module Aws::Shield
205
276
  SubResourceSummaryList.member = Shapes::ShapeRef.new(shape: SubResourceSummary)
206
277
 
207
278
  Subscription.add_member(:start_time, Shapes::ShapeRef.new(shape: Timestamp, location_name: "StartTime"))
279
+ Subscription.add_member(:end_time, Shapes::ShapeRef.new(shape: Timestamp, location_name: "EndTime"))
208
280
  Subscription.add_member(:time_commitment_in_seconds, Shapes::ShapeRef.new(shape: DurationInSeconds, location_name: "TimeCommitmentInSeconds"))
281
+ Subscription.add_member(:auto_renew, Shapes::ShapeRef.new(shape: AutoRenew, location_name: "AutoRenew"))
282
+ Subscription.add_member(:limits, Shapes::ShapeRef.new(shape: Limits, location_name: "Limits"))
209
283
  Subscription.struct_class = Types::Subscription
210
284
 
211
285
  SummarizedAttackVector.add_member(:vector_type, Shapes::ShapeRef.new(shape: String, required: true, location_name: "VectorType"))
@@ -230,6 +304,16 @@ module Aws::Shield
230
304
 
231
305
  TopContributors.member = Shapes::ShapeRef.new(shape: Contributor)
232
306
 
307
+ UpdateEmergencyContactSettingsRequest.add_member(:emergency_contact_list, Shapes::ShapeRef.new(shape: EmergencyContactList, location_name: "EmergencyContactList"))
308
+ UpdateEmergencyContactSettingsRequest.struct_class = Types::UpdateEmergencyContactSettingsRequest
309
+
310
+ UpdateEmergencyContactSettingsResponse.struct_class = Types::UpdateEmergencyContactSettingsResponse
311
+
312
+ UpdateSubscriptionRequest.add_member(:auto_renew, Shapes::ShapeRef.new(shape: AutoRenew, location_name: "AutoRenew"))
313
+ UpdateSubscriptionRequest.struct_class = Types::UpdateSubscriptionRequest
314
+
315
+ UpdateSubscriptionResponse.struct_class = Types::UpdateSubscriptionResponse
316
+
233
317
 
234
318
  # @api private
235
319
  API = Seahorse::Model::Api.new.tap do |api|
@@ -245,6 +329,36 @@ module Aws::Shield
245
329
  "targetPrefix" => "AWSShield_20160616",
246
330
  }
247
331
 
332
+ api.add_operation(:associate_drt_log_bucket, Seahorse::Model::Operation.new.tap do |o|
333
+ o.name = "AssociateDRTLogBucket"
334
+ o.http_method = "POST"
335
+ o.http_request_uri = "/"
336
+ o.input = Shapes::ShapeRef.new(shape: AssociateDRTLogBucketRequest)
337
+ o.output = Shapes::ShapeRef.new(shape: AssociateDRTLogBucketResponse)
338
+ o.errors << Shapes::ShapeRef.new(shape: InternalErrorException)
339
+ o.errors << Shapes::ShapeRef.new(shape: InvalidOperationException)
340
+ o.errors << Shapes::ShapeRef.new(shape: NoAssociatedRoleException)
341
+ o.errors << Shapes::ShapeRef.new(shape: LimitsExceededException)
342
+ o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
343
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedForDependencyException)
344
+ o.errors << Shapes::ShapeRef.new(shape: OptimisticLockException)
345
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
346
+ end)
347
+
348
+ api.add_operation(:associate_drt_role, Seahorse::Model::Operation.new.tap do |o|
349
+ o.name = "AssociateDRTRole"
350
+ o.http_method = "POST"
351
+ o.http_request_uri = "/"
352
+ o.input = Shapes::ShapeRef.new(shape: AssociateDRTRoleRequest)
353
+ o.output = Shapes::ShapeRef.new(shape: AssociateDRTRoleResponse)
354
+ o.errors << Shapes::ShapeRef.new(shape: InternalErrorException)
355
+ o.errors << Shapes::ShapeRef.new(shape: InvalidOperationException)
356
+ o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
357
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedForDependencyException)
358
+ o.errors << Shapes::ShapeRef.new(shape: OptimisticLockException)
359
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
360
+ end)
361
+
248
362
  api.add_operation(:create_protection, Seahorse::Model::Operation.new.tap do |o|
249
363
  o.name = "CreateProtection"
250
364
  o.http_method = "POST"
@@ -285,6 +399,7 @@ module Aws::Shield
285
399
  o.name = "DeleteSubscription"
286
400
  o.http_method = "POST"
287
401
  o.http_request_uri = "/"
402
+ o.deprecated = true
288
403
  o.input = Shapes::ShapeRef.new(shape: DeleteSubscriptionRequest)
289
404
  o.output = Shapes::ShapeRef.new(shape: DeleteSubscriptionResponse)
290
405
  o.errors << Shapes::ShapeRef.new(shape: InternalErrorException)
@@ -302,6 +417,26 @@ module Aws::Shield
302
417
  o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
303
418
  end)
304
419
 
420
+ api.add_operation(:describe_drt_access, Seahorse::Model::Operation.new.tap do |o|
421
+ o.name = "DescribeDRTAccess"
422
+ o.http_method = "POST"
423
+ o.http_request_uri = "/"
424
+ o.input = Shapes::ShapeRef.new(shape: DescribeDRTAccessRequest)
425
+ o.output = Shapes::ShapeRef.new(shape: DescribeDRTAccessResponse)
426
+ o.errors << Shapes::ShapeRef.new(shape: InternalErrorException)
427
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
428
+ end)
429
+
430
+ api.add_operation(:describe_emergency_contact_settings, Seahorse::Model::Operation.new.tap do |o|
431
+ o.name = "DescribeEmergencyContactSettings"
432
+ o.http_method = "POST"
433
+ o.http_request_uri = "/"
434
+ o.input = Shapes::ShapeRef.new(shape: DescribeEmergencyContactSettingsRequest)
435
+ o.output = Shapes::ShapeRef.new(shape: DescribeEmergencyContactSettingsResponse)
436
+ o.errors << Shapes::ShapeRef.new(shape: InternalErrorException)
437
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
438
+ end)
439
+
305
440
  api.add_operation(:describe_protection, Seahorse::Model::Operation.new.tap do |o|
306
441
  o.name = "DescribeProtection"
307
442
  o.http_method = "POST"
@@ -322,6 +457,32 @@ module Aws::Shield
322
457
  o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
323
458
  end)
324
459
 
460
+ api.add_operation(:disassociate_drt_log_bucket, Seahorse::Model::Operation.new.tap do |o|
461
+ o.name = "DisassociateDRTLogBucket"
462
+ o.http_method = "POST"
463
+ o.http_request_uri = "/"
464
+ o.input = Shapes::ShapeRef.new(shape: DisassociateDRTLogBucketRequest)
465
+ o.output = Shapes::ShapeRef.new(shape: DisassociateDRTLogBucketResponse)
466
+ o.errors << Shapes::ShapeRef.new(shape: InternalErrorException)
467
+ o.errors << Shapes::ShapeRef.new(shape: InvalidOperationException)
468
+ o.errors << Shapes::ShapeRef.new(shape: NoAssociatedRoleException)
469
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedForDependencyException)
470
+ o.errors << Shapes::ShapeRef.new(shape: OptimisticLockException)
471
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
472
+ end)
473
+
474
+ api.add_operation(:disassociate_drt_role, Seahorse::Model::Operation.new.tap do |o|
475
+ o.name = "DisassociateDRTRole"
476
+ o.http_method = "POST"
477
+ o.http_request_uri = "/"
478
+ o.input = Shapes::ShapeRef.new(shape: DisassociateDRTRoleRequest)
479
+ o.output = Shapes::ShapeRef.new(shape: DisassociateDRTRoleResponse)
480
+ o.errors << Shapes::ShapeRef.new(shape: InternalErrorException)
481
+ o.errors << Shapes::ShapeRef.new(shape: InvalidOperationException)
482
+ o.errors << Shapes::ShapeRef.new(shape: OptimisticLockException)
483
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
484
+ end)
485
+
325
486
  api.add_operation(:get_subscription_state, Seahorse::Model::Operation.new.tap do |o|
326
487
  o.name = "GetSubscriptionState"
327
488
  o.http_method = "POST"
@@ -350,6 +511,32 @@ module Aws::Shield
350
511
  o.output = Shapes::ShapeRef.new(shape: ListProtectionsResponse)
351
512
  o.errors << Shapes::ShapeRef.new(shape: InternalErrorException)
352
513
  o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
514
+ o.errors << Shapes::ShapeRef.new(shape: InvalidPaginationTokenException)
515
+ end)
516
+
517
+ api.add_operation(:update_emergency_contact_settings, Seahorse::Model::Operation.new.tap do |o|
518
+ o.name = "UpdateEmergencyContactSettings"
519
+ o.http_method = "POST"
520
+ o.http_request_uri = "/"
521
+ o.input = Shapes::ShapeRef.new(shape: UpdateEmergencyContactSettingsRequest)
522
+ o.output = Shapes::ShapeRef.new(shape: UpdateEmergencyContactSettingsResponse)
523
+ o.errors << Shapes::ShapeRef.new(shape: InternalErrorException)
524
+ o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
525
+ o.errors << Shapes::ShapeRef.new(shape: OptimisticLockException)
526
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
527
+ end)
528
+
529
+ api.add_operation(:update_subscription, Seahorse::Model::Operation.new.tap do |o|
530
+ o.name = "UpdateSubscription"
531
+ o.http_method = "POST"
532
+ o.http_request_uri = "/"
533
+ o.input = Shapes::ShapeRef.new(shape: UpdateSubscriptionRequest)
534
+ o.output = Shapes::ShapeRef.new(shape: UpdateSubscriptionResponse)
535
+ o.errors << Shapes::ShapeRef.new(shape: InternalErrorException)
536
+ o.errors << Shapes::ShapeRef.new(shape: LockedSubscriptionException)
537
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
538
+ o.errors << Shapes::ShapeRef.new(shape: InvalidParameterException)
539
+ o.errors << Shapes::ShapeRef.new(shape: OptimisticLockException)
353
540
  end)
354
541
  end
355
542
 
@@ -8,6 +8,60 @@
8
8
  module Aws::Shield
9
9
  module Types
10
10
 
11
+ # @note When making an API call, you may pass AssociateDRTLogBucketRequest
12
+ # data as a hash:
13
+ #
14
+ # {
15
+ # log_bucket: "LogBucket", # required
16
+ # }
17
+ #
18
+ # @!attribute [rw] log_bucket
19
+ # The Amazon S3 bucket that contains your flow logs.
20
+ # @return [String]
21
+ #
22
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/AssociateDRTLogBucketRequest AWS API Documentation
23
+ #
24
+ class AssociateDRTLogBucketRequest < Struct.new(
25
+ :log_bucket)
26
+ include Aws::Structure
27
+ end
28
+
29
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/AssociateDRTLogBucketResponse AWS API Documentation
30
+ #
31
+ class AssociateDRTLogBucketResponse < Aws::EmptyStructure; end
32
+
33
+ # @note When making an API call, you may pass AssociateDRTRoleRequest
34
+ # data as a hash:
35
+ #
36
+ # {
37
+ # role_arn: "RoleArn", # required
38
+ # }
39
+ #
40
+ # @!attribute [rw] role_arn
41
+ # The Amazon Resource Name (ARN) of the role the DRT will use to
42
+ # access your AWS account.
43
+ #
44
+ # Prior to making the `AssociateDRTRole` request, you must attach the
45
+ # [AWSShieldDRTAccessPolicy][1] managed policy to this role. For more
46
+ # information see [Attaching and Detaching IAM Policies](
47
+ # https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html).
48
+ #
49
+ #
50
+ #
51
+ # [1]: https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy
52
+ # @return [String]
53
+ #
54
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/AssociateDRTRoleRequest AWS API Documentation
55
+ #
56
+ class AssociateDRTRoleRequest < Struct.new(
57
+ :role_arn)
58
+ include Aws::Structure
59
+ end
60
+
61
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/AssociateDRTRoleResponse AWS API Documentation
62
+ #
63
+ class AssociateDRTRoleResponse < Aws::EmptyStructure; end
64
+
11
65
  # The details of a DDoS attack.
12
66
  #
13
67
  # @!attribute [rw] attack_id
@@ -338,6 +392,47 @@ module Aws::Shield
338
392
  include Aws::Structure
339
393
  end
340
394
 
395
+ # @api private
396
+ #
397
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeDRTAccessRequest AWS API Documentation
398
+ #
399
+ class DescribeDRTAccessRequest < Aws::EmptyStructure; end
400
+
401
+ # @!attribute [rw] role_arn
402
+ # The Amazon Resource Name (ARN) of the role the DRT used to access
403
+ # your AWS account.
404
+ # @return [String]
405
+ #
406
+ # @!attribute [rw] log_bucket_list
407
+ # The list of Amazon S3 buckets accessed by the DRT.
408
+ # @return [Array<String>]
409
+ #
410
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeDRTAccessResponse AWS API Documentation
411
+ #
412
+ class DescribeDRTAccessResponse < Struct.new(
413
+ :role_arn,
414
+ :log_bucket_list)
415
+ include Aws::Structure
416
+ end
417
+
418
+ # @api private
419
+ #
420
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeEmergencyContactSettingsRequest AWS API Documentation
421
+ #
422
+ class DescribeEmergencyContactSettingsRequest < Aws::EmptyStructure; end
423
+
424
+ # @!attribute [rw] emergency_contact_list
425
+ # A list of email addresses that the DRT can use to contact you during
426
+ # a suspected attack.
427
+ # @return [Array<Types::EmergencyContact>]
428
+ #
429
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeEmergencyContactSettingsResponse AWS API Documentation
430
+ #
431
+ class DescribeEmergencyContactSettingsResponse < Struct.new(
432
+ :emergency_contact_list)
433
+ include Aws::Structure
434
+ end
435
+
341
436
  # @note When making an API call, you may pass DescribeProtectionRequest
342
437
  # data as a hash:
343
438
  #
@@ -385,6 +480,60 @@ module Aws::Shield
385
480
  include Aws::Structure
386
481
  end
387
482
 
483
+ # @note When making an API call, you may pass DisassociateDRTLogBucketRequest
484
+ # data as a hash:
485
+ #
486
+ # {
487
+ # log_bucket: "LogBucket", # required
488
+ # }
489
+ #
490
+ # @!attribute [rw] log_bucket
491
+ # The Amazon S3 bucket that contains your flow logs.
492
+ # @return [String]
493
+ #
494
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DisassociateDRTLogBucketRequest AWS API Documentation
495
+ #
496
+ class DisassociateDRTLogBucketRequest < Struct.new(
497
+ :log_bucket)
498
+ include Aws::Structure
499
+ end
500
+
501
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DisassociateDRTLogBucketResponse AWS API Documentation
502
+ #
503
+ class DisassociateDRTLogBucketResponse < Aws::EmptyStructure; end
504
+
505
+ # @api private
506
+ #
507
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DisassociateDRTRoleRequest AWS API Documentation
508
+ #
509
+ class DisassociateDRTRoleRequest < Aws::EmptyStructure; end
510
+
511
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DisassociateDRTRoleResponse AWS API Documentation
512
+ #
513
+ class DisassociateDRTRoleResponse < Aws::EmptyStructure; end
514
+
515
+ # Contact information that the DRT can use to contact you during a
516
+ # suspected attack.
517
+ #
518
+ # @note When making an API call, you may pass EmergencyContact
519
+ # data as a hash:
520
+ #
521
+ # {
522
+ # email_address: "EmailAddress", # required
523
+ # }
524
+ #
525
+ # @!attribute [rw] email_address
526
+ # An email address that the DRT can use to contact you during a
527
+ # suspected attack.
528
+ # @return [String]
529
+ #
530
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/EmergencyContact AWS API Documentation
531
+ #
532
+ class EmergencyContact < Struct.new(
533
+ :email_address)
534
+ include Aws::Structure
535
+ end
536
+
388
537
  # @api private
389
538
  #
390
539
  # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/GetSubscriptionStateRequest AWS API Documentation
@@ -402,6 +551,25 @@ module Aws::Shield
402
551
  include Aws::Structure
403
552
  end
404
553
 
554
+ # Specifies how many protections of a given type you can create.
555
+ #
556
+ # @!attribute [rw] type
557
+ # The type of protection.
558
+ # @return [String]
559
+ #
560
+ # @!attribute [rw] max
561
+ # The maximum number of protections that can be created for the
562
+ # specified `Type`.
563
+ # @return [Integer]
564
+ #
565
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/Limit AWS API Documentation
566
+ #
567
+ class Limit < Struct.new(
568
+ :type,
569
+ :max)
570
+ include Aws::Structure
571
+ end
572
+
405
573
  # @note When making an API call, you may pass ListAttacksRequest
406
574
  # data as a hash:
407
575
  #
@@ -612,16 +780,38 @@ module Aws::Shield
612
780
  # [1]: http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#parameter-types
613
781
  # @return [Time]
614
782
  #
783
+ # @!attribute [rw] end_time
784
+ # The date and time your subscription will end.
785
+ # @return [Time]
786
+ #
615
787
  # @!attribute [rw] time_commitment_in_seconds
616
788
  # The length, in seconds, of the AWS Shield Advanced subscription for
617
789
  # the account.
618
790
  # @return [Integer]
619
791
  #
792
+ # @!attribute [rw] auto_renew
793
+ # If `ENABLED`, the subscription will be automatically renewed at the
794
+ # end of the existing subscription period.
795
+ #
796
+ # When you initally create a subscription, `AutoRenew` is set to
797
+ # `ENABLED`. You can change this by submitting an `UpdateSubscription`
798
+ # request. If the `UpdateSubscription` request does not included a
799
+ # value for `AutoRenew`, the existing value for `AutoRenew` remains
800
+ # unchanged.
801
+ # @return [String]
802
+ #
803
+ # @!attribute [rw] limits
804
+ # Specifies how many protections of a given type you can create.
805
+ # @return [Array<Types::Limit>]
806
+ #
620
807
  # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/Subscription AWS API Documentation
621
808
  #
622
809
  class Subscription < Struct.new(
623
810
  :start_time,
624
- :time_commitment_in_seconds)
811
+ :end_time,
812
+ :time_commitment_in_seconds,
813
+ :auto_renew,
814
+ :limits)
625
815
  include Aws::Structure
626
816
  end
627
817
 
@@ -717,5 +907,59 @@ module Aws::Shield
717
907
  include Aws::Structure
718
908
  end
719
909
 
910
+ # @note When making an API call, you may pass UpdateEmergencyContactSettingsRequest
911
+ # data as a hash:
912
+ #
913
+ # {
914
+ # emergency_contact_list: [
915
+ # {
916
+ # email_address: "EmailAddress", # required
917
+ # },
918
+ # ],
919
+ # }
920
+ #
921
+ # @!attribute [rw] emergency_contact_list
922
+ # A list of email addresses that the DRT can use to contact you during
923
+ # a suspected attack.
924
+ # @return [Array<Types::EmergencyContact>]
925
+ #
926
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/UpdateEmergencyContactSettingsRequest AWS API Documentation
927
+ #
928
+ class UpdateEmergencyContactSettingsRequest < Struct.new(
929
+ :emergency_contact_list)
930
+ include Aws::Structure
931
+ end
932
+
933
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/UpdateEmergencyContactSettingsResponse AWS API Documentation
934
+ #
935
+ class UpdateEmergencyContactSettingsResponse < Aws::EmptyStructure; end
936
+
937
+ # @note When making an API call, you may pass UpdateSubscriptionRequest
938
+ # data as a hash:
939
+ #
940
+ # {
941
+ # auto_renew: "ENABLED", # accepts ENABLED, DISABLED
942
+ # }
943
+ #
944
+ # @!attribute [rw] auto_renew
945
+ # When you initally create a subscription, `AutoRenew` is set to
946
+ # `ENABLED`. If `ENABLED`, the subscription will be automatically
947
+ # renewed at the end of the existing subscription period. You can
948
+ # change this by submitting an `UpdateSubscription` request. If the
949
+ # `UpdateSubscription` request does not included a value for
950
+ # `AutoRenew`, the existing value for `AutoRenew` remains unchanged.
951
+ # @return [String]
952
+ #
953
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/UpdateSubscriptionRequest AWS API Documentation
954
+ #
955
+ class UpdateSubscriptionRequest < Struct.new(
956
+ :auto_renew)
957
+ include Aws::Structure
958
+ end
959
+
960
+ # @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/UpdateSubscriptionResponse AWS API Documentation
961
+ #
962
+ class UpdateSubscriptionResponse < Aws::EmptyStructure; end
963
+
720
964
  end
721
965
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-shield
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-11-22 00:00:00.000000000 Z
11
+ date: 2018-06-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-core
@@ -75,7 +75,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
75
75
  version: '0'
76
76
  requirements: []
77
77
  rubyforge_project:
78
- rubygems_version: 2.5.1
78
+ rubygems_version: 2.5.2.3
79
79
  signing_key:
80
80
  specification_version: 4
81
81
  summary: AWS SDK for Ruby - AWS Shield