1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package shield
4
5import (
6	"fmt"
7	"time"
8
9	"github.com/aws/aws-sdk-go/aws"
10	"github.com/aws/aws-sdk-go/aws/awsutil"
11	"github.com/aws/aws-sdk-go/aws/request"
12	"github.com/aws/aws-sdk-go/private/protocol"
13	"github.com/aws/aws-sdk-go/private/protocol/jsonrpc"
14)
15
16const opAssociateDRTLogBucket = "AssociateDRTLogBucket"
17
18// AssociateDRTLogBucketRequest generates a "aws/request.Request" representing the
19// client's request for the AssociateDRTLogBucket operation. The "output" return
20// value will be populated with the request's response once the request completes
21// successfully.
22//
23// Use "Send" method on the returned Request to send the API call to the service.
24// the "output" return value is not valid until after Send returns without error.
25//
26// See AssociateDRTLogBucket for more information on using the AssociateDRTLogBucket
27// API call, and error handling.
28//
29// This method is useful when you want to inject custom logic or configuration
30// into the SDK's request lifecycle. Such as custom headers, or retry logic.
31//
32//
33//    // Example sending a request using the AssociateDRTLogBucketRequest method.
34//    req, resp := client.AssociateDRTLogBucketRequest(params)
35//
36//    err := req.Send()
37//    if err == nil { // resp is now filled
38//        fmt.Println(resp)
39//    }
40//
41// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/AssociateDRTLogBucket
42func (c *Shield) AssociateDRTLogBucketRequest(input *AssociateDRTLogBucketInput) (req *request.Request, output *AssociateDRTLogBucketOutput) {
43	op := &request.Operation{
44		Name:       opAssociateDRTLogBucket,
45		HTTPMethod: "POST",
46		HTTPPath:   "/",
47	}
48
49	if input == nil {
50		input = &AssociateDRTLogBucketInput{}
51	}
52
53	output = &AssociateDRTLogBucketOutput{}
54	req = c.newRequest(op, input, output)
55	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
56	return
57}
58
59// AssociateDRTLogBucket API operation for AWS Shield.
60//
61// Authorizes the Shield Response Team (SRT) to access the specified Amazon
62// S3 bucket containing log data such as Application Load Balancer access logs,
63// CloudFront logs, or logs from third party sources. You can associate up to
64// 10 Amazon S3 buckets with your subscription.
65//
66// To use the services of the SRT and make an AssociateDRTLogBucket request,
67// you must be subscribed to the Business Support plan (https://aws.amazon.com/premiumsupport/business-support/)
68// or the Enterprise Support plan (https://aws.amazon.com/premiumsupport/enterprise-support/).
69//
70// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
71// with awserr.Error's Code and Message methods to get detailed information about
72// the error.
73//
74// See the AWS API reference guide for AWS Shield's
75// API operation AssociateDRTLogBucket for usage and error information.
76//
77// Returned Error Types:
78//   * InternalErrorException
79//   Exception that indicates that a problem occurred with the service infrastructure.
80//   You can retry the request.
81//
82//   * InvalidOperationException
83//   Exception that indicates that the operation would not cause any change to
84//   occur.
85//
86//   * NoAssociatedRoleException
87//   The ARN of the role that you specifed does not exist.
88//
89//   * LimitsExceededException
90//   Exception that indicates that the operation would exceed a limit.
91//
92//   * InvalidParameterException
93//   Exception that indicates that the parameters passed to the API are invalid.
94//   If available, this exception includes details in additional properties.
95//
96//   * AccessDeniedForDependencyException
97//   In order to grant the necessary access to the Shield Response Team (SRT)
98//   the user submitting the request must have the iam:PassRole permission. This
99//   error indicates the user did not have the appropriate permissions. For more
100//   information, see Granting a User Permissions to Pass a Role to an Amazon
101//   Web Services Service (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html).
102//
103//   * OptimisticLockException
104//   Exception that indicates that the resource state has been modified by another
105//   client. Retrieve the resource and then retry your request.
106//
107//   * ResourceNotFoundException
108//   Exception indicating the specified resource does not exist. If available,
109//   this exception includes details in additional properties.
110//
111// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/AssociateDRTLogBucket
112func (c *Shield) AssociateDRTLogBucket(input *AssociateDRTLogBucketInput) (*AssociateDRTLogBucketOutput, error) {
113	req, out := c.AssociateDRTLogBucketRequest(input)
114	return out, req.Send()
115}
116
117// AssociateDRTLogBucketWithContext is the same as AssociateDRTLogBucket with the addition of
118// the ability to pass a context and additional request options.
119//
120// See AssociateDRTLogBucket for details on how to use this API operation.
121//
122// The context must be non-nil and will be used for request cancellation. If
123// the context is nil a panic will occur. In the future the SDK may create
124// sub-contexts for http.Requests. See https://golang.org/pkg/context/
125// for more information on using Contexts.
126func (c *Shield) AssociateDRTLogBucketWithContext(ctx aws.Context, input *AssociateDRTLogBucketInput, opts ...request.Option) (*AssociateDRTLogBucketOutput, error) {
127	req, out := c.AssociateDRTLogBucketRequest(input)
128	req.SetContext(ctx)
129	req.ApplyOptions(opts...)
130	return out, req.Send()
131}
132
133const opAssociateDRTRole = "AssociateDRTRole"
134
135// AssociateDRTRoleRequest generates a "aws/request.Request" representing the
136// client's request for the AssociateDRTRole operation. The "output" return
137// value will be populated with the request's response once the request completes
138// successfully.
139//
140// Use "Send" method on the returned Request to send the API call to the service.
141// the "output" return value is not valid until after Send returns without error.
142//
143// See AssociateDRTRole for more information on using the AssociateDRTRole
144// API call, and error handling.
145//
146// This method is useful when you want to inject custom logic or configuration
147// into the SDK's request lifecycle. Such as custom headers, or retry logic.
148//
149//
150//    // Example sending a request using the AssociateDRTRoleRequest method.
151//    req, resp := client.AssociateDRTRoleRequest(params)
152//
153//    err := req.Send()
154//    if err == nil { // resp is now filled
155//        fmt.Println(resp)
156//    }
157//
158// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/AssociateDRTRole
159func (c *Shield) AssociateDRTRoleRequest(input *AssociateDRTRoleInput) (req *request.Request, output *AssociateDRTRoleOutput) {
160	op := &request.Operation{
161		Name:       opAssociateDRTRole,
162		HTTPMethod: "POST",
163		HTTPPath:   "/",
164	}
165
166	if input == nil {
167		input = &AssociateDRTRoleInput{}
168	}
169
170	output = &AssociateDRTRoleOutput{}
171	req = c.newRequest(op, input, output)
172	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
173	return
174}
175
176// AssociateDRTRole API operation for AWS Shield.
177//
178// Authorizes the Shield Response Team (SRT) using the specified role, to access
179// your Amazon Web Services account to assist with DDoS attack mitigation during
180// potential attacks. This enables the SRT to inspect your WAF configuration
181// and create or update WAF rules and web ACLs.
182//
183// You can associate only one RoleArn with your subscription. If you submit
184// an AssociateDRTRole request for an account that already has an associated
185// role, the new RoleArn will replace the existing RoleArn.
186//
187// Prior to making the AssociateDRTRole request, you must attach the AWSShieldDRTAccessPolicy
188// (https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy)
189// managed policy to the role you will specify in the request. For more information
190// see Attaching and Detaching IAM Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html).
191// The role must also trust the service principal drt.shield.amazonaws.com.
192// For more information, see IAM JSON Policy Elements: Principal (https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html).
193//
194// The SRT will have access only to your WAF and Shield resources. By submitting
195// this request, you authorize the SRT to inspect your WAF and Shield configuration
196// and create and update WAF rules and web ACLs on your behalf. The SRT takes
197// these actions only if explicitly authorized by you.
198//
199// You must have the iam:PassRole permission to make an AssociateDRTRole request.
200// For more information, see Granting a User Permissions to Pass a Role to an
201// Amazon Web Services Service (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html).
202//
203// To use the services of the SRT and make an AssociateDRTRole request, you
204// must be subscribed to the Business Support plan (https://aws.amazon.com/premiumsupport/business-support/)
205// or the Enterprise Support plan (https://aws.amazon.com/premiumsupport/enterprise-support/).
206//
207// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
208// with awserr.Error's Code and Message methods to get detailed information about
209// the error.
210//
211// See the AWS API reference guide for AWS Shield's
212// API operation AssociateDRTRole for usage and error information.
213//
214// Returned Error Types:
215//   * InternalErrorException
216//   Exception that indicates that a problem occurred with the service infrastructure.
217//   You can retry the request.
218//
219//   * InvalidOperationException
220//   Exception that indicates that the operation would not cause any change to
221//   occur.
222//
223//   * InvalidParameterException
224//   Exception that indicates that the parameters passed to the API are invalid.
225//   If available, this exception includes details in additional properties.
226//
227//   * AccessDeniedForDependencyException
228//   In order to grant the necessary access to the Shield Response Team (SRT)
229//   the user submitting the request must have the iam:PassRole permission. This
230//   error indicates the user did not have the appropriate permissions. For more
231//   information, see Granting a User Permissions to Pass a Role to an Amazon
232//   Web Services Service (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html).
233//
234//   * OptimisticLockException
235//   Exception that indicates that the resource state has been modified by another
236//   client. Retrieve the resource and then retry your request.
237//
238//   * ResourceNotFoundException
239//   Exception indicating the specified resource does not exist. If available,
240//   this exception includes details in additional properties.
241//
242// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/AssociateDRTRole
243func (c *Shield) AssociateDRTRole(input *AssociateDRTRoleInput) (*AssociateDRTRoleOutput, error) {
244	req, out := c.AssociateDRTRoleRequest(input)
245	return out, req.Send()
246}
247
248// AssociateDRTRoleWithContext is the same as AssociateDRTRole with the addition of
249// the ability to pass a context and additional request options.
250//
251// See AssociateDRTRole for details on how to use this API operation.
252//
253// The context must be non-nil and will be used for request cancellation. If
254// the context is nil a panic will occur. In the future the SDK may create
255// sub-contexts for http.Requests. See https://golang.org/pkg/context/
256// for more information on using Contexts.
257func (c *Shield) AssociateDRTRoleWithContext(ctx aws.Context, input *AssociateDRTRoleInput, opts ...request.Option) (*AssociateDRTRoleOutput, error) {
258	req, out := c.AssociateDRTRoleRequest(input)
259	req.SetContext(ctx)
260	req.ApplyOptions(opts...)
261	return out, req.Send()
262}
263
264const opAssociateHealthCheck = "AssociateHealthCheck"
265
266// AssociateHealthCheckRequest generates a "aws/request.Request" representing the
267// client's request for the AssociateHealthCheck operation. The "output" return
268// value will be populated with the request's response once the request completes
269// successfully.
270//
271// Use "Send" method on the returned Request to send the API call to the service.
272// the "output" return value is not valid until after Send returns without error.
273//
274// See AssociateHealthCheck for more information on using the AssociateHealthCheck
275// API call, and error handling.
276//
277// This method is useful when you want to inject custom logic or configuration
278// into the SDK's request lifecycle. Such as custom headers, or retry logic.
279//
280//
281//    // Example sending a request using the AssociateHealthCheckRequest method.
282//    req, resp := client.AssociateHealthCheckRequest(params)
283//
284//    err := req.Send()
285//    if err == nil { // resp is now filled
286//        fmt.Println(resp)
287//    }
288//
289// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/AssociateHealthCheck
290func (c *Shield) AssociateHealthCheckRequest(input *AssociateHealthCheckInput) (req *request.Request, output *AssociateHealthCheckOutput) {
291	op := &request.Operation{
292		Name:       opAssociateHealthCheck,
293		HTTPMethod: "POST",
294		HTTPPath:   "/",
295	}
296
297	if input == nil {
298		input = &AssociateHealthCheckInput{}
299	}
300
301	output = &AssociateHealthCheckOutput{}
302	req = c.newRequest(op, input, output)
303	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
304	return
305}
306
307// AssociateHealthCheck API operation for AWS Shield.
308//
309// Adds health-based detection to the Shield Advanced protection for a resource.
310// Shield Advanced health-based detection uses the health of your Amazon Web
311// Services resource to improve responsiveness and accuracy in attack detection
312// and mitigation.
313//
314// You define the health check in Route 53 and then associate it with your Shield
315// Advanced protection. For more information, see Shield Advanced Health-Based
316// Detection (https://docs.aws.amazon.com/waf/latest/developerguide/ddos-overview.html#ddos-advanced-health-check-option)
317// in the WAF Developer Guide.
318//
319// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
320// with awserr.Error's Code and Message methods to get detailed information about
321// the error.
322//
323// See the AWS API reference guide for AWS Shield's
324// API operation AssociateHealthCheck for usage and error information.
325//
326// Returned Error Types:
327//   * InternalErrorException
328//   Exception that indicates that a problem occurred with the service infrastructure.
329//   You can retry the request.
330//
331//   * LimitsExceededException
332//   Exception that indicates that the operation would exceed a limit.
333//
334//   * ResourceNotFoundException
335//   Exception indicating the specified resource does not exist. If available,
336//   this exception includes details in additional properties.
337//
338//   * InvalidParameterException
339//   Exception that indicates that the parameters passed to the API are invalid.
340//   If available, this exception includes details in additional properties.
341//
342//   * OptimisticLockException
343//   Exception that indicates that the resource state has been modified by another
344//   client. Retrieve the resource and then retry your request.
345//
346// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/AssociateHealthCheck
347func (c *Shield) AssociateHealthCheck(input *AssociateHealthCheckInput) (*AssociateHealthCheckOutput, error) {
348	req, out := c.AssociateHealthCheckRequest(input)
349	return out, req.Send()
350}
351
352// AssociateHealthCheckWithContext is the same as AssociateHealthCheck with the addition of
353// the ability to pass a context and additional request options.
354//
355// See AssociateHealthCheck for details on how to use this API operation.
356//
357// The context must be non-nil and will be used for request cancellation. If
358// the context is nil a panic will occur. In the future the SDK may create
359// sub-contexts for http.Requests. See https://golang.org/pkg/context/
360// for more information on using Contexts.
361func (c *Shield) AssociateHealthCheckWithContext(ctx aws.Context, input *AssociateHealthCheckInput, opts ...request.Option) (*AssociateHealthCheckOutput, error) {
362	req, out := c.AssociateHealthCheckRequest(input)
363	req.SetContext(ctx)
364	req.ApplyOptions(opts...)
365	return out, req.Send()
366}
367
368const opAssociateProactiveEngagementDetails = "AssociateProactiveEngagementDetails"
369
370// AssociateProactiveEngagementDetailsRequest generates a "aws/request.Request" representing the
371// client's request for the AssociateProactiveEngagementDetails operation. The "output" return
372// value will be populated with the request's response once the request completes
373// successfully.
374//
375// Use "Send" method on the returned Request to send the API call to the service.
376// the "output" return value is not valid until after Send returns without error.
377//
378// See AssociateProactiveEngagementDetails for more information on using the AssociateProactiveEngagementDetails
379// API call, and error handling.
380//
381// This method is useful when you want to inject custom logic or configuration
382// into the SDK's request lifecycle. Such as custom headers, or retry logic.
383//
384//
385//    // Example sending a request using the AssociateProactiveEngagementDetailsRequest method.
386//    req, resp := client.AssociateProactiveEngagementDetailsRequest(params)
387//
388//    err := req.Send()
389//    if err == nil { // resp is now filled
390//        fmt.Println(resp)
391//    }
392//
393// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/AssociateProactiveEngagementDetails
394func (c *Shield) AssociateProactiveEngagementDetailsRequest(input *AssociateProactiveEngagementDetailsInput) (req *request.Request, output *AssociateProactiveEngagementDetailsOutput) {
395	op := &request.Operation{
396		Name:       opAssociateProactiveEngagementDetails,
397		HTTPMethod: "POST",
398		HTTPPath:   "/",
399	}
400
401	if input == nil {
402		input = &AssociateProactiveEngagementDetailsInput{}
403	}
404
405	output = &AssociateProactiveEngagementDetailsOutput{}
406	req = c.newRequest(op, input, output)
407	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
408	return
409}
410
411// AssociateProactiveEngagementDetails API operation for AWS Shield.
412//
413// Initializes proactive engagement and sets the list of contacts for the Shield
414// Response Team (SRT) to use. You must provide at least one phone number in
415// the emergency contact list.
416//
417// After you have initialized proactive engagement using this call, to disable
418// or enable proactive engagement, use the calls DisableProactiveEngagement
419// and EnableProactiveEngagement.
420//
421// This call defines the list of email addresses and phone numbers that the
422// SRT can use to contact you for escalations to the SRT and to initiate proactive
423// customer support.
424//
425// The contacts that you provide in the request replace any contacts that were
426// already defined. If you already have contacts defined and want to use them,
427// retrieve the list using DescribeEmergencyContactSettings and then provide
428// it to this call.
429//
430// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
431// with awserr.Error's Code and Message methods to get detailed information about
432// the error.
433//
434// See the AWS API reference guide for AWS Shield's
435// API operation AssociateProactiveEngagementDetails for usage and error information.
436//
437// Returned Error Types:
438//   * InternalErrorException
439//   Exception that indicates that a problem occurred with the service infrastructure.
440//   You can retry the request.
441//
442//   * InvalidOperationException
443//   Exception that indicates that the operation would not cause any change to
444//   occur.
445//
446//   * InvalidParameterException
447//   Exception that indicates that the parameters passed to the API are invalid.
448//   If available, this exception includes details in additional properties.
449//
450//   * ResourceNotFoundException
451//   Exception indicating the specified resource does not exist. If available,
452//   this exception includes details in additional properties.
453//
454//   * OptimisticLockException
455//   Exception that indicates that the resource state has been modified by another
456//   client. Retrieve the resource and then retry your request.
457//
458// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/AssociateProactiveEngagementDetails
459func (c *Shield) AssociateProactiveEngagementDetails(input *AssociateProactiveEngagementDetailsInput) (*AssociateProactiveEngagementDetailsOutput, error) {
460	req, out := c.AssociateProactiveEngagementDetailsRequest(input)
461	return out, req.Send()
462}
463
464// AssociateProactiveEngagementDetailsWithContext is the same as AssociateProactiveEngagementDetails with the addition of
465// the ability to pass a context and additional request options.
466//
467// See AssociateProactiveEngagementDetails for details on how to use this API operation.
468//
469// The context must be non-nil and will be used for request cancellation. If
470// the context is nil a panic will occur. In the future the SDK may create
471// sub-contexts for http.Requests. See https://golang.org/pkg/context/
472// for more information on using Contexts.
473func (c *Shield) AssociateProactiveEngagementDetailsWithContext(ctx aws.Context, input *AssociateProactiveEngagementDetailsInput, opts ...request.Option) (*AssociateProactiveEngagementDetailsOutput, error) {
474	req, out := c.AssociateProactiveEngagementDetailsRequest(input)
475	req.SetContext(ctx)
476	req.ApplyOptions(opts...)
477	return out, req.Send()
478}
479
480const opCreateProtection = "CreateProtection"
481
482// CreateProtectionRequest generates a "aws/request.Request" representing the
483// client's request for the CreateProtection operation. The "output" return
484// value will be populated with the request's response once the request completes
485// successfully.
486//
487// Use "Send" method on the returned Request to send the API call to the service.
488// the "output" return value is not valid until after Send returns without error.
489//
490// See CreateProtection for more information on using the CreateProtection
491// API call, and error handling.
492//
493// This method is useful when you want to inject custom logic or configuration
494// into the SDK's request lifecycle. Such as custom headers, or retry logic.
495//
496//
497//    // Example sending a request using the CreateProtectionRequest method.
498//    req, resp := client.CreateProtectionRequest(params)
499//
500//    err := req.Send()
501//    if err == nil { // resp is now filled
502//        fmt.Println(resp)
503//    }
504//
505// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/CreateProtection
506func (c *Shield) CreateProtectionRequest(input *CreateProtectionInput) (req *request.Request, output *CreateProtectionOutput) {
507	op := &request.Operation{
508		Name:       opCreateProtection,
509		HTTPMethod: "POST",
510		HTTPPath:   "/",
511	}
512
513	if input == nil {
514		input = &CreateProtectionInput{}
515	}
516
517	output = &CreateProtectionOutput{}
518	req = c.newRequest(op, input, output)
519	return
520}
521
522// CreateProtection API operation for AWS Shield.
523//
524// Enables Shield Advanced for a specific Amazon Web Services resource. The
525// resource can be an Amazon CloudFront distribution, Elastic Load Balancing
526// load balancer, Global Accelerator accelerator, Elastic IP Address, or an
527// Amazon Route 53 hosted zone.
528//
529// You can add protection to only a single resource with each CreateProtection
530// request. If you want to add protection to multiple resources at once, use
531// the WAF console (https://console.aws.amazon.com/waf/). For more information
532// see Getting Started with Shield Advanced (https://docs.aws.amazon.com/waf/latest/developerguide/getting-started-ddos.html)
533// and Add Shield Advanced Protection to more Amazon Web Services Resources
534// (https://docs.aws.amazon.com/waf/latest/developerguide/configure-new-protection.html).
535//
536// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
537// with awserr.Error's Code and Message methods to get detailed information about
538// the error.
539//
540// See the AWS API reference guide for AWS Shield's
541// API operation CreateProtection for usage and error information.
542//
543// Returned Error Types:
544//   * InternalErrorException
545//   Exception that indicates that a problem occurred with the service infrastructure.
546//   You can retry the request.
547//
548//   * InvalidResourceException
549//   Exception that indicates that the resource is invalid. You might not have
550//   access to the resource, or the resource might not exist.
551//
552//   * InvalidOperationException
553//   Exception that indicates that the operation would not cause any change to
554//   occur.
555//
556//   * LimitsExceededException
557//   Exception that indicates that the operation would exceed a limit.
558//
559//   * ResourceAlreadyExistsException
560//   Exception indicating the specified resource already exists. If available,
561//   this exception includes details in additional properties.
562//
563//   * OptimisticLockException
564//   Exception that indicates that the resource state has been modified by another
565//   client. Retrieve the resource and then retry your request.
566//
567//   * ResourceNotFoundException
568//   Exception indicating the specified resource does not exist. If available,
569//   this exception includes details in additional properties.
570//
571//   * InvalidParameterException
572//   Exception that indicates that the parameters passed to the API are invalid.
573//   If available, this exception includes details in additional properties.
574//
575// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/CreateProtection
576func (c *Shield) CreateProtection(input *CreateProtectionInput) (*CreateProtectionOutput, error) {
577	req, out := c.CreateProtectionRequest(input)
578	return out, req.Send()
579}
580
581// CreateProtectionWithContext is the same as CreateProtection with the addition of
582// the ability to pass a context and additional request options.
583//
584// See CreateProtection for details on how to use this API operation.
585//
586// The context must be non-nil and will be used for request cancellation. If
587// the context is nil a panic will occur. In the future the SDK may create
588// sub-contexts for http.Requests. See https://golang.org/pkg/context/
589// for more information on using Contexts.
590func (c *Shield) CreateProtectionWithContext(ctx aws.Context, input *CreateProtectionInput, opts ...request.Option) (*CreateProtectionOutput, error) {
591	req, out := c.CreateProtectionRequest(input)
592	req.SetContext(ctx)
593	req.ApplyOptions(opts...)
594	return out, req.Send()
595}
596
597const opCreateProtectionGroup = "CreateProtectionGroup"
598
599// CreateProtectionGroupRequest generates a "aws/request.Request" representing the
600// client's request for the CreateProtectionGroup operation. The "output" return
601// value will be populated with the request's response once the request completes
602// successfully.
603//
604// Use "Send" method on the returned Request to send the API call to the service.
605// the "output" return value is not valid until after Send returns without error.
606//
607// See CreateProtectionGroup for more information on using the CreateProtectionGroup
608// API call, and error handling.
609//
610// This method is useful when you want to inject custom logic or configuration
611// into the SDK's request lifecycle. Such as custom headers, or retry logic.
612//
613//
614//    // Example sending a request using the CreateProtectionGroupRequest method.
615//    req, resp := client.CreateProtectionGroupRequest(params)
616//
617//    err := req.Send()
618//    if err == nil { // resp is now filled
619//        fmt.Println(resp)
620//    }
621//
622// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/CreateProtectionGroup
623func (c *Shield) CreateProtectionGroupRequest(input *CreateProtectionGroupInput) (req *request.Request, output *CreateProtectionGroupOutput) {
624	op := &request.Operation{
625		Name:       opCreateProtectionGroup,
626		HTTPMethod: "POST",
627		HTTPPath:   "/",
628	}
629
630	if input == nil {
631		input = &CreateProtectionGroupInput{}
632	}
633
634	output = &CreateProtectionGroupOutput{}
635	req = c.newRequest(op, input, output)
636	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
637	return
638}
639
640// CreateProtectionGroup API operation for AWS Shield.
641//
642// Creates a grouping of protected resources so they can be handled as a collective.
643// This resource grouping improves the accuracy of detection and reduces false
644// positives.
645//
646// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
647// with awserr.Error's Code and Message methods to get detailed information about
648// the error.
649//
650// See the AWS API reference guide for AWS Shield's
651// API operation CreateProtectionGroup for usage and error information.
652//
653// Returned Error Types:
654//   * InternalErrorException
655//   Exception that indicates that a problem occurred with the service infrastructure.
656//   You can retry the request.
657//
658//   * ResourceAlreadyExistsException
659//   Exception indicating the specified resource already exists. If available,
660//   this exception includes details in additional properties.
661//
662//   * OptimisticLockException
663//   Exception that indicates that the resource state has been modified by another
664//   client. Retrieve the resource and then retry your request.
665//
666//   * ResourceNotFoundException
667//   Exception indicating the specified resource does not exist. If available,
668//   this exception includes details in additional properties.
669//
670//   * InvalidParameterException
671//   Exception that indicates that the parameters passed to the API are invalid.
672//   If available, this exception includes details in additional properties.
673//
674//   * LimitsExceededException
675//   Exception that indicates that the operation would exceed a limit.
676//
677// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/CreateProtectionGroup
678func (c *Shield) CreateProtectionGroup(input *CreateProtectionGroupInput) (*CreateProtectionGroupOutput, error) {
679	req, out := c.CreateProtectionGroupRequest(input)
680	return out, req.Send()
681}
682
683// CreateProtectionGroupWithContext is the same as CreateProtectionGroup with the addition of
684// the ability to pass a context and additional request options.
685//
686// See CreateProtectionGroup for details on how to use this API operation.
687//
688// The context must be non-nil and will be used for request cancellation. If
689// the context is nil a panic will occur. In the future the SDK may create
690// sub-contexts for http.Requests. See https://golang.org/pkg/context/
691// for more information on using Contexts.
692func (c *Shield) CreateProtectionGroupWithContext(ctx aws.Context, input *CreateProtectionGroupInput, opts ...request.Option) (*CreateProtectionGroupOutput, error) {
693	req, out := c.CreateProtectionGroupRequest(input)
694	req.SetContext(ctx)
695	req.ApplyOptions(opts...)
696	return out, req.Send()
697}
698
699const opCreateSubscription = "CreateSubscription"
700
701// CreateSubscriptionRequest generates a "aws/request.Request" representing the
702// client's request for the CreateSubscription operation. The "output" return
703// value will be populated with the request's response once the request completes
704// successfully.
705//
706// Use "Send" method on the returned Request to send the API call to the service.
707// the "output" return value is not valid until after Send returns without error.
708//
709// See CreateSubscription for more information on using the CreateSubscription
710// API call, and error handling.
711//
712// This method is useful when you want to inject custom logic or configuration
713// into the SDK's request lifecycle. Such as custom headers, or retry logic.
714//
715//
716//    // Example sending a request using the CreateSubscriptionRequest method.
717//    req, resp := client.CreateSubscriptionRequest(params)
718//
719//    err := req.Send()
720//    if err == nil { // resp is now filled
721//        fmt.Println(resp)
722//    }
723//
724// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/CreateSubscription
725func (c *Shield) CreateSubscriptionRequest(input *CreateSubscriptionInput) (req *request.Request, output *CreateSubscriptionOutput) {
726	op := &request.Operation{
727		Name:       opCreateSubscription,
728		HTTPMethod: "POST",
729		HTTPPath:   "/",
730	}
731
732	if input == nil {
733		input = &CreateSubscriptionInput{}
734	}
735
736	output = &CreateSubscriptionOutput{}
737	req = c.newRequest(op, input, output)
738	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
739	return
740}
741
742// CreateSubscription API operation for AWS Shield.
743//
744// Activates Shield Advanced for an account.
745//
746// When you initally create a subscription, your subscription is set to be automatically
747// renewed at the end of the existing subscription period. You can change this
748// by submitting an UpdateSubscription request.
749//
750// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
751// with awserr.Error's Code and Message methods to get detailed information about
752// the error.
753//
754// See the AWS API reference guide for AWS Shield's
755// API operation CreateSubscription for usage and error information.
756//
757// Returned Error Types:
758//   * InternalErrorException
759//   Exception that indicates that a problem occurred with the service infrastructure.
760//   You can retry the request.
761//
762//   * ResourceAlreadyExistsException
763//   Exception indicating the specified resource already exists. If available,
764//   this exception includes details in additional properties.
765//
766// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/CreateSubscription
767func (c *Shield) CreateSubscription(input *CreateSubscriptionInput) (*CreateSubscriptionOutput, error) {
768	req, out := c.CreateSubscriptionRequest(input)
769	return out, req.Send()
770}
771
772// CreateSubscriptionWithContext is the same as CreateSubscription with the addition of
773// the ability to pass a context and additional request options.
774//
775// See CreateSubscription for details on how to use this API operation.
776//
777// The context must be non-nil and will be used for request cancellation. If
778// the context is nil a panic will occur. In the future the SDK may create
779// sub-contexts for http.Requests. See https://golang.org/pkg/context/
780// for more information on using Contexts.
781func (c *Shield) CreateSubscriptionWithContext(ctx aws.Context, input *CreateSubscriptionInput, opts ...request.Option) (*CreateSubscriptionOutput, error) {
782	req, out := c.CreateSubscriptionRequest(input)
783	req.SetContext(ctx)
784	req.ApplyOptions(opts...)
785	return out, req.Send()
786}
787
788const opDeleteProtection = "DeleteProtection"
789
790// DeleteProtectionRequest generates a "aws/request.Request" representing the
791// client's request for the DeleteProtection operation. The "output" return
792// value will be populated with the request's response once the request completes
793// successfully.
794//
795// Use "Send" method on the returned Request to send the API call to the service.
796// the "output" return value is not valid until after Send returns without error.
797//
798// See DeleteProtection for more information on using the DeleteProtection
799// API call, and error handling.
800//
801// This method is useful when you want to inject custom logic or configuration
802// into the SDK's request lifecycle. Such as custom headers, or retry logic.
803//
804//
805//    // Example sending a request using the DeleteProtectionRequest method.
806//    req, resp := client.DeleteProtectionRequest(params)
807//
808//    err := req.Send()
809//    if err == nil { // resp is now filled
810//        fmt.Println(resp)
811//    }
812//
813// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DeleteProtection
814func (c *Shield) DeleteProtectionRequest(input *DeleteProtectionInput) (req *request.Request, output *DeleteProtectionOutput) {
815	op := &request.Operation{
816		Name:       opDeleteProtection,
817		HTTPMethod: "POST",
818		HTTPPath:   "/",
819	}
820
821	if input == nil {
822		input = &DeleteProtectionInput{}
823	}
824
825	output = &DeleteProtectionOutput{}
826	req = c.newRequest(op, input, output)
827	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
828	return
829}
830
831// DeleteProtection API operation for AWS Shield.
832//
833// Deletes an Shield Advanced Protection.
834//
835// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
836// with awserr.Error's Code and Message methods to get detailed information about
837// the error.
838//
839// See the AWS API reference guide for AWS Shield's
840// API operation DeleteProtection for usage and error information.
841//
842// Returned Error Types:
843//   * InternalErrorException
844//   Exception that indicates that a problem occurred with the service infrastructure.
845//   You can retry the request.
846//
847//   * ResourceNotFoundException
848//   Exception indicating the specified resource does not exist. If available,
849//   this exception includes details in additional properties.
850//
851//   * OptimisticLockException
852//   Exception that indicates that the resource state has been modified by another
853//   client. Retrieve the resource and then retry your request.
854//
855// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DeleteProtection
856func (c *Shield) DeleteProtection(input *DeleteProtectionInput) (*DeleteProtectionOutput, error) {
857	req, out := c.DeleteProtectionRequest(input)
858	return out, req.Send()
859}
860
861// DeleteProtectionWithContext is the same as DeleteProtection with the addition of
862// the ability to pass a context and additional request options.
863//
864// See DeleteProtection for details on how to use this API operation.
865//
866// The context must be non-nil and will be used for request cancellation. If
867// the context is nil a panic will occur. In the future the SDK may create
868// sub-contexts for http.Requests. See https://golang.org/pkg/context/
869// for more information on using Contexts.
870func (c *Shield) DeleteProtectionWithContext(ctx aws.Context, input *DeleteProtectionInput, opts ...request.Option) (*DeleteProtectionOutput, error) {
871	req, out := c.DeleteProtectionRequest(input)
872	req.SetContext(ctx)
873	req.ApplyOptions(opts...)
874	return out, req.Send()
875}
876
877const opDeleteProtectionGroup = "DeleteProtectionGroup"
878
879// DeleteProtectionGroupRequest generates a "aws/request.Request" representing the
880// client's request for the DeleteProtectionGroup operation. The "output" return
881// value will be populated with the request's response once the request completes
882// successfully.
883//
884// Use "Send" method on the returned Request to send the API call to the service.
885// the "output" return value is not valid until after Send returns without error.
886//
887// See DeleteProtectionGroup for more information on using the DeleteProtectionGroup
888// API call, and error handling.
889//
890// This method is useful when you want to inject custom logic or configuration
891// into the SDK's request lifecycle. Such as custom headers, or retry logic.
892//
893//
894//    // Example sending a request using the DeleteProtectionGroupRequest method.
895//    req, resp := client.DeleteProtectionGroupRequest(params)
896//
897//    err := req.Send()
898//    if err == nil { // resp is now filled
899//        fmt.Println(resp)
900//    }
901//
902// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DeleteProtectionGroup
903func (c *Shield) DeleteProtectionGroupRequest(input *DeleteProtectionGroupInput) (req *request.Request, output *DeleteProtectionGroupOutput) {
904	op := &request.Operation{
905		Name:       opDeleteProtectionGroup,
906		HTTPMethod: "POST",
907		HTTPPath:   "/",
908	}
909
910	if input == nil {
911		input = &DeleteProtectionGroupInput{}
912	}
913
914	output = &DeleteProtectionGroupOutput{}
915	req = c.newRequest(op, input, output)
916	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
917	return
918}
919
920// DeleteProtectionGroup API operation for AWS Shield.
921//
922// Removes the specified protection group.
923//
924// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
925// with awserr.Error's Code and Message methods to get detailed information about
926// the error.
927//
928// See the AWS API reference guide for AWS Shield's
929// API operation DeleteProtectionGroup for usage and error information.
930//
931// Returned Error Types:
932//   * InternalErrorException
933//   Exception that indicates that a problem occurred with the service infrastructure.
934//   You can retry the request.
935//
936//   * OptimisticLockException
937//   Exception that indicates that the resource state has been modified by another
938//   client. Retrieve the resource and then retry your request.
939//
940//   * ResourceNotFoundException
941//   Exception indicating the specified resource does not exist. If available,
942//   this exception includes details in additional properties.
943//
944// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DeleteProtectionGroup
945func (c *Shield) DeleteProtectionGroup(input *DeleteProtectionGroupInput) (*DeleteProtectionGroupOutput, error) {
946	req, out := c.DeleteProtectionGroupRequest(input)
947	return out, req.Send()
948}
949
950// DeleteProtectionGroupWithContext is the same as DeleteProtectionGroup with the addition of
951// the ability to pass a context and additional request options.
952//
953// See DeleteProtectionGroup for details on how to use this API operation.
954//
955// The context must be non-nil and will be used for request cancellation. If
956// the context is nil a panic will occur. In the future the SDK may create
957// sub-contexts for http.Requests. See https://golang.org/pkg/context/
958// for more information on using Contexts.
959func (c *Shield) DeleteProtectionGroupWithContext(ctx aws.Context, input *DeleteProtectionGroupInput, opts ...request.Option) (*DeleteProtectionGroupOutput, error) {
960	req, out := c.DeleteProtectionGroupRequest(input)
961	req.SetContext(ctx)
962	req.ApplyOptions(opts...)
963	return out, req.Send()
964}
965
966const opDeleteSubscription = "DeleteSubscription"
967
968// DeleteSubscriptionRequest generates a "aws/request.Request" representing the
969// client's request for the DeleteSubscription operation. The "output" return
970// value will be populated with the request's response once the request completes
971// successfully.
972//
973// Use "Send" method on the returned Request to send the API call to the service.
974// the "output" return value is not valid until after Send returns without error.
975//
976// See DeleteSubscription for more information on using the DeleteSubscription
977// API call, and error handling.
978//
979// This method is useful when you want to inject custom logic or configuration
980// into the SDK's request lifecycle. Such as custom headers, or retry logic.
981//
982//
983//    // Example sending a request using the DeleteSubscriptionRequest method.
984//    req, resp := client.DeleteSubscriptionRequest(params)
985//
986//    err := req.Send()
987//    if err == nil { // resp is now filled
988//        fmt.Println(resp)
989//    }
990//
991// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DeleteSubscription
992//
993// Deprecated: DeleteSubscription has been deprecated
994func (c *Shield) DeleteSubscriptionRequest(input *DeleteSubscriptionInput) (req *request.Request, output *DeleteSubscriptionOutput) {
995	if c.Client.Config.Logger != nil {
996		c.Client.Config.Logger.Log("This operation, DeleteSubscription, has been deprecated")
997	}
998	op := &request.Operation{
999		Name:       opDeleteSubscription,
1000		HTTPMethod: "POST",
1001		HTTPPath:   "/",
1002	}
1003
1004	if input == nil {
1005		input = &DeleteSubscriptionInput{}
1006	}
1007
1008	output = &DeleteSubscriptionOutput{}
1009	req = c.newRequest(op, input, output)
1010	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1011	return
1012}
1013
1014// DeleteSubscription API operation for AWS Shield.
1015//
1016// Removes Shield Advanced from an account. Shield Advanced requires a 1-year
1017// subscription commitment. You cannot delete a subscription prior to the completion
1018// of that commitment.
1019//
1020// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1021// with awserr.Error's Code and Message methods to get detailed information about
1022// the error.
1023//
1024// See the AWS API reference guide for AWS Shield's
1025// API operation DeleteSubscription for usage and error information.
1026//
1027// Returned Error Types:
1028//   * InternalErrorException
1029//   Exception that indicates that a problem occurred with the service infrastructure.
1030//   You can retry the request.
1031//
1032//   * LockedSubscriptionException
1033//   You are trying to update a subscription that has not yet completed the 1-year
1034//   commitment. You can change the AutoRenew parameter during the last 30 days
1035//   of your subscription. This exception indicates that you are attempting to
1036//   change AutoRenew prior to that period.
1037//
1038//   * ResourceNotFoundException
1039//   Exception indicating the specified resource does not exist. If available,
1040//   this exception includes details in additional properties.
1041//
1042// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DeleteSubscription
1043//
1044// Deprecated: DeleteSubscription has been deprecated
1045func (c *Shield) DeleteSubscription(input *DeleteSubscriptionInput) (*DeleteSubscriptionOutput, error) {
1046	req, out := c.DeleteSubscriptionRequest(input)
1047	return out, req.Send()
1048}
1049
1050// DeleteSubscriptionWithContext is the same as DeleteSubscription with the addition of
1051// the ability to pass a context and additional request options.
1052//
1053// See DeleteSubscription for details on how to use this API operation.
1054//
1055// The context must be non-nil and will be used for request cancellation. If
1056// the context is nil a panic will occur. In the future the SDK may create
1057// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1058// for more information on using Contexts.
1059//
1060// Deprecated: DeleteSubscriptionWithContext has been deprecated
1061func (c *Shield) DeleteSubscriptionWithContext(ctx aws.Context, input *DeleteSubscriptionInput, opts ...request.Option) (*DeleteSubscriptionOutput, error) {
1062	req, out := c.DeleteSubscriptionRequest(input)
1063	req.SetContext(ctx)
1064	req.ApplyOptions(opts...)
1065	return out, req.Send()
1066}
1067
1068const opDescribeAttack = "DescribeAttack"
1069
1070// DescribeAttackRequest generates a "aws/request.Request" representing the
1071// client's request for the DescribeAttack operation. The "output" return
1072// value will be populated with the request's response once the request completes
1073// successfully.
1074//
1075// Use "Send" method on the returned Request to send the API call to the service.
1076// the "output" return value is not valid until after Send returns without error.
1077//
1078// See DescribeAttack for more information on using the DescribeAttack
1079// API call, and error handling.
1080//
1081// This method is useful when you want to inject custom logic or configuration
1082// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1083//
1084//
1085//    // Example sending a request using the DescribeAttackRequest method.
1086//    req, resp := client.DescribeAttackRequest(params)
1087//
1088//    err := req.Send()
1089//    if err == nil { // resp is now filled
1090//        fmt.Println(resp)
1091//    }
1092//
1093// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeAttack
1094func (c *Shield) DescribeAttackRequest(input *DescribeAttackInput) (req *request.Request, output *DescribeAttackOutput) {
1095	op := &request.Operation{
1096		Name:       opDescribeAttack,
1097		HTTPMethod: "POST",
1098		HTTPPath:   "/",
1099	}
1100
1101	if input == nil {
1102		input = &DescribeAttackInput{}
1103	}
1104
1105	output = &DescribeAttackOutput{}
1106	req = c.newRequest(op, input, output)
1107	return
1108}
1109
1110// DescribeAttack API operation for AWS Shield.
1111//
1112// Describes the details of a DDoS attack.
1113//
1114// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1115// with awserr.Error's Code and Message methods to get detailed information about
1116// the error.
1117//
1118// See the AWS API reference guide for AWS Shield's
1119// API operation DescribeAttack for usage and error information.
1120//
1121// Returned Error Types:
1122//   * InternalErrorException
1123//   Exception that indicates that a problem occurred with the service infrastructure.
1124//   You can retry the request.
1125//
1126//   * AccessDeniedException
1127//   Exception that indicates the specified AttackId does not exist, or the requester
1128//   does not have the appropriate permissions to access the AttackId.
1129//
1130// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeAttack
1131func (c *Shield) DescribeAttack(input *DescribeAttackInput) (*DescribeAttackOutput, error) {
1132	req, out := c.DescribeAttackRequest(input)
1133	return out, req.Send()
1134}
1135
1136// DescribeAttackWithContext is the same as DescribeAttack with the addition of
1137// the ability to pass a context and additional request options.
1138//
1139// See DescribeAttack for details on how to use this API operation.
1140//
1141// The context must be non-nil and will be used for request cancellation. If
1142// the context is nil a panic will occur. In the future the SDK may create
1143// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1144// for more information on using Contexts.
1145func (c *Shield) DescribeAttackWithContext(ctx aws.Context, input *DescribeAttackInput, opts ...request.Option) (*DescribeAttackOutput, error) {
1146	req, out := c.DescribeAttackRequest(input)
1147	req.SetContext(ctx)
1148	req.ApplyOptions(opts...)
1149	return out, req.Send()
1150}
1151
1152const opDescribeAttackStatistics = "DescribeAttackStatistics"
1153
1154// DescribeAttackStatisticsRequest generates a "aws/request.Request" representing the
1155// client's request for the DescribeAttackStatistics operation. The "output" return
1156// value will be populated with the request's response once the request completes
1157// successfully.
1158//
1159// Use "Send" method on the returned Request to send the API call to the service.
1160// the "output" return value is not valid until after Send returns without error.
1161//
1162// See DescribeAttackStatistics for more information on using the DescribeAttackStatistics
1163// API call, and error handling.
1164//
1165// This method is useful when you want to inject custom logic or configuration
1166// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1167//
1168//
1169//    // Example sending a request using the DescribeAttackStatisticsRequest method.
1170//    req, resp := client.DescribeAttackStatisticsRequest(params)
1171//
1172//    err := req.Send()
1173//    if err == nil { // resp is now filled
1174//        fmt.Println(resp)
1175//    }
1176//
1177// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeAttackStatistics
1178func (c *Shield) DescribeAttackStatisticsRequest(input *DescribeAttackStatisticsInput) (req *request.Request, output *DescribeAttackStatisticsOutput) {
1179	op := &request.Operation{
1180		Name:       opDescribeAttackStatistics,
1181		HTTPMethod: "POST",
1182		HTTPPath:   "/",
1183	}
1184
1185	if input == nil {
1186		input = &DescribeAttackStatisticsInput{}
1187	}
1188
1189	output = &DescribeAttackStatisticsOutput{}
1190	req = c.newRequest(op, input, output)
1191	return
1192}
1193
1194// DescribeAttackStatistics API operation for AWS Shield.
1195//
1196// Provides information about the number and type of attacks Shield has detected
1197// in the last year for all resources that belong to your account, regardless
1198// of whether you've defined Shield protections for them. This operation is
1199// available to Shield customers as well as to Shield Advanced customers.
1200//
1201// The operation returns data for the time range of midnight UTC, one year ago,
1202// to midnight UTC, today. For example, if the current time is 2020-10-26 15:39:32
1203// PDT, equal to 2020-10-26 22:39:32 UTC, then the time range for the attack
1204// data returned is from 2019-10-26 00:00:00 UTC to 2020-10-26 00:00:00 UTC.
1205//
1206// The time range indicates the period covered by the attack statistics data
1207// items.
1208//
1209// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1210// with awserr.Error's Code and Message methods to get detailed information about
1211// the error.
1212//
1213// See the AWS API reference guide for AWS Shield's
1214// API operation DescribeAttackStatistics for usage and error information.
1215//
1216// Returned Error Types:
1217//   * InternalErrorException
1218//   Exception that indicates that a problem occurred with the service infrastructure.
1219//   You can retry the request.
1220//
1221// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeAttackStatistics
1222func (c *Shield) DescribeAttackStatistics(input *DescribeAttackStatisticsInput) (*DescribeAttackStatisticsOutput, error) {
1223	req, out := c.DescribeAttackStatisticsRequest(input)
1224	return out, req.Send()
1225}
1226
1227// DescribeAttackStatisticsWithContext is the same as DescribeAttackStatistics with the addition of
1228// the ability to pass a context and additional request options.
1229//
1230// See DescribeAttackStatistics for details on how to use this API operation.
1231//
1232// The context must be non-nil and will be used for request cancellation. If
1233// the context is nil a panic will occur. In the future the SDK may create
1234// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1235// for more information on using Contexts.
1236func (c *Shield) DescribeAttackStatisticsWithContext(ctx aws.Context, input *DescribeAttackStatisticsInput, opts ...request.Option) (*DescribeAttackStatisticsOutput, error) {
1237	req, out := c.DescribeAttackStatisticsRequest(input)
1238	req.SetContext(ctx)
1239	req.ApplyOptions(opts...)
1240	return out, req.Send()
1241}
1242
1243const opDescribeDRTAccess = "DescribeDRTAccess"
1244
1245// DescribeDRTAccessRequest generates a "aws/request.Request" representing the
1246// client's request for the DescribeDRTAccess operation. The "output" return
1247// value will be populated with the request's response once the request completes
1248// successfully.
1249//
1250// Use "Send" method on the returned Request to send the API call to the service.
1251// the "output" return value is not valid until after Send returns without error.
1252//
1253// See DescribeDRTAccess for more information on using the DescribeDRTAccess
1254// API call, and error handling.
1255//
1256// This method is useful when you want to inject custom logic or configuration
1257// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1258//
1259//
1260//    // Example sending a request using the DescribeDRTAccessRequest method.
1261//    req, resp := client.DescribeDRTAccessRequest(params)
1262//
1263//    err := req.Send()
1264//    if err == nil { // resp is now filled
1265//        fmt.Println(resp)
1266//    }
1267//
1268// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeDRTAccess
1269func (c *Shield) DescribeDRTAccessRequest(input *DescribeDRTAccessInput) (req *request.Request, output *DescribeDRTAccessOutput) {
1270	op := &request.Operation{
1271		Name:       opDescribeDRTAccess,
1272		HTTPMethod: "POST",
1273		HTTPPath:   "/",
1274	}
1275
1276	if input == nil {
1277		input = &DescribeDRTAccessInput{}
1278	}
1279
1280	output = &DescribeDRTAccessOutput{}
1281	req = c.newRequest(op, input, output)
1282	return
1283}
1284
1285// DescribeDRTAccess API operation for AWS Shield.
1286//
1287// Returns the current role and list of Amazon S3 log buckets used by the Shield
1288// Response Team (SRT) to access your Amazon Web Services account while assisting
1289// with attack mitigation.
1290//
1291// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1292// with awserr.Error's Code and Message methods to get detailed information about
1293// the error.
1294//
1295// See the AWS API reference guide for AWS Shield's
1296// API operation DescribeDRTAccess for usage and error information.
1297//
1298// Returned Error Types:
1299//   * InternalErrorException
1300//   Exception that indicates that a problem occurred with the service infrastructure.
1301//   You can retry the request.
1302//
1303//   * ResourceNotFoundException
1304//   Exception indicating the specified resource does not exist. If available,
1305//   this exception includes details in additional properties.
1306//
1307// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeDRTAccess
1308func (c *Shield) DescribeDRTAccess(input *DescribeDRTAccessInput) (*DescribeDRTAccessOutput, error) {
1309	req, out := c.DescribeDRTAccessRequest(input)
1310	return out, req.Send()
1311}
1312
1313// DescribeDRTAccessWithContext is the same as DescribeDRTAccess with the addition of
1314// the ability to pass a context and additional request options.
1315//
1316// See DescribeDRTAccess for details on how to use this API operation.
1317//
1318// The context must be non-nil and will be used for request cancellation. If
1319// the context is nil a panic will occur. In the future the SDK may create
1320// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1321// for more information on using Contexts.
1322func (c *Shield) DescribeDRTAccessWithContext(ctx aws.Context, input *DescribeDRTAccessInput, opts ...request.Option) (*DescribeDRTAccessOutput, error) {
1323	req, out := c.DescribeDRTAccessRequest(input)
1324	req.SetContext(ctx)
1325	req.ApplyOptions(opts...)
1326	return out, req.Send()
1327}
1328
1329const opDescribeEmergencyContactSettings = "DescribeEmergencyContactSettings"
1330
1331// DescribeEmergencyContactSettingsRequest generates a "aws/request.Request" representing the
1332// client's request for the DescribeEmergencyContactSettings operation. The "output" return
1333// value will be populated with the request's response once the request completes
1334// successfully.
1335//
1336// Use "Send" method on the returned Request to send the API call to the service.
1337// the "output" return value is not valid until after Send returns without error.
1338//
1339// See DescribeEmergencyContactSettings for more information on using the DescribeEmergencyContactSettings
1340// API call, and error handling.
1341//
1342// This method is useful when you want to inject custom logic or configuration
1343// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1344//
1345//
1346//    // Example sending a request using the DescribeEmergencyContactSettingsRequest method.
1347//    req, resp := client.DescribeEmergencyContactSettingsRequest(params)
1348//
1349//    err := req.Send()
1350//    if err == nil { // resp is now filled
1351//        fmt.Println(resp)
1352//    }
1353//
1354// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeEmergencyContactSettings
1355func (c *Shield) DescribeEmergencyContactSettingsRequest(input *DescribeEmergencyContactSettingsInput) (req *request.Request, output *DescribeEmergencyContactSettingsOutput) {
1356	op := &request.Operation{
1357		Name:       opDescribeEmergencyContactSettings,
1358		HTTPMethod: "POST",
1359		HTTPPath:   "/",
1360	}
1361
1362	if input == nil {
1363		input = &DescribeEmergencyContactSettingsInput{}
1364	}
1365
1366	output = &DescribeEmergencyContactSettingsOutput{}
1367	req = c.newRequest(op, input, output)
1368	return
1369}
1370
1371// DescribeEmergencyContactSettings API operation for AWS Shield.
1372//
1373// A list of email addresses and phone numbers that the Shield Response Team
1374// (SRT) can use to contact you if you have proactive engagement enabled, for
1375// escalations to the SRT and to initiate proactive customer support.
1376//
1377// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1378// with awserr.Error's Code and Message methods to get detailed information about
1379// the error.
1380//
1381// See the AWS API reference guide for AWS Shield's
1382// API operation DescribeEmergencyContactSettings for usage and error information.
1383//
1384// Returned Error Types:
1385//   * InternalErrorException
1386//   Exception that indicates that a problem occurred with the service infrastructure.
1387//   You can retry the request.
1388//
1389//   * ResourceNotFoundException
1390//   Exception indicating the specified resource does not exist. If available,
1391//   this exception includes details in additional properties.
1392//
1393// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeEmergencyContactSettings
1394func (c *Shield) DescribeEmergencyContactSettings(input *DescribeEmergencyContactSettingsInput) (*DescribeEmergencyContactSettingsOutput, error) {
1395	req, out := c.DescribeEmergencyContactSettingsRequest(input)
1396	return out, req.Send()
1397}
1398
1399// DescribeEmergencyContactSettingsWithContext is the same as DescribeEmergencyContactSettings with the addition of
1400// the ability to pass a context and additional request options.
1401//
1402// See DescribeEmergencyContactSettings for details on how to use this API operation.
1403//
1404// The context must be non-nil and will be used for request cancellation. If
1405// the context is nil a panic will occur. In the future the SDK may create
1406// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1407// for more information on using Contexts.
1408func (c *Shield) DescribeEmergencyContactSettingsWithContext(ctx aws.Context, input *DescribeEmergencyContactSettingsInput, opts ...request.Option) (*DescribeEmergencyContactSettingsOutput, error) {
1409	req, out := c.DescribeEmergencyContactSettingsRequest(input)
1410	req.SetContext(ctx)
1411	req.ApplyOptions(opts...)
1412	return out, req.Send()
1413}
1414
1415const opDescribeProtection = "DescribeProtection"
1416
1417// DescribeProtectionRequest generates a "aws/request.Request" representing the
1418// client's request for the DescribeProtection operation. The "output" return
1419// value will be populated with the request's response once the request completes
1420// successfully.
1421//
1422// Use "Send" method on the returned Request to send the API call to the service.
1423// the "output" return value is not valid until after Send returns without error.
1424//
1425// See DescribeProtection for more information on using the DescribeProtection
1426// API call, and error handling.
1427//
1428// This method is useful when you want to inject custom logic or configuration
1429// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1430//
1431//
1432//    // Example sending a request using the DescribeProtectionRequest method.
1433//    req, resp := client.DescribeProtectionRequest(params)
1434//
1435//    err := req.Send()
1436//    if err == nil { // resp is now filled
1437//        fmt.Println(resp)
1438//    }
1439//
1440// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeProtection
1441func (c *Shield) DescribeProtectionRequest(input *DescribeProtectionInput) (req *request.Request, output *DescribeProtectionOutput) {
1442	op := &request.Operation{
1443		Name:       opDescribeProtection,
1444		HTTPMethod: "POST",
1445		HTTPPath:   "/",
1446	}
1447
1448	if input == nil {
1449		input = &DescribeProtectionInput{}
1450	}
1451
1452	output = &DescribeProtectionOutput{}
1453	req = c.newRequest(op, input, output)
1454	return
1455}
1456
1457// DescribeProtection API operation for AWS Shield.
1458//
1459// Lists the details of a Protection object.
1460//
1461// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1462// with awserr.Error's Code and Message methods to get detailed information about
1463// the error.
1464//
1465// See the AWS API reference guide for AWS Shield's
1466// API operation DescribeProtection for usage and error information.
1467//
1468// Returned Error Types:
1469//   * InternalErrorException
1470//   Exception that indicates that a problem occurred with the service infrastructure.
1471//   You can retry the request.
1472//
1473//   * InvalidParameterException
1474//   Exception that indicates that the parameters passed to the API are invalid.
1475//   If available, this exception includes details in additional properties.
1476//
1477//   * ResourceNotFoundException
1478//   Exception indicating the specified resource does not exist. If available,
1479//   this exception includes details in additional properties.
1480//
1481// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeProtection
1482func (c *Shield) DescribeProtection(input *DescribeProtectionInput) (*DescribeProtectionOutput, error) {
1483	req, out := c.DescribeProtectionRequest(input)
1484	return out, req.Send()
1485}
1486
1487// DescribeProtectionWithContext is the same as DescribeProtection with the addition of
1488// the ability to pass a context and additional request options.
1489//
1490// See DescribeProtection for details on how to use this API operation.
1491//
1492// The context must be non-nil and will be used for request cancellation. If
1493// the context is nil a panic will occur. In the future the SDK may create
1494// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1495// for more information on using Contexts.
1496func (c *Shield) DescribeProtectionWithContext(ctx aws.Context, input *DescribeProtectionInput, opts ...request.Option) (*DescribeProtectionOutput, error) {
1497	req, out := c.DescribeProtectionRequest(input)
1498	req.SetContext(ctx)
1499	req.ApplyOptions(opts...)
1500	return out, req.Send()
1501}
1502
1503const opDescribeProtectionGroup = "DescribeProtectionGroup"
1504
1505// DescribeProtectionGroupRequest generates a "aws/request.Request" representing the
1506// client's request for the DescribeProtectionGroup operation. The "output" return
1507// value will be populated with the request's response once the request completes
1508// successfully.
1509//
1510// Use "Send" method on the returned Request to send the API call to the service.
1511// the "output" return value is not valid until after Send returns without error.
1512//
1513// See DescribeProtectionGroup for more information on using the DescribeProtectionGroup
1514// API call, and error handling.
1515//
1516// This method is useful when you want to inject custom logic or configuration
1517// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1518//
1519//
1520//    // Example sending a request using the DescribeProtectionGroupRequest method.
1521//    req, resp := client.DescribeProtectionGroupRequest(params)
1522//
1523//    err := req.Send()
1524//    if err == nil { // resp is now filled
1525//        fmt.Println(resp)
1526//    }
1527//
1528// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeProtectionGroup
1529func (c *Shield) DescribeProtectionGroupRequest(input *DescribeProtectionGroupInput) (req *request.Request, output *DescribeProtectionGroupOutput) {
1530	op := &request.Operation{
1531		Name:       opDescribeProtectionGroup,
1532		HTTPMethod: "POST",
1533		HTTPPath:   "/",
1534	}
1535
1536	if input == nil {
1537		input = &DescribeProtectionGroupInput{}
1538	}
1539
1540	output = &DescribeProtectionGroupOutput{}
1541	req = c.newRequest(op, input, output)
1542	return
1543}
1544
1545// DescribeProtectionGroup API operation for AWS Shield.
1546//
1547// Returns the specification for the specified protection group.
1548//
1549// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1550// with awserr.Error's Code and Message methods to get detailed information about
1551// the error.
1552//
1553// See the AWS API reference guide for AWS Shield's
1554// API operation DescribeProtectionGroup for usage and error information.
1555//
1556// Returned Error Types:
1557//   * InternalErrorException
1558//   Exception that indicates that a problem occurred with the service infrastructure.
1559//   You can retry the request.
1560//
1561//   * ResourceNotFoundException
1562//   Exception indicating the specified resource does not exist. If available,
1563//   this exception includes details in additional properties.
1564//
1565// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeProtectionGroup
1566func (c *Shield) DescribeProtectionGroup(input *DescribeProtectionGroupInput) (*DescribeProtectionGroupOutput, error) {
1567	req, out := c.DescribeProtectionGroupRequest(input)
1568	return out, req.Send()
1569}
1570
1571// DescribeProtectionGroupWithContext is the same as DescribeProtectionGroup with the addition of
1572// the ability to pass a context and additional request options.
1573//
1574// See DescribeProtectionGroup for details on how to use this API operation.
1575//
1576// The context must be non-nil and will be used for request cancellation. If
1577// the context is nil a panic will occur. In the future the SDK may create
1578// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1579// for more information on using Contexts.
1580func (c *Shield) DescribeProtectionGroupWithContext(ctx aws.Context, input *DescribeProtectionGroupInput, opts ...request.Option) (*DescribeProtectionGroupOutput, error) {
1581	req, out := c.DescribeProtectionGroupRequest(input)
1582	req.SetContext(ctx)
1583	req.ApplyOptions(opts...)
1584	return out, req.Send()
1585}
1586
1587const opDescribeSubscription = "DescribeSubscription"
1588
1589// DescribeSubscriptionRequest generates a "aws/request.Request" representing the
1590// client's request for the DescribeSubscription operation. The "output" return
1591// value will be populated with the request's response once the request completes
1592// successfully.
1593//
1594// Use "Send" method on the returned Request to send the API call to the service.
1595// the "output" return value is not valid until after Send returns without error.
1596//
1597// See DescribeSubscription for more information on using the DescribeSubscription
1598// API call, and error handling.
1599//
1600// This method is useful when you want to inject custom logic or configuration
1601// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1602//
1603//
1604//    // Example sending a request using the DescribeSubscriptionRequest method.
1605//    req, resp := client.DescribeSubscriptionRequest(params)
1606//
1607//    err := req.Send()
1608//    if err == nil { // resp is now filled
1609//        fmt.Println(resp)
1610//    }
1611//
1612// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeSubscription
1613func (c *Shield) DescribeSubscriptionRequest(input *DescribeSubscriptionInput) (req *request.Request, output *DescribeSubscriptionOutput) {
1614	op := &request.Operation{
1615		Name:       opDescribeSubscription,
1616		HTTPMethod: "POST",
1617		HTTPPath:   "/",
1618	}
1619
1620	if input == nil {
1621		input = &DescribeSubscriptionInput{}
1622	}
1623
1624	output = &DescribeSubscriptionOutput{}
1625	req = c.newRequest(op, input, output)
1626	return
1627}
1628
1629// DescribeSubscription API operation for AWS Shield.
1630//
1631// Provides details about the Shield Advanced subscription for an account.
1632//
1633// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1634// with awserr.Error's Code and Message methods to get detailed information about
1635// the error.
1636//
1637// See the AWS API reference guide for AWS Shield's
1638// API operation DescribeSubscription for usage and error information.
1639//
1640// Returned Error Types:
1641//   * InternalErrorException
1642//   Exception that indicates that a problem occurred with the service infrastructure.
1643//   You can retry the request.
1644//
1645//   * ResourceNotFoundException
1646//   Exception indicating the specified resource does not exist. If available,
1647//   this exception includes details in additional properties.
1648//
1649// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeSubscription
1650func (c *Shield) DescribeSubscription(input *DescribeSubscriptionInput) (*DescribeSubscriptionOutput, error) {
1651	req, out := c.DescribeSubscriptionRequest(input)
1652	return out, req.Send()
1653}
1654
1655// DescribeSubscriptionWithContext is the same as DescribeSubscription with the addition of
1656// the ability to pass a context and additional request options.
1657//
1658// See DescribeSubscription for details on how to use this API operation.
1659//
1660// The context must be non-nil and will be used for request cancellation. If
1661// the context is nil a panic will occur. In the future the SDK may create
1662// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1663// for more information on using Contexts.
1664func (c *Shield) DescribeSubscriptionWithContext(ctx aws.Context, input *DescribeSubscriptionInput, opts ...request.Option) (*DescribeSubscriptionOutput, error) {
1665	req, out := c.DescribeSubscriptionRequest(input)
1666	req.SetContext(ctx)
1667	req.ApplyOptions(opts...)
1668	return out, req.Send()
1669}
1670
1671const opDisableProactiveEngagement = "DisableProactiveEngagement"
1672
1673// DisableProactiveEngagementRequest generates a "aws/request.Request" representing the
1674// client's request for the DisableProactiveEngagement operation. The "output" return
1675// value will be populated with the request's response once the request completes
1676// successfully.
1677//
1678// Use "Send" method on the returned Request to send the API call to the service.
1679// the "output" return value is not valid until after Send returns without error.
1680//
1681// See DisableProactiveEngagement for more information on using the DisableProactiveEngagement
1682// API call, and error handling.
1683//
1684// This method is useful when you want to inject custom logic or configuration
1685// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1686//
1687//
1688//    // Example sending a request using the DisableProactiveEngagementRequest method.
1689//    req, resp := client.DisableProactiveEngagementRequest(params)
1690//
1691//    err := req.Send()
1692//    if err == nil { // resp is now filled
1693//        fmt.Println(resp)
1694//    }
1695//
1696// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DisableProactiveEngagement
1697func (c *Shield) DisableProactiveEngagementRequest(input *DisableProactiveEngagementInput) (req *request.Request, output *DisableProactiveEngagementOutput) {
1698	op := &request.Operation{
1699		Name:       opDisableProactiveEngagement,
1700		HTTPMethod: "POST",
1701		HTTPPath:   "/",
1702	}
1703
1704	if input == nil {
1705		input = &DisableProactiveEngagementInput{}
1706	}
1707
1708	output = &DisableProactiveEngagementOutput{}
1709	req = c.newRequest(op, input, output)
1710	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1711	return
1712}
1713
1714// DisableProactiveEngagement API operation for AWS Shield.
1715//
1716// Removes authorization from the Shield Response Team (SRT) to notify contacts
1717// about escalations to the SRT and to initiate proactive customer support.
1718//
1719// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1720// with awserr.Error's Code and Message methods to get detailed information about
1721// the error.
1722//
1723// See the AWS API reference guide for AWS Shield's
1724// API operation DisableProactiveEngagement for usage and error information.
1725//
1726// Returned Error Types:
1727//   * InternalErrorException
1728//   Exception that indicates that a problem occurred with the service infrastructure.
1729//   You can retry the request.
1730//
1731//   * InvalidOperationException
1732//   Exception that indicates that the operation would not cause any change to
1733//   occur.
1734//
1735//   * InvalidParameterException
1736//   Exception that indicates that the parameters passed to the API are invalid.
1737//   If available, this exception includes details in additional properties.
1738//
1739//   * ResourceNotFoundException
1740//   Exception indicating the specified resource does not exist. If available,
1741//   this exception includes details in additional properties.
1742//
1743//   * OptimisticLockException
1744//   Exception that indicates that the resource state has been modified by another
1745//   client. Retrieve the resource and then retry your request.
1746//
1747// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DisableProactiveEngagement
1748func (c *Shield) DisableProactiveEngagement(input *DisableProactiveEngagementInput) (*DisableProactiveEngagementOutput, error) {
1749	req, out := c.DisableProactiveEngagementRequest(input)
1750	return out, req.Send()
1751}
1752
1753// DisableProactiveEngagementWithContext is the same as DisableProactiveEngagement with the addition of
1754// the ability to pass a context and additional request options.
1755//
1756// See DisableProactiveEngagement for details on how to use this API operation.
1757//
1758// The context must be non-nil and will be used for request cancellation. If
1759// the context is nil a panic will occur. In the future the SDK may create
1760// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1761// for more information on using Contexts.
1762func (c *Shield) DisableProactiveEngagementWithContext(ctx aws.Context, input *DisableProactiveEngagementInput, opts ...request.Option) (*DisableProactiveEngagementOutput, error) {
1763	req, out := c.DisableProactiveEngagementRequest(input)
1764	req.SetContext(ctx)
1765	req.ApplyOptions(opts...)
1766	return out, req.Send()
1767}
1768
1769const opDisassociateDRTLogBucket = "DisassociateDRTLogBucket"
1770
1771// DisassociateDRTLogBucketRequest generates a "aws/request.Request" representing the
1772// client's request for the DisassociateDRTLogBucket operation. The "output" return
1773// value will be populated with the request's response once the request completes
1774// successfully.
1775//
1776// Use "Send" method on the returned Request to send the API call to the service.
1777// the "output" return value is not valid until after Send returns without error.
1778//
1779// See DisassociateDRTLogBucket for more information on using the DisassociateDRTLogBucket
1780// API call, and error handling.
1781//
1782// This method is useful when you want to inject custom logic or configuration
1783// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1784//
1785//
1786//    // Example sending a request using the DisassociateDRTLogBucketRequest method.
1787//    req, resp := client.DisassociateDRTLogBucketRequest(params)
1788//
1789//    err := req.Send()
1790//    if err == nil { // resp is now filled
1791//        fmt.Println(resp)
1792//    }
1793//
1794// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DisassociateDRTLogBucket
1795func (c *Shield) DisassociateDRTLogBucketRequest(input *DisassociateDRTLogBucketInput) (req *request.Request, output *DisassociateDRTLogBucketOutput) {
1796	op := &request.Operation{
1797		Name:       opDisassociateDRTLogBucket,
1798		HTTPMethod: "POST",
1799		HTTPPath:   "/",
1800	}
1801
1802	if input == nil {
1803		input = &DisassociateDRTLogBucketInput{}
1804	}
1805
1806	output = &DisassociateDRTLogBucketOutput{}
1807	req = c.newRequest(op, input, output)
1808	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1809	return
1810}
1811
1812// DisassociateDRTLogBucket API operation for AWS Shield.
1813//
1814// Removes the Shield Response Team's (SRT) access to the specified Amazon S3
1815// bucket containing the logs that you shared previously.
1816//
1817// To make a DisassociateDRTLogBucket request, you must be subscribed to the
1818// Business Support plan (https://aws.amazon.com/premiumsupport/business-support/)
1819// or the Enterprise Support plan (https://aws.amazon.com/premiumsupport/enterprise-support/).
1820// However, if you are not subscribed to one of these support plans, but had
1821// been previously and had granted the SRT access to your account, you can submit
1822// a DisassociateDRTLogBucket request to remove this access.
1823//
1824// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1825// with awserr.Error's Code and Message methods to get detailed information about
1826// the error.
1827//
1828// See the AWS API reference guide for AWS Shield's
1829// API operation DisassociateDRTLogBucket for usage and error information.
1830//
1831// Returned Error Types:
1832//   * InternalErrorException
1833//   Exception that indicates that a problem occurred with the service infrastructure.
1834//   You can retry the request.
1835//
1836//   * InvalidOperationException
1837//   Exception that indicates that the operation would not cause any change to
1838//   occur.
1839//
1840//   * NoAssociatedRoleException
1841//   The ARN of the role that you specifed does not exist.
1842//
1843//   * AccessDeniedForDependencyException
1844//   In order to grant the necessary access to the Shield Response Team (SRT)
1845//   the user submitting the request must have the iam:PassRole permission. This
1846//   error indicates the user did not have the appropriate permissions. For more
1847//   information, see Granting a User Permissions to Pass a Role to an Amazon
1848//   Web Services Service (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html).
1849//
1850//   * OptimisticLockException
1851//   Exception that indicates that the resource state has been modified by another
1852//   client. Retrieve the resource and then retry your request.
1853//
1854//   * ResourceNotFoundException
1855//   Exception indicating the specified resource does not exist. If available,
1856//   this exception includes details in additional properties.
1857//
1858// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DisassociateDRTLogBucket
1859func (c *Shield) DisassociateDRTLogBucket(input *DisassociateDRTLogBucketInput) (*DisassociateDRTLogBucketOutput, error) {
1860	req, out := c.DisassociateDRTLogBucketRequest(input)
1861	return out, req.Send()
1862}
1863
1864// DisassociateDRTLogBucketWithContext is the same as DisassociateDRTLogBucket with the addition of
1865// the ability to pass a context and additional request options.
1866//
1867// See DisassociateDRTLogBucket for details on how to use this API operation.
1868//
1869// The context must be non-nil and will be used for request cancellation. If
1870// the context is nil a panic will occur. In the future the SDK may create
1871// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1872// for more information on using Contexts.
1873func (c *Shield) DisassociateDRTLogBucketWithContext(ctx aws.Context, input *DisassociateDRTLogBucketInput, opts ...request.Option) (*DisassociateDRTLogBucketOutput, error) {
1874	req, out := c.DisassociateDRTLogBucketRequest(input)
1875	req.SetContext(ctx)
1876	req.ApplyOptions(opts...)
1877	return out, req.Send()
1878}
1879
1880const opDisassociateDRTRole = "DisassociateDRTRole"
1881
1882// DisassociateDRTRoleRequest generates a "aws/request.Request" representing the
1883// client's request for the DisassociateDRTRole operation. The "output" return
1884// value will be populated with the request's response once the request completes
1885// successfully.
1886//
1887// Use "Send" method on the returned Request to send the API call to the service.
1888// the "output" return value is not valid until after Send returns without error.
1889//
1890// See DisassociateDRTRole for more information on using the DisassociateDRTRole
1891// API call, and error handling.
1892//
1893// This method is useful when you want to inject custom logic or configuration
1894// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1895//
1896//
1897//    // Example sending a request using the DisassociateDRTRoleRequest method.
1898//    req, resp := client.DisassociateDRTRoleRequest(params)
1899//
1900//    err := req.Send()
1901//    if err == nil { // resp is now filled
1902//        fmt.Println(resp)
1903//    }
1904//
1905// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DisassociateDRTRole
1906func (c *Shield) DisassociateDRTRoleRequest(input *DisassociateDRTRoleInput) (req *request.Request, output *DisassociateDRTRoleOutput) {
1907	op := &request.Operation{
1908		Name:       opDisassociateDRTRole,
1909		HTTPMethod: "POST",
1910		HTTPPath:   "/",
1911	}
1912
1913	if input == nil {
1914		input = &DisassociateDRTRoleInput{}
1915	}
1916
1917	output = &DisassociateDRTRoleOutput{}
1918	req = c.newRequest(op, input, output)
1919	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1920	return
1921}
1922
1923// DisassociateDRTRole API operation for AWS Shield.
1924//
1925// Removes the Shield Response Team's (SRT) access to your Amazon Web Services
1926// account.
1927//
1928// To make a DisassociateDRTRole request, you must be subscribed to the Business
1929// Support plan (https://aws.amazon.com/premiumsupport/business-support/) or
1930// the Enterprise Support plan (https://aws.amazon.com/premiumsupport/enterprise-support/).
1931// However, if you are not subscribed to one of these support plans, but had
1932// been previously and had granted the SRT access to your account, you can submit
1933// a DisassociateDRTRole request to remove this access.
1934//
1935// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1936// with awserr.Error's Code and Message methods to get detailed information about
1937// the error.
1938//
1939// See the AWS API reference guide for AWS Shield's
1940// API operation DisassociateDRTRole for usage and error information.
1941//
1942// Returned Error Types:
1943//   * InternalErrorException
1944//   Exception that indicates that a problem occurred with the service infrastructure.
1945//   You can retry the request.
1946//
1947//   * InvalidOperationException
1948//   Exception that indicates that the operation would not cause any change to
1949//   occur.
1950//
1951//   * OptimisticLockException
1952//   Exception that indicates that the resource state has been modified by another
1953//   client. Retrieve the resource and then retry your request.
1954//
1955//   * ResourceNotFoundException
1956//   Exception indicating the specified resource does not exist. If available,
1957//   this exception includes details in additional properties.
1958//
1959// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DisassociateDRTRole
1960func (c *Shield) DisassociateDRTRole(input *DisassociateDRTRoleInput) (*DisassociateDRTRoleOutput, error) {
1961	req, out := c.DisassociateDRTRoleRequest(input)
1962	return out, req.Send()
1963}
1964
1965// DisassociateDRTRoleWithContext is the same as DisassociateDRTRole with the addition of
1966// the ability to pass a context and additional request options.
1967//
1968// See DisassociateDRTRole for details on how to use this API operation.
1969//
1970// The context must be non-nil and will be used for request cancellation. If
1971// the context is nil a panic will occur. In the future the SDK may create
1972// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1973// for more information on using Contexts.
1974func (c *Shield) DisassociateDRTRoleWithContext(ctx aws.Context, input *DisassociateDRTRoleInput, opts ...request.Option) (*DisassociateDRTRoleOutput, error) {
1975	req, out := c.DisassociateDRTRoleRequest(input)
1976	req.SetContext(ctx)
1977	req.ApplyOptions(opts...)
1978	return out, req.Send()
1979}
1980
1981const opDisassociateHealthCheck = "DisassociateHealthCheck"
1982
1983// DisassociateHealthCheckRequest generates a "aws/request.Request" representing the
1984// client's request for the DisassociateHealthCheck operation. The "output" return
1985// value will be populated with the request's response once the request completes
1986// successfully.
1987//
1988// Use "Send" method on the returned Request to send the API call to the service.
1989// the "output" return value is not valid until after Send returns without error.
1990//
1991// See DisassociateHealthCheck for more information on using the DisassociateHealthCheck
1992// API call, and error handling.
1993//
1994// This method is useful when you want to inject custom logic or configuration
1995// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1996//
1997//
1998//    // Example sending a request using the DisassociateHealthCheckRequest method.
1999//    req, resp := client.DisassociateHealthCheckRequest(params)
2000//
2001//    err := req.Send()
2002//    if err == nil { // resp is now filled
2003//        fmt.Println(resp)
2004//    }
2005//
2006// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DisassociateHealthCheck
2007func (c *Shield) DisassociateHealthCheckRequest(input *DisassociateHealthCheckInput) (req *request.Request, output *DisassociateHealthCheckOutput) {
2008	op := &request.Operation{
2009		Name:       opDisassociateHealthCheck,
2010		HTTPMethod: "POST",
2011		HTTPPath:   "/",
2012	}
2013
2014	if input == nil {
2015		input = &DisassociateHealthCheckInput{}
2016	}
2017
2018	output = &DisassociateHealthCheckOutput{}
2019	req = c.newRequest(op, input, output)
2020	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2021	return
2022}
2023
2024// DisassociateHealthCheck API operation for AWS Shield.
2025//
2026// Removes health-based detection from the Shield Advanced protection for a
2027// resource. Shield Advanced health-based detection uses the health of your
2028// Amazon Web Services resource to improve responsiveness and accuracy in attack
2029// detection and mitigation.
2030//
2031// You define the health check in Route 53 and then associate or disassociate
2032// it with your Shield Advanced protection. For more information, see Shield
2033// Advanced Health-Based Detection (https://docs.aws.amazon.com/waf/latest/developerguide/ddos-overview.html#ddos-advanced-health-check-option)
2034// in the WAF Developer Guide.
2035//
2036// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2037// with awserr.Error's Code and Message methods to get detailed information about
2038// the error.
2039//
2040// See the AWS API reference guide for AWS Shield's
2041// API operation DisassociateHealthCheck for usage and error information.
2042//
2043// Returned Error Types:
2044//   * InternalErrorException
2045//   Exception that indicates that a problem occurred with the service infrastructure.
2046//   You can retry the request.
2047//
2048//   * InvalidParameterException
2049//   Exception that indicates that the parameters passed to the API are invalid.
2050//   If available, this exception includes details in additional properties.
2051//
2052//   * ResourceNotFoundException
2053//   Exception indicating the specified resource does not exist. If available,
2054//   this exception includes details in additional properties.
2055//
2056//   * OptimisticLockException
2057//   Exception that indicates that the resource state has been modified by another
2058//   client. Retrieve the resource and then retry your request.
2059//
2060// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DisassociateHealthCheck
2061func (c *Shield) DisassociateHealthCheck(input *DisassociateHealthCheckInput) (*DisassociateHealthCheckOutput, error) {
2062	req, out := c.DisassociateHealthCheckRequest(input)
2063	return out, req.Send()
2064}
2065
2066// DisassociateHealthCheckWithContext is the same as DisassociateHealthCheck with the addition of
2067// the ability to pass a context and additional request options.
2068//
2069// See DisassociateHealthCheck for details on how to use this API operation.
2070//
2071// The context must be non-nil and will be used for request cancellation. If
2072// the context is nil a panic will occur. In the future the SDK may create
2073// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2074// for more information on using Contexts.
2075func (c *Shield) DisassociateHealthCheckWithContext(ctx aws.Context, input *DisassociateHealthCheckInput, opts ...request.Option) (*DisassociateHealthCheckOutput, error) {
2076	req, out := c.DisassociateHealthCheckRequest(input)
2077	req.SetContext(ctx)
2078	req.ApplyOptions(opts...)
2079	return out, req.Send()
2080}
2081
2082const opEnableProactiveEngagement = "EnableProactiveEngagement"
2083
2084// EnableProactiveEngagementRequest generates a "aws/request.Request" representing the
2085// client's request for the EnableProactiveEngagement operation. The "output" return
2086// value will be populated with the request's response once the request completes
2087// successfully.
2088//
2089// Use "Send" method on the returned Request to send the API call to the service.
2090// the "output" return value is not valid until after Send returns without error.
2091//
2092// See EnableProactiveEngagement for more information on using the EnableProactiveEngagement
2093// API call, and error handling.
2094//
2095// This method is useful when you want to inject custom logic or configuration
2096// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2097//
2098//
2099//    // Example sending a request using the EnableProactiveEngagementRequest method.
2100//    req, resp := client.EnableProactiveEngagementRequest(params)
2101//
2102//    err := req.Send()
2103//    if err == nil { // resp is now filled
2104//        fmt.Println(resp)
2105//    }
2106//
2107// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/EnableProactiveEngagement
2108func (c *Shield) EnableProactiveEngagementRequest(input *EnableProactiveEngagementInput) (req *request.Request, output *EnableProactiveEngagementOutput) {
2109	op := &request.Operation{
2110		Name:       opEnableProactiveEngagement,
2111		HTTPMethod: "POST",
2112		HTTPPath:   "/",
2113	}
2114
2115	if input == nil {
2116		input = &EnableProactiveEngagementInput{}
2117	}
2118
2119	output = &EnableProactiveEngagementOutput{}
2120	req = c.newRequest(op, input, output)
2121	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2122	return
2123}
2124
2125// EnableProactiveEngagement API operation for AWS Shield.
2126//
2127// Authorizes the Shield Response Team (SRT) to use email and phone to notify
2128// contacts about escalations to the SRT and to initiate proactive customer
2129// support.
2130//
2131// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2132// with awserr.Error's Code and Message methods to get detailed information about
2133// the error.
2134//
2135// See the AWS API reference guide for AWS Shield's
2136// API operation EnableProactiveEngagement for usage and error information.
2137//
2138// Returned Error Types:
2139//   * InternalErrorException
2140//   Exception that indicates that a problem occurred with the service infrastructure.
2141//   You can retry the request.
2142//
2143//   * InvalidOperationException
2144//   Exception that indicates that the operation would not cause any change to
2145//   occur.
2146//
2147//   * InvalidParameterException
2148//   Exception that indicates that the parameters passed to the API are invalid.
2149//   If available, this exception includes details in additional properties.
2150//
2151//   * ResourceNotFoundException
2152//   Exception indicating the specified resource does not exist. If available,
2153//   this exception includes details in additional properties.
2154//
2155//   * OptimisticLockException
2156//   Exception that indicates that the resource state has been modified by another
2157//   client. Retrieve the resource and then retry your request.
2158//
2159// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/EnableProactiveEngagement
2160func (c *Shield) EnableProactiveEngagement(input *EnableProactiveEngagementInput) (*EnableProactiveEngagementOutput, error) {
2161	req, out := c.EnableProactiveEngagementRequest(input)
2162	return out, req.Send()
2163}
2164
2165// EnableProactiveEngagementWithContext is the same as EnableProactiveEngagement with the addition of
2166// the ability to pass a context and additional request options.
2167//
2168// See EnableProactiveEngagement for details on how to use this API operation.
2169//
2170// The context must be non-nil and will be used for request cancellation. If
2171// the context is nil a panic will occur. In the future the SDK may create
2172// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2173// for more information on using Contexts.
2174func (c *Shield) EnableProactiveEngagementWithContext(ctx aws.Context, input *EnableProactiveEngagementInput, opts ...request.Option) (*EnableProactiveEngagementOutput, error) {
2175	req, out := c.EnableProactiveEngagementRequest(input)
2176	req.SetContext(ctx)
2177	req.ApplyOptions(opts...)
2178	return out, req.Send()
2179}
2180
2181const opGetSubscriptionState = "GetSubscriptionState"
2182
2183// GetSubscriptionStateRequest generates a "aws/request.Request" representing the
2184// client's request for the GetSubscriptionState operation. The "output" return
2185// value will be populated with the request's response once the request completes
2186// successfully.
2187//
2188// Use "Send" method on the returned Request to send the API call to the service.
2189// the "output" return value is not valid until after Send returns without error.
2190//
2191// See GetSubscriptionState for more information on using the GetSubscriptionState
2192// API call, and error handling.
2193//
2194// This method is useful when you want to inject custom logic or configuration
2195// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2196//
2197//
2198//    // Example sending a request using the GetSubscriptionStateRequest method.
2199//    req, resp := client.GetSubscriptionStateRequest(params)
2200//
2201//    err := req.Send()
2202//    if err == nil { // resp is now filled
2203//        fmt.Println(resp)
2204//    }
2205//
2206// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/GetSubscriptionState
2207func (c *Shield) GetSubscriptionStateRequest(input *GetSubscriptionStateInput) (req *request.Request, output *GetSubscriptionStateOutput) {
2208	op := &request.Operation{
2209		Name:       opGetSubscriptionState,
2210		HTTPMethod: "POST",
2211		HTTPPath:   "/",
2212	}
2213
2214	if input == nil {
2215		input = &GetSubscriptionStateInput{}
2216	}
2217
2218	output = &GetSubscriptionStateOutput{}
2219	req = c.newRequest(op, input, output)
2220	return
2221}
2222
2223// GetSubscriptionState API operation for AWS Shield.
2224//
2225// Returns the SubscriptionState, either Active or Inactive.
2226//
2227// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2228// with awserr.Error's Code and Message methods to get detailed information about
2229// the error.
2230//
2231// See the AWS API reference guide for AWS Shield's
2232// API operation GetSubscriptionState for usage and error information.
2233//
2234// Returned Error Types:
2235//   * InternalErrorException
2236//   Exception that indicates that a problem occurred with the service infrastructure.
2237//   You can retry the request.
2238//
2239// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/GetSubscriptionState
2240func (c *Shield) GetSubscriptionState(input *GetSubscriptionStateInput) (*GetSubscriptionStateOutput, error) {
2241	req, out := c.GetSubscriptionStateRequest(input)
2242	return out, req.Send()
2243}
2244
2245// GetSubscriptionStateWithContext is the same as GetSubscriptionState with the addition of
2246// the ability to pass a context and additional request options.
2247//
2248// See GetSubscriptionState for details on how to use this API operation.
2249//
2250// The context must be non-nil and will be used for request cancellation. If
2251// the context is nil a panic will occur. In the future the SDK may create
2252// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2253// for more information on using Contexts.
2254func (c *Shield) GetSubscriptionStateWithContext(ctx aws.Context, input *GetSubscriptionStateInput, opts ...request.Option) (*GetSubscriptionStateOutput, error) {
2255	req, out := c.GetSubscriptionStateRequest(input)
2256	req.SetContext(ctx)
2257	req.ApplyOptions(opts...)
2258	return out, req.Send()
2259}
2260
2261const opListAttacks = "ListAttacks"
2262
2263// ListAttacksRequest generates a "aws/request.Request" representing the
2264// client's request for the ListAttacks operation. The "output" return
2265// value will be populated with the request's response once the request completes
2266// successfully.
2267//
2268// Use "Send" method on the returned Request to send the API call to the service.
2269// the "output" return value is not valid until after Send returns without error.
2270//
2271// See ListAttacks for more information on using the ListAttacks
2272// API call, and error handling.
2273//
2274// This method is useful when you want to inject custom logic or configuration
2275// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2276//
2277//
2278//    // Example sending a request using the ListAttacksRequest method.
2279//    req, resp := client.ListAttacksRequest(params)
2280//
2281//    err := req.Send()
2282//    if err == nil { // resp is now filled
2283//        fmt.Println(resp)
2284//    }
2285//
2286// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListAttacks
2287func (c *Shield) ListAttacksRequest(input *ListAttacksInput) (req *request.Request, output *ListAttacksOutput) {
2288	op := &request.Operation{
2289		Name:       opListAttacks,
2290		HTTPMethod: "POST",
2291		HTTPPath:   "/",
2292		Paginator: &request.Paginator{
2293			InputTokens:     []string{"NextToken"},
2294			OutputTokens:    []string{"NextToken"},
2295			LimitToken:      "MaxResults",
2296			TruncationToken: "",
2297		},
2298	}
2299
2300	if input == nil {
2301		input = &ListAttacksInput{}
2302	}
2303
2304	output = &ListAttacksOutput{}
2305	req = c.newRequest(op, input, output)
2306	return
2307}
2308
2309// ListAttacks API operation for AWS Shield.
2310//
2311// Returns all ongoing DDoS attacks or all DDoS attacks during a specified time
2312// period.
2313//
2314// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2315// with awserr.Error's Code and Message methods to get detailed information about
2316// the error.
2317//
2318// See the AWS API reference guide for AWS Shield's
2319// API operation ListAttacks for usage and error information.
2320//
2321// Returned Error Types:
2322//   * InternalErrorException
2323//   Exception that indicates that a problem occurred with the service infrastructure.
2324//   You can retry the request.
2325//
2326//   * InvalidParameterException
2327//   Exception that indicates that the parameters passed to the API are invalid.
2328//   If available, this exception includes details in additional properties.
2329//
2330//   * InvalidOperationException
2331//   Exception that indicates that the operation would not cause any change to
2332//   occur.
2333//
2334// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListAttacks
2335func (c *Shield) ListAttacks(input *ListAttacksInput) (*ListAttacksOutput, error) {
2336	req, out := c.ListAttacksRequest(input)
2337	return out, req.Send()
2338}
2339
2340// ListAttacksWithContext is the same as ListAttacks with the addition of
2341// the ability to pass a context and additional request options.
2342//
2343// See ListAttacks for details on how to use this API operation.
2344//
2345// The context must be non-nil and will be used for request cancellation. If
2346// the context is nil a panic will occur. In the future the SDK may create
2347// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2348// for more information on using Contexts.
2349func (c *Shield) ListAttacksWithContext(ctx aws.Context, input *ListAttacksInput, opts ...request.Option) (*ListAttacksOutput, error) {
2350	req, out := c.ListAttacksRequest(input)
2351	req.SetContext(ctx)
2352	req.ApplyOptions(opts...)
2353	return out, req.Send()
2354}
2355
2356// ListAttacksPages iterates over the pages of a ListAttacks operation,
2357// calling the "fn" function with the response data for each page. To stop
2358// iterating, return false from the fn function.
2359//
2360// See ListAttacks method for more information on how to use this operation.
2361//
2362// Note: This operation can generate multiple requests to a service.
2363//
2364//    // Example iterating over at most 3 pages of a ListAttacks operation.
2365//    pageNum := 0
2366//    err := client.ListAttacksPages(params,
2367//        func(page *shield.ListAttacksOutput, lastPage bool) bool {
2368//            pageNum++
2369//            fmt.Println(page)
2370//            return pageNum <= 3
2371//        })
2372//
2373func (c *Shield) ListAttacksPages(input *ListAttacksInput, fn func(*ListAttacksOutput, bool) bool) error {
2374	return c.ListAttacksPagesWithContext(aws.BackgroundContext(), input, fn)
2375}
2376
2377// ListAttacksPagesWithContext same as ListAttacksPages except
2378// it takes a Context and allows setting request options on the pages.
2379//
2380// The context must be non-nil and will be used for request cancellation. If
2381// the context is nil a panic will occur. In the future the SDK may create
2382// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2383// for more information on using Contexts.
2384func (c *Shield) ListAttacksPagesWithContext(ctx aws.Context, input *ListAttacksInput, fn func(*ListAttacksOutput, bool) bool, opts ...request.Option) error {
2385	p := request.Pagination{
2386		NewRequest: func() (*request.Request, error) {
2387			var inCpy *ListAttacksInput
2388			if input != nil {
2389				tmp := *input
2390				inCpy = &tmp
2391			}
2392			req, _ := c.ListAttacksRequest(inCpy)
2393			req.SetContext(ctx)
2394			req.ApplyOptions(opts...)
2395			return req, nil
2396		},
2397	}
2398
2399	for p.Next() {
2400		if !fn(p.Page().(*ListAttacksOutput), !p.HasNextPage()) {
2401			break
2402		}
2403	}
2404
2405	return p.Err()
2406}
2407
2408const opListProtectionGroups = "ListProtectionGroups"
2409
2410// ListProtectionGroupsRequest generates a "aws/request.Request" representing the
2411// client's request for the ListProtectionGroups operation. The "output" return
2412// value will be populated with the request's response once the request completes
2413// successfully.
2414//
2415// Use "Send" method on the returned Request to send the API call to the service.
2416// the "output" return value is not valid until after Send returns without error.
2417//
2418// See ListProtectionGroups for more information on using the ListProtectionGroups
2419// API call, and error handling.
2420//
2421// This method is useful when you want to inject custom logic or configuration
2422// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2423//
2424//
2425//    // Example sending a request using the ListProtectionGroupsRequest method.
2426//    req, resp := client.ListProtectionGroupsRequest(params)
2427//
2428//    err := req.Send()
2429//    if err == nil { // resp is now filled
2430//        fmt.Println(resp)
2431//    }
2432//
2433// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListProtectionGroups
2434func (c *Shield) ListProtectionGroupsRequest(input *ListProtectionGroupsInput) (req *request.Request, output *ListProtectionGroupsOutput) {
2435	op := &request.Operation{
2436		Name:       opListProtectionGroups,
2437		HTTPMethod: "POST",
2438		HTTPPath:   "/",
2439		Paginator: &request.Paginator{
2440			InputTokens:     []string{"NextToken"},
2441			OutputTokens:    []string{"NextToken"},
2442			LimitToken:      "MaxResults",
2443			TruncationToken: "",
2444		},
2445	}
2446
2447	if input == nil {
2448		input = &ListProtectionGroupsInput{}
2449	}
2450
2451	output = &ListProtectionGroupsOutput{}
2452	req = c.newRequest(op, input, output)
2453	return
2454}
2455
2456// ListProtectionGroups API operation for AWS Shield.
2457//
2458// Retrieves the ProtectionGroup objects for the account.
2459//
2460// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2461// with awserr.Error's Code and Message methods to get detailed information about
2462// the error.
2463//
2464// See the AWS API reference guide for AWS Shield's
2465// API operation ListProtectionGroups for usage and error information.
2466//
2467// Returned Error Types:
2468//   * InternalErrorException
2469//   Exception that indicates that a problem occurred with the service infrastructure.
2470//   You can retry the request.
2471//
2472//   * ResourceNotFoundException
2473//   Exception indicating the specified resource does not exist. If available,
2474//   this exception includes details in additional properties.
2475//
2476//   * InvalidPaginationTokenException
2477//   Exception that indicates that the NextToken specified in the request is invalid.
2478//   Submit the request using the NextToken value that was returned in the response.
2479//
2480// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListProtectionGroups
2481func (c *Shield) ListProtectionGroups(input *ListProtectionGroupsInput) (*ListProtectionGroupsOutput, error) {
2482	req, out := c.ListProtectionGroupsRequest(input)
2483	return out, req.Send()
2484}
2485
2486// ListProtectionGroupsWithContext is the same as ListProtectionGroups with the addition of
2487// the ability to pass a context and additional request options.
2488//
2489// See ListProtectionGroups for details on how to use this API operation.
2490//
2491// The context must be non-nil and will be used for request cancellation. If
2492// the context is nil a panic will occur. In the future the SDK may create
2493// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2494// for more information on using Contexts.
2495func (c *Shield) ListProtectionGroupsWithContext(ctx aws.Context, input *ListProtectionGroupsInput, opts ...request.Option) (*ListProtectionGroupsOutput, error) {
2496	req, out := c.ListProtectionGroupsRequest(input)
2497	req.SetContext(ctx)
2498	req.ApplyOptions(opts...)
2499	return out, req.Send()
2500}
2501
2502// ListProtectionGroupsPages iterates over the pages of a ListProtectionGroups operation,
2503// calling the "fn" function with the response data for each page. To stop
2504// iterating, return false from the fn function.
2505//
2506// See ListProtectionGroups method for more information on how to use this operation.
2507//
2508// Note: This operation can generate multiple requests to a service.
2509//
2510//    // Example iterating over at most 3 pages of a ListProtectionGroups operation.
2511//    pageNum := 0
2512//    err := client.ListProtectionGroupsPages(params,
2513//        func(page *shield.ListProtectionGroupsOutput, lastPage bool) bool {
2514//            pageNum++
2515//            fmt.Println(page)
2516//            return pageNum <= 3
2517//        })
2518//
2519func (c *Shield) ListProtectionGroupsPages(input *ListProtectionGroupsInput, fn func(*ListProtectionGroupsOutput, bool) bool) error {
2520	return c.ListProtectionGroupsPagesWithContext(aws.BackgroundContext(), input, fn)
2521}
2522
2523// ListProtectionGroupsPagesWithContext same as ListProtectionGroupsPages except
2524// it takes a Context and allows setting request options on the pages.
2525//
2526// The context must be non-nil and will be used for request cancellation. If
2527// the context is nil a panic will occur. In the future the SDK may create
2528// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2529// for more information on using Contexts.
2530func (c *Shield) ListProtectionGroupsPagesWithContext(ctx aws.Context, input *ListProtectionGroupsInput, fn func(*ListProtectionGroupsOutput, bool) bool, opts ...request.Option) error {
2531	p := request.Pagination{
2532		NewRequest: func() (*request.Request, error) {
2533			var inCpy *ListProtectionGroupsInput
2534			if input != nil {
2535				tmp := *input
2536				inCpy = &tmp
2537			}
2538			req, _ := c.ListProtectionGroupsRequest(inCpy)
2539			req.SetContext(ctx)
2540			req.ApplyOptions(opts...)
2541			return req, nil
2542		},
2543	}
2544
2545	for p.Next() {
2546		if !fn(p.Page().(*ListProtectionGroupsOutput), !p.HasNextPage()) {
2547			break
2548		}
2549	}
2550
2551	return p.Err()
2552}
2553
2554const opListProtections = "ListProtections"
2555
2556// ListProtectionsRequest generates a "aws/request.Request" representing the
2557// client's request for the ListProtections operation. The "output" return
2558// value will be populated with the request's response once the request completes
2559// successfully.
2560//
2561// Use "Send" method on the returned Request to send the API call to the service.
2562// the "output" return value is not valid until after Send returns without error.
2563//
2564// See ListProtections for more information on using the ListProtections
2565// API call, and error handling.
2566//
2567// This method is useful when you want to inject custom logic or configuration
2568// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2569//
2570//
2571//    // Example sending a request using the ListProtectionsRequest method.
2572//    req, resp := client.ListProtectionsRequest(params)
2573//
2574//    err := req.Send()
2575//    if err == nil { // resp is now filled
2576//        fmt.Println(resp)
2577//    }
2578//
2579// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListProtections
2580func (c *Shield) ListProtectionsRequest(input *ListProtectionsInput) (req *request.Request, output *ListProtectionsOutput) {
2581	op := &request.Operation{
2582		Name:       opListProtections,
2583		HTTPMethod: "POST",
2584		HTTPPath:   "/",
2585		Paginator: &request.Paginator{
2586			InputTokens:     []string{"NextToken"},
2587			OutputTokens:    []string{"NextToken"},
2588			LimitToken:      "MaxResults",
2589			TruncationToken: "",
2590		},
2591	}
2592
2593	if input == nil {
2594		input = &ListProtectionsInput{}
2595	}
2596
2597	output = &ListProtectionsOutput{}
2598	req = c.newRequest(op, input, output)
2599	return
2600}
2601
2602// ListProtections API operation for AWS Shield.
2603//
2604// Lists all Protection objects for the account.
2605//
2606// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2607// with awserr.Error's Code and Message methods to get detailed information about
2608// the error.
2609//
2610// See the AWS API reference guide for AWS Shield's
2611// API operation ListProtections for usage and error information.
2612//
2613// Returned Error Types:
2614//   * InternalErrorException
2615//   Exception that indicates that a problem occurred with the service infrastructure.
2616//   You can retry the request.
2617//
2618//   * ResourceNotFoundException
2619//   Exception indicating the specified resource does not exist. If available,
2620//   this exception includes details in additional properties.
2621//
2622//   * InvalidPaginationTokenException
2623//   Exception that indicates that the NextToken specified in the request is invalid.
2624//   Submit the request using the NextToken value that was returned in the response.
2625//
2626// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListProtections
2627func (c *Shield) ListProtections(input *ListProtectionsInput) (*ListProtectionsOutput, error) {
2628	req, out := c.ListProtectionsRequest(input)
2629	return out, req.Send()
2630}
2631
2632// ListProtectionsWithContext is the same as ListProtections with the addition of
2633// the ability to pass a context and additional request options.
2634//
2635// See ListProtections for details on how to use this API operation.
2636//
2637// The context must be non-nil and will be used for request cancellation. If
2638// the context is nil a panic will occur. In the future the SDK may create
2639// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2640// for more information on using Contexts.
2641func (c *Shield) ListProtectionsWithContext(ctx aws.Context, input *ListProtectionsInput, opts ...request.Option) (*ListProtectionsOutput, error) {
2642	req, out := c.ListProtectionsRequest(input)
2643	req.SetContext(ctx)
2644	req.ApplyOptions(opts...)
2645	return out, req.Send()
2646}
2647
2648// ListProtectionsPages iterates over the pages of a ListProtections operation,
2649// calling the "fn" function with the response data for each page. To stop
2650// iterating, return false from the fn function.
2651//
2652// See ListProtections method for more information on how to use this operation.
2653//
2654// Note: This operation can generate multiple requests to a service.
2655//
2656//    // Example iterating over at most 3 pages of a ListProtections operation.
2657//    pageNum := 0
2658//    err := client.ListProtectionsPages(params,
2659//        func(page *shield.ListProtectionsOutput, lastPage bool) bool {
2660//            pageNum++
2661//            fmt.Println(page)
2662//            return pageNum <= 3
2663//        })
2664//
2665func (c *Shield) ListProtectionsPages(input *ListProtectionsInput, fn func(*ListProtectionsOutput, bool) bool) error {
2666	return c.ListProtectionsPagesWithContext(aws.BackgroundContext(), input, fn)
2667}
2668
2669// ListProtectionsPagesWithContext same as ListProtectionsPages except
2670// it takes a Context and allows setting request options on the pages.
2671//
2672// The context must be non-nil and will be used for request cancellation. If
2673// the context is nil a panic will occur. In the future the SDK may create
2674// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2675// for more information on using Contexts.
2676func (c *Shield) ListProtectionsPagesWithContext(ctx aws.Context, input *ListProtectionsInput, fn func(*ListProtectionsOutput, bool) bool, opts ...request.Option) error {
2677	p := request.Pagination{
2678		NewRequest: func() (*request.Request, error) {
2679			var inCpy *ListProtectionsInput
2680			if input != nil {
2681				tmp := *input
2682				inCpy = &tmp
2683			}
2684			req, _ := c.ListProtectionsRequest(inCpy)
2685			req.SetContext(ctx)
2686			req.ApplyOptions(opts...)
2687			return req, nil
2688		},
2689	}
2690
2691	for p.Next() {
2692		if !fn(p.Page().(*ListProtectionsOutput), !p.HasNextPage()) {
2693			break
2694		}
2695	}
2696
2697	return p.Err()
2698}
2699
2700const opListResourcesInProtectionGroup = "ListResourcesInProtectionGroup"
2701
2702// ListResourcesInProtectionGroupRequest generates a "aws/request.Request" representing the
2703// client's request for the ListResourcesInProtectionGroup operation. The "output" return
2704// value will be populated with the request's response once the request completes
2705// successfully.
2706//
2707// Use "Send" method on the returned Request to send the API call to the service.
2708// the "output" return value is not valid until after Send returns without error.
2709//
2710// See ListResourcesInProtectionGroup for more information on using the ListResourcesInProtectionGroup
2711// API call, and error handling.
2712//
2713// This method is useful when you want to inject custom logic or configuration
2714// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2715//
2716//
2717//    // Example sending a request using the ListResourcesInProtectionGroupRequest method.
2718//    req, resp := client.ListResourcesInProtectionGroupRequest(params)
2719//
2720//    err := req.Send()
2721//    if err == nil { // resp is now filled
2722//        fmt.Println(resp)
2723//    }
2724//
2725// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListResourcesInProtectionGroup
2726func (c *Shield) ListResourcesInProtectionGroupRequest(input *ListResourcesInProtectionGroupInput) (req *request.Request, output *ListResourcesInProtectionGroupOutput) {
2727	op := &request.Operation{
2728		Name:       opListResourcesInProtectionGroup,
2729		HTTPMethod: "POST",
2730		HTTPPath:   "/",
2731		Paginator: &request.Paginator{
2732			InputTokens:     []string{"NextToken"},
2733			OutputTokens:    []string{"NextToken"},
2734			LimitToken:      "MaxResults",
2735			TruncationToken: "",
2736		},
2737	}
2738
2739	if input == nil {
2740		input = &ListResourcesInProtectionGroupInput{}
2741	}
2742
2743	output = &ListResourcesInProtectionGroupOutput{}
2744	req = c.newRequest(op, input, output)
2745	return
2746}
2747
2748// ListResourcesInProtectionGroup API operation for AWS Shield.
2749//
2750// Retrieves the resources that are included in the protection group.
2751//
2752// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2753// with awserr.Error's Code and Message methods to get detailed information about
2754// the error.
2755//
2756// See the AWS API reference guide for AWS Shield's
2757// API operation ListResourcesInProtectionGroup for usage and error information.
2758//
2759// Returned Error Types:
2760//   * InternalErrorException
2761//   Exception that indicates that a problem occurred with the service infrastructure.
2762//   You can retry the request.
2763//
2764//   * ResourceNotFoundException
2765//   Exception indicating the specified resource does not exist. If available,
2766//   this exception includes details in additional properties.
2767//
2768//   * InvalidPaginationTokenException
2769//   Exception that indicates that the NextToken specified in the request is invalid.
2770//   Submit the request using the NextToken value that was returned in the response.
2771//
2772// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListResourcesInProtectionGroup
2773func (c *Shield) ListResourcesInProtectionGroup(input *ListResourcesInProtectionGroupInput) (*ListResourcesInProtectionGroupOutput, error) {
2774	req, out := c.ListResourcesInProtectionGroupRequest(input)
2775	return out, req.Send()
2776}
2777
2778// ListResourcesInProtectionGroupWithContext is the same as ListResourcesInProtectionGroup with the addition of
2779// the ability to pass a context and additional request options.
2780//
2781// See ListResourcesInProtectionGroup for details on how to use this API operation.
2782//
2783// The context must be non-nil and will be used for request cancellation. If
2784// the context is nil a panic will occur. In the future the SDK may create
2785// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2786// for more information on using Contexts.
2787func (c *Shield) ListResourcesInProtectionGroupWithContext(ctx aws.Context, input *ListResourcesInProtectionGroupInput, opts ...request.Option) (*ListResourcesInProtectionGroupOutput, error) {
2788	req, out := c.ListResourcesInProtectionGroupRequest(input)
2789	req.SetContext(ctx)
2790	req.ApplyOptions(opts...)
2791	return out, req.Send()
2792}
2793
2794// ListResourcesInProtectionGroupPages iterates over the pages of a ListResourcesInProtectionGroup operation,
2795// calling the "fn" function with the response data for each page. To stop
2796// iterating, return false from the fn function.
2797//
2798// See ListResourcesInProtectionGroup method for more information on how to use this operation.
2799//
2800// Note: This operation can generate multiple requests to a service.
2801//
2802//    // Example iterating over at most 3 pages of a ListResourcesInProtectionGroup operation.
2803//    pageNum := 0
2804//    err := client.ListResourcesInProtectionGroupPages(params,
2805//        func(page *shield.ListResourcesInProtectionGroupOutput, lastPage bool) bool {
2806//            pageNum++
2807//            fmt.Println(page)
2808//            return pageNum <= 3
2809//        })
2810//
2811func (c *Shield) ListResourcesInProtectionGroupPages(input *ListResourcesInProtectionGroupInput, fn func(*ListResourcesInProtectionGroupOutput, bool) bool) error {
2812	return c.ListResourcesInProtectionGroupPagesWithContext(aws.BackgroundContext(), input, fn)
2813}
2814
2815// ListResourcesInProtectionGroupPagesWithContext same as ListResourcesInProtectionGroupPages except
2816// it takes a Context and allows setting request options on the pages.
2817//
2818// The context must be non-nil and will be used for request cancellation. If
2819// the context is nil a panic will occur. In the future the SDK may create
2820// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2821// for more information on using Contexts.
2822func (c *Shield) ListResourcesInProtectionGroupPagesWithContext(ctx aws.Context, input *ListResourcesInProtectionGroupInput, fn func(*ListResourcesInProtectionGroupOutput, bool) bool, opts ...request.Option) error {
2823	p := request.Pagination{
2824		NewRequest: func() (*request.Request, error) {
2825			var inCpy *ListResourcesInProtectionGroupInput
2826			if input != nil {
2827				tmp := *input
2828				inCpy = &tmp
2829			}
2830			req, _ := c.ListResourcesInProtectionGroupRequest(inCpy)
2831			req.SetContext(ctx)
2832			req.ApplyOptions(opts...)
2833			return req, nil
2834		},
2835	}
2836
2837	for p.Next() {
2838		if !fn(p.Page().(*ListResourcesInProtectionGroupOutput), !p.HasNextPage()) {
2839			break
2840		}
2841	}
2842
2843	return p.Err()
2844}
2845
2846const opListTagsForResource = "ListTagsForResource"
2847
2848// ListTagsForResourceRequest generates a "aws/request.Request" representing the
2849// client's request for the ListTagsForResource operation. The "output" return
2850// value will be populated with the request's response once the request completes
2851// successfully.
2852//
2853// Use "Send" method on the returned Request to send the API call to the service.
2854// the "output" return value is not valid until after Send returns without error.
2855//
2856// See ListTagsForResource for more information on using the ListTagsForResource
2857// API call, and error handling.
2858//
2859// This method is useful when you want to inject custom logic or configuration
2860// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2861//
2862//
2863//    // Example sending a request using the ListTagsForResourceRequest method.
2864//    req, resp := client.ListTagsForResourceRequest(params)
2865//
2866//    err := req.Send()
2867//    if err == nil { // resp is now filled
2868//        fmt.Println(resp)
2869//    }
2870//
2871// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListTagsForResource
2872func (c *Shield) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
2873	op := &request.Operation{
2874		Name:       opListTagsForResource,
2875		HTTPMethod: "POST",
2876		HTTPPath:   "/",
2877	}
2878
2879	if input == nil {
2880		input = &ListTagsForResourceInput{}
2881	}
2882
2883	output = &ListTagsForResourceOutput{}
2884	req = c.newRequest(op, input, output)
2885	return
2886}
2887
2888// ListTagsForResource API operation for AWS Shield.
2889//
2890// Gets information about Amazon Web Services tags for a specified Amazon Resource
2891// Name (ARN) in Shield.
2892//
2893// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2894// with awserr.Error's Code and Message methods to get detailed information about
2895// the error.
2896//
2897// See the AWS API reference guide for AWS Shield's
2898// API operation ListTagsForResource for usage and error information.
2899//
2900// Returned Error Types:
2901//   * InternalErrorException
2902//   Exception that indicates that a problem occurred with the service infrastructure.
2903//   You can retry the request.
2904//
2905//   * InvalidResourceException
2906//   Exception that indicates that the resource is invalid. You might not have
2907//   access to the resource, or the resource might not exist.
2908//
2909//   * ResourceNotFoundException
2910//   Exception indicating the specified resource does not exist. If available,
2911//   this exception includes details in additional properties.
2912//
2913// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListTagsForResource
2914func (c *Shield) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
2915	req, out := c.ListTagsForResourceRequest(input)
2916	return out, req.Send()
2917}
2918
2919// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
2920// the ability to pass a context and additional request options.
2921//
2922// See ListTagsForResource for details on how to use this API operation.
2923//
2924// The context must be non-nil and will be used for request cancellation. If
2925// the context is nil a panic will occur. In the future the SDK may create
2926// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2927// for more information on using Contexts.
2928func (c *Shield) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
2929	req, out := c.ListTagsForResourceRequest(input)
2930	req.SetContext(ctx)
2931	req.ApplyOptions(opts...)
2932	return out, req.Send()
2933}
2934
2935const opTagResource = "TagResource"
2936
2937// TagResourceRequest generates a "aws/request.Request" representing the
2938// client's request for the TagResource operation. The "output" return
2939// value will be populated with the request's response once the request completes
2940// successfully.
2941//
2942// Use "Send" method on the returned Request to send the API call to the service.
2943// the "output" return value is not valid until after Send returns without error.
2944//
2945// See TagResource for more information on using the TagResource
2946// API call, and error handling.
2947//
2948// This method is useful when you want to inject custom logic or configuration
2949// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2950//
2951//
2952//    // Example sending a request using the TagResourceRequest method.
2953//    req, resp := client.TagResourceRequest(params)
2954//
2955//    err := req.Send()
2956//    if err == nil { // resp is now filled
2957//        fmt.Println(resp)
2958//    }
2959//
2960// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/TagResource
2961func (c *Shield) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
2962	op := &request.Operation{
2963		Name:       opTagResource,
2964		HTTPMethod: "POST",
2965		HTTPPath:   "/",
2966	}
2967
2968	if input == nil {
2969		input = &TagResourceInput{}
2970	}
2971
2972	output = &TagResourceOutput{}
2973	req = c.newRequest(op, input, output)
2974	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2975	return
2976}
2977
2978// TagResource API operation for AWS Shield.
2979//
2980// Adds or updates tags for a resource in Shield.
2981//
2982// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2983// with awserr.Error's Code and Message methods to get detailed information about
2984// the error.
2985//
2986// See the AWS API reference guide for AWS Shield's
2987// API operation TagResource for usage and error information.
2988//
2989// Returned Error Types:
2990//   * InternalErrorException
2991//   Exception that indicates that a problem occurred with the service infrastructure.
2992//   You can retry the request.
2993//
2994//   * InvalidResourceException
2995//   Exception that indicates that the resource is invalid. You might not have
2996//   access to the resource, or the resource might not exist.
2997//
2998//   * InvalidParameterException
2999//   Exception that indicates that the parameters passed to the API are invalid.
3000//   If available, this exception includes details in additional properties.
3001//
3002//   * ResourceNotFoundException
3003//   Exception indicating the specified resource does not exist. If available,
3004//   this exception includes details in additional properties.
3005//
3006// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/TagResource
3007func (c *Shield) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
3008	req, out := c.TagResourceRequest(input)
3009	return out, req.Send()
3010}
3011
3012// TagResourceWithContext is the same as TagResource with the addition of
3013// the ability to pass a context and additional request options.
3014//
3015// See TagResource for details on how to use this API operation.
3016//
3017// The context must be non-nil and will be used for request cancellation. If
3018// the context is nil a panic will occur. In the future the SDK may create
3019// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3020// for more information on using Contexts.
3021func (c *Shield) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
3022	req, out := c.TagResourceRequest(input)
3023	req.SetContext(ctx)
3024	req.ApplyOptions(opts...)
3025	return out, req.Send()
3026}
3027
3028const opUntagResource = "UntagResource"
3029
3030// UntagResourceRequest generates a "aws/request.Request" representing the
3031// client's request for the UntagResource operation. The "output" return
3032// value will be populated with the request's response once the request completes
3033// successfully.
3034//
3035// Use "Send" method on the returned Request to send the API call to the service.
3036// the "output" return value is not valid until after Send returns without error.
3037//
3038// See UntagResource for more information on using the UntagResource
3039// API call, and error handling.
3040//
3041// This method is useful when you want to inject custom logic or configuration
3042// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3043//
3044//
3045//    // Example sending a request using the UntagResourceRequest method.
3046//    req, resp := client.UntagResourceRequest(params)
3047//
3048//    err := req.Send()
3049//    if err == nil { // resp is now filled
3050//        fmt.Println(resp)
3051//    }
3052//
3053// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/UntagResource
3054func (c *Shield) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
3055	op := &request.Operation{
3056		Name:       opUntagResource,
3057		HTTPMethod: "POST",
3058		HTTPPath:   "/",
3059	}
3060
3061	if input == nil {
3062		input = &UntagResourceInput{}
3063	}
3064
3065	output = &UntagResourceOutput{}
3066	req = c.newRequest(op, input, output)
3067	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3068	return
3069}
3070
3071// UntagResource API operation for AWS Shield.
3072//
3073// Removes tags from a resource in Shield.
3074//
3075// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3076// with awserr.Error's Code and Message methods to get detailed information about
3077// the error.
3078//
3079// See the AWS API reference guide for AWS Shield's
3080// API operation UntagResource for usage and error information.
3081//
3082// Returned Error Types:
3083//   * InternalErrorException
3084//   Exception that indicates that a problem occurred with the service infrastructure.
3085//   You can retry the request.
3086//
3087//   * InvalidResourceException
3088//   Exception that indicates that the resource is invalid. You might not have
3089//   access to the resource, or the resource might not exist.
3090//
3091//   * InvalidParameterException
3092//   Exception that indicates that the parameters passed to the API are invalid.
3093//   If available, this exception includes details in additional properties.
3094//
3095//   * ResourceNotFoundException
3096//   Exception indicating the specified resource does not exist. If available,
3097//   this exception includes details in additional properties.
3098//
3099// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/UntagResource
3100func (c *Shield) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
3101	req, out := c.UntagResourceRequest(input)
3102	return out, req.Send()
3103}
3104
3105// UntagResourceWithContext is the same as UntagResource with the addition of
3106// the ability to pass a context and additional request options.
3107//
3108// See UntagResource for details on how to use this API operation.
3109//
3110// The context must be non-nil and will be used for request cancellation. If
3111// the context is nil a panic will occur. In the future the SDK may create
3112// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3113// for more information on using Contexts.
3114func (c *Shield) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
3115	req, out := c.UntagResourceRequest(input)
3116	req.SetContext(ctx)
3117	req.ApplyOptions(opts...)
3118	return out, req.Send()
3119}
3120
3121const opUpdateEmergencyContactSettings = "UpdateEmergencyContactSettings"
3122
3123// UpdateEmergencyContactSettingsRequest generates a "aws/request.Request" representing the
3124// client's request for the UpdateEmergencyContactSettings operation. The "output" return
3125// value will be populated with the request's response once the request completes
3126// successfully.
3127//
3128// Use "Send" method on the returned Request to send the API call to the service.
3129// the "output" return value is not valid until after Send returns without error.
3130//
3131// See UpdateEmergencyContactSettings for more information on using the UpdateEmergencyContactSettings
3132// API call, and error handling.
3133//
3134// This method is useful when you want to inject custom logic or configuration
3135// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3136//
3137//
3138//    // Example sending a request using the UpdateEmergencyContactSettingsRequest method.
3139//    req, resp := client.UpdateEmergencyContactSettingsRequest(params)
3140//
3141//    err := req.Send()
3142//    if err == nil { // resp is now filled
3143//        fmt.Println(resp)
3144//    }
3145//
3146// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/UpdateEmergencyContactSettings
3147func (c *Shield) UpdateEmergencyContactSettingsRequest(input *UpdateEmergencyContactSettingsInput) (req *request.Request, output *UpdateEmergencyContactSettingsOutput) {
3148	op := &request.Operation{
3149		Name:       opUpdateEmergencyContactSettings,
3150		HTTPMethod: "POST",
3151		HTTPPath:   "/",
3152	}
3153
3154	if input == nil {
3155		input = &UpdateEmergencyContactSettingsInput{}
3156	}
3157
3158	output = &UpdateEmergencyContactSettingsOutput{}
3159	req = c.newRequest(op, input, output)
3160	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3161	return
3162}
3163
3164// UpdateEmergencyContactSettings API operation for AWS Shield.
3165//
3166// Updates the details of the list of email addresses and phone numbers that
3167// the Shield Response Team (SRT) can use to contact you if you have proactive
3168// engagement enabled, for escalations to the SRT and to initiate proactive
3169// customer support.
3170//
3171// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3172// with awserr.Error's Code and Message methods to get detailed information about
3173// the error.
3174//
3175// See the AWS API reference guide for AWS Shield's
3176// API operation UpdateEmergencyContactSettings for usage and error information.
3177//
3178// Returned Error Types:
3179//   * InternalErrorException
3180//   Exception that indicates that a problem occurred with the service infrastructure.
3181//   You can retry the request.
3182//
3183//   * InvalidParameterException
3184//   Exception that indicates that the parameters passed to the API are invalid.
3185//   If available, this exception includes details in additional properties.
3186//
3187//   * OptimisticLockException
3188//   Exception that indicates that the resource state has been modified by another
3189//   client. Retrieve the resource and then retry your request.
3190//
3191//   * ResourceNotFoundException
3192//   Exception indicating the specified resource does not exist. If available,
3193//   this exception includes details in additional properties.
3194//
3195// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/UpdateEmergencyContactSettings
3196func (c *Shield) UpdateEmergencyContactSettings(input *UpdateEmergencyContactSettingsInput) (*UpdateEmergencyContactSettingsOutput, error) {
3197	req, out := c.UpdateEmergencyContactSettingsRequest(input)
3198	return out, req.Send()
3199}
3200
3201// UpdateEmergencyContactSettingsWithContext is the same as UpdateEmergencyContactSettings with the addition of
3202// the ability to pass a context and additional request options.
3203//
3204// See UpdateEmergencyContactSettings for details on how to use this API operation.
3205//
3206// The context must be non-nil and will be used for request cancellation. If
3207// the context is nil a panic will occur. In the future the SDK may create
3208// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3209// for more information on using Contexts.
3210func (c *Shield) UpdateEmergencyContactSettingsWithContext(ctx aws.Context, input *UpdateEmergencyContactSettingsInput, opts ...request.Option) (*UpdateEmergencyContactSettingsOutput, error) {
3211	req, out := c.UpdateEmergencyContactSettingsRequest(input)
3212	req.SetContext(ctx)
3213	req.ApplyOptions(opts...)
3214	return out, req.Send()
3215}
3216
3217const opUpdateProtectionGroup = "UpdateProtectionGroup"
3218
3219// UpdateProtectionGroupRequest generates a "aws/request.Request" representing the
3220// client's request for the UpdateProtectionGroup operation. The "output" return
3221// value will be populated with the request's response once the request completes
3222// successfully.
3223//
3224// Use "Send" method on the returned Request to send the API call to the service.
3225// the "output" return value is not valid until after Send returns without error.
3226//
3227// See UpdateProtectionGroup for more information on using the UpdateProtectionGroup
3228// API call, and error handling.
3229//
3230// This method is useful when you want to inject custom logic or configuration
3231// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3232//
3233//
3234//    // Example sending a request using the UpdateProtectionGroupRequest method.
3235//    req, resp := client.UpdateProtectionGroupRequest(params)
3236//
3237//    err := req.Send()
3238//    if err == nil { // resp is now filled
3239//        fmt.Println(resp)
3240//    }
3241//
3242// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/UpdateProtectionGroup
3243func (c *Shield) UpdateProtectionGroupRequest(input *UpdateProtectionGroupInput) (req *request.Request, output *UpdateProtectionGroupOutput) {
3244	op := &request.Operation{
3245		Name:       opUpdateProtectionGroup,
3246		HTTPMethod: "POST",
3247		HTTPPath:   "/",
3248	}
3249
3250	if input == nil {
3251		input = &UpdateProtectionGroupInput{}
3252	}
3253
3254	output = &UpdateProtectionGroupOutput{}
3255	req = c.newRequest(op, input, output)
3256	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3257	return
3258}
3259
3260// UpdateProtectionGroup API operation for AWS Shield.
3261//
3262// Updates an existing protection group. A protection group is a grouping of
3263// protected resources so they can be handled as a collective. This resource
3264// grouping improves the accuracy of detection and reduces false positives.
3265//
3266// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3267// with awserr.Error's Code and Message methods to get detailed information about
3268// the error.
3269//
3270// See the AWS API reference guide for AWS Shield's
3271// API operation UpdateProtectionGroup for usage and error information.
3272//
3273// Returned Error Types:
3274//   * InternalErrorException
3275//   Exception that indicates that a problem occurred with the service infrastructure.
3276//   You can retry the request.
3277//
3278//   * ResourceNotFoundException
3279//   Exception indicating the specified resource does not exist. If available,
3280//   this exception includes details in additional properties.
3281//
3282//   * OptimisticLockException
3283//   Exception that indicates that the resource state has been modified by another
3284//   client. Retrieve the resource and then retry your request.
3285//
3286//   * InvalidParameterException
3287//   Exception that indicates that the parameters passed to the API are invalid.
3288//   If available, this exception includes details in additional properties.
3289//
3290// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/UpdateProtectionGroup
3291func (c *Shield) UpdateProtectionGroup(input *UpdateProtectionGroupInput) (*UpdateProtectionGroupOutput, error) {
3292	req, out := c.UpdateProtectionGroupRequest(input)
3293	return out, req.Send()
3294}
3295
3296// UpdateProtectionGroupWithContext is the same as UpdateProtectionGroup with the addition of
3297// the ability to pass a context and additional request options.
3298//
3299// See UpdateProtectionGroup for details on how to use this API operation.
3300//
3301// The context must be non-nil and will be used for request cancellation. If
3302// the context is nil a panic will occur. In the future the SDK may create
3303// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3304// for more information on using Contexts.
3305func (c *Shield) UpdateProtectionGroupWithContext(ctx aws.Context, input *UpdateProtectionGroupInput, opts ...request.Option) (*UpdateProtectionGroupOutput, error) {
3306	req, out := c.UpdateProtectionGroupRequest(input)
3307	req.SetContext(ctx)
3308	req.ApplyOptions(opts...)
3309	return out, req.Send()
3310}
3311
3312const opUpdateSubscription = "UpdateSubscription"
3313
3314// UpdateSubscriptionRequest generates a "aws/request.Request" representing the
3315// client's request for the UpdateSubscription operation. The "output" return
3316// value will be populated with the request's response once the request completes
3317// successfully.
3318//
3319// Use "Send" method on the returned Request to send the API call to the service.
3320// the "output" return value is not valid until after Send returns without error.
3321//
3322// See UpdateSubscription for more information on using the UpdateSubscription
3323// API call, and error handling.
3324//
3325// This method is useful when you want to inject custom logic or configuration
3326// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3327//
3328//
3329//    // Example sending a request using the UpdateSubscriptionRequest method.
3330//    req, resp := client.UpdateSubscriptionRequest(params)
3331//
3332//    err := req.Send()
3333//    if err == nil { // resp is now filled
3334//        fmt.Println(resp)
3335//    }
3336//
3337// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/UpdateSubscription
3338func (c *Shield) UpdateSubscriptionRequest(input *UpdateSubscriptionInput) (req *request.Request, output *UpdateSubscriptionOutput) {
3339	op := &request.Operation{
3340		Name:       opUpdateSubscription,
3341		HTTPMethod: "POST",
3342		HTTPPath:   "/",
3343	}
3344
3345	if input == nil {
3346		input = &UpdateSubscriptionInput{}
3347	}
3348
3349	output = &UpdateSubscriptionOutput{}
3350	req = c.newRequest(op, input, output)
3351	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3352	return
3353}
3354
3355// UpdateSubscription API operation for AWS Shield.
3356//
3357// Updates the details of an existing subscription. Only enter values for parameters
3358// you want to change. Empty parameters are not updated.
3359//
3360// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3361// with awserr.Error's Code and Message methods to get detailed information about
3362// the error.
3363//
3364// See the AWS API reference guide for AWS Shield's
3365// API operation UpdateSubscription for usage and error information.
3366//
3367// Returned Error Types:
3368//   * InternalErrorException
3369//   Exception that indicates that a problem occurred with the service infrastructure.
3370//   You can retry the request.
3371//
3372//   * LockedSubscriptionException
3373//   You are trying to update a subscription that has not yet completed the 1-year
3374//   commitment. You can change the AutoRenew parameter during the last 30 days
3375//   of your subscription. This exception indicates that you are attempting to
3376//   change AutoRenew prior to that period.
3377//
3378//   * ResourceNotFoundException
3379//   Exception indicating the specified resource does not exist. If available,
3380//   this exception includes details in additional properties.
3381//
3382//   * InvalidParameterException
3383//   Exception that indicates that the parameters passed to the API are invalid.
3384//   If available, this exception includes details in additional properties.
3385//
3386//   * OptimisticLockException
3387//   Exception that indicates that the resource state has been modified by another
3388//   client. Retrieve the resource and then retry your request.
3389//
3390// See also, https://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/UpdateSubscription
3391func (c *Shield) UpdateSubscription(input *UpdateSubscriptionInput) (*UpdateSubscriptionOutput, error) {
3392	req, out := c.UpdateSubscriptionRequest(input)
3393	return out, req.Send()
3394}
3395
3396// UpdateSubscriptionWithContext is the same as UpdateSubscription with the addition of
3397// the ability to pass a context and additional request options.
3398//
3399// See UpdateSubscription for details on how to use this API operation.
3400//
3401// The context must be non-nil and will be used for request cancellation. If
3402// the context is nil a panic will occur. In the future the SDK may create
3403// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3404// for more information on using Contexts.
3405func (c *Shield) UpdateSubscriptionWithContext(ctx aws.Context, input *UpdateSubscriptionInput, opts ...request.Option) (*UpdateSubscriptionOutput, error) {
3406	req, out := c.UpdateSubscriptionRequest(input)
3407	req.SetContext(ctx)
3408	req.ApplyOptions(opts...)
3409	return out, req.Send()
3410}
3411
3412// Exception that indicates the specified AttackId does not exist, or the requester
3413// does not have the appropriate permissions to access the AttackId.
3414type AccessDeniedException struct {
3415	_            struct{}                  `type:"structure"`
3416	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3417
3418	Message_ *string `locationName:"message" type:"string"`
3419}
3420
3421// String returns the string representation.
3422//
3423// API parameter values that are decorated as "sensitive" in the API will not
3424// be included in the string output. The member name will be present, but the
3425// value will be replaced with "sensitive".
3426func (s AccessDeniedException) String() string {
3427	return awsutil.Prettify(s)
3428}
3429
3430// GoString returns the string representation.
3431//
3432// API parameter values that are decorated as "sensitive" in the API will not
3433// be included in the string output. The member name will be present, but the
3434// value will be replaced with "sensitive".
3435func (s AccessDeniedException) GoString() string {
3436	return s.String()
3437}
3438
3439func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
3440	return &AccessDeniedException{
3441		RespMetadata: v,
3442	}
3443}
3444
3445// Code returns the exception type name.
3446func (s *AccessDeniedException) Code() string {
3447	return "AccessDeniedException"
3448}
3449
3450// Message returns the exception's message.
3451func (s *AccessDeniedException) Message() string {
3452	if s.Message_ != nil {
3453		return *s.Message_
3454	}
3455	return ""
3456}
3457
3458// OrigErr always returns nil, satisfies awserr.Error interface.
3459func (s *AccessDeniedException) OrigErr() error {
3460	return nil
3461}
3462
3463func (s *AccessDeniedException) Error() string {
3464	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
3465}
3466
3467// Status code returns the HTTP status code for the request's response error.
3468func (s *AccessDeniedException) StatusCode() int {
3469	return s.RespMetadata.StatusCode
3470}
3471
3472// RequestID returns the service's response RequestID for request.
3473func (s *AccessDeniedException) RequestID() string {
3474	return s.RespMetadata.RequestID
3475}
3476
3477// In order to grant the necessary access to the Shield Response Team (SRT)
3478// the user submitting the request must have the iam:PassRole permission. This
3479// error indicates the user did not have the appropriate permissions. For more
3480// information, see Granting a User Permissions to Pass a Role to an Amazon
3481// Web Services Service (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html).
3482type AccessDeniedForDependencyException struct {
3483	_            struct{}                  `type:"structure"`
3484	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3485
3486	Message_ *string `locationName:"message" type:"string"`
3487}
3488
3489// String returns the string representation.
3490//
3491// API parameter values that are decorated as "sensitive" in the API will not
3492// be included in the string output. The member name will be present, but the
3493// value will be replaced with "sensitive".
3494func (s AccessDeniedForDependencyException) String() string {
3495	return awsutil.Prettify(s)
3496}
3497
3498// GoString returns the string representation.
3499//
3500// API parameter values that are decorated as "sensitive" in the API will not
3501// be included in the string output. The member name will be present, but the
3502// value will be replaced with "sensitive".
3503func (s AccessDeniedForDependencyException) GoString() string {
3504	return s.String()
3505}
3506
3507func newErrorAccessDeniedForDependencyException(v protocol.ResponseMetadata) error {
3508	return &AccessDeniedForDependencyException{
3509		RespMetadata: v,
3510	}
3511}
3512
3513// Code returns the exception type name.
3514func (s *AccessDeniedForDependencyException) Code() string {
3515	return "AccessDeniedForDependencyException"
3516}
3517
3518// Message returns the exception's message.
3519func (s *AccessDeniedForDependencyException) Message() string {
3520	if s.Message_ != nil {
3521		return *s.Message_
3522	}
3523	return ""
3524}
3525
3526// OrigErr always returns nil, satisfies awserr.Error interface.
3527func (s *AccessDeniedForDependencyException) OrigErr() error {
3528	return nil
3529}
3530
3531func (s *AccessDeniedForDependencyException) Error() string {
3532	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
3533}
3534
3535// Status code returns the HTTP status code for the request's response error.
3536func (s *AccessDeniedForDependencyException) StatusCode() int {
3537	return s.RespMetadata.StatusCode
3538}
3539
3540// RequestID returns the service's response RequestID for request.
3541func (s *AccessDeniedForDependencyException) RequestID() string {
3542	return s.RespMetadata.RequestID
3543}
3544
3545type AssociateDRTLogBucketInput struct {
3546	_ struct{} `type:"structure"`
3547
3548	// The Amazon S3 bucket that contains the logs that you want to share.
3549	//
3550	// LogBucket is a required field
3551	LogBucket *string `min:"3" type:"string" required:"true"`
3552}
3553
3554// String returns the string representation.
3555//
3556// API parameter values that are decorated as "sensitive" in the API will not
3557// be included in the string output. The member name will be present, but the
3558// value will be replaced with "sensitive".
3559func (s AssociateDRTLogBucketInput) String() string {
3560	return awsutil.Prettify(s)
3561}
3562
3563// GoString returns the string representation.
3564//
3565// API parameter values that are decorated as "sensitive" in the API will not
3566// be included in the string output. The member name will be present, but the
3567// value will be replaced with "sensitive".
3568func (s AssociateDRTLogBucketInput) GoString() string {
3569	return s.String()
3570}
3571
3572// Validate inspects the fields of the type to determine if they are valid.
3573func (s *AssociateDRTLogBucketInput) Validate() error {
3574	invalidParams := request.ErrInvalidParams{Context: "AssociateDRTLogBucketInput"}
3575	if s.LogBucket == nil {
3576		invalidParams.Add(request.NewErrParamRequired("LogBucket"))
3577	}
3578	if s.LogBucket != nil && len(*s.LogBucket) < 3 {
3579		invalidParams.Add(request.NewErrParamMinLen("LogBucket", 3))
3580	}
3581
3582	if invalidParams.Len() > 0 {
3583		return invalidParams
3584	}
3585	return nil
3586}
3587
3588// SetLogBucket sets the LogBucket field's value.
3589func (s *AssociateDRTLogBucketInput) SetLogBucket(v string) *AssociateDRTLogBucketInput {
3590	s.LogBucket = &v
3591	return s
3592}
3593
3594type AssociateDRTLogBucketOutput struct {
3595	_ struct{} `type:"structure"`
3596}
3597
3598// String returns the string representation.
3599//
3600// API parameter values that are decorated as "sensitive" in the API will not
3601// be included in the string output. The member name will be present, but the
3602// value will be replaced with "sensitive".
3603func (s AssociateDRTLogBucketOutput) String() string {
3604	return awsutil.Prettify(s)
3605}
3606
3607// GoString returns the string representation.
3608//
3609// API parameter values that are decorated as "sensitive" in the API will not
3610// be included in the string output. The member name will be present, but the
3611// value will be replaced with "sensitive".
3612func (s AssociateDRTLogBucketOutput) GoString() string {
3613	return s.String()
3614}
3615
3616type AssociateDRTRoleInput struct {
3617	_ struct{} `type:"structure"`
3618
3619	// The Amazon Resource Name (ARN) of the role the SRT will use to access your
3620	// Amazon Web Services account.
3621	//
3622	// Prior to making the AssociateDRTRole request, you must attach the AWSShieldDRTAccessPolicy
3623	// (https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy)
3624	// managed policy to this role. For more information see Attaching and Detaching
3625	// IAM Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html).
3626	//
3627	// RoleArn is a required field
3628	RoleArn *string `min:"1" type:"string" required:"true"`
3629}
3630
3631// String returns the string representation.
3632//
3633// API parameter values that are decorated as "sensitive" in the API will not
3634// be included in the string output. The member name will be present, but the
3635// value will be replaced with "sensitive".
3636func (s AssociateDRTRoleInput) String() string {
3637	return awsutil.Prettify(s)
3638}
3639
3640// GoString returns the string representation.
3641//
3642// API parameter values that are decorated as "sensitive" in the API will not
3643// be included in the string output. The member name will be present, but the
3644// value will be replaced with "sensitive".
3645func (s AssociateDRTRoleInput) GoString() string {
3646	return s.String()
3647}
3648
3649// Validate inspects the fields of the type to determine if they are valid.
3650func (s *AssociateDRTRoleInput) Validate() error {
3651	invalidParams := request.ErrInvalidParams{Context: "AssociateDRTRoleInput"}
3652	if s.RoleArn == nil {
3653		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
3654	}
3655	if s.RoleArn != nil && len(*s.RoleArn) < 1 {
3656		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 1))
3657	}
3658
3659	if invalidParams.Len() > 0 {
3660		return invalidParams
3661	}
3662	return nil
3663}
3664
3665// SetRoleArn sets the RoleArn field's value.
3666func (s *AssociateDRTRoleInput) SetRoleArn(v string) *AssociateDRTRoleInput {
3667	s.RoleArn = &v
3668	return s
3669}
3670
3671type AssociateDRTRoleOutput struct {
3672	_ struct{} `type:"structure"`
3673}
3674
3675// String returns the string representation.
3676//
3677// API parameter values that are decorated as "sensitive" in the API will not
3678// be included in the string output. The member name will be present, but the
3679// value will be replaced with "sensitive".
3680func (s AssociateDRTRoleOutput) String() string {
3681	return awsutil.Prettify(s)
3682}
3683
3684// GoString returns the string representation.
3685//
3686// API parameter values that are decorated as "sensitive" in the API will not
3687// be included in the string output. The member name will be present, but the
3688// value will be replaced with "sensitive".
3689func (s AssociateDRTRoleOutput) GoString() string {
3690	return s.String()
3691}
3692
3693type AssociateHealthCheckInput struct {
3694	_ struct{} `type:"structure"`
3695
3696	// The Amazon Resource Name (ARN) of the health check to associate with the
3697	// protection.
3698	//
3699	// HealthCheckArn is a required field
3700	HealthCheckArn *string `min:"1" type:"string" required:"true"`
3701
3702	// The unique identifier (ID) for the Protection object to add the health check
3703	// association to.
3704	//
3705	// ProtectionId is a required field
3706	ProtectionId *string `min:"1" type:"string" required:"true"`
3707}
3708
3709// String returns the string representation.
3710//
3711// API parameter values that are decorated as "sensitive" in the API will not
3712// be included in the string output. The member name will be present, but the
3713// value will be replaced with "sensitive".
3714func (s AssociateHealthCheckInput) String() string {
3715	return awsutil.Prettify(s)
3716}
3717
3718// GoString returns the string representation.
3719//
3720// API parameter values that are decorated as "sensitive" in the API will not
3721// be included in the string output. The member name will be present, but the
3722// value will be replaced with "sensitive".
3723func (s AssociateHealthCheckInput) GoString() string {
3724	return s.String()
3725}
3726
3727// Validate inspects the fields of the type to determine if they are valid.
3728func (s *AssociateHealthCheckInput) Validate() error {
3729	invalidParams := request.ErrInvalidParams{Context: "AssociateHealthCheckInput"}
3730	if s.HealthCheckArn == nil {
3731		invalidParams.Add(request.NewErrParamRequired("HealthCheckArn"))
3732	}
3733	if s.HealthCheckArn != nil && len(*s.HealthCheckArn) < 1 {
3734		invalidParams.Add(request.NewErrParamMinLen("HealthCheckArn", 1))
3735	}
3736	if s.ProtectionId == nil {
3737		invalidParams.Add(request.NewErrParamRequired("ProtectionId"))
3738	}
3739	if s.ProtectionId != nil && len(*s.ProtectionId) < 1 {
3740		invalidParams.Add(request.NewErrParamMinLen("ProtectionId", 1))
3741	}
3742
3743	if invalidParams.Len() > 0 {
3744		return invalidParams
3745	}
3746	return nil
3747}
3748
3749// SetHealthCheckArn sets the HealthCheckArn field's value.
3750func (s *AssociateHealthCheckInput) SetHealthCheckArn(v string) *AssociateHealthCheckInput {
3751	s.HealthCheckArn = &v
3752	return s
3753}
3754
3755// SetProtectionId sets the ProtectionId field's value.
3756func (s *AssociateHealthCheckInput) SetProtectionId(v string) *AssociateHealthCheckInput {
3757	s.ProtectionId = &v
3758	return s
3759}
3760
3761type AssociateHealthCheckOutput struct {
3762	_ struct{} `type:"structure"`
3763}
3764
3765// String returns the string representation.
3766//
3767// API parameter values that are decorated as "sensitive" in the API will not
3768// be included in the string output. The member name will be present, but the
3769// value will be replaced with "sensitive".
3770func (s AssociateHealthCheckOutput) String() string {
3771	return awsutil.Prettify(s)
3772}
3773
3774// GoString returns the string representation.
3775//
3776// API parameter values that are decorated as "sensitive" in the API will not
3777// be included in the string output. The member name will be present, but the
3778// value will be replaced with "sensitive".
3779func (s AssociateHealthCheckOutput) GoString() string {
3780	return s.String()
3781}
3782
3783type AssociateProactiveEngagementDetailsInput struct {
3784	_ struct{} `type:"structure"`
3785
3786	// A list of email addresses and phone numbers that the Shield Response Team
3787	// (SRT) can use to contact you for escalations to the SRT and to initiate proactive
3788	// customer support.
3789	//
3790	// To enable proactive engagement, the contact list must include at least one
3791	// phone number.
3792	//
3793	// The contacts that you provide here replace any contacts that were already
3794	// defined. If you already have contacts defined and want to use them, retrieve
3795	// the list using DescribeEmergencyContactSettings and then provide it here.
3796	//
3797	// EmergencyContactList is a required field
3798	EmergencyContactList []*EmergencyContact `type:"list" required:"true"`
3799}
3800
3801// String returns the string representation.
3802//
3803// API parameter values that are decorated as "sensitive" in the API will not
3804// be included in the string output. The member name will be present, but the
3805// value will be replaced with "sensitive".
3806func (s AssociateProactiveEngagementDetailsInput) String() string {
3807	return awsutil.Prettify(s)
3808}
3809
3810// GoString returns the string representation.
3811//
3812// API parameter values that are decorated as "sensitive" in the API will not
3813// be included in the string output. The member name will be present, but the
3814// value will be replaced with "sensitive".
3815func (s AssociateProactiveEngagementDetailsInput) GoString() string {
3816	return s.String()
3817}
3818
3819// Validate inspects the fields of the type to determine if they are valid.
3820func (s *AssociateProactiveEngagementDetailsInput) Validate() error {
3821	invalidParams := request.ErrInvalidParams{Context: "AssociateProactiveEngagementDetailsInput"}
3822	if s.EmergencyContactList == nil {
3823		invalidParams.Add(request.NewErrParamRequired("EmergencyContactList"))
3824	}
3825	if s.EmergencyContactList != nil {
3826		for i, v := range s.EmergencyContactList {
3827			if v == nil {
3828				continue
3829			}
3830			if err := v.Validate(); err != nil {
3831				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "EmergencyContactList", i), err.(request.ErrInvalidParams))
3832			}
3833		}
3834	}
3835
3836	if invalidParams.Len() > 0 {
3837		return invalidParams
3838	}
3839	return nil
3840}
3841
3842// SetEmergencyContactList sets the EmergencyContactList field's value.
3843func (s *AssociateProactiveEngagementDetailsInput) SetEmergencyContactList(v []*EmergencyContact) *AssociateProactiveEngagementDetailsInput {
3844	s.EmergencyContactList = v
3845	return s
3846}
3847
3848type AssociateProactiveEngagementDetailsOutput struct {
3849	_ struct{} `type:"structure"`
3850}
3851
3852// String returns the string representation.
3853//
3854// API parameter values that are decorated as "sensitive" in the API will not
3855// be included in the string output. The member name will be present, but the
3856// value will be replaced with "sensitive".
3857func (s AssociateProactiveEngagementDetailsOutput) String() string {
3858	return awsutil.Prettify(s)
3859}
3860
3861// GoString returns the string representation.
3862//
3863// API parameter values that are decorated as "sensitive" in the API will not
3864// be included in the string output. The member name will be present, but the
3865// value will be replaced with "sensitive".
3866func (s AssociateProactiveEngagementDetailsOutput) GoString() string {
3867	return s.String()
3868}
3869
3870// The details of a DDoS attack.
3871type AttackDetail struct {
3872	_ struct{} `type:"structure"`
3873
3874	// List of counters that describe the attack for the specified time period.
3875	AttackCounters []*SummarizedCounter `type:"list"`
3876
3877	// The unique identifier (ID) of the attack.
3878	AttackId *string `min:"1" type:"string"`
3879
3880	// The array of objects that provide details of the Shield event.
3881	//
3882	// For infrastructure layer events (L3 and L4 events) after January 25, 2021,
3883	// you can view metrics for top contributors in Amazon CloudWatch metrics. For
3884	// more information, see Shield metrics and alarms (https://docs.aws.amazon.com/waf/latest/developerguide/monitoring-cloudwatch.html#set-ddos-alarms)
3885	// in the WAF Developer Guide.
3886	AttackProperties []*AttackProperty `type:"list"`
3887
3888	// The time the attack ended, in Unix time in seconds. For more information
3889	// see timestamp (http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#parameter-types).
3890	EndTime *time.Time `type:"timestamp"`
3891
3892	// List of mitigation actions taken for the attack.
3893	Mitigations []*Mitigation `type:"list"`
3894
3895	// The ARN (Amazon Resource Name) of the resource that was attacked.
3896	ResourceArn *string `min:"1" type:"string"`
3897
3898	// The time the attack started, in Unix time in seconds. For more information
3899	// see timestamp (http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#parameter-types).
3900	StartTime *time.Time `type:"timestamp"`
3901
3902	// If applicable, additional detail about the resource being attacked, for example,
3903	// IP address or URL.
3904	SubResources []*SubResourceSummary `type:"list"`
3905}
3906
3907// String returns the string representation.
3908//
3909// API parameter values that are decorated as "sensitive" in the API will not
3910// be included in the string output. The member name will be present, but the
3911// value will be replaced with "sensitive".
3912func (s AttackDetail) String() string {
3913	return awsutil.Prettify(s)
3914}
3915
3916// GoString returns the string representation.
3917//
3918// API parameter values that are decorated as "sensitive" in the API will not
3919// be included in the string output. The member name will be present, but the
3920// value will be replaced with "sensitive".
3921func (s AttackDetail) GoString() string {
3922	return s.String()
3923}
3924
3925// SetAttackCounters sets the AttackCounters field's value.
3926func (s *AttackDetail) SetAttackCounters(v []*SummarizedCounter) *AttackDetail {
3927	s.AttackCounters = v
3928	return s
3929}
3930
3931// SetAttackId sets the AttackId field's value.
3932func (s *AttackDetail) SetAttackId(v string) *AttackDetail {
3933	s.AttackId = &v
3934	return s
3935}
3936
3937// SetAttackProperties sets the AttackProperties field's value.
3938func (s *AttackDetail) SetAttackProperties(v []*AttackProperty) *AttackDetail {
3939	s.AttackProperties = v
3940	return s
3941}
3942
3943// SetEndTime sets the EndTime field's value.
3944func (s *AttackDetail) SetEndTime(v time.Time) *AttackDetail {
3945	s.EndTime = &v
3946	return s
3947}
3948
3949// SetMitigations sets the Mitigations field's value.
3950func (s *AttackDetail) SetMitigations(v []*Mitigation) *AttackDetail {
3951	s.Mitigations = v
3952	return s
3953}
3954
3955// SetResourceArn sets the ResourceArn field's value.
3956func (s *AttackDetail) SetResourceArn(v string) *AttackDetail {
3957	s.ResourceArn = &v
3958	return s
3959}
3960
3961// SetStartTime sets the StartTime field's value.
3962func (s *AttackDetail) SetStartTime(v time.Time) *AttackDetail {
3963	s.StartTime = &v
3964	return s
3965}
3966
3967// SetSubResources sets the SubResources field's value.
3968func (s *AttackDetail) SetSubResources(v []*SubResourceSummary) *AttackDetail {
3969	s.SubResources = v
3970	return s
3971}
3972
3973// Details of a Shield event. This is provided as part of an AttackDetail.
3974type AttackProperty struct {
3975	_ struct{} `type:"structure"`
3976
3977	// The type of Shield event that was observed. NETWORK indicates layer 3 and
3978	// layer 4 events and APPLICATION indicates layer 7 events.
3979	//
3980	// For infrastructure layer events (L3 and L4 events) after January 25, 2021,
3981	// you can view metrics for top contributors in Amazon CloudWatch metrics. For
3982	// more information, see Shield metrics and alarms (https://docs.aws.amazon.com/waf/latest/developerguide/monitoring-cloudwatch.html#set-ddos-alarms)
3983	// in the WAF Developer Guide.
3984	AttackLayer *string `type:"string" enum:"AttackLayer"`
3985
3986	// Defines the Shield event property information that is provided. The WORDPRESS_PINGBACK_REFLECTOR
3987	// and WORDPRESS_PINGBACK_SOURCE values are valid only for WordPress reflective
3988	// pingback events.
3989	AttackPropertyIdentifier *string `type:"string" enum:"AttackPropertyIdentifier"`
3990
3991	// Contributor objects for the top five contributors to a Shield event.
3992	TopContributors []*Contributor `type:"list"`
3993
3994	// The total contributions made to this Shield event by all contributors.
3995	Total *int64 `type:"long"`
3996
3997	// The unit used for the Contributor Value property.
3998	Unit *string `type:"string" enum:"Unit"`
3999}
4000
4001// String returns the string representation.
4002//
4003// API parameter values that are decorated as "sensitive" in the API will not
4004// be included in the string output. The member name will be present, but the
4005// value will be replaced with "sensitive".
4006func (s AttackProperty) String() string {
4007	return awsutil.Prettify(s)
4008}
4009
4010// GoString returns the string representation.
4011//
4012// API parameter values that are decorated as "sensitive" in the API will not
4013// be included in the string output. The member name will be present, but the
4014// value will be replaced with "sensitive".
4015func (s AttackProperty) GoString() string {
4016	return s.String()
4017}
4018
4019// SetAttackLayer sets the AttackLayer field's value.
4020func (s *AttackProperty) SetAttackLayer(v string) *AttackProperty {
4021	s.AttackLayer = &v
4022	return s
4023}
4024
4025// SetAttackPropertyIdentifier sets the AttackPropertyIdentifier field's value.
4026func (s *AttackProperty) SetAttackPropertyIdentifier(v string) *AttackProperty {
4027	s.AttackPropertyIdentifier = &v
4028	return s
4029}
4030
4031// SetTopContributors sets the TopContributors field's value.
4032func (s *AttackProperty) SetTopContributors(v []*Contributor) *AttackProperty {
4033	s.TopContributors = v
4034	return s
4035}
4036
4037// SetTotal sets the Total field's value.
4038func (s *AttackProperty) SetTotal(v int64) *AttackProperty {
4039	s.Total = &v
4040	return s
4041}
4042
4043// SetUnit sets the Unit field's value.
4044func (s *AttackProperty) SetUnit(v string) *AttackProperty {
4045	s.Unit = &v
4046	return s
4047}
4048
4049// A single attack statistics data record. This is returned by DescribeAttackStatistics
4050// along with a time range indicating the time period that the attack statistics
4051// apply to.
4052type AttackStatisticsDataItem struct {
4053	_ struct{} `type:"structure"`
4054
4055	// The number of attacks detected during the time period. This is always present,
4056	// but might be zero.
4057	//
4058	// AttackCount is a required field
4059	AttackCount *int64 `type:"long" required:"true"`
4060
4061	// Information about the volume of attacks during the time period. If the accompanying
4062	// AttackCount is zero, this setting might be empty.
4063	AttackVolume *AttackVolume `type:"structure"`
4064}
4065
4066// String returns the string representation.
4067//
4068// API parameter values that are decorated as "sensitive" in the API will not
4069// be included in the string output. The member name will be present, but the
4070// value will be replaced with "sensitive".
4071func (s AttackStatisticsDataItem) String() string {
4072	return awsutil.Prettify(s)
4073}
4074
4075// GoString returns the string representation.
4076//
4077// API parameter values that are decorated as "sensitive" in the API will not
4078// be included in the string output. The member name will be present, but the
4079// value will be replaced with "sensitive".
4080func (s AttackStatisticsDataItem) GoString() string {
4081	return s.String()
4082}
4083
4084// SetAttackCount sets the AttackCount field's value.
4085func (s *AttackStatisticsDataItem) SetAttackCount(v int64) *AttackStatisticsDataItem {
4086	s.AttackCount = &v
4087	return s
4088}
4089
4090// SetAttackVolume sets the AttackVolume field's value.
4091func (s *AttackStatisticsDataItem) SetAttackVolume(v *AttackVolume) *AttackStatisticsDataItem {
4092	s.AttackVolume = v
4093	return s
4094}
4095
4096// Summarizes all DDoS attacks for a specified time period.
4097type AttackSummary struct {
4098	_ struct{} `type:"structure"`
4099
4100	// The unique identifier (ID) of the attack.
4101	AttackId *string `type:"string"`
4102
4103	// The list of attacks for a specified time period.
4104	AttackVectors []*AttackVectorDescription `type:"list"`
4105
4106	// The end time of the attack, in Unix time in seconds. For more information
4107	// see timestamp (http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#parameter-types).
4108	EndTime *time.Time `type:"timestamp"`
4109
4110	// The ARN (Amazon Resource Name) of the resource that was attacked.
4111	ResourceArn *string `type:"string"`
4112
4113	// The start time of the attack, in Unix time in seconds. For more information
4114	// see timestamp (http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#parameter-types).
4115	StartTime *time.Time `type:"timestamp"`
4116}
4117
4118// String returns the string representation.
4119//
4120// API parameter values that are decorated as "sensitive" in the API will not
4121// be included in the string output. The member name will be present, but the
4122// value will be replaced with "sensitive".
4123func (s AttackSummary) String() string {
4124	return awsutil.Prettify(s)
4125}
4126
4127// GoString returns the string representation.
4128//
4129// API parameter values that are decorated as "sensitive" in the API will not
4130// be included in the string output. The member name will be present, but the
4131// value will be replaced with "sensitive".
4132func (s AttackSummary) GoString() string {
4133	return s.String()
4134}
4135
4136// SetAttackId sets the AttackId field's value.
4137func (s *AttackSummary) SetAttackId(v string) *AttackSummary {
4138	s.AttackId = &v
4139	return s
4140}
4141
4142// SetAttackVectors sets the AttackVectors field's value.
4143func (s *AttackSummary) SetAttackVectors(v []*AttackVectorDescription) *AttackSummary {
4144	s.AttackVectors = v
4145	return s
4146}
4147
4148// SetEndTime sets the EndTime field's value.
4149func (s *AttackSummary) SetEndTime(v time.Time) *AttackSummary {
4150	s.EndTime = &v
4151	return s
4152}
4153
4154// SetResourceArn sets the ResourceArn field's value.
4155func (s *AttackSummary) SetResourceArn(v string) *AttackSummary {
4156	s.ResourceArn = &v
4157	return s
4158}
4159
4160// SetStartTime sets the StartTime field's value.
4161func (s *AttackSummary) SetStartTime(v time.Time) *AttackSummary {
4162	s.StartTime = &v
4163	return s
4164}
4165
4166// Describes the attack.
4167type AttackVectorDescription struct {
4168	_ struct{} `type:"structure"`
4169
4170	// The attack type. Valid values:
4171	//
4172	//    * UDP_TRAFFIC
4173	//
4174	//    * UDP_FRAGMENT
4175	//
4176	//    * GENERIC_UDP_REFLECTION
4177	//
4178	//    * DNS_REFLECTION
4179	//
4180	//    * NTP_REFLECTION
4181	//
4182	//    * CHARGEN_REFLECTION
4183	//
4184	//    * SSDP_REFLECTION
4185	//
4186	//    * PORT_MAPPER
4187	//
4188	//    * RIP_REFLECTION
4189	//
4190	//    * SNMP_REFLECTION
4191	//
4192	//    * MSSQL_REFLECTION
4193	//
4194	//    * NET_BIOS_REFLECTION
4195	//
4196	//    * SYN_FLOOD
4197	//
4198	//    * ACK_FLOOD
4199	//
4200	//    * REQUEST_FLOOD
4201	//
4202	//    * HTTP_REFLECTION
4203	//
4204	//    * UDS_REFLECTION
4205	//
4206	//    * MEMCACHED_REFLECTION
4207	//
4208	// VectorType is a required field
4209	VectorType *string `type:"string" required:"true"`
4210}
4211
4212// String returns the string representation.
4213//
4214// API parameter values that are decorated as "sensitive" in the API will not
4215// be included in the string output. The member name will be present, but the
4216// value will be replaced with "sensitive".
4217func (s AttackVectorDescription) String() string {
4218	return awsutil.Prettify(s)
4219}
4220
4221// GoString returns the string representation.
4222//
4223// API parameter values that are decorated as "sensitive" in the API will not
4224// be included in the string output. The member name will be present, but the
4225// value will be replaced with "sensitive".
4226func (s AttackVectorDescription) GoString() string {
4227	return s.String()
4228}
4229
4230// SetVectorType sets the VectorType field's value.
4231func (s *AttackVectorDescription) SetVectorType(v string) *AttackVectorDescription {
4232	s.VectorType = &v
4233	return s
4234}
4235
4236// Information about the volume of attacks during the time period, included
4237// in an AttackStatisticsDataItem. If the accompanying AttackCount in the statistics
4238// object is zero, this setting might be empty.
4239type AttackVolume struct {
4240	_ struct{} `type:"structure"`
4241
4242	// A statistics object that uses bits per second as the unit. This is included
4243	// for network level attacks.
4244	BitsPerSecond *AttackVolumeStatistics `type:"structure"`
4245
4246	// A statistics object that uses packets per second as the unit. This is included
4247	// for network level attacks.
4248	PacketsPerSecond *AttackVolumeStatistics `type:"structure"`
4249
4250	// A statistics object that uses requests per second as the unit. This is included
4251	// for application level attacks, and is only available for accounts that are
4252	// subscribed to Shield Advanced.
4253	RequestsPerSecond *AttackVolumeStatistics `type:"structure"`
4254}
4255
4256// String returns the string representation.
4257//
4258// API parameter values that are decorated as "sensitive" in the API will not
4259// be included in the string output. The member name will be present, but the
4260// value will be replaced with "sensitive".
4261func (s AttackVolume) String() string {
4262	return awsutil.Prettify(s)
4263}
4264
4265// GoString returns the string representation.
4266//
4267// API parameter values that are decorated as "sensitive" in the API will not
4268// be included in the string output. The member name will be present, but the
4269// value will be replaced with "sensitive".
4270func (s AttackVolume) GoString() string {
4271	return s.String()
4272}
4273
4274// SetBitsPerSecond sets the BitsPerSecond field's value.
4275func (s *AttackVolume) SetBitsPerSecond(v *AttackVolumeStatistics) *AttackVolume {
4276	s.BitsPerSecond = v
4277	return s
4278}
4279
4280// SetPacketsPerSecond sets the PacketsPerSecond field's value.
4281func (s *AttackVolume) SetPacketsPerSecond(v *AttackVolumeStatistics) *AttackVolume {
4282	s.PacketsPerSecond = v
4283	return s
4284}
4285
4286// SetRequestsPerSecond sets the RequestsPerSecond field's value.
4287func (s *AttackVolume) SetRequestsPerSecond(v *AttackVolumeStatistics) *AttackVolume {
4288	s.RequestsPerSecond = v
4289	return s
4290}
4291
4292// Statistics objects for the various data types in AttackVolume.
4293type AttackVolumeStatistics struct {
4294	_ struct{} `type:"structure"`
4295
4296	// The maximum attack volume observed for the given unit.
4297	//
4298	// Max is a required field
4299	Max *float64 `type:"double" required:"true"`
4300}
4301
4302// String returns the string representation.
4303//
4304// API parameter values that are decorated as "sensitive" in the API will not
4305// be included in the string output. The member name will be present, but the
4306// value will be replaced with "sensitive".
4307func (s AttackVolumeStatistics) String() string {
4308	return awsutil.Prettify(s)
4309}
4310
4311// GoString returns the string representation.
4312//
4313// API parameter values that are decorated as "sensitive" in the API will not
4314// be included in the string output. The member name will be present, but the
4315// value will be replaced with "sensitive".
4316func (s AttackVolumeStatistics) GoString() string {
4317	return s.String()
4318}
4319
4320// SetMax sets the Max field's value.
4321func (s *AttackVolumeStatistics) SetMax(v float64) *AttackVolumeStatistics {
4322	s.Max = &v
4323	return s
4324}
4325
4326// A contributor to the attack and their contribution.
4327type Contributor struct {
4328	_ struct{} `type:"structure"`
4329
4330	// The name of the contributor. This is dependent on the AttackPropertyIdentifier.
4331	// For example, if the AttackPropertyIdentifier is SOURCE_COUNTRY, the Name
4332	// could be United States.
4333	Name *string `type:"string"`
4334
4335	// The contribution of this contributor expressed in Protection units. For example
4336	// 10,000.
4337	Value *int64 `type:"long"`
4338}
4339
4340// String returns the string representation.
4341//
4342// API parameter values that are decorated as "sensitive" in the API will not
4343// be included in the string output. The member name will be present, but the
4344// value will be replaced with "sensitive".
4345func (s Contributor) String() string {
4346	return awsutil.Prettify(s)
4347}
4348
4349// GoString returns the string representation.
4350//
4351// API parameter values that are decorated as "sensitive" in the API will not
4352// be included in the string output. The member name will be present, but the
4353// value will be replaced with "sensitive".
4354func (s Contributor) GoString() string {
4355	return s.String()
4356}
4357
4358// SetName sets the Name field's value.
4359func (s *Contributor) SetName(v string) *Contributor {
4360	s.Name = &v
4361	return s
4362}
4363
4364// SetValue sets the Value field's value.
4365func (s *Contributor) SetValue(v int64) *Contributor {
4366	s.Value = &v
4367	return s
4368}
4369
4370type CreateProtectionGroupInput struct {
4371	_ struct{} `type:"structure"`
4372
4373	// Defines how Shield combines resource data for the group in order to detect,
4374	// mitigate, and report events.
4375	//
4376	//    * Sum - Use the total traffic across the group. This is a good choice
4377	//    for most cases. Examples include Elastic IP addresses for EC2 instances
4378	//    that scale manually or automatically.
4379	//
4380	//    * Mean - Use the average of the traffic across the group. This is a good
4381	//    choice for resources that share traffic uniformly. Examples include accelerators
4382	//    and load balancers.
4383	//
4384	//    * Max - Use the highest traffic from each resource. This is useful for
4385	//    resources that don't share traffic and for resources that share that traffic
4386	//    in a non-uniform way. Examples include Amazon CloudFront and origin resources
4387	//    for CloudFront distributions.
4388	//
4389	// Aggregation is a required field
4390	Aggregation *string `type:"string" required:"true" enum:"ProtectionGroupAggregation"`
4391
4392	// The Amazon Resource Names (ARNs) of the resources to include in the protection
4393	// group. You must set this when you set Pattern to ARBITRARY and you must not
4394	// set it for any other Pattern setting.
4395	Members []*string `type:"list"`
4396
4397	// The criteria to use to choose the protected resources for inclusion in the
4398	// group. You can include all resources that have protections, provide a list
4399	// of resource Amazon Resource Names (ARNs), or include all resources of a specified
4400	// resource type.
4401	//
4402	// Pattern is a required field
4403	Pattern *string `type:"string" required:"true" enum:"ProtectionGroupPattern"`
4404
4405	// The name of the protection group. You use this to identify the protection
4406	// group in lists and to manage the protection group, for example to update,
4407	// delete, or describe it.
4408	//
4409	// ProtectionGroupId is a required field
4410	ProtectionGroupId *string `min:"1" type:"string" required:"true"`
4411
4412	// The resource type to include in the protection group. All protected resources
4413	// of this type are included in the protection group. Newly protected resources
4414	// of this type are automatically added to the group. You must set this when
4415	// you set Pattern to BY_RESOURCE_TYPE and you must not set it for any other
4416	// Pattern setting.
4417	ResourceType *string `type:"string" enum:"ProtectedResourceType"`
4418
4419	// One or more tag key-value pairs for the protection group.
4420	Tags []*Tag `type:"list"`
4421}
4422
4423// String returns the string representation.
4424//
4425// API parameter values that are decorated as "sensitive" in the API will not
4426// be included in the string output. The member name will be present, but the
4427// value will be replaced with "sensitive".
4428func (s CreateProtectionGroupInput) String() string {
4429	return awsutil.Prettify(s)
4430}
4431
4432// GoString returns the string representation.
4433//
4434// API parameter values that are decorated as "sensitive" in the API will not
4435// be included in the string output. The member name will be present, but the
4436// value will be replaced with "sensitive".
4437func (s CreateProtectionGroupInput) GoString() string {
4438	return s.String()
4439}
4440
4441// Validate inspects the fields of the type to determine if they are valid.
4442func (s *CreateProtectionGroupInput) Validate() error {
4443	invalidParams := request.ErrInvalidParams{Context: "CreateProtectionGroupInput"}
4444	if s.Aggregation == nil {
4445		invalidParams.Add(request.NewErrParamRequired("Aggregation"))
4446	}
4447	if s.Pattern == nil {
4448		invalidParams.Add(request.NewErrParamRequired("Pattern"))
4449	}
4450	if s.ProtectionGroupId == nil {
4451		invalidParams.Add(request.NewErrParamRequired("ProtectionGroupId"))
4452	}
4453	if s.ProtectionGroupId != nil && len(*s.ProtectionGroupId) < 1 {
4454		invalidParams.Add(request.NewErrParamMinLen("ProtectionGroupId", 1))
4455	}
4456	if s.Tags != nil {
4457		for i, v := range s.Tags {
4458			if v == nil {
4459				continue
4460			}
4461			if err := v.Validate(); err != nil {
4462				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
4463			}
4464		}
4465	}
4466
4467	if invalidParams.Len() > 0 {
4468		return invalidParams
4469	}
4470	return nil
4471}
4472
4473// SetAggregation sets the Aggregation field's value.
4474func (s *CreateProtectionGroupInput) SetAggregation(v string) *CreateProtectionGroupInput {
4475	s.Aggregation = &v
4476	return s
4477}
4478
4479// SetMembers sets the Members field's value.
4480func (s *CreateProtectionGroupInput) SetMembers(v []*string) *CreateProtectionGroupInput {
4481	s.Members = v
4482	return s
4483}
4484
4485// SetPattern sets the Pattern field's value.
4486func (s *CreateProtectionGroupInput) SetPattern(v string) *CreateProtectionGroupInput {
4487	s.Pattern = &v
4488	return s
4489}
4490
4491// SetProtectionGroupId sets the ProtectionGroupId field's value.
4492func (s *CreateProtectionGroupInput) SetProtectionGroupId(v string) *CreateProtectionGroupInput {
4493	s.ProtectionGroupId = &v
4494	return s
4495}
4496
4497// SetResourceType sets the ResourceType field's value.
4498func (s *CreateProtectionGroupInput) SetResourceType(v string) *CreateProtectionGroupInput {
4499	s.ResourceType = &v
4500	return s
4501}
4502
4503// SetTags sets the Tags field's value.
4504func (s *CreateProtectionGroupInput) SetTags(v []*Tag) *CreateProtectionGroupInput {
4505	s.Tags = v
4506	return s
4507}
4508
4509type CreateProtectionGroupOutput struct {
4510	_ struct{} `type:"structure"`
4511}
4512
4513// String returns the string representation.
4514//
4515// API parameter values that are decorated as "sensitive" in the API will not
4516// be included in the string output. The member name will be present, but the
4517// value will be replaced with "sensitive".
4518func (s CreateProtectionGroupOutput) String() string {
4519	return awsutil.Prettify(s)
4520}
4521
4522// GoString returns the string representation.
4523//
4524// API parameter values that are decorated as "sensitive" in the API will not
4525// be included in the string output. The member name will be present, but the
4526// value will be replaced with "sensitive".
4527func (s CreateProtectionGroupOutput) GoString() string {
4528	return s.String()
4529}
4530
4531type CreateProtectionInput struct {
4532	_ struct{} `type:"structure"`
4533
4534	// Friendly name for the Protection you are creating.
4535	//
4536	// Name is a required field
4537	Name *string `min:"1" type:"string" required:"true"`
4538
4539	// The ARN (Amazon Resource Name) of the resource to be protected.
4540	//
4541	// The ARN should be in one of the following formats:
4542	//
4543	//    * For an Application Load Balancer: arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id
4544	//
4545	//    * For an Elastic Load Balancer (Classic Load Balancer): arn:aws:elasticloadbalancing:region:account-id:loadbalancer/load-balancer-name
4546	//
4547	//    * For an Amazon CloudFront distribution: arn:aws:cloudfront::account-id:distribution/distribution-id
4548	//
4549	//    * For an Global Accelerator accelerator: arn:aws:globalaccelerator::account-id:accelerator/accelerator-id
4550	//
4551	//    * For Amazon Route 53: arn:aws:route53:::hostedzone/hosted-zone-id
4552	//
4553	//    * For an Elastic IP address: arn:aws:ec2:region:account-id:eip-allocation/allocation-id
4554	//
4555	// ResourceArn is a required field
4556	ResourceArn *string `min:"1" type:"string" required:"true"`
4557
4558	// One or more tag key-value pairs for the Protection object that is created.
4559	Tags []*Tag `type:"list"`
4560}
4561
4562// String returns the string representation.
4563//
4564// API parameter values that are decorated as "sensitive" in the API will not
4565// be included in the string output. The member name will be present, but the
4566// value will be replaced with "sensitive".
4567func (s CreateProtectionInput) String() string {
4568	return awsutil.Prettify(s)
4569}
4570
4571// GoString returns the string representation.
4572//
4573// API parameter values that are decorated as "sensitive" in the API will not
4574// be included in the string output. The member name will be present, but the
4575// value will be replaced with "sensitive".
4576func (s CreateProtectionInput) GoString() string {
4577	return s.String()
4578}
4579
4580// Validate inspects the fields of the type to determine if they are valid.
4581func (s *CreateProtectionInput) Validate() error {
4582	invalidParams := request.ErrInvalidParams{Context: "CreateProtectionInput"}
4583	if s.Name == nil {
4584		invalidParams.Add(request.NewErrParamRequired("Name"))
4585	}
4586	if s.Name != nil && len(*s.Name) < 1 {
4587		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
4588	}
4589	if s.ResourceArn == nil {
4590		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
4591	}
4592	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
4593		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
4594	}
4595	if s.Tags != nil {
4596		for i, v := range s.Tags {
4597			if v == nil {
4598				continue
4599			}
4600			if err := v.Validate(); err != nil {
4601				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
4602			}
4603		}
4604	}
4605
4606	if invalidParams.Len() > 0 {
4607		return invalidParams
4608	}
4609	return nil
4610}
4611
4612// SetName sets the Name field's value.
4613func (s *CreateProtectionInput) SetName(v string) *CreateProtectionInput {
4614	s.Name = &v
4615	return s
4616}
4617
4618// SetResourceArn sets the ResourceArn field's value.
4619func (s *CreateProtectionInput) SetResourceArn(v string) *CreateProtectionInput {
4620	s.ResourceArn = &v
4621	return s
4622}
4623
4624// SetTags sets the Tags field's value.
4625func (s *CreateProtectionInput) SetTags(v []*Tag) *CreateProtectionInput {
4626	s.Tags = v
4627	return s
4628}
4629
4630type CreateProtectionOutput struct {
4631	_ struct{} `type:"structure"`
4632
4633	// The unique identifier (ID) for the Protection object that is created.
4634	ProtectionId *string `min:"1" type:"string"`
4635}
4636
4637// String returns the string representation.
4638//
4639// API parameter values that are decorated as "sensitive" in the API will not
4640// be included in the string output. The member name will be present, but the
4641// value will be replaced with "sensitive".
4642func (s CreateProtectionOutput) String() string {
4643	return awsutil.Prettify(s)
4644}
4645
4646// GoString returns the string representation.
4647//
4648// API parameter values that are decorated as "sensitive" in the API will not
4649// be included in the string output. The member name will be present, but the
4650// value will be replaced with "sensitive".
4651func (s CreateProtectionOutput) GoString() string {
4652	return s.String()
4653}
4654
4655// SetProtectionId sets the ProtectionId field's value.
4656func (s *CreateProtectionOutput) SetProtectionId(v string) *CreateProtectionOutput {
4657	s.ProtectionId = &v
4658	return s
4659}
4660
4661type CreateSubscriptionInput struct {
4662	_ struct{} `type:"structure"`
4663}
4664
4665// String returns the string representation.
4666//
4667// API parameter values that are decorated as "sensitive" in the API will not
4668// be included in the string output. The member name will be present, but the
4669// value will be replaced with "sensitive".
4670func (s CreateSubscriptionInput) String() string {
4671	return awsutil.Prettify(s)
4672}
4673
4674// GoString returns the string representation.
4675//
4676// API parameter values that are decorated as "sensitive" in the API will not
4677// be included in the string output. The member name will be present, but the
4678// value will be replaced with "sensitive".
4679func (s CreateSubscriptionInput) GoString() string {
4680	return s.String()
4681}
4682
4683type CreateSubscriptionOutput struct {
4684	_ struct{} `type:"structure"`
4685}
4686
4687// String returns the string representation.
4688//
4689// API parameter values that are decorated as "sensitive" in the API will not
4690// be included in the string output. The member name will be present, but the
4691// value will be replaced with "sensitive".
4692func (s CreateSubscriptionOutput) String() string {
4693	return awsutil.Prettify(s)
4694}
4695
4696// GoString returns the string representation.
4697//
4698// API parameter values that are decorated as "sensitive" in the API will not
4699// be included in the string output. The member name will be present, but the
4700// value will be replaced with "sensitive".
4701func (s CreateSubscriptionOutput) GoString() string {
4702	return s.String()
4703}
4704
4705type DeleteProtectionGroupInput struct {
4706	_ struct{} `type:"structure"`
4707
4708	// The name of the protection group. You use this to identify the protection
4709	// group in lists and to manage the protection group, for example to update,
4710	// delete, or describe it.
4711	//
4712	// ProtectionGroupId is a required field
4713	ProtectionGroupId *string `min:"1" type:"string" required:"true"`
4714}
4715
4716// String returns the string representation.
4717//
4718// API parameter values that are decorated as "sensitive" in the API will not
4719// be included in the string output. The member name will be present, but the
4720// value will be replaced with "sensitive".
4721func (s DeleteProtectionGroupInput) String() string {
4722	return awsutil.Prettify(s)
4723}
4724
4725// GoString returns the string representation.
4726//
4727// API parameter values that are decorated as "sensitive" in the API will not
4728// be included in the string output. The member name will be present, but the
4729// value will be replaced with "sensitive".
4730func (s DeleteProtectionGroupInput) GoString() string {
4731	return s.String()
4732}
4733
4734// Validate inspects the fields of the type to determine if they are valid.
4735func (s *DeleteProtectionGroupInput) Validate() error {
4736	invalidParams := request.ErrInvalidParams{Context: "DeleteProtectionGroupInput"}
4737	if s.ProtectionGroupId == nil {
4738		invalidParams.Add(request.NewErrParamRequired("ProtectionGroupId"))
4739	}
4740	if s.ProtectionGroupId != nil && len(*s.ProtectionGroupId) < 1 {
4741		invalidParams.Add(request.NewErrParamMinLen("ProtectionGroupId", 1))
4742	}
4743
4744	if invalidParams.Len() > 0 {
4745		return invalidParams
4746	}
4747	return nil
4748}
4749
4750// SetProtectionGroupId sets the ProtectionGroupId field's value.
4751func (s *DeleteProtectionGroupInput) SetProtectionGroupId(v string) *DeleteProtectionGroupInput {
4752	s.ProtectionGroupId = &v
4753	return s
4754}
4755
4756type DeleteProtectionGroupOutput struct {
4757	_ struct{} `type:"structure"`
4758}
4759
4760// String returns the string representation.
4761//
4762// API parameter values that are decorated as "sensitive" in the API will not
4763// be included in the string output. The member name will be present, but the
4764// value will be replaced with "sensitive".
4765func (s DeleteProtectionGroupOutput) String() string {
4766	return awsutil.Prettify(s)
4767}
4768
4769// GoString returns the string representation.
4770//
4771// API parameter values that are decorated as "sensitive" in the API will not
4772// be included in the string output. The member name will be present, but the
4773// value will be replaced with "sensitive".
4774func (s DeleteProtectionGroupOutput) GoString() string {
4775	return s.String()
4776}
4777
4778type DeleteProtectionInput struct {
4779	_ struct{} `type:"structure"`
4780
4781	// The unique identifier (ID) for the Protection object to be deleted.
4782	//
4783	// ProtectionId is a required field
4784	ProtectionId *string `min:"1" type:"string" required:"true"`
4785}
4786
4787// String returns the string representation.
4788//
4789// API parameter values that are decorated as "sensitive" in the API will not
4790// be included in the string output. The member name will be present, but the
4791// value will be replaced with "sensitive".
4792func (s DeleteProtectionInput) String() string {
4793	return awsutil.Prettify(s)
4794}
4795
4796// GoString returns the string representation.
4797//
4798// API parameter values that are decorated as "sensitive" in the API will not
4799// be included in the string output. The member name will be present, but the
4800// value will be replaced with "sensitive".
4801func (s DeleteProtectionInput) GoString() string {
4802	return s.String()
4803}
4804
4805// Validate inspects the fields of the type to determine if they are valid.
4806func (s *DeleteProtectionInput) Validate() error {
4807	invalidParams := request.ErrInvalidParams{Context: "DeleteProtectionInput"}
4808	if s.ProtectionId == nil {
4809		invalidParams.Add(request.NewErrParamRequired("ProtectionId"))
4810	}
4811	if s.ProtectionId != nil && len(*s.ProtectionId) < 1 {
4812		invalidParams.Add(request.NewErrParamMinLen("ProtectionId", 1))
4813	}
4814
4815	if invalidParams.Len() > 0 {
4816		return invalidParams
4817	}
4818	return nil
4819}
4820
4821// SetProtectionId sets the ProtectionId field's value.
4822func (s *DeleteProtectionInput) SetProtectionId(v string) *DeleteProtectionInput {
4823	s.ProtectionId = &v
4824	return s
4825}
4826
4827type DeleteProtectionOutput struct {
4828	_ struct{} `type:"structure"`
4829}
4830
4831// String returns the string representation.
4832//
4833// API parameter values that are decorated as "sensitive" in the API will not
4834// be included in the string output. The member name will be present, but the
4835// value will be replaced with "sensitive".
4836func (s DeleteProtectionOutput) String() string {
4837	return awsutil.Prettify(s)
4838}
4839
4840// GoString returns the string representation.
4841//
4842// API parameter values that are decorated as "sensitive" in the API will not
4843// be included in the string output. The member name will be present, but the
4844// value will be replaced with "sensitive".
4845func (s DeleteProtectionOutput) GoString() string {
4846	return s.String()
4847}
4848
4849// Deprecated: DeleteSubscriptionInput has been deprecated
4850type DeleteSubscriptionInput struct {
4851	_ struct{} `deprecated:"true" type:"structure"`
4852}
4853
4854// String returns the string representation.
4855//
4856// API parameter values that are decorated as "sensitive" in the API will not
4857// be included in the string output. The member name will be present, but the
4858// value will be replaced with "sensitive".
4859func (s DeleteSubscriptionInput) String() string {
4860	return awsutil.Prettify(s)
4861}
4862
4863// GoString returns the string representation.
4864//
4865// API parameter values that are decorated as "sensitive" in the API will not
4866// be included in the string output. The member name will be present, but the
4867// value will be replaced with "sensitive".
4868func (s DeleteSubscriptionInput) GoString() string {
4869	return s.String()
4870}
4871
4872// Deprecated: DeleteSubscriptionOutput has been deprecated
4873type DeleteSubscriptionOutput struct {
4874	_ struct{} `deprecated:"true" type:"structure"`
4875}
4876
4877// String returns the string representation.
4878//
4879// API parameter values that are decorated as "sensitive" in the API will not
4880// be included in the string output. The member name will be present, but the
4881// value will be replaced with "sensitive".
4882func (s DeleteSubscriptionOutput) String() string {
4883	return awsutil.Prettify(s)
4884}
4885
4886// GoString returns the string representation.
4887//
4888// API parameter values that are decorated as "sensitive" in the API will not
4889// be included in the string output. The member name will be present, but the
4890// value will be replaced with "sensitive".
4891func (s DeleteSubscriptionOutput) GoString() string {
4892	return s.String()
4893}
4894
4895type DescribeAttackInput struct {
4896	_ struct{} `type:"structure"`
4897
4898	// The unique identifier (ID) for the attack that to be described.
4899	//
4900	// AttackId is a required field
4901	AttackId *string `min:"1" type:"string" required:"true"`
4902}
4903
4904// String returns the string representation.
4905//
4906// API parameter values that are decorated as "sensitive" in the API will not
4907// be included in the string output. The member name will be present, but the
4908// value will be replaced with "sensitive".
4909func (s DescribeAttackInput) String() string {
4910	return awsutil.Prettify(s)
4911}
4912
4913// GoString returns the string representation.
4914//
4915// API parameter values that are decorated as "sensitive" in the API will not
4916// be included in the string output. The member name will be present, but the
4917// value will be replaced with "sensitive".
4918func (s DescribeAttackInput) GoString() string {
4919	return s.String()
4920}
4921
4922// Validate inspects the fields of the type to determine if they are valid.
4923func (s *DescribeAttackInput) Validate() error {
4924	invalidParams := request.ErrInvalidParams{Context: "DescribeAttackInput"}
4925	if s.AttackId == nil {
4926		invalidParams.Add(request.NewErrParamRequired("AttackId"))
4927	}
4928	if s.AttackId != nil && len(*s.AttackId) < 1 {
4929		invalidParams.Add(request.NewErrParamMinLen("AttackId", 1))
4930	}
4931
4932	if invalidParams.Len() > 0 {
4933		return invalidParams
4934	}
4935	return nil
4936}
4937
4938// SetAttackId sets the AttackId field's value.
4939func (s *DescribeAttackInput) SetAttackId(v string) *DescribeAttackInput {
4940	s.AttackId = &v
4941	return s
4942}
4943
4944type DescribeAttackOutput struct {
4945	_ struct{} `type:"structure"`
4946
4947	// The attack that is described.
4948	Attack *AttackDetail `type:"structure"`
4949}
4950
4951// String returns the string representation.
4952//
4953// API parameter values that are decorated as "sensitive" in the API will not
4954// be included in the string output. The member name will be present, but the
4955// value will be replaced with "sensitive".
4956func (s DescribeAttackOutput) String() string {
4957	return awsutil.Prettify(s)
4958}
4959
4960// GoString returns the string representation.
4961//
4962// API parameter values that are decorated as "sensitive" in the API will not
4963// be included in the string output. The member name will be present, but the
4964// value will be replaced with "sensitive".
4965func (s DescribeAttackOutput) GoString() string {
4966	return s.String()
4967}
4968
4969// SetAttack sets the Attack field's value.
4970func (s *DescribeAttackOutput) SetAttack(v *AttackDetail) *DescribeAttackOutput {
4971	s.Attack = v
4972	return s
4973}
4974
4975type DescribeAttackStatisticsInput struct {
4976	_ struct{} `type:"structure"`
4977}
4978
4979// String returns the string representation.
4980//
4981// API parameter values that are decorated as "sensitive" in the API will not
4982// be included in the string output. The member name will be present, but the
4983// value will be replaced with "sensitive".
4984func (s DescribeAttackStatisticsInput) String() string {
4985	return awsutil.Prettify(s)
4986}
4987
4988// GoString returns the string representation.
4989//
4990// API parameter values that are decorated as "sensitive" in the API will not
4991// be included in the string output. The member name will be present, but the
4992// value will be replaced with "sensitive".
4993func (s DescribeAttackStatisticsInput) GoString() string {
4994	return s.String()
4995}
4996
4997type DescribeAttackStatisticsOutput struct {
4998	_ struct{} `type:"structure"`
4999
5000	// The data that describes the attacks detected during the time period.
5001	//
5002	// DataItems is a required field
5003	DataItems []*AttackStatisticsDataItem `type:"list" required:"true"`
5004
5005	// The time range.
5006	//
5007	// TimeRange is a required field
5008	TimeRange *TimeRange `type:"structure" required:"true"`
5009}
5010
5011// String returns the string representation.
5012//
5013// API parameter values that are decorated as "sensitive" in the API will not
5014// be included in the string output. The member name will be present, but the
5015// value will be replaced with "sensitive".
5016func (s DescribeAttackStatisticsOutput) String() string {
5017	return awsutil.Prettify(s)
5018}
5019
5020// GoString returns the string representation.
5021//
5022// API parameter values that are decorated as "sensitive" in the API will not
5023// be included in the string output. The member name will be present, but the
5024// value will be replaced with "sensitive".
5025func (s DescribeAttackStatisticsOutput) GoString() string {
5026	return s.String()
5027}
5028
5029// SetDataItems sets the DataItems field's value.
5030func (s *DescribeAttackStatisticsOutput) SetDataItems(v []*AttackStatisticsDataItem) *DescribeAttackStatisticsOutput {
5031	s.DataItems = v
5032	return s
5033}
5034
5035// SetTimeRange sets the TimeRange field's value.
5036func (s *DescribeAttackStatisticsOutput) SetTimeRange(v *TimeRange) *DescribeAttackStatisticsOutput {
5037	s.TimeRange = v
5038	return s
5039}
5040
5041type DescribeDRTAccessInput struct {
5042	_ struct{} `type:"structure"`
5043}
5044
5045// String returns the string representation.
5046//
5047// API parameter values that are decorated as "sensitive" in the API will not
5048// be included in the string output. The member name will be present, but the
5049// value will be replaced with "sensitive".
5050func (s DescribeDRTAccessInput) String() string {
5051	return awsutil.Prettify(s)
5052}
5053
5054// GoString returns the string representation.
5055//
5056// API parameter values that are decorated as "sensitive" in the API will not
5057// be included in the string output. The member name will be present, but the
5058// value will be replaced with "sensitive".
5059func (s DescribeDRTAccessInput) GoString() string {
5060	return s.String()
5061}
5062
5063type DescribeDRTAccessOutput struct {
5064	_ struct{} `type:"structure"`
5065
5066	// The list of Amazon S3 buckets accessed by the SRT.
5067	LogBucketList []*string `type:"list"`
5068
5069	// The Amazon Resource Name (ARN) of the role the SRT used to access your Amazon
5070	// Web Services account.
5071	RoleArn *string `min:"1" type:"string"`
5072}
5073
5074// String returns the string representation.
5075//
5076// API parameter values that are decorated as "sensitive" in the API will not
5077// be included in the string output. The member name will be present, but the
5078// value will be replaced with "sensitive".
5079func (s DescribeDRTAccessOutput) String() string {
5080	return awsutil.Prettify(s)
5081}
5082
5083// GoString returns the string representation.
5084//
5085// API parameter values that are decorated as "sensitive" in the API will not
5086// be included in the string output. The member name will be present, but the
5087// value will be replaced with "sensitive".
5088func (s DescribeDRTAccessOutput) GoString() string {
5089	return s.String()
5090}
5091
5092// SetLogBucketList sets the LogBucketList field's value.
5093func (s *DescribeDRTAccessOutput) SetLogBucketList(v []*string) *DescribeDRTAccessOutput {
5094	s.LogBucketList = v
5095	return s
5096}
5097
5098// SetRoleArn sets the RoleArn field's value.
5099func (s *DescribeDRTAccessOutput) SetRoleArn(v string) *DescribeDRTAccessOutput {
5100	s.RoleArn = &v
5101	return s
5102}
5103
5104type DescribeEmergencyContactSettingsInput struct {
5105	_ struct{} `type:"structure"`
5106}
5107
5108// String returns the string representation.
5109//
5110// API parameter values that are decorated as "sensitive" in the API will not
5111// be included in the string output. The member name will be present, but the
5112// value will be replaced with "sensitive".
5113func (s DescribeEmergencyContactSettingsInput) String() string {
5114	return awsutil.Prettify(s)
5115}
5116
5117// GoString returns the string representation.
5118//
5119// API parameter values that are decorated as "sensitive" in the API will not
5120// be included in the string output. The member name will be present, but the
5121// value will be replaced with "sensitive".
5122func (s DescribeEmergencyContactSettingsInput) GoString() string {
5123	return s.String()
5124}
5125
5126type DescribeEmergencyContactSettingsOutput struct {
5127	_ struct{} `type:"structure"`
5128
5129	// A list of email addresses and phone numbers that the Shield Response Team
5130	// (SRT) can use to contact you if you have proactive engagement enabled, for
5131	// escalations to the SRT and to initiate proactive customer support.
5132	EmergencyContactList []*EmergencyContact `type:"list"`
5133}
5134
5135// String returns the string representation.
5136//
5137// API parameter values that are decorated as "sensitive" in the API will not
5138// be included in the string output. The member name will be present, but the
5139// value will be replaced with "sensitive".
5140func (s DescribeEmergencyContactSettingsOutput) String() string {
5141	return awsutil.Prettify(s)
5142}
5143
5144// GoString returns the string representation.
5145//
5146// API parameter values that are decorated as "sensitive" in the API will not
5147// be included in the string output. The member name will be present, but the
5148// value will be replaced with "sensitive".
5149func (s DescribeEmergencyContactSettingsOutput) GoString() string {
5150	return s.String()
5151}
5152
5153// SetEmergencyContactList sets the EmergencyContactList field's value.
5154func (s *DescribeEmergencyContactSettingsOutput) SetEmergencyContactList(v []*EmergencyContact) *DescribeEmergencyContactSettingsOutput {
5155	s.EmergencyContactList = v
5156	return s
5157}
5158
5159type DescribeProtectionGroupInput struct {
5160	_ struct{} `type:"structure"`
5161
5162	// The name of the protection group. You use this to identify the protection
5163	// group in lists and to manage the protection group, for example to update,
5164	// delete, or describe it.
5165	//
5166	// ProtectionGroupId is a required field
5167	ProtectionGroupId *string `min:"1" type:"string" required:"true"`
5168}
5169
5170// String returns the string representation.
5171//
5172// API parameter values that are decorated as "sensitive" in the API will not
5173// be included in the string output. The member name will be present, but the
5174// value will be replaced with "sensitive".
5175func (s DescribeProtectionGroupInput) String() string {
5176	return awsutil.Prettify(s)
5177}
5178
5179// GoString returns the string representation.
5180//
5181// API parameter values that are decorated as "sensitive" in the API will not
5182// be included in the string output. The member name will be present, but the
5183// value will be replaced with "sensitive".
5184func (s DescribeProtectionGroupInput) GoString() string {
5185	return s.String()
5186}
5187
5188// Validate inspects the fields of the type to determine if they are valid.
5189func (s *DescribeProtectionGroupInput) Validate() error {
5190	invalidParams := request.ErrInvalidParams{Context: "DescribeProtectionGroupInput"}
5191	if s.ProtectionGroupId == nil {
5192		invalidParams.Add(request.NewErrParamRequired("ProtectionGroupId"))
5193	}
5194	if s.ProtectionGroupId != nil && len(*s.ProtectionGroupId) < 1 {
5195		invalidParams.Add(request.NewErrParamMinLen("ProtectionGroupId", 1))
5196	}
5197
5198	if invalidParams.Len() > 0 {
5199		return invalidParams
5200	}
5201	return nil
5202}
5203
5204// SetProtectionGroupId sets the ProtectionGroupId field's value.
5205func (s *DescribeProtectionGroupInput) SetProtectionGroupId(v string) *DescribeProtectionGroupInput {
5206	s.ProtectionGroupId = &v
5207	return s
5208}
5209
5210type DescribeProtectionGroupOutput struct {
5211	_ struct{} `type:"structure"`
5212
5213	// A grouping of protected resources that you and Shield Advanced can monitor
5214	// as a collective. This resource grouping improves the accuracy of detection
5215	// and reduces false positives.
5216	//
5217	// ProtectionGroup is a required field
5218	ProtectionGroup *ProtectionGroup `type:"structure" required:"true"`
5219}
5220
5221// String returns the string representation.
5222//
5223// API parameter values that are decorated as "sensitive" in the API will not
5224// be included in the string output. The member name will be present, but the
5225// value will be replaced with "sensitive".
5226func (s DescribeProtectionGroupOutput) String() string {
5227	return awsutil.Prettify(s)
5228}
5229
5230// GoString returns the string representation.
5231//
5232// API parameter values that are decorated as "sensitive" in the API will not
5233// be included in the string output. The member name will be present, but the
5234// value will be replaced with "sensitive".
5235func (s DescribeProtectionGroupOutput) GoString() string {
5236	return s.String()
5237}
5238
5239// SetProtectionGroup sets the ProtectionGroup field's value.
5240func (s *DescribeProtectionGroupOutput) SetProtectionGroup(v *ProtectionGroup) *DescribeProtectionGroupOutput {
5241	s.ProtectionGroup = v
5242	return s
5243}
5244
5245type DescribeProtectionInput struct {
5246	_ struct{} `type:"structure"`
5247
5248	// The unique identifier (ID) for the Protection object that is described. When
5249	// submitting the DescribeProtection request you must provide either the ResourceArn
5250	// or the ProtectionID, but not both.
5251	ProtectionId *string `min:"1" type:"string"`
5252
5253	// The ARN (Amazon Resource Name) of the Amazon Web Services resource for the
5254	// Protection object that is described. When submitting the DescribeProtection
5255	// request you must provide either the ResourceArn or the ProtectionID, but
5256	// not both.
5257	ResourceArn *string `min:"1" type:"string"`
5258}
5259
5260// String returns the string representation.
5261//
5262// API parameter values that are decorated as "sensitive" in the API will not
5263// be included in the string output. The member name will be present, but the
5264// value will be replaced with "sensitive".
5265func (s DescribeProtectionInput) String() string {
5266	return awsutil.Prettify(s)
5267}
5268
5269// GoString returns the string representation.
5270//
5271// API parameter values that are decorated as "sensitive" in the API will not
5272// be included in the string output. The member name will be present, but the
5273// value will be replaced with "sensitive".
5274func (s DescribeProtectionInput) GoString() string {
5275	return s.String()
5276}
5277
5278// Validate inspects the fields of the type to determine if they are valid.
5279func (s *DescribeProtectionInput) Validate() error {
5280	invalidParams := request.ErrInvalidParams{Context: "DescribeProtectionInput"}
5281	if s.ProtectionId != nil && len(*s.ProtectionId) < 1 {
5282		invalidParams.Add(request.NewErrParamMinLen("ProtectionId", 1))
5283	}
5284	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
5285		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
5286	}
5287
5288	if invalidParams.Len() > 0 {
5289		return invalidParams
5290	}
5291	return nil
5292}
5293
5294// SetProtectionId sets the ProtectionId field's value.
5295func (s *DescribeProtectionInput) SetProtectionId(v string) *DescribeProtectionInput {
5296	s.ProtectionId = &v
5297	return s
5298}
5299
5300// SetResourceArn sets the ResourceArn field's value.
5301func (s *DescribeProtectionInput) SetResourceArn(v string) *DescribeProtectionInput {
5302	s.ResourceArn = &v
5303	return s
5304}
5305
5306type DescribeProtectionOutput struct {
5307	_ struct{} `type:"structure"`
5308
5309	// The Protection object that is described.
5310	Protection *Protection `type:"structure"`
5311}
5312
5313// String returns the string representation.
5314//
5315// API parameter values that are decorated as "sensitive" in the API will not
5316// be included in the string output. The member name will be present, but the
5317// value will be replaced with "sensitive".
5318func (s DescribeProtectionOutput) String() string {
5319	return awsutil.Prettify(s)
5320}
5321
5322// GoString returns the string representation.
5323//
5324// API parameter values that are decorated as "sensitive" in the API will not
5325// be included in the string output. The member name will be present, but the
5326// value will be replaced with "sensitive".
5327func (s DescribeProtectionOutput) GoString() string {
5328	return s.String()
5329}
5330
5331// SetProtection sets the Protection field's value.
5332func (s *DescribeProtectionOutput) SetProtection(v *Protection) *DescribeProtectionOutput {
5333	s.Protection = v
5334	return s
5335}
5336
5337type DescribeSubscriptionInput struct {
5338	_ struct{} `type:"structure"`
5339}
5340
5341// String returns the string representation.
5342//
5343// API parameter values that are decorated as "sensitive" in the API will not
5344// be included in the string output. The member name will be present, but the
5345// value will be replaced with "sensitive".
5346func (s DescribeSubscriptionInput) String() string {
5347	return awsutil.Prettify(s)
5348}
5349
5350// GoString returns the string representation.
5351//
5352// API parameter values that are decorated as "sensitive" in the API will not
5353// be included in the string output. The member name will be present, but the
5354// value will be replaced with "sensitive".
5355func (s DescribeSubscriptionInput) GoString() string {
5356	return s.String()
5357}
5358
5359type DescribeSubscriptionOutput struct {
5360	_ struct{} `type:"structure"`
5361
5362	// The Shield Advanced subscription details for an account.
5363	Subscription *Subscription `type:"structure"`
5364}
5365
5366// String returns the string representation.
5367//
5368// API parameter values that are decorated as "sensitive" in the API will not
5369// be included in the string output. The member name will be present, but the
5370// value will be replaced with "sensitive".
5371func (s DescribeSubscriptionOutput) String() string {
5372	return awsutil.Prettify(s)
5373}
5374
5375// GoString returns the string representation.
5376//
5377// API parameter values that are decorated as "sensitive" in the API will not
5378// be included in the string output. The member name will be present, but the
5379// value will be replaced with "sensitive".
5380func (s DescribeSubscriptionOutput) GoString() string {
5381	return s.String()
5382}
5383
5384// SetSubscription sets the Subscription field's value.
5385func (s *DescribeSubscriptionOutput) SetSubscription(v *Subscription) *DescribeSubscriptionOutput {
5386	s.Subscription = v
5387	return s
5388}
5389
5390type DisableProactiveEngagementInput struct {
5391	_ struct{} `type:"structure"`
5392}
5393
5394// String returns the string representation.
5395//
5396// API parameter values that are decorated as "sensitive" in the API will not
5397// be included in the string output. The member name will be present, but the
5398// value will be replaced with "sensitive".
5399func (s DisableProactiveEngagementInput) String() string {
5400	return awsutil.Prettify(s)
5401}
5402
5403// GoString returns the string representation.
5404//
5405// API parameter values that are decorated as "sensitive" in the API will not
5406// be included in the string output. The member name will be present, but the
5407// value will be replaced with "sensitive".
5408func (s DisableProactiveEngagementInput) GoString() string {
5409	return s.String()
5410}
5411
5412type DisableProactiveEngagementOutput struct {
5413	_ struct{} `type:"structure"`
5414}
5415
5416// String returns the string representation.
5417//
5418// API parameter values that are decorated as "sensitive" in the API will not
5419// be included in the string output. The member name will be present, but the
5420// value will be replaced with "sensitive".
5421func (s DisableProactiveEngagementOutput) String() string {
5422	return awsutil.Prettify(s)
5423}
5424
5425// GoString returns the string representation.
5426//
5427// API parameter values that are decorated as "sensitive" in the API will not
5428// be included in the string output. The member name will be present, but the
5429// value will be replaced with "sensitive".
5430func (s DisableProactiveEngagementOutput) GoString() string {
5431	return s.String()
5432}
5433
5434type DisassociateDRTLogBucketInput struct {
5435	_ struct{} `type:"structure"`
5436
5437	// The Amazon S3 bucket that contains the logs that you want to share.
5438	//
5439	// LogBucket is a required field
5440	LogBucket *string `min:"3" type:"string" required:"true"`
5441}
5442
5443// String returns the string representation.
5444//
5445// API parameter values that are decorated as "sensitive" in the API will not
5446// be included in the string output. The member name will be present, but the
5447// value will be replaced with "sensitive".
5448func (s DisassociateDRTLogBucketInput) String() string {
5449	return awsutil.Prettify(s)
5450}
5451
5452// GoString returns the string representation.
5453//
5454// API parameter values that are decorated as "sensitive" in the API will not
5455// be included in the string output. The member name will be present, but the
5456// value will be replaced with "sensitive".
5457func (s DisassociateDRTLogBucketInput) GoString() string {
5458	return s.String()
5459}
5460
5461// Validate inspects the fields of the type to determine if they are valid.
5462func (s *DisassociateDRTLogBucketInput) Validate() error {
5463	invalidParams := request.ErrInvalidParams{Context: "DisassociateDRTLogBucketInput"}
5464	if s.LogBucket == nil {
5465		invalidParams.Add(request.NewErrParamRequired("LogBucket"))
5466	}
5467	if s.LogBucket != nil && len(*s.LogBucket) < 3 {
5468		invalidParams.Add(request.NewErrParamMinLen("LogBucket", 3))
5469	}
5470
5471	if invalidParams.Len() > 0 {
5472		return invalidParams
5473	}
5474	return nil
5475}
5476
5477// SetLogBucket sets the LogBucket field's value.
5478func (s *DisassociateDRTLogBucketInput) SetLogBucket(v string) *DisassociateDRTLogBucketInput {
5479	s.LogBucket = &v
5480	return s
5481}
5482
5483type DisassociateDRTLogBucketOutput struct {
5484	_ struct{} `type:"structure"`
5485}
5486
5487// String returns the string representation.
5488//
5489// API parameter values that are decorated as "sensitive" in the API will not
5490// be included in the string output. The member name will be present, but the
5491// value will be replaced with "sensitive".
5492func (s DisassociateDRTLogBucketOutput) String() string {
5493	return awsutil.Prettify(s)
5494}
5495
5496// GoString returns the string representation.
5497//
5498// API parameter values that are decorated as "sensitive" in the API will not
5499// be included in the string output. The member name will be present, but the
5500// value will be replaced with "sensitive".
5501func (s DisassociateDRTLogBucketOutput) GoString() string {
5502	return s.String()
5503}
5504
5505type DisassociateDRTRoleInput struct {
5506	_ struct{} `type:"structure"`
5507}
5508
5509// String returns the string representation.
5510//
5511// API parameter values that are decorated as "sensitive" in the API will not
5512// be included in the string output. The member name will be present, but the
5513// value will be replaced with "sensitive".
5514func (s DisassociateDRTRoleInput) String() string {
5515	return awsutil.Prettify(s)
5516}
5517
5518// GoString returns the string representation.
5519//
5520// API parameter values that are decorated as "sensitive" in the API will not
5521// be included in the string output. The member name will be present, but the
5522// value will be replaced with "sensitive".
5523func (s DisassociateDRTRoleInput) GoString() string {
5524	return s.String()
5525}
5526
5527type DisassociateDRTRoleOutput struct {
5528	_ struct{} `type:"structure"`
5529}
5530
5531// String returns the string representation.
5532//
5533// API parameter values that are decorated as "sensitive" in the API will not
5534// be included in the string output. The member name will be present, but the
5535// value will be replaced with "sensitive".
5536func (s DisassociateDRTRoleOutput) String() string {
5537	return awsutil.Prettify(s)
5538}
5539
5540// GoString returns the string representation.
5541//
5542// API parameter values that are decorated as "sensitive" in the API will not
5543// be included in the string output. The member name will be present, but the
5544// value will be replaced with "sensitive".
5545func (s DisassociateDRTRoleOutput) GoString() string {
5546	return s.String()
5547}
5548
5549type DisassociateHealthCheckInput struct {
5550	_ struct{} `type:"structure"`
5551
5552	// The Amazon Resource Name (ARN) of the health check that is associated with
5553	// the protection.
5554	//
5555	// HealthCheckArn is a required field
5556	HealthCheckArn *string `min:"1" type:"string" required:"true"`
5557
5558	// The unique identifier (ID) for the Protection object to remove the health
5559	// check association from.
5560	//
5561	// ProtectionId is a required field
5562	ProtectionId *string `min:"1" type:"string" required:"true"`
5563}
5564
5565// String returns the string representation.
5566//
5567// API parameter values that are decorated as "sensitive" in the API will not
5568// be included in the string output. The member name will be present, but the
5569// value will be replaced with "sensitive".
5570func (s DisassociateHealthCheckInput) String() string {
5571	return awsutil.Prettify(s)
5572}
5573
5574// GoString returns the string representation.
5575//
5576// API parameter values that are decorated as "sensitive" in the API will not
5577// be included in the string output. The member name will be present, but the
5578// value will be replaced with "sensitive".
5579func (s DisassociateHealthCheckInput) GoString() string {
5580	return s.String()
5581}
5582
5583// Validate inspects the fields of the type to determine if they are valid.
5584func (s *DisassociateHealthCheckInput) Validate() error {
5585	invalidParams := request.ErrInvalidParams{Context: "DisassociateHealthCheckInput"}
5586	if s.HealthCheckArn == nil {
5587		invalidParams.Add(request.NewErrParamRequired("HealthCheckArn"))
5588	}
5589	if s.HealthCheckArn != nil && len(*s.HealthCheckArn) < 1 {
5590		invalidParams.Add(request.NewErrParamMinLen("HealthCheckArn", 1))
5591	}
5592	if s.ProtectionId == nil {
5593		invalidParams.Add(request.NewErrParamRequired("ProtectionId"))
5594	}
5595	if s.ProtectionId != nil && len(*s.ProtectionId) < 1 {
5596		invalidParams.Add(request.NewErrParamMinLen("ProtectionId", 1))
5597	}
5598
5599	if invalidParams.Len() > 0 {
5600		return invalidParams
5601	}
5602	return nil
5603}
5604
5605// SetHealthCheckArn sets the HealthCheckArn field's value.
5606func (s *DisassociateHealthCheckInput) SetHealthCheckArn(v string) *DisassociateHealthCheckInput {
5607	s.HealthCheckArn = &v
5608	return s
5609}
5610
5611// SetProtectionId sets the ProtectionId field's value.
5612func (s *DisassociateHealthCheckInput) SetProtectionId(v string) *DisassociateHealthCheckInput {
5613	s.ProtectionId = &v
5614	return s
5615}
5616
5617type DisassociateHealthCheckOutput struct {
5618	_ struct{} `type:"structure"`
5619}
5620
5621// String returns the string representation.
5622//
5623// API parameter values that are decorated as "sensitive" in the API will not
5624// be included in the string output. The member name will be present, but the
5625// value will be replaced with "sensitive".
5626func (s DisassociateHealthCheckOutput) String() string {
5627	return awsutil.Prettify(s)
5628}
5629
5630// GoString returns the string representation.
5631//
5632// API parameter values that are decorated as "sensitive" in the API will not
5633// be included in the string output. The member name will be present, but the
5634// value will be replaced with "sensitive".
5635func (s DisassociateHealthCheckOutput) GoString() string {
5636	return s.String()
5637}
5638
5639// Contact information that the SRT can use to contact you if you have proactive
5640// engagement enabled, for escalations to the SRT and to initiate proactive
5641// customer support.
5642type EmergencyContact struct {
5643	_ struct{} `type:"structure"`
5644
5645	// Additional notes regarding the contact.
5646	ContactNotes *string `min:"1" type:"string"`
5647
5648	// The email address for the contact.
5649	//
5650	// EmailAddress is a required field
5651	EmailAddress *string `min:"1" type:"string" required:"true"`
5652
5653	// The phone number for the contact.
5654	PhoneNumber *string `min:"1" type:"string"`
5655}
5656
5657// String returns the string representation.
5658//
5659// API parameter values that are decorated as "sensitive" in the API will not
5660// be included in the string output. The member name will be present, but the
5661// value will be replaced with "sensitive".
5662func (s EmergencyContact) String() string {
5663	return awsutil.Prettify(s)
5664}
5665
5666// GoString returns the string representation.
5667//
5668// API parameter values that are decorated as "sensitive" in the API will not
5669// be included in the string output. The member name will be present, but the
5670// value will be replaced with "sensitive".
5671func (s EmergencyContact) GoString() string {
5672	return s.String()
5673}
5674
5675// Validate inspects the fields of the type to determine if they are valid.
5676func (s *EmergencyContact) Validate() error {
5677	invalidParams := request.ErrInvalidParams{Context: "EmergencyContact"}
5678	if s.ContactNotes != nil && len(*s.ContactNotes) < 1 {
5679		invalidParams.Add(request.NewErrParamMinLen("ContactNotes", 1))
5680	}
5681	if s.EmailAddress == nil {
5682		invalidParams.Add(request.NewErrParamRequired("EmailAddress"))
5683	}
5684	if s.EmailAddress != nil && len(*s.EmailAddress) < 1 {
5685		invalidParams.Add(request.NewErrParamMinLen("EmailAddress", 1))
5686	}
5687	if s.PhoneNumber != nil && len(*s.PhoneNumber) < 1 {
5688		invalidParams.Add(request.NewErrParamMinLen("PhoneNumber", 1))
5689	}
5690
5691	if invalidParams.Len() > 0 {
5692		return invalidParams
5693	}
5694	return nil
5695}
5696
5697// SetContactNotes sets the ContactNotes field's value.
5698func (s *EmergencyContact) SetContactNotes(v string) *EmergencyContact {
5699	s.ContactNotes = &v
5700	return s
5701}
5702
5703// SetEmailAddress sets the EmailAddress field's value.
5704func (s *EmergencyContact) SetEmailAddress(v string) *EmergencyContact {
5705	s.EmailAddress = &v
5706	return s
5707}
5708
5709// SetPhoneNumber sets the PhoneNumber field's value.
5710func (s *EmergencyContact) SetPhoneNumber(v string) *EmergencyContact {
5711	s.PhoneNumber = &v
5712	return s
5713}
5714
5715type EnableProactiveEngagementInput struct {
5716	_ struct{} `type:"structure"`
5717}
5718
5719// String returns the string representation.
5720//
5721// API parameter values that are decorated as "sensitive" in the API will not
5722// be included in the string output. The member name will be present, but the
5723// value will be replaced with "sensitive".
5724func (s EnableProactiveEngagementInput) String() string {
5725	return awsutil.Prettify(s)
5726}
5727
5728// GoString returns the string representation.
5729//
5730// API parameter values that are decorated as "sensitive" in the API will not
5731// be included in the string output. The member name will be present, but the
5732// value will be replaced with "sensitive".
5733func (s EnableProactiveEngagementInput) GoString() string {
5734	return s.String()
5735}
5736
5737type EnableProactiveEngagementOutput struct {
5738	_ struct{} `type:"structure"`
5739}
5740
5741// String returns the string representation.
5742//
5743// API parameter values that are decorated as "sensitive" in the API will not
5744// be included in the string output. The member name will be present, but the
5745// value will be replaced with "sensitive".
5746func (s EnableProactiveEngagementOutput) String() string {
5747	return awsutil.Prettify(s)
5748}
5749
5750// GoString returns the string representation.
5751//
5752// API parameter values that are decorated as "sensitive" in the API will not
5753// be included in the string output. The member name will be present, but the
5754// value will be replaced with "sensitive".
5755func (s EnableProactiveEngagementOutput) GoString() string {
5756	return s.String()
5757}
5758
5759type GetSubscriptionStateInput struct {
5760	_ struct{} `type:"structure"`
5761}
5762
5763// String returns the string representation.
5764//
5765// API parameter values that are decorated as "sensitive" in the API will not
5766// be included in the string output. The member name will be present, but the
5767// value will be replaced with "sensitive".
5768func (s GetSubscriptionStateInput) String() string {
5769	return awsutil.Prettify(s)
5770}
5771
5772// GoString returns the string representation.
5773//
5774// API parameter values that are decorated as "sensitive" in the API will not
5775// be included in the string output. The member name will be present, but the
5776// value will be replaced with "sensitive".
5777func (s GetSubscriptionStateInput) GoString() string {
5778	return s.String()
5779}
5780
5781type GetSubscriptionStateOutput struct {
5782	_ struct{} `type:"structure"`
5783
5784	// The status of the subscription.
5785	//
5786	// SubscriptionState is a required field
5787	SubscriptionState *string `type:"string" required:"true" enum:"SubscriptionState"`
5788}
5789
5790// String returns the string representation.
5791//
5792// API parameter values that are decorated as "sensitive" in the API will not
5793// be included in the string output. The member name will be present, but the
5794// value will be replaced with "sensitive".
5795func (s GetSubscriptionStateOutput) String() string {
5796	return awsutil.Prettify(s)
5797}
5798
5799// GoString returns the string representation.
5800//
5801// API parameter values that are decorated as "sensitive" in the API will not
5802// be included in the string output. The member name will be present, but the
5803// value will be replaced with "sensitive".
5804func (s GetSubscriptionStateOutput) GoString() string {
5805	return s.String()
5806}
5807
5808// SetSubscriptionState sets the SubscriptionState field's value.
5809func (s *GetSubscriptionStateOutput) SetSubscriptionState(v string) *GetSubscriptionStateOutput {
5810	s.SubscriptionState = &v
5811	return s
5812}
5813
5814// Exception that indicates that a problem occurred with the service infrastructure.
5815// You can retry the request.
5816type InternalErrorException struct {
5817	_            struct{}                  `type:"structure"`
5818	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5819
5820	Message_ *string `locationName:"message" type:"string"`
5821}
5822
5823// String returns the string representation.
5824//
5825// API parameter values that are decorated as "sensitive" in the API will not
5826// be included in the string output. The member name will be present, but the
5827// value will be replaced with "sensitive".
5828func (s InternalErrorException) String() string {
5829	return awsutil.Prettify(s)
5830}
5831
5832// GoString returns the string representation.
5833//
5834// API parameter values that are decorated as "sensitive" in the API will not
5835// be included in the string output. The member name will be present, but the
5836// value will be replaced with "sensitive".
5837func (s InternalErrorException) GoString() string {
5838	return s.String()
5839}
5840
5841func newErrorInternalErrorException(v protocol.ResponseMetadata) error {
5842	return &InternalErrorException{
5843		RespMetadata: v,
5844	}
5845}
5846
5847// Code returns the exception type name.
5848func (s *InternalErrorException) Code() string {
5849	return "InternalErrorException"
5850}
5851
5852// Message returns the exception's message.
5853func (s *InternalErrorException) Message() string {
5854	if s.Message_ != nil {
5855		return *s.Message_
5856	}
5857	return ""
5858}
5859
5860// OrigErr always returns nil, satisfies awserr.Error interface.
5861func (s *InternalErrorException) OrigErr() error {
5862	return nil
5863}
5864
5865func (s *InternalErrorException) Error() string {
5866	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5867}
5868
5869// Status code returns the HTTP status code for the request's response error.
5870func (s *InternalErrorException) StatusCode() int {
5871	return s.RespMetadata.StatusCode
5872}
5873
5874// RequestID returns the service's response RequestID for request.
5875func (s *InternalErrorException) RequestID() string {
5876	return s.RespMetadata.RequestID
5877}
5878
5879// Exception that indicates that the operation would not cause any change to
5880// occur.
5881type InvalidOperationException struct {
5882	_            struct{}                  `type:"structure"`
5883	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5884
5885	Message_ *string `locationName:"message" type:"string"`
5886}
5887
5888// String returns the string representation.
5889//
5890// API parameter values that are decorated as "sensitive" in the API will not
5891// be included in the string output. The member name will be present, but the
5892// value will be replaced with "sensitive".
5893func (s InvalidOperationException) String() string {
5894	return awsutil.Prettify(s)
5895}
5896
5897// GoString returns the string representation.
5898//
5899// API parameter values that are decorated as "sensitive" in the API will not
5900// be included in the string output. The member name will be present, but the
5901// value will be replaced with "sensitive".
5902func (s InvalidOperationException) GoString() string {
5903	return s.String()
5904}
5905
5906func newErrorInvalidOperationException(v protocol.ResponseMetadata) error {
5907	return &InvalidOperationException{
5908		RespMetadata: v,
5909	}
5910}
5911
5912// Code returns the exception type name.
5913func (s *InvalidOperationException) Code() string {
5914	return "InvalidOperationException"
5915}
5916
5917// Message returns the exception's message.
5918func (s *InvalidOperationException) Message() string {
5919	if s.Message_ != nil {
5920		return *s.Message_
5921	}
5922	return ""
5923}
5924
5925// OrigErr always returns nil, satisfies awserr.Error interface.
5926func (s *InvalidOperationException) OrigErr() error {
5927	return nil
5928}
5929
5930func (s *InvalidOperationException) Error() string {
5931	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5932}
5933
5934// Status code returns the HTTP status code for the request's response error.
5935func (s *InvalidOperationException) StatusCode() int {
5936	return s.RespMetadata.StatusCode
5937}
5938
5939// RequestID returns the service's response RequestID for request.
5940func (s *InvalidOperationException) RequestID() string {
5941	return s.RespMetadata.RequestID
5942}
5943
5944// Exception that indicates that the NextToken specified in the request is invalid.
5945// Submit the request using the NextToken value that was returned in the response.
5946type InvalidPaginationTokenException struct {
5947	_            struct{}                  `type:"structure"`
5948	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5949
5950	Message_ *string `locationName:"message" type:"string"`
5951}
5952
5953// String returns the string representation.
5954//
5955// API parameter values that are decorated as "sensitive" in the API will not
5956// be included in the string output. The member name will be present, but the
5957// value will be replaced with "sensitive".
5958func (s InvalidPaginationTokenException) String() string {
5959	return awsutil.Prettify(s)
5960}
5961
5962// GoString returns the string representation.
5963//
5964// API parameter values that are decorated as "sensitive" in the API will not
5965// be included in the string output. The member name will be present, but the
5966// value will be replaced with "sensitive".
5967func (s InvalidPaginationTokenException) GoString() string {
5968	return s.String()
5969}
5970
5971func newErrorInvalidPaginationTokenException(v protocol.ResponseMetadata) error {
5972	return &InvalidPaginationTokenException{
5973		RespMetadata: v,
5974	}
5975}
5976
5977// Code returns the exception type name.
5978func (s *InvalidPaginationTokenException) Code() string {
5979	return "InvalidPaginationTokenException"
5980}
5981
5982// Message returns the exception's message.
5983func (s *InvalidPaginationTokenException) Message() string {
5984	if s.Message_ != nil {
5985		return *s.Message_
5986	}
5987	return ""
5988}
5989
5990// OrigErr always returns nil, satisfies awserr.Error interface.
5991func (s *InvalidPaginationTokenException) OrigErr() error {
5992	return nil
5993}
5994
5995func (s *InvalidPaginationTokenException) Error() string {
5996	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5997}
5998
5999// Status code returns the HTTP status code for the request's response error.
6000func (s *InvalidPaginationTokenException) StatusCode() int {
6001	return s.RespMetadata.StatusCode
6002}
6003
6004// RequestID returns the service's response RequestID for request.
6005func (s *InvalidPaginationTokenException) RequestID() string {
6006	return s.RespMetadata.RequestID
6007}
6008
6009// Exception that indicates that the parameters passed to the API are invalid.
6010// If available, this exception includes details in additional properties.
6011type InvalidParameterException struct {
6012	_            struct{}                  `type:"structure"`
6013	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6014
6015	// Fields that caused the exception.
6016	Fields []*ValidationExceptionField `locationName:"fields" type:"list"`
6017
6018	Message_ *string `locationName:"message" type:"string"`
6019
6020	// Additional information about the exception.
6021	Reason *string `locationName:"reason" type:"string" enum:"ValidationExceptionReason"`
6022}
6023
6024// String returns the string representation.
6025//
6026// API parameter values that are decorated as "sensitive" in the API will not
6027// be included in the string output. The member name will be present, but the
6028// value will be replaced with "sensitive".
6029func (s InvalidParameterException) String() string {
6030	return awsutil.Prettify(s)
6031}
6032
6033// GoString returns the string representation.
6034//
6035// API parameter values that are decorated as "sensitive" in the API will not
6036// be included in the string output. The member name will be present, but the
6037// value will be replaced with "sensitive".
6038func (s InvalidParameterException) GoString() string {
6039	return s.String()
6040}
6041
6042func newErrorInvalidParameterException(v protocol.ResponseMetadata) error {
6043	return &InvalidParameterException{
6044		RespMetadata: v,
6045	}
6046}
6047
6048// Code returns the exception type name.
6049func (s *InvalidParameterException) Code() string {
6050	return "InvalidParameterException"
6051}
6052
6053// Message returns the exception's message.
6054func (s *InvalidParameterException) Message() string {
6055	if s.Message_ != nil {
6056		return *s.Message_
6057	}
6058	return ""
6059}
6060
6061// OrigErr always returns nil, satisfies awserr.Error interface.
6062func (s *InvalidParameterException) OrigErr() error {
6063	return nil
6064}
6065
6066func (s *InvalidParameterException) Error() string {
6067	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
6068}
6069
6070// Status code returns the HTTP status code for the request's response error.
6071func (s *InvalidParameterException) StatusCode() int {
6072	return s.RespMetadata.StatusCode
6073}
6074
6075// RequestID returns the service's response RequestID for request.
6076func (s *InvalidParameterException) RequestID() string {
6077	return s.RespMetadata.RequestID
6078}
6079
6080// Exception that indicates that the resource is invalid. You might not have
6081// access to the resource, or the resource might not exist.
6082type InvalidResourceException struct {
6083	_            struct{}                  `type:"structure"`
6084	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6085
6086	Message_ *string `locationName:"message" type:"string"`
6087}
6088
6089// String returns the string representation.
6090//
6091// API parameter values that are decorated as "sensitive" in the API will not
6092// be included in the string output. The member name will be present, but the
6093// value will be replaced with "sensitive".
6094func (s InvalidResourceException) String() string {
6095	return awsutil.Prettify(s)
6096}
6097
6098// GoString returns the string representation.
6099//
6100// API parameter values that are decorated as "sensitive" in the API will not
6101// be included in the string output. The member name will be present, but the
6102// value will be replaced with "sensitive".
6103func (s InvalidResourceException) GoString() string {
6104	return s.String()
6105}
6106
6107func newErrorInvalidResourceException(v protocol.ResponseMetadata) error {
6108	return &InvalidResourceException{
6109		RespMetadata: v,
6110	}
6111}
6112
6113// Code returns the exception type name.
6114func (s *InvalidResourceException) Code() string {
6115	return "InvalidResourceException"
6116}
6117
6118// Message returns the exception's message.
6119func (s *InvalidResourceException) Message() string {
6120	if s.Message_ != nil {
6121		return *s.Message_
6122	}
6123	return ""
6124}
6125
6126// OrigErr always returns nil, satisfies awserr.Error interface.
6127func (s *InvalidResourceException) OrigErr() error {
6128	return nil
6129}
6130
6131func (s *InvalidResourceException) Error() string {
6132	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6133}
6134
6135// Status code returns the HTTP status code for the request's response error.
6136func (s *InvalidResourceException) StatusCode() int {
6137	return s.RespMetadata.StatusCode
6138}
6139
6140// RequestID returns the service's response RequestID for request.
6141func (s *InvalidResourceException) RequestID() string {
6142	return s.RespMetadata.RequestID
6143}
6144
6145// Specifies how many protections of a given type you can create.
6146type Limit struct {
6147	_ struct{} `type:"structure"`
6148
6149	// The maximum number of protections that can be created for the specified Type.
6150	Max *int64 `type:"long"`
6151
6152	// The type of protection.
6153	Type *string `type:"string"`
6154}
6155
6156// String returns the string representation.
6157//
6158// API parameter values that are decorated as "sensitive" in the API will not
6159// be included in the string output. The member name will be present, but the
6160// value will be replaced with "sensitive".
6161func (s Limit) String() string {
6162	return awsutil.Prettify(s)
6163}
6164
6165// GoString returns the string representation.
6166//
6167// API parameter values that are decorated as "sensitive" in the API will not
6168// be included in the string output. The member name will be present, but the
6169// value will be replaced with "sensitive".
6170func (s Limit) GoString() string {
6171	return s.String()
6172}
6173
6174// SetMax sets the Max field's value.
6175func (s *Limit) SetMax(v int64) *Limit {
6176	s.Max = &v
6177	return s
6178}
6179
6180// SetType sets the Type field's value.
6181func (s *Limit) SetType(v string) *Limit {
6182	s.Type = &v
6183	return s
6184}
6185
6186// Exception that indicates that the operation would exceed a limit.
6187type LimitsExceededException struct {
6188	_            struct{}                  `type:"structure"`
6189	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6190
6191	// The threshold that would be exceeded.
6192	Limit *int64 `type:"long"`
6193
6194	Message_ *string `locationName:"message" type:"string"`
6195
6196	// The type of limit that would be exceeded.
6197	Type *string `type:"string"`
6198}
6199
6200// String returns the string representation.
6201//
6202// API parameter values that are decorated as "sensitive" in the API will not
6203// be included in the string output. The member name will be present, but the
6204// value will be replaced with "sensitive".
6205func (s LimitsExceededException) String() string {
6206	return awsutil.Prettify(s)
6207}
6208
6209// GoString returns the string representation.
6210//
6211// API parameter values that are decorated as "sensitive" in the API will not
6212// be included in the string output. The member name will be present, but the
6213// value will be replaced with "sensitive".
6214func (s LimitsExceededException) GoString() string {
6215	return s.String()
6216}
6217
6218func newErrorLimitsExceededException(v protocol.ResponseMetadata) error {
6219	return &LimitsExceededException{
6220		RespMetadata: v,
6221	}
6222}
6223
6224// Code returns the exception type name.
6225func (s *LimitsExceededException) Code() string {
6226	return "LimitsExceededException"
6227}
6228
6229// Message returns the exception's message.
6230func (s *LimitsExceededException) Message() string {
6231	if s.Message_ != nil {
6232		return *s.Message_
6233	}
6234	return ""
6235}
6236
6237// OrigErr always returns nil, satisfies awserr.Error interface.
6238func (s *LimitsExceededException) OrigErr() error {
6239	return nil
6240}
6241
6242func (s *LimitsExceededException) Error() string {
6243	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
6244}
6245
6246// Status code returns the HTTP status code for the request's response error.
6247func (s *LimitsExceededException) StatusCode() int {
6248	return s.RespMetadata.StatusCode
6249}
6250
6251// RequestID returns the service's response RequestID for request.
6252func (s *LimitsExceededException) RequestID() string {
6253	return s.RespMetadata.RequestID
6254}
6255
6256type ListAttacksInput struct {
6257	_ struct{} `type:"structure"`
6258
6259	// The end of the time period for the attacks. This is a timestamp type. The
6260	// sample request above indicates a number type because the default used by
6261	// WAF is Unix time in seconds. However any valid timestamp format (http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#parameter-types)
6262	// is allowed.
6263	EndTime *TimeRange `type:"structure"`
6264
6265	// The maximum number of AttackSummary objects to return. If you leave this
6266	// blank, Shield Advanced returns the first 20 results.
6267	//
6268	// This is a maximum value. Shield Advanced might return the results in smaller
6269	// batches. That is, the number of objects returned could be less than MaxResults,
6270	// even if there are still more objects yet to return. If there are more objects
6271	// to return, Shield Advanced returns a value in NextToken that you can use
6272	// in your next request, to get the next batch of objects.
6273	MaxResults *int64 `type:"integer"`
6274
6275	// The ListAttacksRequest.NextMarker value from a previous call to ListAttacksRequest.
6276	// Pass null if this is the first call.
6277	NextToken *string `min:"1" type:"string"`
6278
6279	// The ARN (Amazon Resource Name) of the resource that was attacked. If this
6280	// is left blank, all applicable resources for this account will be included.
6281	ResourceArns []*string `type:"list"`
6282
6283	// The start of the time period for the attacks. This is a timestamp type. The
6284	// sample request above indicates a number type because the default used by
6285	// WAF is Unix time in seconds. However any valid timestamp format (http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#parameter-types)
6286	// is allowed.
6287	StartTime *TimeRange `type:"structure"`
6288}
6289
6290// String returns the string representation.
6291//
6292// API parameter values that are decorated as "sensitive" in the API will not
6293// be included in the string output. The member name will be present, but the
6294// value will be replaced with "sensitive".
6295func (s ListAttacksInput) String() string {
6296	return awsutil.Prettify(s)
6297}
6298
6299// GoString returns the string representation.
6300//
6301// API parameter values that are decorated as "sensitive" in the API will not
6302// be included in the string output. The member name will be present, but the
6303// value will be replaced with "sensitive".
6304func (s ListAttacksInput) GoString() string {
6305	return s.String()
6306}
6307
6308// Validate inspects the fields of the type to determine if they are valid.
6309func (s *ListAttacksInput) Validate() error {
6310	invalidParams := request.ErrInvalidParams{Context: "ListAttacksInput"}
6311	if s.NextToken != nil && len(*s.NextToken) < 1 {
6312		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
6313	}
6314
6315	if invalidParams.Len() > 0 {
6316		return invalidParams
6317	}
6318	return nil
6319}
6320
6321// SetEndTime sets the EndTime field's value.
6322func (s *ListAttacksInput) SetEndTime(v *TimeRange) *ListAttacksInput {
6323	s.EndTime = v
6324	return s
6325}
6326
6327// SetMaxResults sets the MaxResults field's value.
6328func (s *ListAttacksInput) SetMaxResults(v int64) *ListAttacksInput {
6329	s.MaxResults = &v
6330	return s
6331}
6332
6333// SetNextToken sets the NextToken field's value.
6334func (s *ListAttacksInput) SetNextToken(v string) *ListAttacksInput {
6335	s.NextToken = &v
6336	return s
6337}
6338
6339// SetResourceArns sets the ResourceArns field's value.
6340func (s *ListAttacksInput) SetResourceArns(v []*string) *ListAttacksInput {
6341	s.ResourceArns = v
6342	return s
6343}
6344
6345// SetStartTime sets the StartTime field's value.
6346func (s *ListAttacksInput) SetStartTime(v *TimeRange) *ListAttacksInput {
6347	s.StartTime = v
6348	return s
6349}
6350
6351type ListAttacksOutput struct {
6352	_ struct{} `type:"structure"`
6353
6354	// The attack information for the specified time range.
6355	AttackSummaries []*AttackSummary `type:"list"`
6356
6357	// The token returned by a previous call to indicate that there is more data
6358	// available. If not null, more results are available. Pass this value for the
6359	// NextMarker parameter in a subsequent call to ListAttacks to retrieve the
6360	// next set of items.
6361	//
6362	// Shield Advanced might return the list of AttackSummary objects in batches
6363	// smaller than the number specified by MaxResults. If there are more attack
6364	// summary objects to return, Shield Advanced will always also return a NextToken.
6365	NextToken *string `min:"1" type:"string"`
6366}
6367
6368// String returns the string representation.
6369//
6370// API parameter values that are decorated as "sensitive" in the API will not
6371// be included in the string output. The member name will be present, but the
6372// value will be replaced with "sensitive".
6373func (s ListAttacksOutput) String() string {
6374	return awsutil.Prettify(s)
6375}
6376
6377// GoString returns the string representation.
6378//
6379// API parameter values that are decorated as "sensitive" in the API will not
6380// be included in the string output. The member name will be present, but the
6381// value will be replaced with "sensitive".
6382func (s ListAttacksOutput) GoString() string {
6383	return s.String()
6384}
6385
6386// SetAttackSummaries sets the AttackSummaries field's value.
6387func (s *ListAttacksOutput) SetAttackSummaries(v []*AttackSummary) *ListAttacksOutput {
6388	s.AttackSummaries = v
6389	return s
6390}
6391
6392// SetNextToken sets the NextToken field's value.
6393func (s *ListAttacksOutput) SetNextToken(v string) *ListAttacksOutput {
6394	s.NextToken = &v
6395	return s
6396}
6397
6398type ListProtectionGroupsInput struct {
6399	_ struct{} `type:"structure"`
6400
6401	// The maximum number of ProtectionGroup objects to return. If you leave this
6402	// blank, Shield Advanced returns the first 20 results.
6403	//
6404	// This is a maximum value. Shield Advanced might return the results in smaller
6405	// batches. That is, the number of objects returned could be less than MaxResults,
6406	// even if there are still more objects yet to return. If there are more objects
6407	// to return, Shield Advanced returns a value in NextToken that you can use
6408	// in your next request, to get the next batch of objects.
6409	MaxResults *int64 `type:"integer"`
6410
6411	// The next token value from a previous call to ListProtectionGroups. Pass null
6412	// if this is the first call.
6413	NextToken *string `min:"1" type:"string"`
6414}
6415
6416// String returns the string representation.
6417//
6418// API parameter values that are decorated as "sensitive" in the API will not
6419// be included in the string output. The member name will be present, but the
6420// value will be replaced with "sensitive".
6421func (s ListProtectionGroupsInput) String() string {
6422	return awsutil.Prettify(s)
6423}
6424
6425// GoString returns the string representation.
6426//
6427// API parameter values that are decorated as "sensitive" in the API will not
6428// be included in the string output. The member name will be present, but the
6429// value will be replaced with "sensitive".
6430func (s ListProtectionGroupsInput) GoString() string {
6431	return s.String()
6432}
6433
6434// Validate inspects the fields of the type to determine if they are valid.
6435func (s *ListProtectionGroupsInput) Validate() error {
6436	invalidParams := request.ErrInvalidParams{Context: "ListProtectionGroupsInput"}
6437	if s.NextToken != nil && len(*s.NextToken) < 1 {
6438		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
6439	}
6440
6441	if invalidParams.Len() > 0 {
6442		return invalidParams
6443	}
6444	return nil
6445}
6446
6447// SetMaxResults sets the MaxResults field's value.
6448func (s *ListProtectionGroupsInput) SetMaxResults(v int64) *ListProtectionGroupsInput {
6449	s.MaxResults = &v
6450	return s
6451}
6452
6453// SetNextToken sets the NextToken field's value.
6454func (s *ListProtectionGroupsInput) SetNextToken(v string) *ListProtectionGroupsInput {
6455	s.NextToken = &v
6456	return s
6457}
6458
6459type ListProtectionGroupsOutput struct {
6460	_ struct{} `type:"structure"`
6461
6462	// If you specify a value for MaxResults and you have more protection groups
6463	// than the value of MaxResults, Shield Advanced returns this token that you
6464	// can use in your next request, to get the next batch of objects.
6465	NextToken *string `min:"1" type:"string"`
6466
6467	// ProtectionGroups is a required field
6468	ProtectionGroups []*ProtectionGroup `type:"list" required:"true"`
6469}
6470
6471// String returns the string representation.
6472//
6473// API parameter values that are decorated as "sensitive" in the API will not
6474// be included in the string output. The member name will be present, but the
6475// value will be replaced with "sensitive".
6476func (s ListProtectionGroupsOutput) String() string {
6477	return awsutil.Prettify(s)
6478}
6479
6480// GoString returns the string representation.
6481//
6482// API parameter values that are decorated as "sensitive" in the API will not
6483// be included in the string output. The member name will be present, but the
6484// value will be replaced with "sensitive".
6485func (s ListProtectionGroupsOutput) GoString() string {
6486	return s.String()
6487}
6488
6489// SetNextToken sets the NextToken field's value.
6490func (s *ListProtectionGroupsOutput) SetNextToken(v string) *ListProtectionGroupsOutput {
6491	s.NextToken = &v
6492	return s
6493}
6494
6495// SetProtectionGroups sets the ProtectionGroups field's value.
6496func (s *ListProtectionGroupsOutput) SetProtectionGroups(v []*ProtectionGroup) *ListProtectionGroupsOutput {
6497	s.ProtectionGroups = v
6498	return s
6499}
6500
6501type ListProtectionsInput struct {
6502	_ struct{} `type:"structure"`
6503
6504	// The maximum number of Protection objects to return. If you leave this blank,
6505	// Shield Advanced returns the first 20 results.
6506	//
6507	// This is a maximum value. Shield Advanced might return the results in smaller
6508	// batches. That is, the number of objects returned could be less than MaxResults,
6509	// even if there are still more objects yet to return. If there are more objects
6510	// to return, Shield Advanced returns a value in NextToken that you can use
6511	// in your next request, to get the next batch of objects.
6512	MaxResults *int64 `type:"integer"`
6513
6514	// The ListProtectionsRequest.NextToken value from a previous call to ListProtections.
6515	// Pass null if this is the first call.
6516	NextToken *string `min:"1" type:"string"`
6517}
6518
6519// String returns the string representation.
6520//
6521// API parameter values that are decorated as "sensitive" in the API will not
6522// be included in the string output. The member name will be present, but the
6523// value will be replaced with "sensitive".
6524func (s ListProtectionsInput) String() string {
6525	return awsutil.Prettify(s)
6526}
6527
6528// GoString returns the string representation.
6529//
6530// API parameter values that are decorated as "sensitive" in the API will not
6531// be included in the string output. The member name will be present, but the
6532// value will be replaced with "sensitive".
6533func (s ListProtectionsInput) GoString() string {
6534	return s.String()
6535}
6536
6537// Validate inspects the fields of the type to determine if they are valid.
6538func (s *ListProtectionsInput) Validate() error {
6539	invalidParams := request.ErrInvalidParams{Context: "ListProtectionsInput"}
6540	if s.NextToken != nil && len(*s.NextToken) < 1 {
6541		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
6542	}
6543
6544	if invalidParams.Len() > 0 {
6545		return invalidParams
6546	}
6547	return nil
6548}
6549
6550// SetMaxResults sets the MaxResults field's value.
6551func (s *ListProtectionsInput) SetMaxResults(v int64) *ListProtectionsInput {
6552	s.MaxResults = &v
6553	return s
6554}
6555
6556// SetNextToken sets the NextToken field's value.
6557func (s *ListProtectionsInput) SetNextToken(v string) *ListProtectionsInput {
6558	s.NextToken = &v
6559	return s
6560}
6561
6562type ListProtectionsOutput struct {
6563	_ struct{} `type:"structure"`
6564
6565	// If you specify a value for MaxResults and you have more Protections than
6566	// the value of MaxResults, Shield Advanced returns a NextToken value in the
6567	// response that allows you to list another group of Protections. For the second
6568	// and subsequent ListProtections requests, specify the value of NextToken from
6569	// the previous response to get information about another batch of Protections.
6570	//
6571	// Shield Advanced might return the list of Protection objects in batches smaller
6572	// than the number specified by MaxResults. If there are more Protection objects
6573	// to return, Shield Advanced will always also return a NextToken.
6574	NextToken *string `min:"1" type:"string"`
6575
6576	// The array of enabled Protection objects.
6577	Protections []*Protection `type:"list"`
6578}
6579
6580// String returns the string representation.
6581//
6582// API parameter values that are decorated as "sensitive" in the API will not
6583// be included in the string output. The member name will be present, but the
6584// value will be replaced with "sensitive".
6585func (s ListProtectionsOutput) String() string {
6586	return awsutil.Prettify(s)
6587}
6588
6589// GoString returns the string representation.
6590//
6591// API parameter values that are decorated as "sensitive" in the API will not
6592// be included in the string output. The member name will be present, but the
6593// value will be replaced with "sensitive".
6594func (s ListProtectionsOutput) GoString() string {
6595	return s.String()
6596}
6597
6598// SetNextToken sets the NextToken field's value.
6599func (s *ListProtectionsOutput) SetNextToken(v string) *ListProtectionsOutput {
6600	s.NextToken = &v
6601	return s
6602}
6603
6604// SetProtections sets the Protections field's value.
6605func (s *ListProtectionsOutput) SetProtections(v []*Protection) *ListProtectionsOutput {
6606	s.Protections = v
6607	return s
6608}
6609
6610type ListResourcesInProtectionGroupInput struct {
6611	_ struct{} `type:"structure"`
6612
6613	// The maximum number of resource ARN objects to return. If you leave this blank,
6614	// Shield Advanced returns the first 20 results.
6615	//
6616	// This is a maximum value. Shield Advanced might return the results in smaller
6617	// batches. That is, the number of objects returned could be less than MaxResults,
6618	// even if there are still more objects yet to return. If there are more objects
6619	// to return, Shield Advanced returns a value in NextToken that you can use
6620	// in your next request, to get the next batch of objects.
6621	MaxResults *int64 `type:"integer"`
6622
6623	// The next token value from a previous call to ListResourcesInProtectionGroup.
6624	// Pass null if this is the first call.
6625	NextToken *string `min:"1" type:"string"`
6626
6627	// The name of the protection group. You use this to identify the protection
6628	// group in lists and to manage the protection group, for example to update,
6629	// delete, or describe it.
6630	//
6631	// ProtectionGroupId is a required field
6632	ProtectionGroupId *string `min:"1" type:"string" required:"true"`
6633}
6634
6635// String returns the string representation.
6636//
6637// API parameter values that are decorated as "sensitive" in the API will not
6638// be included in the string output. The member name will be present, but the
6639// value will be replaced with "sensitive".
6640func (s ListResourcesInProtectionGroupInput) String() string {
6641	return awsutil.Prettify(s)
6642}
6643
6644// GoString returns the string representation.
6645//
6646// API parameter values that are decorated as "sensitive" in the API will not
6647// be included in the string output. The member name will be present, but the
6648// value will be replaced with "sensitive".
6649func (s ListResourcesInProtectionGroupInput) GoString() string {
6650	return s.String()
6651}
6652
6653// Validate inspects the fields of the type to determine if they are valid.
6654func (s *ListResourcesInProtectionGroupInput) Validate() error {
6655	invalidParams := request.ErrInvalidParams{Context: "ListResourcesInProtectionGroupInput"}
6656	if s.NextToken != nil && len(*s.NextToken) < 1 {
6657		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
6658	}
6659	if s.ProtectionGroupId == nil {
6660		invalidParams.Add(request.NewErrParamRequired("ProtectionGroupId"))
6661	}
6662	if s.ProtectionGroupId != nil && len(*s.ProtectionGroupId) < 1 {
6663		invalidParams.Add(request.NewErrParamMinLen("ProtectionGroupId", 1))
6664	}
6665
6666	if invalidParams.Len() > 0 {
6667		return invalidParams
6668	}
6669	return nil
6670}
6671
6672// SetMaxResults sets the MaxResults field's value.
6673func (s *ListResourcesInProtectionGroupInput) SetMaxResults(v int64) *ListResourcesInProtectionGroupInput {
6674	s.MaxResults = &v
6675	return s
6676}
6677
6678// SetNextToken sets the NextToken field's value.
6679func (s *ListResourcesInProtectionGroupInput) SetNextToken(v string) *ListResourcesInProtectionGroupInput {
6680	s.NextToken = &v
6681	return s
6682}
6683
6684// SetProtectionGroupId sets the ProtectionGroupId field's value.
6685func (s *ListResourcesInProtectionGroupInput) SetProtectionGroupId(v string) *ListResourcesInProtectionGroupInput {
6686	s.ProtectionGroupId = &v
6687	return s
6688}
6689
6690type ListResourcesInProtectionGroupOutput struct {
6691	_ struct{} `type:"structure"`
6692
6693	// If you specify a value for MaxResults and you have more resources in the
6694	// protection group than the value of MaxResults, Shield Advanced returns this
6695	// token that you can use in your next request, to get the next batch of objects.
6696	NextToken *string `min:"1" type:"string"`
6697
6698	// The Amazon Resource Names (ARNs) of the resources that are included in the
6699	// protection group.
6700	//
6701	// ResourceArns is a required field
6702	ResourceArns []*string `type:"list" required:"true"`
6703}
6704
6705// String returns the string representation.
6706//
6707// API parameter values that are decorated as "sensitive" in the API will not
6708// be included in the string output. The member name will be present, but the
6709// value will be replaced with "sensitive".
6710func (s ListResourcesInProtectionGroupOutput) String() string {
6711	return awsutil.Prettify(s)
6712}
6713
6714// GoString returns the string representation.
6715//
6716// API parameter values that are decorated as "sensitive" in the API will not
6717// be included in the string output. The member name will be present, but the
6718// value will be replaced with "sensitive".
6719func (s ListResourcesInProtectionGroupOutput) GoString() string {
6720	return s.String()
6721}
6722
6723// SetNextToken sets the NextToken field's value.
6724func (s *ListResourcesInProtectionGroupOutput) SetNextToken(v string) *ListResourcesInProtectionGroupOutput {
6725	s.NextToken = &v
6726	return s
6727}
6728
6729// SetResourceArns sets the ResourceArns field's value.
6730func (s *ListResourcesInProtectionGroupOutput) SetResourceArns(v []*string) *ListResourcesInProtectionGroupOutput {
6731	s.ResourceArns = v
6732	return s
6733}
6734
6735type ListTagsForResourceInput struct {
6736	_ struct{} `type:"structure"`
6737
6738	// The Amazon Resource Name (ARN) of the resource to get tags for.
6739	//
6740	// ResourceARN is a required field
6741	ResourceARN *string `min:"1" type:"string" required:"true"`
6742}
6743
6744// String returns the string representation.
6745//
6746// API parameter values that are decorated as "sensitive" in the API will not
6747// be included in the string output. The member name will be present, but the
6748// value will be replaced with "sensitive".
6749func (s ListTagsForResourceInput) String() string {
6750	return awsutil.Prettify(s)
6751}
6752
6753// GoString returns the string representation.
6754//
6755// API parameter values that are decorated as "sensitive" in the API will not
6756// be included in the string output. The member name will be present, but the
6757// value will be replaced with "sensitive".
6758func (s ListTagsForResourceInput) GoString() string {
6759	return s.String()
6760}
6761
6762// Validate inspects the fields of the type to determine if they are valid.
6763func (s *ListTagsForResourceInput) Validate() error {
6764	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
6765	if s.ResourceARN == nil {
6766		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
6767	}
6768	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
6769		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
6770	}
6771
6772	if invalidParams.Len() > 0 {
6773		return invalidParams
6774	}
6775	return nil
6776}
6777
6778// SetResourceARN sets the ResourceARN field's value.
6779func (s *ListTagsForResourceInput) SetResourceARN(v string) *ListTagsForResourceInput {
6780	s.ResourceARN = &v
6781	return s
6782}
6783
6784type ListTagsForResourceOutput struct {
6785	_ struct{} `type:"structure"`
6786
6787	// A list of tag key and value pairs associated with the specified resource.
6788	Tags []*Tag `type:"list"`
6789}
6790
6791// String returns the string representation.
6792//
6793// API parameter values that are decorated as "sensitive" in the API will not
6794// be included in the string output. The member name will be present, but the
6795// value will be replaced with "sensitive".
6796func (s ListTagsForResourceOutput) String() string {
6797	return awsutil.Prettify(s)
6798}
6799
6800// GoString returns the string representation.
6801//
6802// API parameter values that are decorated as "sensitive" in the API will not
6803// be included in the string output. The member name will be present, but the
6804// value will be replaced with "sensitive".
6805func (s ListTagsForResourceOutput) GoString() string {
6806	return s.String()
6807}
6808
6809// SetTags sets the Tags field's value.
6810func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
6811	s.Tags = v
6812	return s
6813}
6814
6815// You are trying to update a subscription that has not yet completed the 1-year
6816// commitment. You can change the AutoRenew parameter during the last 30 days
6817// of your subscription. This exception indicates that you are attempting to
6818// change AutoRenew prior to that period.
6819type LockedSubscriptionException struct {
6820	_            struct{}                  `type:"structure"`
6821	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6822
6823	Message_ *string `locationName:"message" type:"string"`
6824}
6825
6826// String returns the string representation.
6827//
6828// API parameter values that are decorated as "sensitive" in the API will not
6829// be included in the string output. The member name will be present, but the
6830// value will be replaced with "sensitive".
6831func (s LockedSubscriptionException) String() string {
6832	return awsutil.Prettify(s)
6833}
6834
6835// GoString returns the string representation.
6836//
6837// API parameter values that are decorated as "sensitive" in the API will not
6838// be included in the string output. The member name will be present, but the
6839// value will be replaced with "sensitive".
6840func (s LockedSubscriptionException) GoString() string {
6841	return s.String()
6842}
6843
6844func newErrorLockedSubscriptionException(v protocol.ResponseMetadata) error {
6845	return &LockedSubscriptionException{
6846		RespMetadata: v,
6847	}
6848}
6849
6850// Code returns the exception type name.
6851func (s *LockedSubscriptionException) Code() string {
6852	return "LockedSubscriptionException"
6853}
6854
6855// Message returns the exception's message.
6856func (s *LockedSubscriptionException) Message() string {
6857	if s.Message_ != nil {
6858		return *s.Message_
6859	}
6860	return ""
6861}
6862
6863// OrigErr always returns nil, satisfies awserr.Error interface.
6864func (s *LockedSubscriptionException) OrigErr() error {
6865	return nil
6866}
6867
6868func (s *LockedSubscriptionException) Error() string {
6869	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6870}
6871
6872// Status code returns the HTTP status code for the request's response error.
6873func (s *LockedSubscriptionException) StatusCode() int {
6874	return s.RespMetadata.StatusCode
6875}
6876
6877// RequestID returns the service's response RequestID for request.
6878func (s *LockedSubscriptionException) RequestID() string {
6879	return s.RespMetadata.RequestID
6880}
6881
6882// The mitigation applied to a DDoS attack.
6883type Mitigation struct {
6884	_ struct{} `type:"structure"`
6885
6886	// The name of the mitigation taken for this attack.
6887	MitigationName *string `type:"string"`
6888}
6889
6890// String returns the string representation.
6891//
6892// API parameter values that are decorated as "sensitive" in the API will not
6893// be included in the string output. The member name will be present, but the
6894// value will be replaced with "sensitive".
6895func (s Mitigation) String() string {
6896	return awsutil.Prettify(s)
6897}
6898
6899// GoString returns the string representation.
6900//
6901// API parameter values that are decorated as "sensitive" in the API will not
6902// be included in the string output. The member name will be present, but the
6903// value will be replaced with "sensitive".
6904func (s Mitigation) GoString() string {
6905	return s.String()
6906}
6907
6908// SetMitigationName sets the MitigationName field's value.
6909func (s *Mitigation) SetMitigationName(v string) *Mitigation {
6910	s.MitigationName = &v
6911	return s
6912}
6913
6914// The ARN of the role that you specifed does not exist.
6915type NoAssociatedRoleException struct {
6916	_            struct{}                  `type:"structure"`
6917	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6918
6919	Message_ *string `locationName:"message" type:"string"`
6920}
6921
6922// String returns the string representation.
6923//
6924// API parameter values that are decorated as "sensitive" in the API will not
6925// be included in the string output. The member name will be present, but the
6926// value will be replaced with "sensitive".
6927func (s NoAssociatedRoleException) String() string {
6928	return awsutil.Prettify(s)
6929}
6930
6931// GoString returns the string representation.
6932//
6933// API parameter values that are decorated as "sensitive" in the API will not
6934// be included in the string output. The member name will be present, but the
6935// value will be replaced with "sensitive".
6936func (s NoAssociatedRoleException) GoString() string {
6937	return s.String()
6938}
6939
6940func newErrorNoAssociatedRoleException(v protocol.ResponseMetadata) error {
6941	return &NoAssociatedRoleException{
6942		RespMetadata: v,
6943	}
6944}
6945
6946// Code returns the exception type name.
6947func (s *NoAssociatedRoleException) Code() string {
6948	return "NoAssociatedRoleException"
6949}
6950
6951// Message returns the exception's message.
6952func (s *NoAssociatedRoleException) Message() string {
6953	if s.Message_ != nil {
6954		return *s.Message_
6955	}
6956	return ""
6957}
6958
6959// OrigErr always returns nil, satisfies awserr.Error interface.
6960func (s *NoAssociatedRoleException) OrigErr() error {
6961	return nil
6962}
6963
6964func (s *NoAssociatedRoleException) Error() string {
6965	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6966}
6967
6968// Status code returns the HTTP status code for the request's response error.
6969func (s *NoAssociatedRoleException) StatusCode() int {
6970	return s.RespMetadata.StatusCode
6971}
6972
6973// RequestID returns the service's response RequestID for request.
6974func (s *NoAssociatedRoleException) RequestID() string {
6975	return s.RespMetadata.RequestID
6976}
6977
6978// Exception that indicates that the resource state has been modified by another
6979// client. Retrieve the resource and then retry your request.
6980type OptimisticLockException struct {
6981	_            struct{}                  `type:"structure"`
6982	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6983
6984	Message_ *string `locationName:"message" type:"string"`
6985}
6986
6987// String returns the string representation.
6988//
6989// API parameter values that are decorated as "sensitive" in the API will not
6990// be included in the string output. The member name will be present, but the
6991// value will be replaced with "sensitive".
6992func (s OptimisticLockException) String() string {
6993	return awsutil.Prettify(s)
6994}
6995
6996// GoString returns the string representation.
6997//
6998// API parameter values that are decorated as "sensitive" in the API will not
6999// be included in the string output. The member name will be present, but the
7000// value will be replaced with "sensitive".
7001func (s OptimisticLockException) GoString() string {
7002	return s.String()
7003}
7004
7005func newErrorOptimisticLockException(v protocol.ResponseMetadata) error {
7006	return &OptimisticLockException{
7007		RespMetadata: v,
7008	}
7009}
7010
7011// Code returns the exception type name.
7012func (s *OptimisticLockException) Code() string {
7013	return "OptimisticLockException"
7014}
7015
7016// Message returns the exception's message.
7017func (s *OptimisticLockException) Message() string {
7018	if s.Message_ != nil {
7019		return *s.Message_
7020	}
7021	return ""
7022}
7023
7024// OrigErr always returns nil, satisfies awserr.Error interface.
7025func (s *OptimisticLockException) OrigErr() error {
7026	return nil
7027}
7028
7029func (s *OptimisticLockException) Error() string {
7030	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
7031}
7032
7033// Status code returns the HTTP status code for the request's response error.
7034func (s *OptimisticLockException) StatusCode() int {
7035	return s.RespMetadata.StatusCode
7036}
7037
7038// RequestID returns the service's response RequestID for request.
7039func (s *OptimisticLockException) RequestID() string {
7040	return s.RespMetadata.RequestID
7041}
7042
7043// An object that represents a resource that is under DDoS protection.
7044type Protection struct {
7045	_ struct{} `type:"structure"`
7046
7047	// The unique identifier (ID) for the Route 53 health check that's associated
7048	// with the protection.
7049	HealthCheckIds []*string `type:"list"`
7050
7051	// The unique identifier (ID) of the protection.
7052	Id *string `min:"1" type:"string"`
7053
7054	// The name of the protection. For example, My CloudFront distributions.
7055	Name *string `min:"1" type:"string"`
7056
7057	// The ARN (Amazon Resource Name) of the protection.
7058	ProtectionArn *string `min:"1" type:"string"`
7059
7060	// The ARN (Amazon Resource Name) of the Amazon Web Services resource that is
7061	// protected.
7062	ResourceArn *string `min:"1" type:"string"`
7063}
7064
7065// String returns the string representation.
7066//
7067// API parameter values that are decorated as "sensitive" in the API will not
7068// be included in the string output. The member name will be present, but the
7069// value will be replaced with "sensitive".
7070func (s Protection) String() string {
7071	return awsutil.Prettify(s)
7072}
7073
7074// GoString returns the string representation.
7075//
7076// API parameter values that are decorated as "sensitive" in the API will not
7077// be included in the string output. The member name will be present, but the
7078// value will be replaced with "sensitive".
7079func (s Protection) GoString() string {
7080	return s.String()
7081}
7082
7083// SetHealthCheckIds sets the HealthCheckIds field's value.
7084func (s *Protection) SetHealthCheckIds(v []*string) *Protection {
7085	s.HealthCheckIds = v
7086	return s
7087}
7088
7089// SetId sets the Id field's value.
7090func (s *Protection) SetId(v string) *Protection {
7091	s.Id = &v
7092	return s
7093}
7094
7095// SetName sets the Name field's value.
7096func (s *Protection) SetName(v string) *Protection {
7097	s.Name = &v
7098	return s
7099}
7100
7101// SetProtectionArn sets the ProtectionArn field's value.
7102func (s *Protection) SetProtectionArn(v string) *Protection {
7103	s.ProtectionArn = &v
7104	return s
7105}
7106
7107// SetResourceArn sets the ResourceArn field's value.
7108func (s *Protection) SetResourceArn(v string) *Protection {
7109	s.ResourceArn = &v
7110	return s
7111}
7112
7113// A grouping of protected resources that you and Shield Advanced can monitor
7114// as a collective. This resource grouping improves the accuracy of detection
7115// and reduces false positives.
7116type ProtectionGroup struct {
7117	_ struct{} `type:"structure"`
7118
7119	// Defines how Shield combines resource data for the group in order to detect,
7120	// mitigate, and report events.
7121	//
7122	//    * Sum - Use the total traffic across the group. This is a good choice
7123	//    for most cases. Examples include Elastic IP addresses for EC2 instances
7124	//    that scale manually or automatically.
7125	//
7126	//    * Mean - Use the average of the traffic across the group. This is a good
7127	//    choice for resources that share traffic uniformly. Examples include accelerators
7128	//    and load balancers.
7129	//
7130	//    * Max - Use the highest traffic from each resource. This is useful for
7131	//    resources that don't share traffic and for resources that share that traffic
7132	//    in a non-uniform way. Examples include Amazon CloudFront distributions
7133	//    and origin resources for CloudFront distributions.
7134	//
7135	// Aggregation is a required field
7136	Aggregation *string `type:"string" required:"true" enum:"ProtectionGroupAggregation"`
7137
7138	// The Amazon Resource Names (ARNs) of the resources to include in the protection
7139	// group. You must set this when you set Pattern to ARBITRARY and you must not
7140	// set it for any other Pattern setting.
7141	//
7142	// Members is a required field
7143	Members []*string `type:"list" required:"true"`
7144
7145	// The criteria to use to choose the protected resources for inclusion in the
7146	// group. You can include all resources that have protections, provide a list
7147	// of resource Amazon Resource Names (ARNs), or include all resources of a specified
7148	// resource type.
7149	//
7150	// Pattern is a required field
7151	Pattern *string `type:"string" required:"true" enum:"ProtectionGroupPattern"`
7152
7153	// The ARN (Amazon Resource Name) of the protection group.
7154	ProtectionGroupArn *string `min:"1" type:"string"`
7155
7156	// The name of the protection group. You use this to identify the protection
7157	// group in lists and to manage the protection group, for example to update,
7158	// delete, or describe it.
7159	//
7160	// ProtectionGroupId is a required field
7161	ProtectionGroupId *string `min:"1" type:"string" required:"true"`
7162
7163	// The resource type to include in the protection group. All protected resources
7164	// of this type are included in the protection group. You must set this when
7165	// you set Pattern to BY_RESOURCE_TYPE and you must not set it for any other
7166	// Pattern setting.
7167	ResourceType *string `type:"string" enum:"ProtectedResourceType"`
7168}
7169
7170// String returns the string representation.
7171//
7172// API parameter values that are decorated as "sensitive" in the API will not
7173// be included in the string output. The member name will be present, but the
7174// value will be replaced with "sensitive".
7175func (s ProtectionGroup) String() string {
7176	return awsutil.Prettify(s)
7177}
7178
7179// GoString returns the string representation.
7180//
7181// API parameter values that are decorated as "sensitive" in the API will not
7182// be included in the string output. The member name will be present, but the
7183// value will be replaced with "sensitive".
7184func (s ProtectionGroup) GoString() string {
7185	return s.String()
7186}
7187
7188// SetAggregation sets the Aggregation field's value.
7189func (s *ProtectionGroup) SetAggregation(v string) *ProtectionGroup {
7190	s.Aggregation = &v
7191	return s
7192}
7193
7194// SetMembers sets the Members field's value.
7195func (s *ProtectionGroup) SetMembers(v []*string) *ProtectionGroup {
7196	s.Members = v
7197	return s
7198}
7199
7200// SetPattern sets the Pattern field's value.
7201func (s *ProtectionGroup) SetPattern(v string) *ProtectionGroup {
7202	s.Pattern = &v
7203	return s
7204}
7205
7206// SetProtectionGroupArn sets the ProtectionGroupArn field's value.
7207func (s *ProtectionGroup) SetProtectionGroupArn(v string) *ProtectionGroup {
7208	s.ProtectionGroupArn = &v
7209	return s
7210}
7211
7212// SetProtectionGroupId sets the ProtectionGroupId field's value.
7213func (s *ProtectionGroup) SetProtectionGroupId(v string) *ProtectionGroup {
7214	s.ProtectionGroupId = &v
7215	return s
7216}
7217
7218// SetResourceType sets the ResourceType field's value.
7219func (s *ProtectionGroup) SetResourceType(v string) *ProtectionGroup {
7220	s.ResourceType = &v
7221	return s
7222}
7223
7224// Limits settings on protection groups with arbitrary pattern type.
7225type ProtectionGroupArbitraryPatternLimits struct {
7226	_ struct{} `type:"structure"`
7227
7228	// The maximum number of resources you can specify for a single arbitrary pattern
7229	// in a protection group.
7230	//
7231	// MaxMembers is a required field
7232	MaxMembers *int64 `type:"long" required:"true"`
7233}
7234
7235// String returns the string representation.
7236//
7237// API parameter values that are decorated as "sensitive" in the API will not
7238// be included in the string output. The member name will be present, but the
7239// value will be replaced with "sensitive".
7240func (s ProtectionGroupArbitraryPatternLimits) String() string {
7241	return awsutil.Prettify(s)
7242}
7243
7244// GoString returns the string representation.
7245//
7246// API parameter values that are decorated as "sensitive" in the API will not
7247// be included in the string output. The member name will be present, but the
7248// value will be replaced with "sensitive".
7249func (s ProtectionGroupArbitraryPatternLimits) GoString() string {
7250	return s.String()
7251}
7252
7253// SetMaxMembers sets the MaxMembers field's value.
7254func (s *ProtectionGroupArbitraryPatternLimits) SetMaxMembers(v int64) *ProtectionGroupArbitraryPatternLimits {
7255	s.MaxMembers = &v
7256	return s
7257}
7258
7259// Limits settings on protection groups for your subscription.
7260type ProtectionGroupLimits struct {
7261	_ struct{} `type:"structure"`
7262
7263	// The maximum number of protection groups that you can have at one time.
7264	//
7265	// MaxProtectionGroups is a required field
7266	MaxProtectionGroups *int64 `type:"long" required:"true"`
7267
7268	// Limits settings by pattern type in the protection groups for your subscription.
7269	//
7270	// PatternTypeLimits is a required field
7271	PatternTypeLimits *ProtectionGroupPatternTypeLimits `type:"structure" required:"true"`
7272}
7273
7274// String returns the string representation.
7275//
7276// API parameter values that are decorated as "sensitive" in the API will not
7277// be included in the string output. The member name will be present, but the
7278// value will be replaced with "sensitive".
7279func (s ProtectionGroupLimits) String() string {
7280	return awsutil.Prettify(s)
7281}
7282
7283// GoString returns the string representation.
7284//
7285// API parameter values that are decorated as "sensitive" in the API will not
7286// be included in the string output. The member name will be present, but the
7287// value will be replaced with "sensitive".
7288func (s ProtectionGroupLimits) GoString() string {
7289	return s.String()
7290}
7291
7292// SetMaxProtectionGroups sets the MaxProtectionGroups field's value.
7293func (s *ProtectionGroupLimits) SetMaxProtectionGroups(v int64) *ProtectionGroupLimits {
7294	s.MaxProtectionGroups = &v
7295	return s
7296}
7297
7298// SetPatternTypeLimits sets the PatternTypeLimits field's value.
7299func (s *ProtectionGroupLimits) SetPatternTypeLimits(v *ProtectionGroupPatternTypeLimits) *ProtectionGroupLimits {
7300	s.PatternTypeLimits = v
7301	return s
7302}
7303
7304// Limits settings by pattern type in the protection groups for your subscription.
7305type ProtectionGroupPatternTypeLimits struct {
7306	_ struct{} `type:"structure"`
7307
7308	// Limits settings on protection groups with arbitrary pattern type.
7309	//
7310	// ArbitraryPatternLimits is a required field
7311	ArbitraryPatternLimits *ProtectionGroupArbitraryPatternLimits `type:"structure" required:"true"`
7312}
7313
7314// String returns the string representation.
7315//
7316// API parameter values that are decorated as "sensitive" in the API will not
7317// be included in the string output. The member name will be present, but the
7318// value will be replaced with "sensitive".
7319func (s ProtectionGroupPatternTypeLimits) String() string {
7320	return awsutil.Prettify(s)
7321}
7322
7323// GoString returns the string representation.
7324//
7325// API parameter values that are decorated as "sensitive" in the API will not
7326// be included in the string output. The member name will be present, but the
7327// value will be replaced with "sensitive".
7328func (s ProtectionGroupPatternTypeLimits) GoString() string {
7329	return s.String()
7330}
7331
7332// SetArbitraryPatternLimits sets the ArbitraryPatternLimits field's value.
7333func (s *ProtectionGroupPatternTypeLimits) SetArbitraryPatternLimits(v *ProtectionGroupArbitraryPatternLimits) *ProtectionGroupPatternTypeLimits {
7334	s.ArbitraryPatternLimits = v
7335	return s
7336}
7337
7338// Limits settings on protections for your subscription.
7339type ProtectionLimits struct {
7340	_ struct{} `type:"structure"`
7341
7342	// The maximum number of resource types that you can specify in a protection.
7343	//
7344	// ProtectedResourceTypeLimits is a required field
7345	ProtectedResourceTypeLimits []*Limit `type:"list" required:"true"`
7346}
7347
7348// String returns the string representation.
7349//
7350// API parameter values that are decorated as "sensitive" in the API will not
7351// be included in the string output. The member name will be present, but the
7352// value will be replaced with "sensitive".
7353func (s ProtectionLimits) String() string {
7354	return awsutil.Prettify(s)
7355}
7356
7357// GoString returns the string representation.
7358//
7359// API parameter values that are decorated as "sensitive" in the API will not
7360// be included in the string output. The member name will be present, but the
7361// value will be replaced with "sensitive".
7362func (s ProtectionLimits) GoString() string {
7363	return s.String()
7364}
7365
7366// SetProtectedResourceTypeLimits sets the ProtectedResourceTypeLimits field's value.
7367func (s *ProtectionLimits) SetProtectedResourceTypeLimits(v []*Limit) *ProtectionLimits {
7368	s.ProtectedResourceTypeLimits = v
7369	return s
7370}
7371
7372// Exception indicating the specified resource already exists. If available,
7373// this exception includes details in additional properties.
7374type ResourceAlreadyExistsException struct {
7375	_            struct{}                  `type:"structure"`
7376	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
7377
7378	Message_ *string `locationName:"message" type:"string"`
7379
7380	// The type of resource that already exists.
7381	ResourceType *string `locationName:"resourceType" type:"string"`
7382}
7383
7384// String returns the string representation.
7385//
7386// API parameter values that are decorated as "sensitive" in the API will not
7387// be included in the string output. The member name will be present, but the
7388// value will be replaced with "sensitive".
7389func (s ResourceAlreadyExistsException) String() string {
7390	return awsutil.Prettify(s)
7391}
7392
7393// GoString returns the string representation.
7394//
7395// API parameter values that are decorated as "sensitive" in the API will not
7396// be included in the string output. The member name will be present, but the
7397// value will be replaced with "sensitive".
7398func (s ResourceAlreadyExistsException) GoString() string {
7399	return s.String()
7400}
7401
7402func newErrorResourceAlreadyExistsException(v protocol.ResponseMetadata) error {
7403	return &ResourceAlreadyExistsException{
7404		RespMetadata: v,
7405	}
7406}
7407
7408// Code returns the exception type name.
7409func (s *ResourceAlreadyExistsException) Code() string {
7410	return "ResourceAlreadyExistsException"
7411}
7412
7413// Message returns the exception's message.
7414func (s *ResourceAlreadyExistsException) Message() string {
7415	if s.Message_ != nil {
7416		return *s.Message_
7417	}
7418	return ""
7419}
7420
7421// OrigErr always returns nil, satisfies awserr.Error interface.
7422func (s *ResourceAlreadyExistsException) OrigErr() error {
7423	return nil
7424}
7425
7426func (s *ResourceAlreadyExistsException) Error() string {
7427	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
7428}
7429
7430// Status code returns the HTTP status code for the request's response error.
7431func (s *ResourceAlreadyExistsException) StatusCode() int {
7432	return s.RespMetadata.StatusCode
7433}
7434
7435// RequestID returns the service's response RequestID for request.
7436func (s *ResourceAlreadyExistsException) RequestID() string {
7437	return s.RespMetadata.RequestID
7438}
7439
7440// Exception indicating the specified resource does not exist. If available,
7441// this exception includes details in additional properties.
7442type ResourceNotFoundException struct {
7443	_            struct{}                  `type:"structure"`
7444	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
7445
7446	Message_ *string `locationName:"message" type:"string"`
7447
7448	// Type of resource.
7449	ResourceType *string `locationName:"resourceType" type:"string"`
7450}
7451
7452// String returns the string representation.
7453//
7454// API parameter values that are decorated as "sensitive" in the API will not
7455// be included in the string output. The member name will be present, but the
7456// value will be replaced with "sensitive".
7457func (s ResourceNotFoundException) String() string {
7458	return awsutil.Prettify(s)
7459}
7460
7461// GoString returns the string representation.
7462//
7463// API parameter values that are decorated as "sensitive" in the API will not
7464// be included in the string output. The member name will be present, but the
7465// value will be replaced with "sensitive".
7466func (s ResourceNotFoundException) GoString() string {
7467	return s.String()
7468}
7469
7470func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
7471	return &ResourceNotFoundException{
7472		RespMetadata: v,
7473	}
7474}
7475
7476// Code returns the exception type name.
7477func (s *ResourceNotFoundException) Code() string {
7478	return "ResourceNotFoundException"
7479}
7480
7481// Message returns the exception's message.
7482func (s *ResourceNotFoundException) Message() string {
7483	if s.Message_ != nil {
7484		return *s.Message_
7485	}
7486	return ""
7487}
7488
7489// OrigErr always returns nil, satisfies awserr.Error interface.
7490func (s *ResourceNotFoundException) OrigErr() error {
7491	return nil
7492}
7493
7494func (s *ResourceNotFoundException) Error() string {
7495	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
7496}
7497
7498// Status code returns the HTTP status code for the request's response error.
7499func (s *ResourceNotFoundException) StatusCode() int {
7500	return s.RespMetadata.StatusCode
7501}
7502
7503// RequestID returns the service's response RequestID for request.
7504func (s *ResourceNotFoundException) RequestID() string {
7505	return s.RespMetadata.RequestID
7506}
7507
7508// The attack information for the specified SubResource.
7509type SubResourceSummary struct {
7510	_ struct{} `type:"structure"`
7511
7512	// The list of attack types and associated counters.
7513	AttackVectors []*SummarizedAttackVector `type:"list"`
7514
7515	// The counters that describe the details of the attack.
7516	Counters []*SummarizedCounter `type:"list"`
7517
7518	// The unique identifier (ID) of the SubResource.
7519	Id *string `type:"string"`
7520
7521	// The SubResource type.
7522	Type *string `type:"string" enum:"SubResourceType"`
7523}
7524
7525// String returns the string representation.
7526//
7527// API parameter values that are decorated as "sensitive" in the API will not
7528// be included in the string output. The member name will be present, but the
7529// value will be replaced with "sensitive".
7530func (s SubResourceSummary) String() string {
7531	return awsutil.Prettify(s)
7532}
7533
7534// GoString returns the string representation.
7535//
7536// API parameter values that are decorated as "sensitive" in the API will not
7537// be included in the string output. The member name will be present, but the
7538// value will be replaced with "sensitive".
7539func (s SubResourceSummary) GoString() string {
7540	return s.String()
7541}
7542
7543// SetAttackVectors sets the AttackVectors field's value.
7544func (s *SubResourceSummary) SetAttackVectors(v []*SummarizedAttackVector) *SubResourceSummary {
7545	s.AttackVectors = v
7546	return s
7547}
7548
7549// SetCounters sets the Counters field's value.
7550func (s *SubResourceSummary) SetCounters(v []*SummarizedCounter) *SubResourceSummary {
7551	s.Counters = v
7552	return s
7553}
7554
7555// SetId sets the Id field's value.
7556func (s *SubResourceSummary) SetId(v string) *SubResourceSummary {
7557	s.Id = &v
7558	return s
7559}
7560
7561// SetType sets the Type field's value.
7562func (s *SubResourceSummary) SetType(v string) *SubResourceSummary {
7563	s.Type = &v
7564	return s
7565}
7566
7567// Information about the Shield Advanced subscription for an account.
7568type Subscription struct {
7569	_ struct{} `type:"structure"`
7570
7571	// If ENABLED, the subscription will be automatically renewed at the end of
7572	// the existing subscription period.
7573	//
7574	// When you initally create a subscription, AutoRenew is set to ENABLED. You
7575	// can change this by submitting an UpdateSubscription request. If the UpdateSubscription
7576	// request does not included a value for AutoRenew, the existing value for AutoRenew
7577	// remains unchanged.
7578	AutoRenew *string `type:"string" enum:"AutoRenew"`
7579
7580	// The date and time your subscription will end.
7581	EndTime *time.Time `type:"timestamp"`
7582
7583	// Specifies how many protections of a given type you can create.
7584	Limits []*Limit `type:"list"`
7585
7586	// If ENABLED, the Shield Response Team (SRT) will use email and phone to notify
7587	// contacts about escalations to the SRT and to initiate proactive customer
7588	// support.
7589	//
7590	// If PENDING, you have requested proactive engagement and the request is pending.
7591	// The status changes to ENABLED when your request is fully processed.
7592	//
7593	// If DISABLED, the SRT will not proactively notify contacts about escalations
7594	// or to initiate proactive customer support.
7595	ProactiveEngagementStatus *string `type:"string" enum:"ProactiveEngagementStatus"`
7596
7597	// The start time of the subscription, in Unix time in seconds. For more information
7598	// see timestamp (http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#parameter-types).
7599	StartTime *time.Time `type:"timestamp"`
7600
7601	// The ARN (Amazon Resource Name) of the subscription.
7602	SubscriptionArn *string `min:"1" type:"string"`
7603
7604	// Limits settings for your subscription.
7605	//
7606	// SubscriptionLimits is a required field
7607	SubscriptionLimits *SubscriptionLimits `type:"structure" required:"true"`
7608
7609	// The length, in seconds, of the Shield Advanced subscription for the account.
7610	TimeCommitmentInSeconds *int64 `type:"long"`
7611}
7612
7613// String returns the string representation.
7614//
7615// API parameter values that are decorated as "sensitive" in the API will not
7616// be included in the string output. The member name will be present, but the
7617// value will be replaced with "sensitive".
7618func (s Subscription) String() string {
7619	return awsutil.Prettify(s)
7620}
7621
7622// GoString returns the string representation.
7623//
7624// API parameter values that are decorated as "sensitive" in the API will not
7625// be included in the string output. The member name will be present, but the
7626// value will be replaced with "sensitive".
7627func (s Subscription) GoString() string {
7628	return s.String()
7629}
7630
7631// SetAutoRenew sets the AutoRenew field's value.
7632func (s *Subscription) SetAutoRenew(v string) *Subscription {
7633	s.AutoRenew = &v
7634	return s
7635}
7636
7637// SetEndTime sets the EndTime field's value.
7638func (s *Subscription) SetEndTime(v time.Time) *Subscription {
7639	s.EndTime = &v
7640	return s
7641}
7642
7643// SetLimits sets the Limits field's value.
7644func (s *Subscription) SetLimits(v []*Limit) *Subscription {
7645	s.Limits = v
7646	return s
7647}
7648
7649// SetProactiveEngagementStatus sets the ProactiveEngagementStatus field's value.
7650func (s *Subscription) SetProactiveEngagementStatus(v string) *Subscription {
7651	s.ProactiveEngagementStatus = &v
7652	return s
7653}
7654
7655// SetStartTime sets the StartTime field's value.
7656func (s *Subscription) SetStartTime(v time.Time) *Subscription {
7657	s.StartTime = &v
7658	return s
7659}
7660
7661// SetSubscriptionArn sets the SubscriptionArn field's value.
7662func (s *Subscription) SetSubscriptionArn(v string) *Subscription {
7663	s.SubscriptionArn = &v
7664	return s
7665}
7666
7667// SetSubscriptionLimits sets the SubscriptionLimits field's value.
7668func (s *Subscription) SetSubscriptionLimits(v *SubscriptionLimits) *Subscription {
7669	s.SubscriptionLimits = v
7670	return s
7671}
7672
7673// SetTimeCommitmentInSeconds sets the TimeCommitmentInSeconds field's value.
7674func (s *Subscription) SetTimeCommitmentInSeconds(v int64) *Subscription {
7675	s.TimeCommitmentInSeconds = &v
7676	return s
7677}
7678
7679// Limits settings for your subscription.
7680type SubscriptionLimits struct {
7681	_ struct{} `type:"structure"`
7682
7683	// Limits settings on protection groups for your subscription.
7684	//
7685	// ProtectionGroupLimits is a required field
7686	ProtectionGroupLimits *ProtectionGroupLimits `type:"structure" required:"true"`
7687
7688	// Limits settings on protections for your subscription.
7689	//
7690	// ProtectionLimits is a required field
7691	ProtectionLimits *ProtectionLimits `type:"structure" required:"true"`
7692}
7693
7694// String returns the string representation.
7695//
7696// API parameter values that are decorated as "sensitive" in the API will not
7697// be included in the string output. The member name will be present, but the
7698// value will be replaced with "sensitive".
7699func (s SubscriptionLimits) String() string {
7700	return awsutil.Prettify(s)
7701}
7702
7703// GoString returns the string representation.
7704//
7705// API parameter values that are decorated as "sensitive" in the API will not
7706// be included in the string output. The member name will be present, but the
7707// value will be replaced with "sensitive".
7708func (s SubscriptionLimits) GoString() string {
7709	return s.String()
7710}
7711
7712// SetProtectionGroupLimits sets the ProtectionGroupLimits field's value.
7713func (s *SubscriptionLimits) SetProtectionGroupLimits(v *ProtectionGroupLimits) *SubscriptionLimits {
7714	s.ProtectionGroupLimits = v
7715	return s
7716}
7717
7718// SetProtectionLimits sets the ProtectionLimits field's value.
7719func (s *SubscriptionLimits) SetProtectionLimits(v *ProtectionLimits) *SubscriptionLimits {
7720	s.ProtectionLimits = v
7721	return s
7722}
7723
7724// A summary of information about the attack.
7725type SummarizedAttackVector struct {
7726	_ struct{} `type:"structure"`
7727
7728	// The list of counters that describe the details of the attack.
7729	VectorCounters []*SummarizedCounter `type:"list"`
7730
7731	// The attack type, for example, SNMP reflection or SYN flood.
7732	//
7733	// VectorType is a required field
7734	VectorType *string `type:"string" required:"true"`
7735}
7736
7737// String returns the string representation.
7738//
7739// API parameter values that are decorated as "sensitive" in the API will not
7740// be included in the string output. The member name will be present, but the
7741// value will be replaced with "sensitive".
7742func (s SummarizedAttackVector) String() string {
7743	return awsutil.Prettify(s)
7744}
7745
7746// GoString returns the string representation.
7747//
7748// API parameter values that are decorated as "sensitive" in the API will not
7749// be included in the string output. The member name will be present, but the
7750// value will be replaced with "sensitive".
7751func (s SummarizedAttackVector) GoString() string {
7752	return s.String()
7753}
7754
7755// SetVectorCounters sets the VectorCounters field's value.
7756func (s *SummarizedAttackVector) SetVectorCounters(v []*SummarizedCounter) *SummarizedAttackVector {
7757	s.VectorCounters = v
7758	return s
7759}
7760
7761// SetVectorType sets the VectorType field's value.
7762func (s *SummarizedAttackVector) SetVectorType(v string) *SummarizedAttackVector {
7763	s.VectorType = &v
7764	return s
7765}
7766
7767// The counter that describes a DDoS attack.
7768type SummarizedCounter struct {
7769	_ struct{} `type:"structure"`
7770
7771	// The average value of the counter for a specified time period.
7772	Average *float64 `type:"double"`
7773
7774	// The maximum value of the counter for a specified time period.
7775	Max *float64 `type:"double"`
7776
7777	// The number of counters for a specified time period.
7778	N *int64 `type:"integer"`
7779
7780	// The counter name.
7781	Name *string `type:"string"`
7782
7783	// The total of counter values for a specified time period.
7784	Sum *float64 `type:"double"`
7785
7786	// The unit of the counters.
7787	Unit *string `type:"string"`
7788}
7789
7790// String returns the string representation.
7791//
7792// API parameter values that are decorated as "sensitive" in the API will not
7793// be included in the string output. The member name will be present, but the
7794// value will be replaced with "sensitive".
7795func (s SummarizedCounter) String() string {
7796	return awsutil.Prettify(s)
7797}
7798
7799// GoString returns the string representation.
7800//
7801// API parameter values that are decorated as "sensitive" in the API will not
7802// be included in the string output. The member name will be present, but the
7803// value will be replaced with "sensitive".
7804func (s SummarizedCounter) GoString() string {
7805	return s.String()
7806}
7807
7808// SetAverage sets the Average field's value.
7809func (s *SummarizedCounter) SetAverage(v float64) *SummarizedCounter {
7810	s.Average = &v
7811	return s
7812}
7813
7814// SetMax sets the Max field's value.
7815func (s *SummarizedCounter) SetMax(v float64) *SummarizedCounter {
7816	s.Max = &v
7817	return s
7818}
7819
7820// SetN sets the N field's value.
7821func (s *SummarizedCounter) SetN(v int64) *SummarizedCounter {
7822	s.N = &v
7823	return s
7824}
7825
7826// SetName sets the Name field's value.
7827func (s *SummarizedCounter) SetName(v string) *SummarizedCounter {
7828	s.Name = &v
7829	return s
7830}
7831
7832// SetSum sets the Sum field's value.
7833func (s *SummarizedCounter) SetSum(v float64) *SummarizedCounter {
7834	s.Sum = &v
7835	return s
7836}
7837
7838// SetUnit sets the Unit field's value.
7839func (s *SummarizedCounter) SetUnit(v string) *SummarizedCounter {
7840	s.Unit = &v
7841	return s
7842}
7843
7844// A tag associated with an Amazon Web Services resource. Tags are key:value
7845// pairs that you can use to categorize and manage your resources, for purposes
7846// like billing or other management. Typically, the tag key represents a category,
7847// such as "environment", and the tag value represents a specific value within
7848// that category, such as "test," "development," or "production". Or you might
7849// set the tag key to "customer" and the value to the customer name or ID. You
7850// can specify one or more tags to add to each Amazon Web Services resource,
7851// up to 50 tags for a resource.
7852type Tag struct {
7853	_ struct{} `type:"structure"`
7854
7855	// Part of the key:value pair that defines a tag. You can use a tag key to describe
7856	// a category of information, such as "customer." Tag keys are case-sensitive.
7857	Key *string `min:"1" type:"string"`
7858
7859	// Part of the key:value pair that defines a tag. You can use a tag value to
7860	// describe a specific value within a category, such as "companyA" or "companyB."
7861	// Tag values are case-sensitive.
7862	Value *string `type:"string"`
7863}
7864
7865// String returns the string representation.
7866//
7867// API parameter values that are decorated as "sensitive" in the API will not
7868// be included in the string output. The member name will be present, but the
7869// value will be replaced with "sensitive".
7870func (s Tag) String() string {
7871	return awsutil.Prettify(s)
7872}
7873
7874// GoString returns the string representation.
7875//
7876// API parameter values that are decorated as "sensitive" in the API will not
7877// be included in the string output. The member name will be present, but the
7878// value will be replaced with "sensitive".
7879func (s Tag) GoString() string {
7880	return s.String()
7881}
7882
7883// Validate inspects the fields of the type to determine if they are valid.
7884func (s *Tag) Validate() error {
7885	invalidParams := request.ErrInvalidParams{Context: "Tag"}
7886	if s.Key != nil && len(*s.Key) < 1 {
7887		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
7888	}
7889
7890	if invalidParams.Len() > 0 {
7891		return invalidParams
7892	}
7893	return nil
7894}
7895
7896// SetKey sets the Key field's value.
7897func (s *Tag) SetKey(v string) *Tag {
7898	s.Key = &v
7899	return s
7900}
7901
7902// SetValue sets the Value field's value.
7903func (s *Tag) SetValue(v string) *Tag {
7904	s.Value = &v
7905	return s
7906}
7907
7908type TagResourceInput struct {
7909	_ struct{} `type:"structure"`
7910
7911	// The Amazon Resource Name (ARN) of the resource that you want to add or update
7912	// tags for.
7913	//
7914	// ResourceARN is a required field
7915	ResourceARN *string `min:"1" type:"string" required:"true"`
7916
7917	// The tags that you want to modify or add to the resource.
7918	//
7919	// Tags is a required field
7920	Tags []*Tag `type:"list" required:"true"`
7921}
7922
7923// String returns the string representation.
7924//
7925// API parameter values that are decorated as "sensitive" in the API will not
7926// be included in the string output. The member name will be present, but the
7927// value will be replaced with "sensitive".
7928func (s TagResourceInput) String() string {
7929	return awsutil.Prettify(s)
7930}
7931
7932// GoString returns the string representation.
7933//
7934// API parameter values that are decorated as "sensitive" in the API will not
7935// be included in the string output. The member name will be present, but the
7936// value will be replaced with "sensitive".
7937func (s TagResourceInput) GoString() string {
7938	return s.String()
7939}
7940
7941// Validate inspects the fields of the type to determine if they are valid.
7942func (s *TagResourceInput) Validate() error {
7943	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
7944	if s.ResourceARN == nil {
7945		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
7946	}
7947	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
7948		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
7949	}
7950	if s.Tags == nil {
7951		invalidParams.Add(request.NewErrParamRequired("Tags"))
7952	}
7953	if s.Tags != nil {
7954		for i, v := range s.Tags {
7955			if v == nil {
7956				continue
7957			}
7958			if err := v.Validate(); err != nil {
7959				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
7960			}
7961		}
7962	}
7963
7964	if invalidParams.Len() > 0 {
7965		return invalidParams
7966	}
7967	return nil
7968}
7969
7970// SetResourceARN sets the ResourceARN field's value.
7971func (s *TagResourceInput) SetResourceARN(v string) *TagResourceInput {
7972	s.ResourceARN = &v
7973	return s
7974}
7975
7976// SetTags sets the Tags field's value.
7977func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
7978	s.Tags = v
7979	return s
7980}
7981
7982type TagResourceOutput struct {
7983	_ struct{} `type:"structure"`
7984}
7985
7986// String returns the string representation.
7987//
7988// API parameter values that are decorated as "sensitive" in the API will not
7989// be included in the string output. The member name will be present, but the
7990// value will be replaced with "sensitive".
7991func (s TagResourceOutput) String() string {
7992	return awsutil.Prettify(s)
7993}
7994
7995// GoString returns the string representation.
7996//
7997// API parameter values that are decorated as "sensitive" in the API will not
7998// be included in the string output. The member name will be present, but the
7999// value will be replaced with "sensitive".
8000func (s TagResourceOutput) GoString() string {
8001	return s.String()
8002}
8003
8004// The time range.
8005type TimeRange struct {
8006	_ struct{} `type:"structure"`
8007
8008	// The start time, in Unix time in seconds. For more information see timestamp
8009	// (http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#parameter-types).
8010	FromInclusive *time.Time `type:"timestamp"`
8011
8012	// The end time, in Unix time in seconds. For more information see timestamp
8013	// (http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#parameter-types).
8014	ToExclusive *time.Time `type:"timestamp"`
8015}
8016
8017// String returns the string representation.
8018//
8019// API parameter values that are decorated as "sensitive" in the API will not
8020// be included in the string output. The member name will be present, but the
8021// value will be replaced with "sensitive".
8022func (s TimeRange) String() string {
8023	return awsutil.Prettify(s)
8024}
8025
8026// GoString returns the string representation.
8027//
8028// API parameter values that are decorated as "sensitive" in the API will not
8029// be included in the string output. The member name will be present, but the
8030// value will be replaced with "sensitive".
8031func (s TimeRange) GoString() string {
8032	return s.String()
8033}
8034
8035// SetFromInclusive sets the FromInclusive field's value.
8036func (s *TimeRange) SetFromInclusive(v time.Time) *TimeRange {
8037	s.FromInclusive = &v
8038	return s
8039}
8040
8041// SetToExclusive sets the ToExclusive field's value.
8042func (s *TimeRange) SetToExclusive(v time.Time) *TimeRange {
8043	s.ToExclusive = &v
8044	return s
8045}
8046
8047type UntagResourceInput struct {
8048	_ struct{} `type:"structure"`
8049
8050	// The Amazon Resource Name (ARN) of the resource that you want to remove tags
8051	// from.
8052	//
8053	// ResourceARN is a required field
8054	ResourceARN *string `min:"1" type:"string" required:"true"`
8055
8056	// The tag key for each tag that you want to remove from the resource.
8057	//
8058	// TagKeys is a required field
8059	TagKeys []*string `type:"list" required:"true"`
8060}
8061
8062// String returns the string representation.
8063//
8064// API parameter values that are decorated as "sensitive" in the API will not
8065// be included in the string output. The member name will be present, but the
8066// value will be replaced with "sensitive".
8067func (s UntagResourceInput) String() string {
8068	return awsutil.Prettify(s)
8069}
8070
8071// GoString returns the string representation.
8072//
8073// API parameter values that are decorated as "sensitive" in the API will not
8074// be included in the string output. The member name will be present, but the
8075// value will be replaced with "sensitive".
8076func (s UntagResourceInput) GoString() string {
8077	return s.String()
8078}
8079
8080// Validate inspects the fields of the type to determine if they are valid.
8081func (s *UntagResourceInput) Validate() error {
8082	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
8083	if s.ResourceARN == nil {
8084		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
8085	}
8086	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
8087		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
8088	}
8089	if s.TagKeys == nil {
8090		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
8091	}
8092
8093	if invalidParams.Len() > 0 {
8094		return invalidParams
8095	}
8096	return nil
8097}
8098
8099// SetResourceARN sets the ResourceARN field's value.
8100func (s *UntagResourceInput) SetResourceARN(v string) *UntagResourceInput {
8101	s.ResourceARN = &v
8102	return s
8103}
8104
8105// SetTagKeys sets the TagKeys field's value.
8106func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
8107	s.TagKeys = v
8108	return s
8109}
8110
8111type UntagResourceOutput struct {
8112	_ struct{} `type:"structure"`
8113}
8114
8115// String returns the string representation.
8116//
8117// API parameter values that are decorated as "sensitive" in the API will not
8118// be included in the string output. The member name will be present, but the
8119// value will be replaced with "sensitive".
8120func (s UntagResourceOutput) String() string {
8121	return awsutil.Prettify(s)
8122}
8123
8124// GoString returns the string representation.
8125//
8126// API parameter values that are decorated as "sensitive" in the API will not
8127// be included in the string output. The member name will be present, but the
8128// value will be replaced with "sensitive".
8129func (s UntagResourceOutput) GoString() string {
8130	return s.String()
8131}
8132
8133type UpdateEmergencyContactSettingsInput struct {
8134	_ struct{} `type:"structure"`
8135
8136	// A list of email addresses and phone numbers that the Shield Response Team
8137	// (SRT) can use to contact you if you have proactive engagement enabled, for
8138	// escalations to the SRT and to initiate proactive customer support.
8139	//
8140	// If you have proactive engagement enabled, the contact list must include at
8141	// least one phone number.
8142	EmergencyContactList []*EmergencyContact `type:"list"`
8143}
8144
8145// String returns the string representation.
8146//
8147// API parameter values that are decorated as "sensitive" in the API will not
8148// be included in the string output. The member name will be present, but the
8149// value will be replaced with "sensitive".
8150func (s UpdateEmergencyContactSettingsInput) String() string {
8151	return awsutil.Prettify(s)
8152}
8153
8154// GoString returns the string representation.
8155//
8156// API parameter values that are decorated as "sensitive" in the API will not
8157// be included in the string output. The member name will be present, but the
8158// value will be replaced with "sensitive".
8159func (s UpdateEmergencyContactSettingsInput) GoString() string {
8160	return s.String()
8161}
8162
8163// Validate inspects the fields of the type to determine if they are valid.
8164func (s *UpdateEmergencyContactSettingsInput) Validate() error {
8165	invalidParams := request.ErrInvalidParams{Context: "UpdateEmergencyContactSettingsInput"}
8166	if s.EmergencyContactList != nil {
8167		for i, v := range s.EmergencyContactList {
8168			if v == nil {
8169				continue
8170			}
8171			if err := v.Validate(); err != nil {
8172				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "EmergencyContactList", i), err.(request.ErrInvalidParams))
8173			}
8174		}
8175	}
8176
8177	if invalidParams.Len() > 0 {
8178		return invalidParams
8179	}
8180	return nil
8181}
8182
8183// SetEmergencyContactList sets the EmergencyContactList field's value.
8184func (s *UpdateEmergencyContactSettingsInput) SetEmergencyContactList(v []*EmergencyContact) *UpdateEmergencyContactSettingsInput {
8185	s.EmergencyContactList = v
8186	return s
8187}
8188
8189type UpdateEmergencyContactSettingsOutput struct {
8190	_ struct{} `type:"structure"`
8191}
8192
8193// String returns the string representation.
8194//
8195// API parameter values that are decorated as "sensitive" in the API will not
8196// be included in the string output. The member name will be present, but the
8197// value will be replaced with "sensitive".
8198func (s UpdateEmergencyContactSettingsOutput) String() string {
8199	return awsutil.Prettify(s)
8200}
8201
8202// GoString returns the string representation.
8203//
8204// API parameter values that are decorated as "sensitive" in the API will not
8205// be included in the string output. The member name will be present, but the
8206// value will be replaced with "sensitive".
8207func (s UpdateEmergencyContactSettingsOutput) GoString() string {
8208	return s.String()
8209}
8210
8211type UpdateProtectionGroupInput struct {
8212	_ struct{} `type:"structure"`
8213
8214	// Defines how Shield combines resource data for the group in order to detect,
8215	// mitigate, and report events.
8216	//
8217	//    * Sum - Use the total traffic across the group. This is a good choice
8218	//    for most cases. Examples include Elastic IP addresses for EC2 instances
8219	//    that scale manually or automatically.
8220	//
8221	//    * Mean - Use the average of the traffic across the group. This is a good
8222	//    choice for resources that share traffic uniformly. Examples include accelerators
8223	//    and load balancers.
8224	//
8225	//    * Max - Use the highest traffic from each resource. This is useful for
8226	//    resources that don't share traffic and for resources that share that traffic
8227	//    in a non-uniform way. Examples include Amazon CloudFront distributions
8228	//    and origin resources for CloudFront distributions.
8229	//
8230	// Aggregation is a required field
8231	Aggregation *string `type:"string" required:"true" enum:"ProtectionGroupAggregation"`
8232
8233	// The Amazon Resource Names (ARNs) of the resources to include in the protection
8234	// group. You must set this when you set Pattern to ARBITRARY and you must not
8235	// set it for any other Pattern setting.
8236	Members []*string `type:"list"`
8237
8238	// The criteria to use to choose the protected resources for inclusion in the
8239	// group. You can include all resources that have protections, provide a list
8240	// of resource Amazon Resource Names (ARNs), or include all resources of a specified
8241	// resource type.
8242	//
8243	// Pattern is a required field
8244	Pattern *string `type:"string" required:"true" enum:"ProtectionGroupPattern"`
8245
8246	// The name of the protection group. You use this to identify the protection
8247	// group in lists and to manage the protection group, for example to update,
8248	// delete, or describe it.
8249	//
8250	// ProtectionGroupId is a required field
8251	ProtectionGroupId *string `min:"1" type:"string" required:"true"`
8252
8253	// The resource type to include in the protection group. All protected resources
8254	// of this type are included in the protection group. You must set this when
8255	// you set Pattern to BY_RESOURCE_TYPE and you must not set it for any other
8256	// Pattern setting.
8257	ResourceType *string `type:"string" enum:"ProtectedResourceType"`
8258}
8259
8260// String returns the string representation.
8261//
8262// API parameter values that are decorated as "sensitive" in the API will not
8263// be included in the string output. The member name will be present, but the
8264// value will be replaced with "sensitive".
8265func (s UpdateProtectionGroupInput) String() string {
8266	return awsutil.Prettify(s)
8267}
8268
8269// GoString returns the string representation.
8270//
8271// API parameter values that are decorated as "sensitive" in the API will not
8272// be included in the string output. The member name will be present, but the
8273// value will be replaced with "sensitive".
8274func (s UpdateProtectionGroupInput) GoString() string {
8275	return s.String()
8276}
8277
8278// Validate inspects the fields of the type to determine if they are valid.
8279func (s *UpdateProtectionGroupInput) Validate() error {
8280	invalidParams := request.ErrInvalidParams{Context: "UpdateProtectionGroupInput"}
8281	if s.Aggregation == nil {
8282		invalidParams.Add(request.NewErrParamRequired("Aggregation"))
8283	}
8284	if s.Pattern == nil {
8285		invalidParams.Add(request.NewErrParamRequired("Pattern"))
8286	}
8287	if s.ProtectionGroupId == nil {
8288		invalidParams.Add(request.NewErrParamRequired("ProtectionGroupId"))
8289	}
8290	if s.ProtectionGroupId != nil && len(*s.ProtectionGroupId) < 1 {
8291		invalidParams.Add(request.NewErrParamMinLen("ProtectionGroupId", 1))
8292	}
8293
8294	if invalidParams.Len() > 0 {
8295		return invalidParams
8296	}
8297	return nil
8298}
8299
8300// SetAggregation sets the Aggregation field's value.
8301func (s *UpdateProtectionGroupInput) SetAggregation(v string) *UpdateProtectionGroupInput {
8302	s.Aggregation = &v
8303	return s
8304}
8305
8306// SetMembers sets the Members field's value.
8307func (s *UpdateProtectionGroupInput) SetMembers(v []*string) *UpdateProtectionGroupInput {
8308	s.Members = v
8309	return s
8310}
8311
8312// SetPattern sets the Pattern field's value.
8313func (s *UpdateProtectionGroupInput) SetPattern(v string) *UpdateProtectionGroupInput {
8314	s.Pattern = &v
8315	return s
8316}
8317
8318// SetProtectionGroupId sets the ProtectionGroupId field's value.
8319func (s *UpdateProtectionGroupInput) SetProtectionGroupId(v string) *UpdateProtectionGroupInput {
8320	s.ProtectionGroupId = &v
8321	return s
8322}
8323
8324// SetResourceType sets the ResourceType field's value.
8325func (s *UpdateProtectionGroupInput) SetResourceType(v string) *UpdateProtectionGroupInput {
8326	s.ResourceType = &v
8327	return s
8328}
8329
8330type UpdateProtectionGroupOutput struct {
8331	_ struct{} `type:"structure"`
8332}
8333
8334// String returns the string representation.
8335//
8336// API parameter values that are decorated as "sensitive" in the API will not
8337// be included in the string output. The member name will be present, but the
8338// value will be replaced with "sensitive".
8339func (s UpdateProtectionGroupOutput) String() string {
8340	return awsutil.Prettify(s)
8341}
8342
8343// GoString returns the string representation.
8344//
8345// API parameter values that are decorated as "sensitive" in the API will not
8346// be included in the string output. The member name will be present, but the
8347// value will be replaced with "sensitive".
8348func (s UpdateProtectionGroupOutput) GoString() string {
8349	return s.String()
8350}
8351
8352type UpdateSubscriptionInput struct {
8353	_ struct{} `type:"structure"`
8354
8355	// When you initally create a subscription, AutoRenew is set to ENABLED. If
8356	// ENABLED, the subscription will be automatically renewed at the end of the
8357	// existing subscription period. You can change this by submitting an UpdateSubscription
8358	// request. If the UpdateSubscription request does not included a value for
8359	// AutoRenew, the existing value for AutoRenew remains unchanged.
8360	AutoRenew *string `type:"string" enum:"AutoRenew"`
8361}
8362
8363// String returns the string representation.
8364//
8365// API parameter values that are decorated as "sensitive" in the API will not
8366// be included in the string output. The member name will be present, but the
8367// value will be replaced with "sensitive".
8368func (s UpdateSubscriptionInput) String() string {
8369	return awsutil.Prettify(s)
8370}
8371
8372// GoString returns the string representation.
8373//
8374// API parameter values that are decorated as "sensitive" in the API will not
8375// be included in the string output. The member name will be present, but the
8376// value will be replaced with "sensitive".
8377func (s UpdateSubscriptionInput) GoString() string {
8378	return s.String()
8379}
8380
8381// SetAutoRenew sets the AutoRenew field's value.
8382func (s *UpdateSubscriptionInput) SetAutoRenew(v string) *UpdateSubscriptionInput {
8383	s.AutoRenew = &v
8384	return s
8385}
8386
8387type UpdateSubscriptionOutput struct {
8388	_ struct{} `type:"structure"`
8389}
8390
8391// String returns the string representation.
8392//
8393// API parameter values that are decorated as "sensitive" in the API will not
8394// be included in the string output. The member name will be present, but the
8395// value will be replaced with "sensitive".
8396func (s UpdateSubscriptionOutput) String() string {
8397	return awsutil.Prettify(s)
8398}
8399
8400// GoString returns the string representation.
8401//
8402// API parameter values that are decorated as "sensitive" in the API will not
8403// be included in the string output. The member name will be present, but the
8404// value will be replaced with "sensitive".
8405func (s UpdateSubscriptionOutput) GoString() string {
8406	return s.String()
8407}
8408
8409// Provides information about a particular parameter passed inside a request
8410// that resulted in an exception.
8411type ValidationExceptionField struct {
8412	_ struct{} `type:"structure"`
8413
8414	// The message describing why the parameter failed validation.
8415	//
8416	// Message is a required field
8417	Message *string `locationName:"message" type:"string" required:"true"`
8418
8419	// The name of the parameter that failed validation.
8420	//
8421	// Name is a required field
8422	Name *string `locationName:"name" type:"string" required:"true"`
8423}
8424
8425// String returns the string representation.
8426//
8427// API parameter values that are decorated as "sensitive" in the API will not
8428// be included in the string output. The member name will be present, but the
8429// value will be replaced with "sensitive".
8430func (s ValidationExceptionField) String() string {
8431	return awsutil.Prettify(s)
8432}
8433
8434// GoString returns the string representation.
8435//
8436// API parameter values that are decorated as "sensitive" in the API will not
8437// be included in the string output. The member name will be present, but the
8438// value will be replaced with "sensitive".
8439func (s ValidationExceptionField) GoString() string {
8440	return s.String()
8441}
8442
8443// SetMessage sets the Message field's value.
8444func (s *ValidationExceptionField) SetMessage(v string) *ValidationExceptionField {
8445	s.Message = &v
8446	return s
8447}
8448
8449// SetName sets the Name field's value.
8450func (s *ValidationExceptionField) SetName(v string) *ValidationExceptionField {
8451	s.Name = &v
8452	return s
8453}
8454
8455const (
8456	// AttackLayerNetwork is a AttackLayer enum value
8457	AttackLayerNetwork = "NETWORK"
8458
8459	// AttackLayerApplication is a AttackLayer enum value
8460	AttackLayerApplication = "APPLICATION"
8461)
8462
8463// AttackLayer_Values returns all elements of the AttackLayer enum
8464func AttackLayer_Values() []string {
8465	return []string{
8466		AttackLayerNetwork,
8467		AttackLayerApplication,
8468	}
8469}
8470
8471const (
8472	// AttackPropertyIdentifierDestinationUrl is a AttackPropertyIdentifier enum value
8473	AttackPropertyIdentifierDestinationUrl = "DESTINATION_URL"
8474
8475	// AttackPropertyIdentifierReferrer is a AttackPropertyIdentifier enum value
8476	AttackPropertyIdentifierReferrer = "REFERRER"
8477
8478	// AttackPropertyIdentifierSourceAsn is a AttackPropertyIdentifier enum value
8479	AttackPropertyIdentifierSourceAsn = "SOURCE_ASN"
8480
8481	// AttackPropertyIdentifierSourceCountry is a AttackPropertyIdentifier enum value
8482	AttackPropertyIdentifierSourceCountry = "SOURCE_COUNTRY"
8483
8484	// AttackPropertyIdentifierSourceIpAddress is a AttackPropertyIdentifier enum value
8485	AttackPropertyIdentifierSourceIpAddress = "SOURCE_IP_ADDRESS"
8486
8487	// AttackPropertyIdentifierSourceUserAgent is a AttackPropertyIdentifier enum value
8488	AttackPropertyIdentifierSourceUserAgent = "SOURCE_USER_AGENT"
8489
8490	// AttackPropertyIdentifierWordpressPingbackReflector is a AttackPropertyIdentifier enum value
8491	AttackPropertyIdentifierWordpressPingbackReflector = "WORDPRESS_PINGBACK_REFLECTOR"
8492
8493	// AttackPropertyIdentifierWordpressPingbackSource is a AttackPropertyIdentifier enum value
8494	AttackPropertyIdentifierWordpressPingbackSource = "WORDPRESS_PINGBACK_SOURCE"
8495)
8496
8497// AttackPropertyIdentifier_Values returns all elements of the AttackPropertyIdentifier enum
8498func AttackPropertyIdentifier_Values() []string {
8499	return []string{
8500		AttackPropertyIdentifierDestinationUrl,
8501		AttackPropertyIdentifierReferrer,
8502		AttackPropertyIdentifierSourceAsn,
8503		AttackPropertyIdentifierSourceCountry,
8504		AttackPropertyIdentifierSourceIpAddress,
8505		AttackPropertyIdentifierSourceUserAgent,
8506		AttackPropertyIdentifierWordpressPingbackReflector,
8507		AttackPropertyIdentifierWordpressPingbackSource,
8508	}
8509}
8510
8511const (
8512	// AutoRenewEnabled is a AutoRenew enum value
8513	AutoRenewEnabled = "ENABLED"
8514
8515	// AutoRenewDisabled is a AutoRenew enum value
8516	AutoRenewDisabled = "DISABLED"
8517)
8518
8519// AutoRenew_Values returns all elements of the AutoRenew enum
8520func AutoRenew_Values() []string {
8521	return []string{
8522		AutoRenewEnabled,
8523		AutoRenewDisabled,
8524	}
8525}
8526
8527const (
8528	// ProactiveEngagementStatusEnabled is a ProactiveEngagementStatus enum value
8529	ProactiveEngagementStatusEnabled = "ENABLED"
8530
8531	// ProactiveEngagementStatusDisabled is a ProactiveEngagementStatus enum value
8532	ProactiveEngagementStatusDisabled = "DISABLED"
8533
8534	// ProactiveEngagementStatusPending is a ProactiveEngagementStatus enum value
8535	ProactiveEngagementStatusPending = "PENDING"
8536)
8537
8538// ProactiveEngagementStatus_Values returns all elements of the ProactiveEngagementStatus enum
8539func ProactiveEngagementStatus_Values() []string {
8540	return []string{
8541		ProactiveEngagementStatusEnabled,
8542		ProactiveEngagementStatusDisabled,
8543		ProactiveEngagementStatusPending,
8544	}
8545}
8546
8547const (
8548	// ProtectedResourceTypeCloudfrontDistribution is a ProtectedResourceType enum value
8549	ProtectedResourceTypeCloudfrontDistribution = "CLOUDFRONT_DISTRIBUTION"
8550
8551	// ProtectedResourceTypeRoute53HostedZone is a ProtectedResourceType enum value
8552	ProtectedResourceTypeRoute53HostedZone = "ROUTE_53_HOSTED_ZONE"
8553
8554	// ProtectedResourceTypeElasticIpAllocation is a ProtectedResourceType enum value
8555	ProtectedResourceTypeElasticIpAllocation = "ELASTIC_IP_ALLOCATION"
8556
8557	// ProtectedResourceTypeClassicLoadBalancer is a ProtectedResourceType enum value
8558	ProtectedResourceTypeClassicLoadBalancer = "CLASSIC_LOAD_BALANCER"
8559
8560	// ProtectedResourceTypeApplicationLoadBalancer is a ProtectedResourceType enum value
8561	ProtectedResourceTypeApplicationLoadBalancer = "APPLICATION_LOAD_BALANCER"
8562
8563	// ProtectedResourceTypeGlobalAccelerator is a ProtectedResourceType enum value
8564	ProtectedResourceTypeGlobalAccelerator = "GLOBAL_ACCELERATOR"
8565)
8566
8567// ProtectedResourceType_Values returns all elements of the ProtectedResourceType enum
8568func ProtectedResourceType_Values() []string {
8569	return []string{
8570		ProtectedResourceTypeCloudfrontDistribution,
8571		ProtectedResourceTypeRoute53HostedZone,
8572		ProtectedResourceTypeElasticIpAllocation,
8573		ProtectedResourceTypeClassicLoadBalancer,
8574		ProtectedResourceTypeApplicationLoadBalancer,
8575		ProtectedResourceTypeGlobalAccelerator,
8576	}
8577}
8578
8579const (
8580	// ProtectionGroupAggregationSum is a ProtectionGroupAggregation enum value
8581	ProtectionGroupAggregationSum = "SUM"
8582
8583	// ProtectionGroupAggregationMean is a ProtectionGroupAggregation enum value
8584	ProtectionGroupAggregationMean = "MEAN"
8585
8586	// ProtectionGroupAggregationMax is a ProtectionGroupAggregation enum value
8587	ProtectionGroupAggregationMax = "MAX"
8588)
8589
8590// ProtectionGroupAggregation_Values returns all elements of the ProtectionGroupAggregation enum
8591func ProtectionGroupAggregation_Values() []string {
8592	return []string{
8593		ProtectionGroupAggregationSum,
8594		ProtectionGroupAggregationMean,
8595		ProtectionGroupAggregationMax,
8596	}
8597}
8598
8599const (
8600	// ProtectionGroupPatternAll is a ProtectionGroupPattern enum value
8601	ProtectionGroupPatternAll = "ALL"
8602
8603	// ProtectionGroupPatternArbitrary is a ProtectionGroupPattern enum value
8604	ProtectionGroupPatternArbitrary = "ARBITRARY"
8605
8606	// ProtectionGroupPatternByResourceType is a ProtectionGroupPattern enum value
8607	ProtectionGroupPatternByResourceType = "BY_RESOURCE_TYPE"
8608)
8609
8610// ProtectionGroupPattern_Values returns all elements of the ProtectionGroupPattern enum
8611func ProtectionGroupPattern_Values() []string {
8612	return []string{
8613		ProtectionGroupPatternAll,
8614		ProtectionGroupPatternArbitrary,
8615		ProtectionGroupPatternByResourceType,
8616	}
8617}
8618
8619const (
8620	// SubResourceTypeIp is a SubResourceType enum value
8621	SubResourceTypeIp = "IP"
8622
8623	// SubResourceTypeUrl is a SubResourceType enum value
8624	SubResourceTypeUrl = "URL"
8625)
8626
8627// SubResourceType_Values returns all elements of the SubResourceType enum
8628func SubResourceType_Values() []string {
8629	return []string{
8630		SubResourceTypeIp,
8631		SubResourceTypeUrl,
8632	}
8633}
8634
8635const (
8636	// SubscriptionStateActive is a SubscriptionState enum value
8637	SubscriptionStateActive = "ACTIVE"
8638
8639	// SubscriptionStateInactive is a SubscriptionState enum value
8640	SubscriptionStateInactive = "INACTIVE"
8641)
8642
8643// SubscriptionState_Values returns all elements of the SubscriptionState enum
8644func SubscriptionState_Values() []string {
8645	return []string{
8646		SubscriptionStateActive,
8647		SubscriptionStateInactive,
8648	}
8649}
8650
8651const (
8652	// UnitBits is a Unit enum value
8653	UnitBits = "BITS"
8654
8655	// UnitBytes is a Unit enum value
8656	UnitBytes = "BYTES"
8657
8658	// UnitPackets is a Unit enum value
8659	UnitPackets = "PACKETS"
8660
8661	// UnitRequests is a Unit enum value
8662	UnitRequests = "REQUESTS"
8663)
8664
8665// Unit_Values returns all elements of the Unit enum
8666func Unit_Values() []string {
8667	return []string{
8668		UnitBits,
8669		UnitBytes,
8670		UnitPackets,
8671		UnitRequests,
8672	}
8673}
8674
8675const (
8676	// ValidationExceptionReasonFieldValidationFailed is a ValidationExceptionReason enum value
8677	ValidationExceptionReasonFieldValidationFailed = "FIELD_VALIDATION_FAILED"
8678
8679	// ValidationExceptionReasonOther is a ValidationExceptionReason enum value
8680	ValidationExceptionReasonOther = "OTHER"
8681)
8682
8683// ValidationExceptionReason_Values returns all elements of the ValidationExceptionReason enum
8684func ValidationExceptionReason_Values() []string {
8685	return []string{
8686		ValidationExceptionReasonFieldValidationFailed,
8687		ValidationExceptionReasonOther,
8688	}
8689}
8690