aws-sdk-shield 1.1.0 → 1.2.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.
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