1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package backup
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/restjson"
14)
15
16const opCreateBackupPlan = "CreateBackupPlan"
17
18// CreateBackupPlanRequest generates a "aws/request.Request" representing the
19// client's request for the CreateBackupPlan 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 CreateBackupPlan for more information on using the CreateBackupPlan
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 CreateBackupPlanRequest method.
34//    req, resp := client.CreateBackupPlanRequest(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/backup-2018-11-15/CreateBackupPlan
42func (c *Backup) CreateBackupPlanRequest(input *CreateBackupPlanInput) (req *request.Request, output *CreateBackupPlanOutput) {
43	op := &request.Operation{
44		Name:       opCreateBackupPlan,
45		HTTPMethod: "PUT",
46		HTTPPath:   "/backup/plans/",
47	}
48
49	if input == nil {
50		input = &CreateBackupPlanInput{}
51	}
52
53	output = &CreateBackupPlanOutput{}
54	req = c.newRequest(op, input, output)
55	return
56}
57
58// CreateBackupPlan API operation for AWS Backup.
59//
60// Creates a backup plan using a backup plan name and backup rules. A backup
61// plan is a document that contains information that Backup uses to schedule
62// tasks that create recovery points for resources.
63//
64// If you call CreateBackupPlan with a plan that already exists, you receive
65// an AlreadyExistsException exception.
66//
67// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
68// with awserr.Error's Code and Message methods to get detailed information about
69// the error.
70//
71// See the AWS API reference guide for AWS Backup's
72// API operation CreateBackupPlan for usage and error information.
73//
74// Returned Error Types:
75//   * LimitExceededException
76//   A limit in the request has been exceeded; for example, a maximum number of
77//   items allowed in a request.
78//
79//   * AlreadyExistsException
80//   The required resource already exists.
81//
82//   * InvalidParameterValueException
83//   Indicates that something is wrong with a parameter's value. For example,
84//   the value is out of range.
85//
86//   * MissingParameterValueException
87//   Indicates that a required parameter is missing.
88//
89//   * ServiceUnavailableException
90//   The request failed due to a temporary failure of the server.
91//
92// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/CreateBackupPlan
93func (c *Backup) CreateBackupPlan(input *CreateBackupPlanInput) (*CreateBackupPlanOutput, error) {
94	req, out := c.CreateBackupPlanRequest(input)
95	return out, req.Send()
96}
97
98// CreateBackupPlanWithContext is the same as CreateBackupPlan with the addition of
99// the ability to pass a context and additional request options.
100//
101// See CreateBackupPlan for details on how to use this API operation.
102//
103// The context must be non-nil and will be used for request cancellation. If
104// the context is nil a panic will occur. In the future the SDK may create
105// sub-contexts for http.Requests. See https://golang.org/pkg/context/
106// for more information on using Contexts.
107func (c *Backup) CreateBackupPlanWithContext(ctx aws.Context, input *CreateBackupPlanInput, opts ...request.Option) (*CreateBackupPlanOutput, error) {
108	req, out := c.CreateBackupPlanRequest(input)
109	req.SetContext(ctx)
110	req.ApplyOptions(opts...)
111	return out, req.Send()
112}
113
114const opCreateBackupSelection = "CreateBackupSelection"
115
116// CreateBackupSelectionRequest generates a "aws/request.Request" representing the
117// client's request for the CreateBackupSelection operation. The "output" return
118// value will be populated with the request's response once the request completes
119// successfully.
120//
121// Use "Send" method on the returned Request to send the API call to the service.
122// the "output" return value is not valid until after Send returns without error.
123//
124// See CreateBackupSelection for more information on using the CreateBackupSelection
125// API call, and error handling.
126//
127// This method is useful when you want to inject custom logic or configuration
128// into the SDK's request lifecycle. Such as custom headers, or retry logic.
129//
130//
131//    // Example sending a request using the CreateBackupSelectionRequest method.
132//    req, resp := client.CreateBackupSelectionRequest(params)
133//
134//    err := req.Send()
135//    if err == nil { // resp is now filled
136//        fmt.Println(resp)
137//    }
138//
139// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/CreateBackupSelection
140func (c *Backup) CreateBackupSelectionRequest(input *CreateBackupSelectionInput) (req *request.Request, output *CreateBackupSelectionOutput) {
141	op := &request.Operation{
142		Name:       opCreateBackupSelection,
143		HTTPMethod: "PUT",
144		HTTPPath:   "/backup/plans/{backupPlanId}/selections/",
145	}
146
147	if input == nil {
148		input = &CreateBackupSelectionInput{}
149	}
150
151	output = &CreateBackupSelectionOutput{}
152	req = c.newRequest(op, input, output)
153	return
154}
155
156// CreateBackupSelection API operation for AWS Backup.
157//
158// Creates a JSON document that specifies a set of resources to assign to a
159// backup plan. Resources can be included by specifying patterns for a ListOfTags
160// and selected Resources.
161//
162// For example, consider the following patterns:
163//
164//    * Resources: "arn:aws:ec2:region:account-id:volume/volume-id"
165//
166//    * ConditionKey:"department" ConditionValue:"finance" ConditionType:"StringEquals"
167//
168//    * ConditionKey:"importance" ConditionValue:"critical" ConditionType:"StringEquals"
169//
170// Using these patterns would back up all Amazon Elastic Block Store (Amazon
171// EBS) volumes that are tagged as "department=finance", "importance=critical",
172// in addition to an EBS volume with the specified volume ID.
173//
174// Resources and conditions are additive in that all resources that match the
175// pattern are selected. This shouldn't be confused with a logical AND, where
176// all conditions must match. The matching patterns are logically put together
177// using the OR operator. In other words, all patterns that match are selected
178// for backup.
179//
180// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
181// with awserr.Error's Code and Message methods to get detailed information about
182// the error.
183//
184// See the AWS API reference guide for AWS Backup's
185// API operation CreateBackupSelection for usage and error information.
186//
187// Returned Error Types:
188//   * LimitExceededException
189//   A limit in the request has been exceeded; for example, a maximum number of
190//   items allowed in a request.
191//
192//   * AlreadyExistsException
193//   The required resource already exists.
194//
195//   * InvalidParameterValueException
196//   Indicates that something is wrong with a parameter's value. For example,
197//   the value is out of range.
198//
199//   * MissingParameterValueException
200//   Indicates that a required parameter is missing.
201//
202//   * ServiceUnavailableException
203//   The request failed due to a temporary failure of the server.
204//
205// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/CreateBackupSelection
206func (c *Backup) CreateBackupSelection(input *CreateBackupSelectionInput) (*CreateBackupSelectionOutput, error) {
207	req, out := c.CreateBackupSelectionRequest(input)
208	return out, req.Send()
209}
210
211// CreateBackupSelectionWithContext is the same as CreateBackupSelection with the addition of
212// the ability to pass a context and additional request options.
213//
214// See CreateBackupSelection for details on how to use this API operation.
215//
216// The context must be non-nil and will be used for request cancellation. If
217// the context is nil a panic will occur. In the future the SDK may create
218// sub-contexts for http.Requests. See https://golang.org/pkg/context/
219// for more information on using Contexts.
220func (c *Backup) CreateBackupSelectionWithContext(ctx aws.Context, input *CreateBackupSelectionInput, opts ...request.Option) (*CreateBackupSelectionOutput, error) {
221	req, out := c.CreateBackupSelectionRequest(input)
222	req.SetContext(ctx)
223	req.ApplyOptions(opts...)
224	return out, req.Send()
225}
226
227const opCreateBackupVault = "CreateBackupVault"
228
229// CreateBackupVaultRequest generates a "aws/request.Request" representing the
230// client's request for the CreateBackupVault operation. The "output" return
231// value will be populated with the request's response once the request completes
232// successfully.
233//
234// Use "Send" method on the returned Request to send the API call to the service.
235// the "output" return value is not valid until after Send returns without error.
236//
237// See CreateBackupVault for more information on using the CreateBackupVault
238// API call, and error handling.
239//
240// This method is useful when you want to inject custom logic or configuration
241// into the SDK's request lifecycle. Such as custom headers, or retry logic.
242//
243//
244//    // Example sending a request using the CreateBackupVaultRequest method.
245//    req, resp := client.CreateBackupVaultRequest(params)
246//
247//    err := req.Send()
248//    if err == nil { // resp is now filled
249//        fmt.Println(resp)
250//    }
251//
252// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/CreateBackupVault
253func (c *Backup) CreateBackupVaultRequest(input *CreateBackupVaultInput) (req *request.Request, output *CreateBackupVaultOutput) {
254	op := &request.Operation{
255		Name:       opCreateBackupVault,
256		HTTPMethod: "PUT",
257		HTTPPath:   "/backup-vaults/{backupVaultName}",
258	}
259
260	if input == nil {
261		input = &CreateBackupVaultInput{}
262	}
263
264	output = &CreateBackupVaultOutput{}
265	req = c.newRequest(op, input, output)
266	return
267}
268
269// CreateBackupVault API operation for AWS Backup.
270//
271// Creates a logical container where backups are stored. A CreateBackupVault
272// request includes a name, optionally one or more resource tags, an encryption
273// key, and a request ID.
274//
275// Do not include sensitive data, such as passport numbers, in the name of a
276// backup vault.
277//
278// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
279// with awserr.Error's Code and Message methods to get detailed information about
280// the error.
281//
282// See the AWS API reference guide for AWS Backup's
283// API operation CreateBackupVault for usage and error information.
284//
285// Returned Error Types:
286//   * InvalidParameterValueException
287//   Indicates that something is wrong with a parameter's value. For example,
288//   the value is out of range.
289//
290//   * MissingParameterValueException
291//   Indicates that a required parameter is missing.
292//
293//   * ServiceUnavailableException
294//   The request failed due to a temporary failure of the server.
295//
296//   * LimitExceededException
297//   A limit in the request has been exceeded; for example, a maximum number of
298//   items allowed in a request.
299//
300//   * AlreadyExistsException
301//   The required resource already exists.
302//
303// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/CreateBackupVault
304func (c *Backup) CreateBackupVault(input *CreateBackupVaultInput) (*CreateBackupVaultOutput, error) {
305	req, out := c.CreateBackupVaultRequest(input)
306	return out, req.Send()
307}
308
309// CreateBackupVaultWithContext is the same as CreateBackupVault with the addition of
310// the ability to pass a context and additional request options.
311//
312// See CreateBackupVault for details on how to use this API operation.
313//
314// The context must be non-nil and will be used for request cancellation. If
315// the context is nil a panic will occur. In the future the SDK may create
316// sub-contexts for http.Requests. See https://golang.org/pkg/context/
317// for more information on using Contexts.
318func (c *Backup) CreateBackupVaultWithContext(ctx aws.Context, input *CreateBackupVaultInput, opts ...request.Option) (*CreateBackupVaultOutput, error) {
319	req, out := c.CreateBackupVaultRequest(input)
320	req.SetContext(ctx)
321	req.ApplyOptions(opts...)
322	return out, req.Send()
323}
324
325const opCreateFramework = "CreateFramework"
326
327// CreateFrameworkRequest generates a "aws/request.Request" representing the
328// client's request for the CreateFramework operation. The "output" return
329// value will be populated with the request's response once the request completes
330// successfully.
331//
332// Use "Send" method on the returned Request to send the API call to the service.
333// the "output" return value is not valid until after Send returns without error.
334//
335// See CreateFramework for more information on using the CreateFramework
336// API call, and error handling.
337//
338// This method is useful when you want to inject custom logic or configuration
339// into the SDK's request lifecycle. Such as custom headers, or retry logic.
340//
341//
342//    // Example sending a request using the CreateFrameworkRequest method.
343//    req, resp := client.CreateFrameworkRequest(params)
344//
345//    err := req.Send()
346//    if err == nil { // resp is now filled
347//        fmt.Println(resp)
348//    }
349//
350// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/CreateFramework
351func (c *Backup) CreateFrameworkRequest(input *CreateFrameworkInput) (req *request.Request, output *CreateFrameworkOutput) {
352	op := &request.Operation{
353		Name:       opCreateFramework,
354		HTTPMethod: "POST",
355		HTTPPath:   "/audit/frameworks",
356	}
357
358	if input == nil {
359		input = &CreateFrameworkInput{}
360	}
361
362	output = &CreateFrameworkOutput{}
363	req = c.newRequest(op, input, output)
364	return
365}
366
367// CreateFramework API operation for AWS Backup.
368//
369// Creates a framework with one or more controls. A framework is a collection
370// of controls that you can use to evaluate your backup practices. By using
371// pre-built customizable controls to define your policies, you can evaluate
372// whether your backup practices comply with your policies and which resources
373// are not yet in compliance.
374//
375// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
376// with awserr.Error's Code and Message methods to get detailed information about
377// the error.
378//
379// See the AWS API reference guide for AWS Backup's
380// API operation CreateFramework for usage and error information.
381//
382// Returned Error Types:
383//   * AlreadyExistsException
384//   The required resource already exists.
385//
386//   * LimitExceededException
387//   A limit in the request has been exceeded; for example, a maximum number of
388//   items allowed in a request.
389//
390//   * InvalidParameterValueException
391//   Indicates that something is wrong with a parameter's value. For example,
392//   the value is out of range.
393//
394//   * MissingParameterValueException
395//   Indicates that a required parameter is missing.
396//
397//   * ServiceUnavailableException
398//   The request failed due to a temporary failure of the server.
399//
400// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/CreateFramework
401func (c *Backup) CreateFramework(input *CreateFrameworkInput) (*CreateFrameworkOutput, error) {
402	req, out := c.CreateFrameworkRequest(input)
403	return out, req.Send()
404}
405
406// CreateFrameworkWithContext is the same as CreateFramework with the addition of
407// the ability to pass a context and additional request options.
408//
409// See CreateFramework for details on how to use this API operation.
410//
411// The context must be non-nil and will be used for request cancellation. If
412// the context is nil a panic will occur. In the future the SDK may create
413// sub-contexts for http.Requests. See https://golang.org/pkg/context/
414// for more information on using Contexts.
415func (c *Backup) CreateFrameworkWithContext(ctx aws.Context, input *CreateFrameworkInput, opts ...request.Option) (*CreateFrameworkOutput, error) {
416	req, out := c.CreateFrameworkRequest(input)
417	req.SetContext(ctx)
418	req.ApplyOptions(opts...)
419	return out, req.Send()
420}
421
422const opCreateReportPlan = "CreateReportPlan"
423
424// CreateReportPlanRequest generates a "aws/request.Request" representing the
425// client's request for the CreateReportPlan operation. The "output" return
426// value will be populated with the request's response once the request completes
427// successfully.
428//
429// Use "Send" method on the returned Request to send the API call to the service.
430// the "output" return value is not valid until after Send returns without error.
431//
432// See CreateReportPlan for more information on using the CreateReportPlan
433// API call, and error handling.
434//
435// This method is useful when you want to inject custom logic or configuration
436// into the SDK's request lifecycle. Such as custom headers, or retry logic.
437//
438//
439//    // Example sending a request using the CreateReportPlanRequest method.
440//    req, resp := client.CreateReportPlanRequest(params)
441//
442//    err := req.Send()
443//    if err == nil { // resp is now filled
444//        fmt.Println(resp)
445//    }
446//
447// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/CreateReportPlan
448func (c *Backup) CreateReportPlanRequest(input *CreateReportPlanInput) (req *request.Request, output *CreateReportPlanOutput) {
449	op := &request.Operation{
450		Name:       opCreateReportPlan,
451		HTTPMethod: "POST",
452		HTTPPath:   "/audit/report-plans",
453	}
454
455	if input == nil {
456		input = &CreateReportPlanInput{}
457	}
458
459	output = &CreateReportPlanOutput{}
460	req = c.newRequest(op, input, output)
461	return
462}
463
464// CreateReportPlan API operation for AWS Backup.
465//
466// Creates a report plan. A report plan is a document that contains information
467// about the contents of the report and where Backup will deliver it.
468//
469// If you call CreateReportPlan with a plan that already exists, you receive
470// an AlreadyExistsException exception.
471//
472// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
473// with awserr.Error's Code and Message methods to get detailed information about
474// the error.
475//
476// See the AWS API reference guide for AWS Backup's
477// API operation CreateReportPlan for usage and error information.
478//
479// Returned Error Types:
480//   * AlreadyExistsException
481//   The required resource already exists.
482//
483//   * LimitExceededException
484//   A limit in the request has been exceeded; for example, a maximum number of
485//   items allowed in a request.
486//
487//   * InvalidParameterValueException
488//   Indicates that something is wrong with a parameter's value. For example,
489//   the value is out of range.
490//
491//   * ServiceUnavailableException
492//   The request failed due to a temporary failure of the server.
493//
494//   * MissingParameterValueException
495//   Indicates that a required parameter is missing.
496//
497// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/CreateReportPlan
498func (c *Backup) CreateReportPlan(input *CreateReportPlanInput) (*CreateReportPlanOutput, error) {
499	req, out := c.CreateReportPlanRequest(input)
500	return out, req.Send()
501}
502
503// CreateReportPlanWithContext is the same as CreateReportPlan with the addition of
504// the ability to pass a context and additional request options.
505//
506// See CreateReportPlan for details on how to use this API operation.
507//
508// The context must be non-nil and will be used for request cancellation. If
509// the context is nil a panic will occur. In the future the SDK may create
510// sub-contexts for http.Requests. See https://golang.org/pkg/context/
511// for more information on using Contexts.
512func (c *Backup) CreateReportPlanWithContext(ctx aws.Context, input *CreateReportPlanInput, opts ...request.Option) (*CreateReportPlanOutput, error) {
513	req, out := c.CreateReportPlanRequest(input)
514	req.SetContext(ctx)
515	req.ApplyOptions(opts...)
516	return out, req.Send()
517}
518
519const opDeleteBackupPlan = "DeleteBackupPlan"
520
521// DeleteBackupPlanRequest generates a "aws/request.Request" representing the
522// client's request for the DeleteBackupPlan operation. The "output" return
523// value will be populated with the request's response once the request completes
524// successfully.
525//
526// Use "Send" method on the returned Request to send the API call to the service.
527// the "output" return value is not valid until after Send returns without error.
528//
529// See DeleteBackupPlan for more information on using the DeleteBackupPlan
530// API call, and error handling.
531//
532// This method is useful when you want to inject custom logic or configuration
533// into the SDK's request lifecycle. Such as custom headers, or retry logic.
534//
535//
536//    // Example sending a request using the DeleteBackupPlanRequest method.
537//    req, resp := client.DeleteBackupPlanRequest(params)
538//
539//    err := req.Send()
540//    if err == nil { // resp is now filled
541//        fmt.Println(resp)
542//    }
543//
544// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DeleteBackupPlan
545func (c *Backup) DeleteBackupPlanRequest(input *DeleteBackupPlanInput) (req *request.Request, output *DeleteBackupPlanOutput) {
546	op := &request.Operation{
547		Name:       opDeleteBackupPlan,
548		HTTPMethod: "DELETE",
549		HTTPPath:   "/backup/plans/{backupPlanId}",
550	}
551
552	if input == nil {
553		input = &DeleteBackupPlanInput{}
554	}
555
556	output = &DeleteBackupPlanOutput{}
557	req = c.newRequest(op, input, output)
558	return
559}
560
561// DeleteBackupPlan API operation for AWS Backup.
562//
563// Deletes a backup plan. A backup plan can only be deleted after all associated
564// selections of resources have been deleted. Deleting a backup plan deletes
565// the current version of a backup plan. Previous versions, if any, will still
566// exist.
567//
568// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
569// with awserr.Error's Code and Message methods to get detailed information about
570// the error.
571//
572// See the AWS API reference guide for AWS Backup's
573// API operation DeleteBackupPlan for usage and error information.
574//
575// Returned Error Types:
576//   * ResourceNotFoundException
577//   A resource that is required for the action doesn't exist.
578//
579//   * InvalidParameterValueException
580//   Indicates that something is wrong with a parameter's value. For example,
581//   the value is out of range.
582//
583//   * MissingParameterValueException
584//   Indicates that a required parameter is missing.
585//
586//   * ServiceUnavailableException
587//   The request failed due to a temporary failure of the server.
588//
589//   * InvalidRequestException
590//   Indicates that something is wrong with the input to the request. For example,
591//   a parameter is of the wrong type.
592//
593// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DeleteBackupPlan
594func (c *Backup) DeleteBackupPlan(input *DeleteBackupPlanInput) (*DeleteBackupPlanOutput, error) {
595	req, out := c.DeleteBackupPlanRequest(input)
596	return out, req.Send()
597}
598
599// DeleteBackupPlanWithContext is the same as DeleteBackupPlan with the addition of
600// the ability to pass a context and additional request options.
601//
602// See DeleteBackupPlan for details on how to use this API operation.
603//
604// The context must be non-nil and will be used for request cancellation. If
605// the context is nil a panic will occur. In the future the SDK may create
606// sub-contexts for http.Requests. See https://golang.org/pkg/context/
607// for more information on using Contexts.
608func (c *Backup) DeleteBackupPlanWithContext(ctx aws.Context, input *DeleteBackupPlanInput, opts ...request.Option) (*DeleteBackupPlanOutput, error) {
609	req, out := c.DeleteBackupPlanRequest(input)
610	req.SetContext(ctx)
611	req.ApplyOptions(opts...)
612	return out, req.Send()
613}
614
615const opDeleteBackupSelection = "DeleteBackupSelection"
616
617// DeleteBackupSelectionRequest generates a "aws/request.Request" representing the
618// client's request for the DeleteBackupSelection operation. The "output" return
619// value will be populated with the request's response once the request completes
620// successfully.
621//
622// Use "Send" method on the returned Request to send the API call to the service.
623// the "output" return value is not valid until after Send returns without error.
624//
625// See DeleteBackupSelection for more information on using the DeleteBackupSelection
626// API call, and error handling.
627//
628// This method is useful when you want to inject custom logic or configuration
629// into the SDK's request lifecycle. Such as custom headers, or retry logic.
630//
631//
632//    // Example sending a request using the DeleteBackupSelectionRequest method.
633//    req, resp := client.DeleteBackupSelectionRequest(params)
634//
635//    err := req.Send()
636//    if err == nil { // resp is now filled
637//        fmt.Println(resp)
638//    }
639//
640// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DeleteBackupSelection
641func (c *Backup) DeleteBackupSelectionRequest(input *DeleteBackupSelectionInput) (req *request.Request, output *DeleteBackupSelectionOutput) {
642	op := &request.Operation{
643		Name:       opDeleteBackupSelection,
644		HTTPMethod: "DELETE",
645		HTTPPath:   "/backup/plans/{backupPlanId}/selections/{selectionId}",
646	}
647
648	if input == nil {
649		input = &DeleteBackupSelectionInput{}
650	}
651
652	output = &DeleteBackupSelectionOutput{}
653	req = c.newRequest(op, input, output)
654	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
655	return
656}
657
658// DeleteBackupSelection API operation for AWS Backup.
659//
660// Deletes the resource selection associated with a backup plan that is specified
661// by the SelectionId.
662//
663// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
664// with awserr.Error's Code and Message methods to get detailed information about
665// the error.
666//
667// See the AWS API reference guide for AWS Backup's
668// API operation DeleteBackupSelection for usage and error information.
669//
670// Returned Error Types:
671//   * ResourceNotFoundException
672//   A resource that is required for the action doesn't exist.
673//
674//   * InvalidParameterValueException
675//   Indicates that something is wrong with a parameter's value. For example,
676//   the value is out of range.
677//
678//   * MissingParameterValueException
679//   Indicates that a required parameter is missing.
680//
681//   * ServiceUnavailableException
682//   The request failed due to a temporary failure of the server.
683//
684// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DeleteBackupSelection
685func (c *Backup) DeleteBackupSelection(input *DeleteBackupSelectionInput) (*DeleteBackupSelectionOutput, error) {
686	req, out := c.DeleteBackupSelectionRequest(input)
687	return out, req.Send()
688}
689
690// DeleteBackupSelectionWithContext is the same as DeleteBackupSelection with the addition of
691// the ability to pass a context and additional request options.
692//
693// See DeleteBackupSelection for details on how to use this API operation.
694//
695// The context must be non-nil and will be used for request cancellation. If
696// the context is nil a panic will occur. In the future the SDK may create
697// sub-contexts for http.Requests. See https://golang.org/pkg/context/
698// for more information on using Contexts.
699func (c *Backup) DeleteBackupSelectionWithContext(ctx aws.Context, input *DeleteBackupSelectionInput, opts ...request.Option) (*DeleteBackupSelectionOutput, error) {
700	req, out := c.DeleteBackupSelectionRequest(input)
701	req.SetContext(ctx)
702	req.ApplyOptions(opts...)
703	return out, req.Send()
704}
705
706const opDeleteBackupVault = "DeleteBackupVault"
707
708// DeleteBackupVaultRequest generates a "aws/request.Request" representing the
709// client's request for the DeleteBackupVault operation. The "output" return
710// value will be populated with the request's response once the request completes
711// successfully.
712//
713// Use "Send" method on the returned Request to send the API call to the service.
714// the "output" return value is not valid until after Send returns without error.
715//
716// See DeleteBackupVault for more information on using the DeleteBackupVault
717// API call, and error handling.
718//
719// This method is useful when you want to inject custom logic or configuration
720// into the SDK's request lifecycle. Such as custom headers, or retry logic.
721//
722//
723//    // Example sending a request using the DeleteBackupVaultRequest method.
724//    req, resp := client.DeleteBackupVaultRequest(params)
725//
726//    err := req.Send()
727//    if err == nil { // resp is now filled
728//        fmt.Println(resp)
729//    }
730//
731// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DeleteBackupVault
732func (c *Backup) DeleteBackupVaultRequest(input *DeleteBackupVaultInput) (req *request.Request, output *DeleteBackupVaultOutput) {
733	op := &request.Operation{
734		Name:       opDeleteBackupVault,
735		HTTPMethod: "DELETE",
736		HTTPPath:   "/backup-vaults/{backupVaultName}",
737	}
738
739	if input == nil {
740		input = &DeleteBackupVaultInput{}
741	}
742
743	output = &DeleteBackupVaultOutput{}
744	req = c.newRequest(op, input, output)
745	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
746	return
747}
748
749// DeleteBackupVault API operation for AWS Backup.
750//
751// Deletes the backup vault identified by its name. A vault can be deleted only
752// if it is empty.
753//
754// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
755// with awserr.Error's Code and Message methods to get detailed information about
756// the error.
757//
758// See the AWS API reference guide for AWS Backup's
759// API operation DeleteBackupVault for usage and error information.
760//
761// Returned Error Types:
762//   * ResourceNotFoundException
763//   A resource that is required for the action doesn't exist.
764//
765//   * InvalidParameterValueException
766//   Indicates that something is wrong with a parameter's value. For example,
767//   the value is out of range.
768//
769//   * MissingParameterValueException
770//   Indicates that a required parameter is missing.
771//
772//   * ServiceUnavailableException
773//   The request failed due to a temporary failure of the server.
774//
775//   * InvalidRequestException
776//   Indicates that something is wrong with the input to the request. For example,
777//   a parameter is of the wrong type.
778//
779// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DeleteBackupVault
780func (c *Backup) DeleteBackupVault(input *DeleteBackupVaultInput) (*DeleteBackupVaultOutput, error) {
781	req, out := c.DeleteBackupVaultRequest(input)
782	return out, req.Send()
783}
784
785// DeleteBackupVaultWithContext is the same as DeleteBackupVault with the addition of
786// the ability to pass a context and additional request options.
787//
788// See DeleteBackupVault for details on how to use this API operation.
789//
790// The context must be non-nil and will be used for request cancellation. If
791// the context is nil a panic will occur. In the future the SDK may create
792// sub-contexts for http.Requests. See https://golang.org/pkg/context/
793// for more information on using Contexts.
794func (c *Backup) DeleteBackupVaultWithContext(ctx aws.Context, input *DeleteBackupVaultInput, opts ...request.Option) (*DeleteBackupVaultOutput, error) {
795	req, out := c.DeleteBackupVaultRequest(input)
796	req.SetContext(ctx)
797	req.ApplyOptions(opts...)
798	return out, req.Send()
799}
800
801const opDeleteBackupVaultAccessPolicy = "DeleteBackupVaultAccessPolicy"
802
803// DeleteBackupVaultAccessPolicyRequest generates a "aws/request.Request" representing the
804// client's request for the DeleteBackupVaultAccessPolicy operation. The "output" return
805// value will be populated with the request's response once the request completes
806// successfully.
807//
808// Use "Send" method on the returned Request to send the API call to the service.
809// the "output" return value is not valid until after Send returns without error.
810//
811// See DeleteBackupVaultAccessPolicy for more information on using the DeleteBackupVaultAccessPolicy
812// API call, and error handling.
813//
814// This method is useful when you want to inject custom logic or configuration
815// into the SDK's request lifecycle. Such as custom headers, or retry logic.
816//
817//
818//    // Example sending a request using the DeleteBackupVaultAccessPolicyRequest method.
819//    req, resp := client.DeleteBackupVaultAccessPolicyRequest(params)
820//
821//    err := req.Send()
822//    if err == nil { // resp is now filled
823//        fmt.Println(resp)
824//    }
825//
826// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DeleteBackupVaultAccessPolicy
827func (c *Backup) DeleteBackupVaultAccessPolicyRequest(input *DeleteBackupVaultAccessPolicyInput) (req *request.Request, output *DeleteBackupVaultAccessPolicyOutput) {
828	op := &request.Operation{
829		Name:       opDeleteBackupVaultAccessPolicy,
830		HTTPMethod: "DELETE",
831		HTTPPath:   "/backup-vaults/{backupVaultName}/access-policy",
832	}
833
834	if input == nil {
835		input = &DeleteBackupVaultAccessPolicyInput{}
836	}
837
838	output = &DeleteBackupVaultAccessPolicyOutput{}
839	req = c.newRequest(op, input, output)
840	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
841	return
842}
843
844// DeleteBackupVaultAccessPolicy API operation for AWS Backup.
845//
846// Deletes the policy document that manages permissions on a backup vault.
847//
848// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
849// with awserr.Error's Code and Message methods to get detailed information about
850// the error.
851//
852// See the AWS API reference guide for AWS Backup's
853// API operation DeleteBackupVaultAccessPolicy for usage and error information.
854//
855// Returned Error Types:
856//   * ResourceNotFoundException
857//   A resource that is required for the action doesn't exist.
858//
859//   * InvalidParameterValueException
860//   Indicates that something is wrong with a parameter's value. For example,
861//   the value is out of range.
862//
863//   * MissingParameterValueException
864//   Indicates that a required parameter is missing.
865//
866//   * ServiceUnavailableException
867//   The request failed due to a temporary failure of the server.
868//
869// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DeleteBackupVaultAccessPolicy
870func (c *Backup) DeleteBackupVaultAccessPolicy(input *DeleteBackupVaultAccessPolicyInput) (*DeleteBackupVaultAccessPolicyOutput, error) {
871	req, out := c.DeleteBackupVaultAccessPolicyRequest(input)
872	return out, req.Send()
873}
874
875// DeleteBackupVaultAccessPolicyWithContext is the same as DeleteBackupVaultAccessPolicy with the addition of
876// the ability to pass a context and additional request options.
877//
878// See DeleteBackupVaultAccessPolicy for details on how to use this API operation.
879//
880// The context must be non-nil and will be used for request cancellation. If
881// the context is nil a panic will occur. In the future the SDK may create
882// sub-contexts for http.Requests. See https://golang.org/pkg/context/
883// for more information on using Contexts.
884func (c *Backup) DeleteBackupVaultAccessPolicyWithContext(ctx aws.Context, input *DeleteBackupVaultAccessPolicyInput, opts ...request.Option) (*DeleteBackupVaultAccessPolicyOutput, error) {
885	req, out := c.DeleteBackupVaultAccessPolicyRequest(input)
886	req.SetContext(ctx)
887	req.ApplyOptions(opts...)
888	return out, req.Send()
889}
890
891const opDeleteBackupVaultLockConfiguration = "DeleteBackupVaultLockConfiguration"
892
893// DeleteBackupVaultLockConfigurationRequest generates a "aws/request.Request" representing the
894// client's request for the DeleteBackupVaultLockConfiguration operation. The "output" return
895// value will be populated with the request's response once the request completes
896// successfully.
897//
898// Use "Send" method on the returned Request to send the API call to the service.
899// the "output" return value is not valid until after Send returns without error.
900//
901// See DeleteBackupVaultLockConfiguration for more information on using the DeleteBackupVaultLockConfiguration
902// API call, and error handling.
903//
904// This method is useful when you want to inject custom logic or configuration
905// into the SDK's request lifecycle. Such as custom headers, or retry logic.
906//
907//
908//    // Example sending a request using the DeleteBackupVaultLockConfigurationRequest method.
909//    req, resp := client.DeleteBackupVaultLockConfigurationRequest(params)
910//
911//    err := req.Send()
912//    if err == nil { // resp is now filled
913//        fmt.Println(resp)
914//    }
915//
916// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DeleteBackupVaultLockConfiguration
917func (c *Backup) DeleteBackupVaultLockConfigurationRequest(input *DeleteBackupVaultLockConfigurationInput) (req *request.Request, output *DeleteBackupVaultLockConfigurationOutput) {
918	op := &request.Operation{
919		Name:       opDeleteBackupVaultLockConfiguration,
920		HTTPMethod: "DELETE",
921		HTTPPath:   "/backup-vaults/{backupVaultName}/vault-lock",
922	}
923
924	if input == nil {
925		input = &DeleteBackupVaultLockConfigurationInput{}
926	}
927
928	output = &DeleteBackupVaultLockConfigurationOutput{}
929	req = c.newRequest(op, input, output)
930	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
931	return
932}
933
934// DeleteBackupVaultLockConfiguration API operation for AWS Backup.
935//
936// Deletes Backup Vault Lock from a backup vault specified by a backup vault
937// name.
938//
939// If the Vault Lock configuration is immutable, then you cannot delete Vault
940// Lock using API operations, and you will receive an InvalidRequestException
941// if you attempt to do so. For more information, see Vault Lock (https://docs.aws.amazon.com/aws-backup/latest/devguide/vault-lock.html)
942// in the Backup Developer Guide.
943//
944// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
945// with awserr.Error's Code and Message methods to get detailed information about
946// the error.
947//
948// See the AWS API reference guide for AWS Backup's
949// API operation DeleteBackupVaultLockConfiguration for usage and error information.
950//
951// Returned Error Types:
952//   * ResourceNotFoundException
953//   A resource that is required for the action doesn't exist.
954//
955//   * InvalidParameterValueException
956//   Indicates that something is wrong with a parameter's value. For example,
957//   the value is out of range.
958//
959//   * MissingParameterValueException
960//   Indicates that a required parameter is missing.
961//
962//   * InvalidRequestException
963//   Indicates that something is wrong with the input to the request. For example,
964//   a parameter is of the wrong type.
965//
966//   * ServiceUnavailableException
967//   The request failed due to a temporary failure of the server.
968//
969// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DeleteBackupVaultLockConfiguration
970func (c *Backup) DeleteBackupVaultLockConfiguration(input *DeleteBackupVaultLockConfigurationInput) (*DeleteBackupVaultLockConfigurationOutput, error) {
971	req, out := c.DeleteBackupVaultLockConfigurationRequest(input)
972	return out, req.Send()
973}
974
975// DeleteBackupVaultLockConfigurationWithContext is the same as DeleteBackupVaultLockConfiguration with the addition of
976// the ability to pass a context and additional request options.
977//
978// See DeleteBackupVaultLockConfiguration for details on how to use this API operation.
979//
980// The context must be non-nil and will be used for request cancellation. If
981// the context is nil a panic will occur. In the future the SDK may create
982// sub-contexts for http.Requests. See https://golang.org/pkg/context/
983// for more information on using Contexts.
984func (c *Backup) DeleteBackupVaultLockConfigurationWithContext(ctx aws.Context, input *DeleteBackupVaultLockConfigurationInput, opts ...request.Option) (*DeleteBackupVaultLockConfigurationOutput, error) {
985	req, out := c.DeleteBackupVaultLockConfigurationRequest(input)
986	req.SetContext(ctx)
987	req.ApplyOptions(opts...)
988	return out, req.Send()
989}
990
991const opDeleteBackupVaultNotifications = "DeleteBackupVaultNotifications"
992
993// DeleteBackupVaultNotificationsRequest generates a "aws/request.Request" representing the
994// client's request for the DeleteBackupVaultNotifications operation. The "output" return
995// value will be populated with the request's response once the request completes
996// successfully.
997//
998// Use "Send" method on the returned Request to send the API call to the service.
999// the "output" return value is not valid until after Send returns without error.
1000//
1001// See DeleteBackupVaultNotifications for more information on using the DeleteBackupVaultNotifications
1002// API call, and error handling.
1003//
1004// This method is useful when you want to inject custom logic or configuration
1005// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1006//
1007//
1008//    // Example sending a request using the DeleteBackupVaultNotificationsRequest method.
1009//    req, resp := client.DeleteBackupVaultNotificationsRequest(params)
1010//
1011//    err := req.Send()
1012//    if err == nil { // resp is now filled
1013//        fmt.Println(resp)
1014//    }
1015//
1016// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DeleteBackupVaultNotifications
1017func (c *Backup) DeleteBackupVaultNotificationsRequest(input *DeleteBackupVaultNotificationsInput) (req *request.Request, output *DeleteBackupVaultNotificationsOutput) {
1018	op := &request.Operation{
1019		Name:       opDeleteBackupVaultNotifications,
1020		HTTPMethod: "DELETE",
1021		HTTPPath:   "/backup-vaults/{backupVaultName}/notification-configuration",
1022	}
1023
1024	if input == nil {
1025		input = &DeleteBackupVaultNotificationsInput{}
1026	}
1027
1028	output = &DeleteBackupVaultNotificationsOutput{}
1029	req = c.newRequest(op, input, output)
1030	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1031	return
1032}
1033
1034// DeleteBackupVaultNotifications API operation for AWS Backup.
1035//
1036// Deletes event notifications for the specified backup vault.
1037//
1038// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1039// with awserr.Error's Code and Message methods to get detailed information about
1040// the error.
1041//
1042// See the AWS API reference guide for AWS Backup's
1043// API operation DeleteBackupVaultNotifications for usage and error information.
1044//
1045// Returned Error Types:
1046//   * ResourceNotFoundException
1047//   A resource that is required for the action doesn't exist.
1048//
1049//   * InvalidParameterValueException
1050//   Indicates that something is wrong with a parameter's value. For example,
1051//   the value is out of range.
1052//
1053//   * MissingParameterValueException
1054//   Indicates that a required parameter is missing.
1055//
1056//   * ServiceUnavailableException
1057//   The request failed due to a temporary failure of the server.
1058//
1059// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DeleteBackupVaultNotifications
1060func (c *Backup) DeleteBackupVaultNotifications(input *DeleteBackupVaultNotificationsInput) (*DeleteBackupVaultNotificationsOutput, error) {
1061	req, out := c.DeleteBackupVaultNotificationsRequest(input)
1062	return out, req.Send()
1063}
1064
1065// DeleteBackupVaultNotificationsWithContext is the same as DeleteBackupVaultNotifications with the addition of
1066// the ability to pass a context and additional request options.
1067//
1068// See DeleteBackupVaultNotifications for details on how to use this API operation.
1069//
1070// The context must be non-nil and will be used for request cancellation. If
1071// the context is nil a panic will occur. In the future the SDK may create
1072// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1073// for more information on using Contexts.
1074func (c *Backup) DeleteBackupVaultNotificationsWithContext(ctx aws.Context, input *DeleteBackupVaultNotificationsInput, opts ...request.Option) (*DeleteBackupVaultNotificationsOutput, error) {
1075	req, out := c.DeleteBackupVaultNotificationsRequest(input)
1076	req.SetContext(ctx)
1077	req.ApplyOptions(opts...)
1078	return out, req.Send()
1079}
1080
1081const opDeleteFramework = "DeleteFramework"
1082
1083// DeleteFrameworkRequest generates a "aws/request.Request" representing the
1084// client's request for the DeleteFramework operation. The "output" return
1085// value will be populated with the request's response once the request completes
1086// successfully.
1087//
1088// Use "Send" method on the returned Request to send the API call to the service.
1089// the "output" return value is not valid until after Send returns without error.
1090//
1091// See DeleteFramework for more information on using the DeleteFramework
1092// API call, and error handling.
1093//
1094// This method is useful when you want to inject custom logic or configuration
1095// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1096//
1097//
1098//    // Example sending a request using the DeleteFrameworkRequest method.
1099//    req, resp := client.DeleteFrameworkRequest(params)
1100//
1101//    err := req.Send()
1102//    if err == nil { // resp is now filled
1103//        fmt.Println(resp)
1104//    }
1105//
1106// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DeleteFramework
1107func (c *Backup) DeleteFrameworkRequest(input *DeleteFrameworkInput) (req *request.Request, output *DeleteFrameworkOutput) {
1108	op := &request.Operation{
1109		Name:       opDeleteFramework,
1110		HTTPMethod: "DELETE",
1111		HTTPPath:   "/audit/frameworks/{frameworkName}",
1112	}
1113
1114	if input == nil {
1115		input = &DeleteFrameworkInput{}
1116	}
1117
1118	output = &DeleteFrameworkOutput{}
1119	req = c.newRequest(op, input, output)
1120	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1121	return
1122}
1123
1124// DeleteFramework API operation for AWS Backup.
1125//
1126// Deletes the framework specified by a framework name.
1127//
1128// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1129// with awserr.Error's Code and Message methods to get detailed information about
1130// the error.
1131//
1132// See the AWS API reference guide for AWS Backup's
1133// API operation DeleteFramework for usage and error information.
1134//
1135// Returned Error Types:
1136//   * MissingParameterValueException
1137//   Indicates that a required parameter is missing.
1138//
1139//   * InvalidParameterValueException
1140//   Indicates that something is wrong with a parameter's value. For example,
1141//   the value is out of range.
1142//
1143//   * ServiceUnavailableException
1144//   The request failed due to a temporary failure of the server.
1145//
1146//   * ConflictException
1147//   Backup can't perform the action that you requested until it finishes performing
1148//   a previous action. Try again later.
1149//
1150//   * ResourceNotFoundException
1151//   A resource that is required for the action doesn't exist.
1152//
1153// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DeleteFramework
1154func (c *Backup) DeleteFramework(input *DeleteFrameworkInput) (*DeleteFrameworkOutput, error) {
1155	req, out := c.DeleteFrameworkRequest(input)
1156	return out, req.Send()
1157}
1158
1159// DeleteFrameworkWithContext is the same as DeleteFramework with the addition of
1160// the ability to pass a context and additional request options.
1161//
1162// See DeleteFramework for details on how to use this API operation.
1163//
1164// The context must be non-nil and will be used for request cancellation. If
1165// the context is nil a panic will occur. In the future the SDK may create
1166// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1167// for more information on using Contexts.
1168func (c *Backup) DeleteFrameworkWithContext(ctx aws.Context, input *DeleteFrameworkInput, opts ...request.Option) (*DeleteFrameworkOutput, error) {
1169	req, out := c.DeleteFrameworkRequest(input)
1170	req.SetContext(ctx)
1171	req.ApplyOptions(opts...)
1172	return out, req.Send()
1173}
1174
1175const opDeleteRecoveryPoint = "DeleteRecoveryPoint"
1176
1177// DeleteRecoveryPointRequest generates a "aws/request.Request" representing the
1178// client's request for the DeleteRecoveryPoint operation. The "output" return
1179// value will be populated with the request's response once the request completes
1180// successfully.
1181//
1182// Use "Send" method on the returned Request to send the API call to the service.
1183// the "output" return value is not valid until after Send returns without error.
1184//
1185// See DeleteRecoveryPoint for more information on using the DeleteRecoveryPoint
1186// API call, and error handling.
1187//
1188// This method is useful when you want to inject custom logic or configuration
1189// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1190//
1191//
1192//    // Example sending a request using the DeleteRecoveryPointRequest method.
1193//    req, resp := client.DeleteRecoveryPointRequest(params)
1194//
1195//    err := req.Send()
1196//    if err == nil { // resp is now filled
1197//        fmt.Println(resp)
1198//    }
1199//
1200// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DeleteRecoveryPoint
1201func (c *Backup) DeleteRecoveryPointRequest(input *DeleteRecoveryPointInput) (req *request.Request, output *DeleteRecoveryPointOutput) {
1202	op := &request.Operation{
1203		Name:       opDeleteRecoveryPoint,
1204		HTTPMethod: "DELETE",
1205		HTTPPath:   "/backup-vaults/{backupVaultName}/recovery-points/{recoveryPointArn}",
1206	}
1207
1208	if input == nil {
1209		input = &DeleteRecoveryPointInput{}
1210	}
1211
1212	output = &DeleteRecoveryPointOutput{}
1213	req = c.newRequest(op, input, output)
1214	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1215	return
1216}
1217
1218// DeleteRecoveryPoint API operation for AWS Backup.
1219//
1220// Deletes the recovery point specified by a recovery point ID.
1221//
1222// If the recovery point ID belongs to a continuous backup, calling this endpoint
1223// deletes the existing continuous backup and stops future continuous backup.
1224//
1225// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1226// with awserr.Error's Code and Message methods to get detailed information about
1227// the error.
1228//
1229// See the AWS API reference guide for AWS Backup's
1230// API operation DeleteRecoveryPoint for usage and error information.
1231//
1232// Returned Error Types:
1233//   * ResourceNotFoundException
1234//   A resource that is required for the action doesn't exist.
1235//
1236//   * InvalidParameterValueException
1237//   Indicates that something is wrong with a parameter's value. For example,
1238//   the value is out of range.
1239//
1240//   * MissingParameterValueException
1241//   Indicates that a required parameter is missing.
1242//
1243//   * InvalidResourceStateException
1244//   Backup is already performing an action on this recovery point. It can't perform
1245//   the action you requested until the first action finishes. Try again later.
1246//
1247//   * ServiceUnavailableException
1248//   The request failed due to a temporary failure of the server.
1249//
1250//   * InvalidRequestException
1251//   Indicates that something is wrong with the input to the request. For example,
1252//   a parameter is of the wrong type.
1253//
1254// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DeleteRecoveryPoint
1255func (c *Backup) DeleteRecoveryPoint(input *DeleteRecoveryPointInput) (*DeleteRecoveryPointOutput, error) {
1256	req, out := c.DeleteRecoveryPointRequest(input)
1257	return out, req.Send()
1258}
1259
1260// DeleteRecoveryPointWithContext is the same as DeleteRecoveryPoint with the addition of
1261// the ability to pass a context and additional request options.
1262//
1263// See DeleteRecoveryPoint for details on how to use this API operation.
1264//
1265// The context must be non-nil and will be used for request cancellation. If
1266// the context is nil a panic will occur. In the future the SDK may create
1267// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1268// for more information on using Contexts.
1269func (c *Backup) DeleteRecoveryPointWithContext(ctx aws.Context, input *DeleteRecoveryPointInput, opts ...request.Option) (*DeleteRecoveryPointOutput, error) {
1270	req, out := c.DeleteRecoveryPointRequest(input)
1271	req.SetContext(ctx)
1272	req.ApplyOptions(opts...)
1273	return out, req.Send()
1274}
1275
1276const opDeleteReportPlan = "DeleteReportPlan"
1277
1278// DeleteReportPlanRequest generates a "aws/request.Request" representing the
1279// client's request for the DeleteReportPlan operation. The "output" return
1280// value will be populated with the request's response once the request completes
1281// successfully.
1282//
1283// Use "Send" method on the returned Request to send the API call to the service.
1284// the "output" return value is not valid until after Send returns without error.
1285//
1286// See DeleteReportPlan for more information on using the DeleteReportPlan
1287// API call, and error handling.
1288//
1289// This method is useful when you want to inject custom logic or configuration
1290// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1291//
1292//
1293//    // Example sending a request using the DeleteReportPlanRequest method.
1294//    req, resp := client.DeleteReportPlanRequest(params)
1295//
1296//    err := req.Send()
1297//    if err == nil { // resp is now filled
1298//        fmt.Println(resp)
1299//    }
1300//
1301// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DeleteReportPlan
1302func (c *Backup) DeleteReportPlanRequest(input *DeleteReportPlanInput) (req *request.Request, output *DeleteReportPlanOutput) {
1303	op := &request.Operation{
1304		Name:       opDeleteReportPlan,
1305		HTTPMethod: "DELETE",
1306		HTTPPath:   "/audit/report-plans/{reportPlanName}",
1307	}
1308
1309	if input == nil {
1310		input = &DeleteReportPlanInput{}
1311	}
1312
1313	output = &DeleteReportPlanOutput{}
1314	req = c.newRequest(op, input, output)
1315	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1316	return
1317}
1318
1319// DeleteReportPlan API operation for AWS Backup.
1320//
1321// Deletes the report plan specified by a report plan name.
1322//
1323// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1324// with awserr.Error's Code and Message methods to get detailed information about
1325// the error.
1326//
1327// See the AWS API reference guide for AWS Backup's
1328// API operation DeleteReportPlan for usage and error information.
1329//
1330// Returned Error Types:
1331//   * MissingParameterValueException
1332//   Indicates that a required parameter is missing.
1333//
1334//   * InvalidParameterValueException
1335//   Indicates that something is wrong with a parameter's value. For example,
1336//   the value is out of range.
1337//
1338//   * ConflictException
1339//   Backup can't perform the action that you requested until it finishes performing
1340//   a previous action. Try again later.
1341//
1342//   * ServiceUnavailableException
1343//   The request failed due to a temporary failure of the server.
1344//
1345//   * ResourceNotFoundException
1346//   A resource that is required for the action doesn't exist.
1347//
1348// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DeleteReportPlan
1349func (c *Backup) DeleteReportPlan(input *DeleteReportPlanInput) (*DeleteReportPlanOutput, error) {
1350	req, out := c.DeleteReportPlanRequest(input)
1351	return out, req.Send()
1352}
1353
1354// DeleteReportPlanWithContext is the same as DeleteReportPlan with the addition of
1355// the ability to pass a context and additional request options.
1356//
1357// See DeleteReportPlan for details on how to use this API operation.
1358//
1359// The context must be non-nil and will be used for request cancellation. If
1360// the context is nil a panic will occur. In the future the SDK may create
1361// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1362// for more information on using Contexts.
1363func (c *Backup) DeleteReportPlanWithContext(ctx aws.Context, input *DeleteReportPlanInput, opts ...request.Option) (*DeleteReportPlanOutput, error) {
1364	req, out := c.DeleteReportPlanRequest(input)
1365	req.SetContext(ctx)
1366	req.ApplyOptions(opts...)
1367	return out, req.Send()
1368}
1369
1370const opDescribeBackupJob = "DescribeBackupJob"
1371
1372// DescribeBackupJobRequest generates a "aws/request.Request" representing the
1373// client's request for the DescribeBackupJob operation. The "output" return
1374// value will be populated with the request's response once the request completes
1375// successfully.
1376//
1377// Use "Send" method on the returned Request to send the API call to the service.
1378// the "output" return value is not valid until after Send returns without error.
1379//
1380// See DescribeBackupJob for more information on using the DescribeBackupJob
1381// API call, and error handling.
1382//
1383// This method is useful when you want to inject custom logic or configuration
1384// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1385//
1386//
1387//    // Example sending a request using the DescribeBackupJobRequest method.
1388//    req, resp := client.DescribeBackupJobRequest(params)
1389//
1390//    err := req.Send()
1391//    if err == nil { // resp is now filled
1392//        fmt.Println(resp)
1393//    }
1394//
1395// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeBackupJob
1396func (c *Backup) DescribeBackupJobRequest(input *DescribeBackupJobInput) (req *request.Request, output *DescribeBackupJobOutput) {
1397	op := &request.Operation{
1398		Name:       opDescribeBackupJob,
1399		HTTPMethod: "GET",
1400		HTTPPath:   "/backup-jobs/{backupJobId}",
1401	}
1402
1403	if input == nil {
1404		input = &DescribeBackupJobInput{}
1405	}
1406
1407	output = &DescribeBackupJobOutput{}
1408	req = c.newRequest(op, input, output)
1409	return
1410}
1411
1412// DescribeBackupJob API operation for AWS Backup.
1413//
1414// Returns backup job details for the specified BackupJobId.
1415//
1416// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1417// with awserr.Error's Code and Message methods to get detailed information about
1418// the error.
1419//
1420// See the AWS API reference guide for AWS Backup's
1421// API operation DescribeBackupJob for usage and error information.
1422//
1423// Returned Error Types:
1424//   * ResourceNotFoundException
1425//   A resource that is required for the action doesn't exist.
1426//
1427//   * InvalidParameterValueException
1428//   Indicates that something is wrong with a parameter's value. For example,
1429//   the value is out of range.
1430//
1431//   * MissingParameterValueException
1432//   Indicates that a required parameter is missing.
1433//
1434//   * ServiceUnavailableException
1435//   The request failed due to a temporary failure of the server.
1436//
1437//   * DependencyFailureException
1438//   A dependent Amazon Web Services service or resource returned an error to
1439//   the Backup service, and the action cannot be completed.
1440//
1441// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeBackupJob
1442func (c *Backup) DescribeBackupJob(input *DescribeBackupJobInput) (*DescribeBackupJobOutput, error) {
1443	req, out := c.DescribeBackupJobRequest(input)
1444	return out, req.Send()
1445}
1446
1447// DescribeBackupJobWithContext is the same as DescribeBackupJob with the addition of
1448// the ability to pass a context and additional request options.
1449//
1450// See DescribeBackupJob for details on how to use this API operation.
1451//
1452// The context must be non-nil and will be used for request cancellation. If
1453// the context is nil a panic will occur. In the future the SDK may create
1454// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1455// for more information on using Contexts.
1456func (c *Backup) DescribeBackupJobWithContext(ctx aws.Context, input *DescribeBackupJobInput, opts ...request.Option) (*DescribeBackupJobOutput, error) {
1457	req, out := c.DescribeBackupJobRequest(input)
1458	req.SetContext(ctx)
1459	req.ApplyOptions(opts...)
1460	return out, req.Send()
1461}
1462
1463const opDescribeBackupVault = "DescribeBackupVault"
1464
1465// DescribeBackupVaultRequest generates a "aws/request.Request" representing the
1466// client's request for the DescribeBackupVault operation. The "output" return
1467// value will be populated with the request's response once the request completes
1468// successfully.
1469//
1470// Use "Send" method on the returned Request to send the API call to the service.
1471// the "output" return value is not valid until after Send returns without error.
1472//
1473// See DescribeBackupVault for more information on using the DescribeBackupVault
1474// API call, and error handling.
1475//
1476// This method is useful when you want to inject custom logic or configuration
1477// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1478//
1479//
1480//    // Example sending a request using the DescribeBackupVaultRequest method.
1481//    req, resp := client.DescribeBackupVaultRequest(params)
1482//
1483//    err := req.Send()
1484//    if err == nil { // resp is now filled
1485//        fmt.Println(resp)
1486//    }
1487//
1488// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeBackupVault
1489func (c *Backup) DescribeBackupVaultRequest(input *DescribeBackupVaultInput) (req *request.Request, output *DescribeBackupVaultOutput) {
1490	op := &request.Operation{
1491		Name:       opDescribeBackupVault,
1492		HTTPMethod: "GET",
1493		HTTPPath:   "/backup-vaults/{backupVaultName}",
1494	}
1495
1496	if input == nil {
1497		input = &DescribeBackupVaultInput{}
1498	}
1499
1500	output = &DescribeBackupVaultOutput{}
1501	req = c.newRequest(op, input, output)
1502	return
1503}
1504
1505// DescribeBackupVault API operation for AWS Backup.
1506//
1507// Returns metadata about a backup vault specified by its name.
1508//
1509// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1510// with awserr.Error's Code and Message methods to get detailed information about
1511// the error.
1512//
1513// See the AWS API reference guide for AWS Backup's
1514// API operation DescribeBackupVault for usage and error information.
1515//
1516// Returned Error Types:
1517//   * ResourceNotFoundException
1518//   A resource that is required for the action doesn't exist.
1519//
1520//   * InvalidParameterValueException
1521//   Indicates that something is wrong with a parameter's value. For example,
1522//   the value is out of range.
1523//
1524//   * MissingParameterValueException
1525//   Indicates that a required parameter is missing.
1526//
1527//   * ServiceUnavailableException
1528//   The request failed due to a temporary failure of the server.
1529//
1530// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeBackupVault
1531func (c *Backup) DescribeBackupVault(input *DescribeBackupVaultInput) (*DescribeBackupVaultOutput, error) {
1532	req, out := c.DescribeBackupVaultRequest(input)
1533	return out, req.Send()
1534}
1535
1536// DescribeBackupVaultWithContext is the same as DescribeBackupVault with the addition of
1537// the ability to pass a context and additional request options.
1538//
1539// See DescribeBackupVault for details on how to use this API operation.
1540//
1541// The context must be non-nil and will be used for request cancellation. If
1542// the context is nil a panic will occur. In the future the SDK may create
1543// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1544// for more information on using Contexts.
1545func (c *Backup) DescribeBackupVaultWithContext(ctx aws.Context, input *DescribeBackupVaultInput, opts ...request.Option) (*DescribeBackupVaultOutput, error) {
1546	req, out := c.DescribeBackupVaultRequest(input)
1547	req.SetContext(ctx)
1548	req.ApplyOptions(opts...)
1549	return out, req.Send()
1550}
1551
1552const opDescribeCopyJob = "DescribeCopyJob"
1553
1554// DescribeCopyJobRequest generates a "aws/request.Request" representing the
1555// client's request for the DescribeCopyJob operation. The "output" return
1556// value will be populated with the request's response once the request completes
1557// successfully.
1558//
1559// Use "Send" method on the returned Request to send the API call to the service.
1560// the "output" return value is not valid until after Send returns without error.
1561//
1562// See DescribeCopyJob for more information on using the DescribeCopyJob
1563// API call, and error handling.
1564//
1565// This method is useful when you want to inject custom logic or configuration
1566// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1567//
1568//
1569//    // Example sending a request using the DescribeCopyJobRequest method.
1570//    req, resp := client.DescribeCopyJobRequest(params)
1571//
1572//    err := req.Send()
1573//    if err == nil { // resp is now filled
1574//        fmt.Println(resp)
1575//    }
1576//
1577// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeCopyJob
1578func (c *Backup) DescribeCopyJobRequest(input *DescribeCopyJobInput) (req *request.Request, output *DescribeCopyJobOutput) {
1579	op := &request.Operation{
1580		Name:       opDescribeCopyJob,
1581		HTTPMethod: "GET",
1582		HTTPPath:   "/copy-jobs/{copyJobId}",
1583	}
1584
1585	if input == nil {
1586		input = &DescribeCopyJobInput{}
1587	}
1588
1589	output = &DescribeCopyJobOutput{}
1590	req = c.newRequest(op, input, output)
1591	return
1592}
1593
1594// DescribeCopyJob API operation for AWS Backup.
1595//
1596// Returns metadata associated with creating a copy of a resource.
1597//
1598// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1599// with awserr.Error's Code and Message methods to get detailed information about
1600// the error.
1601//
1602// See the AWS API reference guide for AWS Backup's
1603// API operation DescribeCopyJob for usage and error information.
1604//
1605// Returned Error Types:
1606//   * ResourceNotFoundException
1607//   A resource that is required for the action doesn't exist.
1608//
1609//   * InvalidParameterValueException
1610//   Indicates that something is wrong with a parameter's value. For example,
1611//   the value is out of range.
1612//
1613//   * MissingParameterValueException
1614//   Indicates that a required parameter is missing.
1615//
1616//   * ServiceUnavailableException
1617//   The request failed due to a temporary failure of the server.
1618//
1619// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeCopyJob
1620func (c *Backup) DescribeCopyJob(input *DescribeCopyJobInput) (*DescribeCopyJobOutput, error) {
1621	req, out := c.DescribeCopyJobRequest(input)
1622	return out, req.Send()
1623}
1624
1625// DescribeCopyJobWithContext is the same as DescribeCopyJob with the addition of
1626// the ability to pass a context and additional request options.
1627//
1628// See DescribeCopyJob for details on how to use this API operation.
1629//
1630// The context must be non-nil and will be used for request cancellation. If
1631// the context is nil a panic will occur. In the future the SDK may create
1632// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1633// for more information on using Contexts.
1634func (c *Backup) DescribeCopyJobWithContext(ctx aws.Context, input *DescribeCopyJobInput, opts ...request.Option) (*DescribeCopyJobOutput, error) {
1635	req, out := c.DescribeCopyJobRequest(input)
1636	req.SetContext(ctx)
1637	req.ApplyOptions(opts...)
1638	return out, req.Send()
1639}
1640
1641const opDescribeFramework = "DescribeFramework"
1642
1643// DescribeFrameworkRequest generates a "aws/request.Request" representing the
1644// client's request for the DescribeFramework operation. The "output" return
1645// value will be populated with the request's response once the request completes
1646// successfully.
1647//
1648// Use "Send" method on the returned Request to send the API call to the service.
1649// the "output" return value is not valid until after Send returns without error.
1650//
1651// See DescribeFramework for more information on using the DescribeFramework
1652// API call, and error handling.
1653//
1654// This method is useful when you want to inject custom logic or configuration
1655// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1656//
1657//
1658//    // Example sending a request using the DescribeFrameworkRequest method.
1659//    req, resp := client.DescribeFrameworkRequest(params)
1660//
1661//    err := req.Send()
1662//    if err == nil { // resp is now filled
1663//        fmt.Println(resp)
1664//    }
1665//
1666// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeFramework
1667func (c *Backup) DescribeFrameworkRequest(input *DescribeFrameworkInput) (req *request.Request, output *DescribeFrameworkOutput) {
1668	op := &request.Operation{
1669		Name:       opDescribeFramework,
1670		HTTPMethod: "GET",
1671		HTTPPath:   "/audit/frameworks/{frameworkName}",
1672	}
1673
1674	if input == nil {
1675		input = &DescribeFrameworkInput{}
1676	}
1677
1678	output = &DescribeFrameworkOutput{}
1679	req = c.newRequest(op, input, output)
1680	return
1681}
1682
1683// DescribeFramework API operation for AWS Backup.
1684//
1685// Returns the framework details for the specified FrameworkName.
1686//
1687// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1688// with awserr.Error's Code and Message methods to get detailed information about
1689// the error.
1690//
1691// See the AWS API reference guide for AWS Backup's
1692// API operation DescribeFramework for usage and error information.
1693//
1694// Returned Error Types:
1695//   * ResourceNotFoundException
1696//   A resource that is required for the action doesn't exist.
1697//
1698//   * InvalidParameterValueException
1699//   Indicates that something is wrong with a parameter's value. For example,
1700//   the value is out of range.
1701//
1702//   * MissingParameterValueException
1703//   Indicates that a required parameter is missing.
1704//
1705//   * ServiceUnavailableException
1706//   The request failed due to a temporary failure of the server.
1707//
1708// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeFramework
1709func (c *Backup) DescribeFramework(input *DescribeFrameworkInput) (*DescribeFrameworkOutput, error) {
1710	req, out := c.DescribeFrameworkRequest(input)
1711	return out, req.Send()
1712}
1713
1714// DescribeFrameworkWithContext is the same as DescribeFramework with the addition of
1715// the ability to pass a context and additional request options.
1716//
1717// See DescribeFramework for details on how to use this API operation.
1718//
1719// The context must be non-nil and will be used for request cancellation. If
1720// the context is nil a panic will occur. In the future the SDK may create
1721// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1722// for more information on using Contexts.
1723func (c *Backup) DescribeFrameworkWithContext(ctx aws.Context, input *DescribeFrameworkInput, opts ...request.Option) (*DescribeFrameworkOutput, error) {
1724	req, out := c.DescribeFrameworkRequest(input)
1725	req.SetContext(ctx)
1726	req.ApplyOptions(opts...)
1727	return out, req.Send()
1728}
1729
1730const opDescribeGlobalSettings = "DescribeGlobalSettings"
1731
1732// DescribeGlobalSettingsRequest generates a "aws/request.Request" representing the
1733// client's request for the DescribeGlobalSettings operation. The "output" return
1734// value will be populated with the request's response once the request completes
1735// successfully.
1736//
1737// Use "Send" method on the returned Request to send the API call to the service.
1738// the "output" return value is not valid until after Send returns without error.
1739//
1740// See DescribeGlobalSettings for more information on using the DescribeGlobalSettings
1741// API call, and error handling.
1742//
1743// This method is useful when you want to inject custom logic or configuration
1744// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1745//
1746//
1747//    // Example sending a request using the DescribeGlobalSettingsRequest method.
1748//    req, resp := client.DescribeGlobalSettingsRequest(params)
1749//
1750//    err := req.Send()
1751//    if err == nil { // resp is now filled
1752//        fmt.Println(resp)
1753//    }
1754//
1755// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeGlobalSettings
1756func (c *Backup) DescribeGlobalSettingsRequest(input *DescribeGlobalSettingsInput) (req *request.Request, output *DescribeGlobalSettingsOutput) {
1757	op := &request.Operation{
1758		Name:       opDescribeGlobalSettings,
1759		HTTPMethod: "GET",
1760		HTTPPath:   "/global-settings",
1761	}
1762
1763	if input == nil {
1764		input = &DescribeGlobalSettingsInput{}
1765	}
1766
1767	output = &DescribeGlobalSettingsOutput{}
1768	req = c.newRequest(op, input, output)
1769	return
1770}
1771
1772// DescribeGlobalSettings API operation for AWS Backup.
1773//
1774// Describes whether the Amazon Web Services account is opted in to cross-account
1775// backup. Returns an error if the account is not a member of an Organizations
1776// organization. Example: describe-global-settings --region us-west-2
1777//
1778// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1779// with awserr.Error's Code and Message methods to get detailed information about
1780// the error.
1781//
1782// See the AWS API reference guide for AWS Backup's
1783// API operation DescribeGlobalSettings for usage and error information.
1784//
1785// Returned Error Types:
1786//   * InvalidRequestException
1787//   Indicates that something is wrong with the input to the request. For example,
1788//   a parameter is of the wrong type.
1789//
1790//   * ServiceUnavailableException
1791//   The request failed due to a temporary failure of the server.
1792//
1793// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeGlobalSettings
1794func (c *Backup) DescribeGlobalSettings(input *DescribeGlobalSettingsInput) (*DescribeGlobalSettingsOutput, error) {
1795	req, out := c.DescribeGlobalSettingsRequest(input)
1796	return out, req.Send()
1797}
1798
1799// DescribeGlobalSettingsWithContext is the same as DescribeGlobalSettings with the addition of
1800// the ability to pass a context and additional request options.
1801//
1802// See DescribeGlobalSettings for details on how to use this API operation.
1803//
1804// The context must be non-nil and will be used for request cancellation. If
1805// the context is nil a panic will occur. In the future the SDK may create
1806// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1807// for more information on using Contexts.
1808func (c *Backup) DescribeGlobalSettingsWithContext(ctx aws.Context, input *DescribeGlobalSettingsInput, opts ...request.Option) (*DescribeGlobalSettingsOutput, error) {
1809	req, out := c.DescribeGlobalSettingsRequest(input)
1810	req.SetContext(ctx)
1811	req.ApplyOptions(opts...)
1812	return out, req.Send()
1813}
1814
1815const opDescribeProtectedResource = "DescribeProtectedResource"
1816
1817// DescribeProtectedResourceRequest generates a "aws/request.Request" representing the
1818// client's request for the DescribeProtectedResource operation. The "output" return
1819// value will be populated with the request's response once the request completes
1820// successfully.
1821//
1822// Use "Send" method on the returned Request to send the API call to the service.
1823// the "output" return value is not valid until after Send returns without error.
1824//
1825// See DescribeProtectedResource for more information on using the DescribeProtectedResource
1826// API call, and error handling.
1827//
1828// This method is useful when you want to inject custom logic or configuration
1829// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1830//
1831//
1832//    // Example sending a request using the DescribeProtectedResourceRequest method.
1833//    req, resp := client.DescribeProtectedResourceRequest(params)
1834//
1835//    err := req.Send()
1836//    if err == nil { // resp is now filled
1837//        fmt.Println(resp)
1838//    }
1839//
1840// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeProtectedResource
1841func (c *Backup) DescribeProtectedResourceRequest(input *DescribeProtectedResourceInput) (req *request.Request, output *DescribeProtectedResourceOutput) {
1842	op := &request.Operation{
1843		Name:       opDescribeProtectedResource,
1844		HTTPMethod: "GET",
1845		HTTPPath:   "/resources/{resourceArn}",
1846	}
1847
1848	if input == nil {
1849		input = &DescribeProtectedResourceInput{}
1850	}
1851
1852	output = &DescribeProtectedResourceOutput{}
1853	req = c.newRequest(op, input, output)
1854	return
1855}
1856
1857// DescribeProtectedResource API operation for AWS Backup.
1858//
1859// Returns information about a saved resource, including the last time it was
1860// backed up, its Amazon Resource Name (ARN), and the Amazon Web Services service
1861// type of the saved resource.
1862//
1863// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1864// with awserr.Error's Code and Message methods to get detailed information about
1865// the error.
1866//
1867// See the AWS API reference guide for AWS Backup's
1868// API operation DescribeProtectedResource for usage and error information.
1869//
1870// Returned Error Types:
1871//   * MissingParameterValueException
1872//   Indicates that a required parameter is missing.
1873//
1874//   * InvalidParameterValueException
1875//   Indicates that something is wrong with a parameter's value. For example,
1876//   the value is out of range.
1877//
1878//   * ServiceUnavailableException
1879//   The request failed due to a temporary failure of the server.
1880//
1881//   * ResourceNotFoundException
1882//   A resource that is required for the action doesn't exist.
1883//
1884// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeProtectedResource
1885func (c *Backup) DescribeProtectedResource(input *DescribeProtectedResourceInput) (*DescribeProtectedResourceOutput, error) {
1886	req, out := c.DescribeProtectedResourceRequest(input)
1887	return out, req.Send()
1888}
1889
1890// DescribeProtectedResourceWithContext is the same as DescribeProtectedResource with the addition of
1891// the ability to pass a context and additional request options.
1892//
1893// See DescribeProtectedResource for details on how to use this API operation.
1894//
1895// The context must be non-nil and will be used for request cancellation. If
1896// the context is nil a panic will occur. In the future the SDK may create
1897// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1898// for more information on using Contexts.
1899func (c *Backup) DescribeProtectedResourceWithContext(ctx aws.Context, input *DescribeProtectedResourceInput, opts ...request.Option) (*DescribeProtectedResourceOutput, error) {
1900	req, out := c.DescribeProtectedResourceRequest(input)
1901	req.SetContext(ctx)
1902	req.ApplyOptions(opts...)
1903	return out, req.Send()
1904}
1905
1906const opDescribeRecoveryPoint = "DescribeRecoveryPoint"
1907
1908// DescribeRecoveryPointRequest generates a "aws/request.Request" representing the
1909// client's request for the DescribeRecoveryPoint operation. The "output" return
1910// value will be populated with the request's response once the request completes
1911// successfully.
1912//
1913// Use "Send" method on the returned Request to send the API call to the service.
1914// the "output" return value is not valid until after Send returns without error.
1915//
1916// See DescribeRecoveryPoint for more information on using the DescribeRecoveryPoint
1917// API call, and error handling.
1918//
1919// This method is useful when you want to inject custom logic or configuration
1920// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1921//
1922//
1923//    // Example sending a request using the DescribeRecoveryPointRequest method.
1924//    req, resp := client.DescribeRecoveryPointRequest(params)
1925//
1926//    err := req.Send()
1927//    if err == nil { // resp is now filled
1928//        fmt.Println(resp)
1929//    }
1930//
1931// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeRecoveryPoint
1932func (c *Backup) DescribeRecoveryPointRequest(input *DescribeRecoveryPointInput) (req *request.Request, output *DescribeRecoveryPointOutput) {
1933	op := &request.Operation{
1934		Name:       opDescribeRecoveryPoint,
1935		HTTPMethod: "GET",
1936		HTTPPath:   "/backup-vaults/{backupVaultName}/recovery-points/{recoveryPointArn}",
1937	}
1938
1939	if input == nil {
1940		input = &DescribeRecoveryPointInput{}
1941	}
1942
1943	output = &DescribeRecoveryPointOutput{}
1944	req = c.newRequest(op, input, output)
1945	return
1946}
1947
1948// DescribeRecoveryPoint API operation for AWS Backup.
1949//
1950// Returns metadata associated with a recovery point, including ID, status,
1951// encryption, and lifecycle.
1952//
1953// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1954// with awserr.Error's Code and Message methods to get detailed information about
1955// the error.
1956//
1957// See the AWS API reference guide for AWS Backup's
1958// API operation DescribeRecoveryPoint for usage and error information.
1959//
1960// Returned Error Types:
1961//   * ResourceNotFoundException
1962//   A resource that is required for the action doesn't exist.
1963//
1964//   * InvalidParameterValueException
1965//   Indicates that something is wrong with a parameter's value. For example,
1966//   the value is out of range.
1967//
1968//   * MissingParameterValueException
1969//   Indicates that a required parameter is missing.
1970//
1971//   * ServiceUnavailableException
1972//   The request failed due to a temporary failure of the server.
1973//
1974// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeRecoveryPoint
1975func (c *Backup) DescribeRecoveryPoint(input *DescribeRecoveryPointInput) (*DescribeRecoveryPointOutput, error) {
1976	req, out := c.DescribeRecoveryPointRequest(input)
1977	return out, req.Send()
1978}
1979
1980// DescribeRecoveryPointWithContext is the same as DescribeRecoveryPoint with the addition of
1981// the ability to pass a context and additional request options.
1982//
1983// See DescribeRecoveryPoint for details on how to use this API operation.
1984//
1985// The context must be non-nil and will be used for request cancellation. If
1986// the context is nil a panic will occur. In the future the SDK may create
1987// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1988// for more information on using Contexts.
1989func (c *Backup) DescribeRecoveryPointWithContext(ctx aws.Context, input *DescribeRecoveryPointInput, opts ...request.Option) (*DescribeRecoveryPointOutput, error) {
1990	req, out := c.DescribeRecoveryPointRequest(input)
1991	req.SetContext(ctx)
1992	req.ApplyOptions(opts...)
1993	return out, req.Send()
1994}
1995
1996const opDescribeRegionSettings = "DescribeRegionSettings"
1997
1998// DescribeRegionSettingsRequest generates a "aws/request.Request" representing the
1999// client's request for the DescribeRegionSettings operation. The "output" return
2000// value will be populated with the request's response once the request completes
2001// successfully.
2002//
2003// Use "Send" method on the returned Request to send the API call to the service.
2004// the "output" return value is not valid until after Send returns without error.
2005//
2006// See DescribeRegionSettings for more information on using the DescribeRegionSettings
2007// API call, and error handling.
2008//
2009// This method is useful when you want to inject custom logic or configuration
2010// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2011//
2012//
2013//    // Example sending a request using the DescribeRegionSettingsRequest method.
2014//    req, resp := client.DescribeRegionSettingsRequest(params)
2015//
2016//    err := req.Send()
2017//    if err == nil { // resp is now filled
2018//        fmt.Println(resp)
2019//    }
2020//
2021// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeRegionSettings
2022func (c *Backup) DescribeRegionSettingsRequest(input *DescribeRegionSettingsInput) (req *request.Request, output *DescribeRegionSettingsOutput) {
2023	op := &request.Operation{
2024		Name:       opDescribeRegionSettings,
2025		HTTPMethod: "GET",
2026		HTTPPath:   "/account-settings",
2027	}
2028
2029	if input == nil {
2030		input = &DescribeRegionSettingsInput{}
2031	}
2032
2033	output = &DescribeRegionSettingsOutput{}
2034	req = c.newRequest(op, input, output)
2035	return
2036}
2037
2038// DescribeRegionSettings API operation for AWS Backup.
2039//
2040// Returns the current service opt-in settings for the Region. If service opt-in
2041// is enabled for a service, Backup tries to protect that service's resources
2042// in this Region, when the resource is included in an on-demand backup or scheduled
2043// backup plan. Otherwise, Backup does not try to protect that service's resources
2044// in this Region.
2045//
2046// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2047// with awserr.Error's Code and Message methods to get detailed information about
2048// the error.
2049//
2050// See the AWS API reference guide for AWS Backup's
2051// API operation DescribeRegionSettings for usage and error information.
2052//
2053// Returned Error Types:
2054//   * ServiceUnavailableException
2055//   The request failed due to a temporary failure of the server.
2056//
2057// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeRegionSettings
2058func (c *Backup) DescribeRegionSettings(input *DescribeRegionSettingsInput) (*DescribeRegionSettingsOutput, error) {
2059	req, out := c.DescribeRegionSettingsRequest(input)
2060	return out, req.Send()
2061}
2062
2063// DescribeRegionSettingsWithContext is the same as DescribeRegionSettings with the addition of
2064// the ability to pass a context and additional request options.
2065//
2066// See DescribeRegionSettings for details on how to use this API operation.
2067//
2068// The context must be non-nil and will be used for request cancellation. If
2069// the context is nil a panic will occur. In the future the SDK may create
2070// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2071// for more information on using Contexts.
2072func (c *Backup) DescribeRegionSettingsWithContext(ctx aws.Context, input *DescribeRegionSettingsInput, opts ...request.Option) (*DescribeRegionSettingsOutput, error) {
2073	req, out := c.DescribeRegionSettingsRequest(input)
2074	req.SetContext(ctx)
2075	req.ApplyOptions(opts...)
2076	return out, req.Send()
2077}
2078
2079const opDescribeReportJob = "DescribeReportJob"
2080
2081// DescribeReportJobRequest generates a "aws/request.Request" representing the
2082// client's request for the DescribeReportJob operation. The "output" return
2083// value will be populated with the request's response once the request completes
2084// successfully.
2085//
2086// Use "Send" method on the returned Request to send the API call to the service.
2087// the "output" return value is not valid until after Send returns without error.
2088//
2089// See DescribeReportJob for more information on using the DescribeReportJob
2090// API call, and error handling.
2091//
2092// This method is useful when you want to inject custom logic or configuration
2093// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2094//
2095//
2096//    // Example sending a request using the DescribeReportJobRequest method.
2097//    req, resp := client.DescribeReportJobRequest(params)
2098//
2099//    err := req.Send()
2100//    if err == nil { // resp is now filled
2101//        fmt.Println(resp)
2102//    }
2103//
2104// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeReportJob
2105func (c *Backup) DescribeReportJobRequest(input *DescribeReportJobInput) (req *request.Request, output *DescribeReportJobOutput) {
2106	op := &request.Operation{
2107		Name:       opDescribeReportJob,
2108		HTTPMethod: "GET",
2109		HTTPPath:   "/audit/report-jobs/{reportJobId}",
2110	}
2111
2112	if input == nil {
2113		input = &DescribeReportJobInput{}
2114	}
2115
2116	output = &DescribeReportJobOutput{}
2117	req = c.newRequest(op, input, output)
2118	return
2119}
2120
2121// DescribeReportJob API operation for AWS Backup.
2122//
2123// Returns the details associated with creating a report as specified by its
2124// ReportJobId.
2125//
2126// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2127// with awserr.Error's Code and Message methods to get detailed information about
2128// the error.
2129//
2130// See the AWS API reference guide for AWS Backup's
2131// API operation DescribeReportJob for usage and error information.
2132//
2133// Returned Error Types:
2134//   * ServiceUnavailableException
2135//   The request failed due to a temporary failure of the server.
2136//
2137//   * MissingParameterValueException
2138//   Indicates that a required parameter is missing.
2139//
2140//   * ResourceNotFoundException
2141//   A resource that is required for the action doesn't exist.
2142//
2143// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeReportJob
2144func (c *Backup) DescribeReportJob(input *DescribeReportJobInput) (*DescribeReportJobOutput, error) {
2145	req, out := c.DescribeReportJobRequest(input)
2146	return out, req.Send()
2147}
2148
2149// DescribeReportJobWithContext is the same as DescribeReportJob with the addition of
2150// the ability to pass a context and additional request options.
2151//
2152// See DescribeReportJob for details on how to use this API operation.
2153//
2154// The context must be non-nil and will be used for request cancellation. If
2155// the context is nil a panic will occur. In the future the SDK may create
2156// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2157// for more information on using Contexts.
2158func (c *Backup) DescribeReportJobWithContext(ctx aws.Context, input *DescribeReportJobInput, opts ...request.Option) (*DescribeReportJobOutput, error) {
2159	req, out := c.DescribeReportJobRequest(input)
2160	req.SetContext(ctx)
2161	req.ApplyOptions(opts...)
2162	return out, req.Send()
2163}
2164
2165const opDescribeReportPlan = "DescribeReportPlan"
2166
2167// DescribeReportPlanRequest generates a "aws/request.Request" representing the
2168// client's request for the DescribeReportPlan operation. The "output" return
2169// value will be populated with the request's response once the request completes
2170// successfully.
2171//
2172// Use "Send" method on the returned Request to send the API call to the service.
2173// the "output" return value is not valid until after Send returns without error.
2174//
2175// See DescribeReportPlan for more information on using the DescribeReportPlan
2176// API call, and error handling.
2177//
2178// This method is useful when you want to inject custom logic or configuration
2179// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2180//
2181//
2182//    // Example sending a request using the DescribeReportPlanRequest method.
2183//    req, resp := client.DescribeReportPlanRequest(params)
2184//
2185//    err := req.Send()
2186//    if err == nil { // resp is now filled
2187//        fmt.Println(resp)
2188//    }
2189//
2190// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeReportPlan
2191func (c *Backup) DescribeReportPlanRequest(input *DescribeReportPlanInput) (req *request.Request, output *DescribeReportPlanOutput) {
2192	op := &request.Operation{
2193		Name:       opDescribeReportPlan,
2194		HTTPMethod: "GET",
2195		HTTPPath:   "/audit/report-plans/{reportPlanName}",
2196	}
2197
2198	if input == nil {
2199		input = &DescribeReportPlanInput{}
2200	}
2201
2202	output = &DescribeReportPlanOutput{}
2203	req = c.newRequest(op, input, output)
2204	return
2205}
2206
2207// DescribeReportPlan API operation for AWS Backup.
2208//
2209// Returns a list of all report plans for an Amazon Web Services account and
2210// Amazon Web Services Region.
2211//
2212// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2213// with awserr.Error's Code and Message methods to get detailed information about
2214// the error.
2215//
2216// See the AWS API reference guide for AWS Backup's
2217// API operation DescribeReportPlan for usage and error information.
2218//
2219// Returned Error Types:
2220//   * InvalidParameterValueException
2221//   Indicates that something is wrong with a parameter's value. For example,
2222//   the value is out of range.
2223//
2224//   * MissingParameterValueException
2225//   Indicates that a required parameter is missing.
2226//
2227//   * ResourceNotFoundException
2228//   A resource that is required for the action doesn't exist.
2229//
2230//   * ServiceUnavailableException
2231//   The request failed due to a temporary failure of the server.
2232//
2233// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeReportPlan
2234func (c *Backup) DescribeReportPlan(input *DescribeReportPlanInput) (*DescribeReportPlanOutput, error) {
2235	req, out := c.DescribeReportPlanRequest(input)
2236	return out, req.Send()
2237}
2238
2239// DescribeReportPlanWithContext is the same as DescribeReportPlan with the addition of
2240// the ability to pass a context and additional request options.
2241//
2242// See DescribeReportPlan for details on how to use this API operation.
2243//
2244// The context must be non-nil and will be used for request cancellation. If
2245// the context is nil a panic will occur. In the future the SDK may create
2246// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2247// for more information on using Contexts.
2248func (c *Backup) DescribeReportPlanWithContext(ctx aws.Context, input *DescribeReportPlanInput, opts ...request.Option) (*DescribeReportPlanOutput, error) {
2249	req, out := c.DescribeReportPlanRequest(input)
2250	req.SetContext(ctx)
2251	req.ApplyOptions(opts...)
2252	return out, req.Send()
2253}
2254
2255const opDescribeRestoreJob = "DescribeRestoreJob"
2256
2257// DescribeRestoreJobRequest generates a "aws/request.Request" representing the
2258// client's request for the DescribeRestoreJob operation. The "output" return
2259// value will be populated with the request's response once the request completes
2260// successfully.
2261//
2262// Use "Send" method on the returned Request to send the API call to the service.
2263// the "output" return value is not valid until after Send returns without error.
2264//
2265// See DescribeRestoreJob for more information on using the DescribeRestoreJob
2266// API call, and error handling.
2267//
2268// This method is useful when you want to inject custom logic or configuration
2269// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2270//
2271//
2272//    // Example sending a request using the DescribeRestoreJobRequest method.
2273//    req, resp := client.DescribeRestoreJobRequest(params)
2274//
2275//    err := req.Send()
2276//    if err == nil { // resp is now filled
2277//        fmt.Println(resp)
2278//    }
2279//
2280// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeRestoreJob
2281func (c *Backup) DescribeRestoreJobRequest(input *DescribeRestoreJobInput) (req *request.Request, output *DescribeRestoreJobOutput) {
2282	op := &request.Operation{
2283		Name:       opDescribeRestoreJob,
2284		HTTPMethod: "GET",
2285		HTTPPath:   "/restore-jobs/{restoreJobId}",
2286	}
2287
2288	if input == nil {
2289		input = &DescribeRestoreJobInput{}
2290	}
2291
2292	output = &DescribeRestoreJobOutput{}
2293	req = c.newRequest(op, input, output)
2294	return
2295}
2296
2297// DescribeRestoreJob API operation for AWS Backup.
2298//
2299// Returns metadata associated with a restore job that is specified by a job
2300// ID.
2301//
2302// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2303// with awserr.Error's Code and Message methods to get detailed information about
2304// the error.
2305//
2306// See the AWS API reference guide for AWS Backup's
2307// API operation DescribeRestoreJob for usage and error information.
2308//
2309// Returned Error Types:
2310//   * ResourceNotFoundException
2311//   A resource that is required for the action doesn't exist.
2312//
2313//   * InvalidParameterValueException
2314//   Indicates that something is wrong with a parameter's value. For example,
2315//   the value is out of range.
2316//
2317//   * MissingParameterValueException
2318//   Indicates that a required parameter is missing.
2319//
2320//   * ServiceUnavailableException
2321//   The request failed due to a temporary failure of the server.
2322//
2323//   * DependencyFailureException
2324//   A dependent Amazon Web Services service or resource returned an error to
2325//   the Backup service, and the action cannot be completed.
2326//
2327// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeRestoreJob
2328func (c *Backup) DescribeRestoreJob(input *DescribeRestoreJobInput) (*DescribeRestoreJobOutput, error) {
2329	req, out := c.DescribeRestoreJobRequest(input)
2330	return out, req.Send()
2331}
2332
2333// DescribeRestoreJobWithContext is the same as DescribeRestoreJob with the addition of
2334// the ability to pass a context and additional request options.
2335//
2336// See DescribeRestoreJob for details on how to use this API operation.
2337//
2338// The context must be non-nil and will be used for request cancellation. If
2339// the context is nil a panic will occur. In the future the SDK may create
2340// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2341// for more information on using Contexts.
2342func (c *Backup) DescribeRestoreJobWithContext(ctx aws.Context, input *DescribeRestoreJobInput, opts ...request.Option) (*DescribeRestoreJobOutput, error) {
2343	req, out := c.DescribeRestoreJobRequest(input)
2344	req.SetContext(ctx)
2345	req.ApplyOptions(opts...)
2346	return out, req.Send()
2347}
2348
2349const opDisassociateRecoveryPoint = "DisassociateRecoveryPoint"
2350
2351// DisassociateRecoveryPointRequest generates a "aws/request.Request" representing the
2352// client's request for the DisassociateRecoveryPoint operation. The "output" return
2353// value will be populated with the request's response once the request completes
2354// successfully.
2355//
2356// Use "Send" method on the returned Request to send the API call to the service.
2357// the "output" return value is not valid until after Send returns without error.
2358//
2359// See DisassociateRecoveryPoint for more information on using the DisassociateRecoveryPoint
2360// API call, and error handling.
2361//
2362// This method is useful when you want to inject custom logic or configuration
2363// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2364//
2365//
2366//    // Example sending a request using the DisassociateRecoveryPointRequest method.
2367//    req, resp := client.DisassociateRecoveryPointRequest(params)
2368//
2369//    err := req.Send()
2370//    if err == nil { // resp is now filled
2371//        fmt.Println(resp)
2372//    }
2373//
2374// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DisassociateRecoveryPoint
2375func (c *Backup) DisassociateRecoveryPointRequest(input *DisassociateRecoveryPointInput) (req *request.Request, output *DisassociateRecoveryPointOutput) {
2376	op := &request.Operation{
2377		Name:       opDisassociateRecoveryPoint,
2378		HTTPMethod: "POST",
2379		HTTPPath:   "/backup-vaults/{backupVaultName}/recovery-points/{recoveryPointArn}/disassociate",
2380	}
2381
2382	if input == nil {
2383		input = &DisassociateRecoveryPointInput{}
2384	}
2385
2386	output = &DisassociateRecoveryPointOutput{}
2387	req = c.newRequest(op, input, output)
2388	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2389	return
2390}
2391
2392// DisassociateRecoveryPoint API operation for AWS Backup.
2393//
2394// Deletes the specified continuous backup recovery point from Backup and releases
2395// control of that continuous backup to the source service, such as Amazon RDS.
2396// The source service will continue to create and retain continuous backups
2397// using the lifecycle that you specified in your original backup plan.
2398//
2399// Does not support snapshot backup recovery points.
2400//
2401// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2402// with awserr.Error's Code and Message methods to get detailed information about
2403// the error.
2404//
2405// See the AWS API reference guide for AWS Backup's
2406// API operation DisassociateRecoveryPoint for usage and error information.
2407//
2408// Returned Error Types:
2409//   * ResourceNotFoundException
2410//   A resource that is required for the action doesn't exist.
2411//
2412//   * InvalidParameterValueException
2413//   Indicates that something is wrong with a parameter's value. For example,
2414//   the value is out of range.
2415//
2416//   * MissingParameterValueException
2417//   Indicates that a required parameter is missing.
2418//
2419//   * InvalidResourceStateException
2420//   Backup is already performing an action on this recovery point. It can't perform
2421//   the action you requested until the first action finishes. Try again later.
2422//
2423//   * ServiceUnavailableException
2424//   The request failed due to a temporary failure of the server.
2425//
2426//   * InvalidRequestException
2427//   Indicates that something is wrong with the input to the request. For example,
2428//   a parameter is of the wrong type.
2429//
2430// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DisassociateRecoveryPoint
2431func (c *Backup) DisassociateRecoveryPoint(input *DisassociateRecoveryPointInput) (*DisassociateRecoveryPointOutput, error) {
2432	req, out := c.DisassociateRecoveryPointRequest(input)
2433	return out, req.Send()
2434}
2435
2436// DisassociateRecoveryPointWithContext is the same as DisassociateRecoveryPoint with the addition of
2437// the ability to pass a context and additional request options.
2438//
2439// See DisassociateRecoveryPoint for details on how to use this API operation.
2440//
2441// The context must be non-nil and will be used for request cancellation. If
2442// the context is nil a panic will occur. In the future the SDK may create
2443// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2444// for more information on using Contexts.
2445func (c *Backup) DisassociateRecoveryPointWithContext(ctx aws.Context, input *DisassociateRecoveryPointInput, opts ...request.Option) (*DisassociateRecoveryPointOutput, error) {
2446	req, out := c.DisassociateRecoveryPointRequest(input)
2447	req.SetContext(ctx)
2448	req.ApplyOptions(opts...)
2449	return out, req.Send()
2450}
2451
2452const opExportBackupPlanTemplate = "ExportBackupPlanTemplate"
2453
2454// ExportBackupPlanTemplateRequest generates a "aws/request.Request" representing the
2455// client's request for the ExportBackupPlanTemplate operation. The "output" return
2456// value will be populated with the request's response once the request completes
2457// successfully.
2458//
2459// Use "Send" method on the returned Request to send the API call to the service.
2460// the "output" return value is not valid until after Send returns without error.
2461//
2462// See ExportBackupPlanTemplate for more information on using the ExportBackupPlanTemplate
2463// API call, and error handling.
2464//
2465// This method is useful when you want to inject custom logic or configuration
2466// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2467//
2468//
2469//    // Example sending a request using the ExportBackupPlanTemplateRequest method.
2470//    req, resp := client.ExportBackupPlanTemplateRequest(params)
2471//
2472//    err := req.Send()
2473//    if err == nil { // resp is now filled
2474//        fmt.Println(resp)
2475//    }
2476//
2477// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ExportBackupPlanTemplate
2478func (c *Backup) ExportBackupPlanTemplateRequest(input *ExportBackupPlanTemplateInput) (req *request.Request, output *ExportBackupPlanTemplateOutput) {
2479	op := &request.Operation{
2480		Name:       opExportBackupPlanTemplate,
2481		HTTPMethod: "GET",
2482		HTTPPath:   "/backup/plans/{backupPlanId}/toTemplate/",
2483	}
2484
2485	if input == nil {
2486		input = &ExportBackupPlanTemplateInput{}
2487	}
2488
2489	output = &ExportBackupPlanTemplateOutput{}
2490	req = c.newRequest(op, input, output)
2491	return
2492}
2493
2494// ExportBackupPlanTemplate API operation for AWS Backup.
2495//
2496// Returns the backup plan that is specified by the plan ID as a backup template.
2497//
2498// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2499// with awserr.Error's Code and Message methods to get detailed information about
2500// the error.
2501//
2502// See the AWS API reference guide for AWS Backup's
2503// API operation ExportBackupPlanTemplate for usage and error information.
2504//
2505// Returned Error Types:
2506//   * InvalidParameterValueException
2507//   Indicates that something is wrong with a parameter's value. For example,
2508//   the value is out of range.
2509//
2510//   * MissingParameterValueException
2511//   Indicates that a required parameter is missing.
2512//
2513//   * ServiceUnavailableException
2514//   The request failed due to a temporary failure of the server.
2515//
2516//   * ResourceNotFoundException
2517//   A resource that is required for the action doesn't exist.
2518//
2519// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ExportBackupPlanTemplate
2520func (c *Backup) ExportBackupPlanTemplate(input *ExportBackupPlanTemplateInput) (*ExportBackupPlanTemplateOutput, error) {
2521	req, out := c.ExportBackupPlanTemplateRequest(input)
2522	return out, req.Send()
2523}
2524
2525// ExportBackupPlanTemplateWithContext is the same as ExportBackupPlanTemplate with the addition of
2526// the ability to pass a context and additional request options.
2527//
2528// See ExportBackupPlanTemplate for details on how to use this API operation.
2529//
2530// The context must be non-nil and will be used for request cancellation. If
2531// the context is nil a panic will occur. In the future the SDK may create
2532// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2533// for more information on using Contexts.
2534func (c *Backup) ExportBackupPlanTemplateWithContext(ctx aws.Context, input *ExportBackupPlanTemplateInput, opts ...request.Option) (*ExportBackupPlanTemplateOutput, error) {
2535	req, out := c.ExportBackupPlanTemplateRequest(input)
2536	req.SetContext(ctx)
2537	req.ApplyOptions(opts...)
2538	return out, req.Send()
2539}
2540
2541const opGetBackupPlan = "GetBackupPlan"
2542
2543// GetBackupPlanRequest generates a "aws/request.Request" representing the
2544// client's request for the GetBackupPlan operation. The "output" return
2545// value will be populated with the request's response once the request completes
2546// successfully.
2547//
2548// Use "Send" method on the returned Request to send the API call to the service.
2549// the "output" return value is not valid until after Send returns without error.
2550//
2551// See GetBackupPlan for more information on using the GetBackupPlan
2552// API call, and error handling.
2553//
2554// This method is useful when you want to inject custom logic or configuration
2555// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2556//
2557//
2558//    // Example sending a request using the GetBackupPlanRequest method.
2559//    req, resp := client.GetBackupPlanRequest(params)
2560//
2561//    err := req.Send()
2562//    if err == nil { // resp is now filled
2563//        fmt.Println(resp)
2564//    }
2565//
2566// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/GetBackupPlan
2567func (c *Backup) GetBackupPlanRequest(input *GetBackupPlanInput) (req *request.Request, output *GetBackupPlanOutput) {
2568	op := &request.Operation{
2569		Name:       opGetBackupPlan,
2570		HTTPMethod: "GET",
2571		HTTPPath:   "/backup/plans/{backupPlanId}/",
2572	}
2573
2574	if input == nil {
2575		input = &GetBackupPlanInput{}
2576	}
2577
2578	output = &GetBackupPlanOutput{}
2579	req = c.newRequest(op, input, output)
2580	return
2581}
2582
2583// GetBackupPlan API operation for AWS Backup.
2584//
2585// Returns BackupPlan details for the specified BackupPlanId. The details are
2586// the body of a backup plan in JSON format, in addition to plan metadata.
2587//
2588// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2589// with awserr.Error's Code and Message methods to get detailed information about
2590// the error.
2591//
2592// See the AWS API reference guide for AWS Backup's
2593// API operation GetBackupPlan for usage and error information.
2594//
2595// Returned Error Types:
2596//   * ResourceNotFoundException
2597//   A resource that is required for the action doesn't exist.
2598//
2599//   * InvalidParameterValueException
2600//   Indicates that something is wrong with a parameter's value. For example,
2601//   the value is out of range.
2602//
2603//   * MissingParameterValueException
2604//   Indicates that a required parameter is missing.
2605//
2606//   * ServiceUnavailableException
2607//   The request failed due to a temporary failure of the server.
2608//
2609// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/GetBackupPlan
2610func (c *Backup) GetBackupPlan(input *GetBackupPlanInput) (*GetBackupPlanOutput, error) {
2611	req, out := c.GetBackupPlanRequest(input)
2612	return out, req.Send()
2613}
2614
2615// GetBackupPlanWithContext is the same as GetBackupPlan with the addition of
2616// the ability to pass a context and additional request options.
2617//
2618// See GetBackupPlan for details on how to use this API operation.
2619//
2620// The context must be non-nil and will be used for request cancellation. If
2621// the context is nil a panic will occur. In the future the SDK may create
2622// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2623// for more information on using Contexts.
2624func (c *Backup) GetBackupPlanWithContext(ctx aws.Context, input *GetBackupPlanInput, opts ...request.Option) (*GetBackupPlanOutput, error) {
2625	req, out := c.GetBackupPlanRequest(input)
2626	req.SetContext(ctx)
2627	req.ApplyOptions(opts...)
2628	return out, req.Send()
2629}
2630
2631const opGetBackupPlanFromJSON = "GetBackupPlanFromJSON"
2632
2633// GetBackupPlanFromJSONRequest generates a "aws/request.Request" representing the
2634// client's request for the GetBackupPlanFromJSON operation. The "output" return
2635// value will be populated with the request's response once the request completes
2636// successfully.
2637//
2638// Use "Send" method on the returned Request to send the API call to the service.
2639// the "output" return value is not valid until after Send returns without error.
2640//
2641// See GetBackupPlanFromJSON for more information on using the GetBackupPlanFromJSON
2642// API call, and error handling.
2643//
2644// This method is useful when you want to inject custom logic or configuration
2645// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2646//
2647//
2648//    // Example sending a request using the GetBackupPlanFromJSONRequest method.
2649//    req, resp := client.GetBackupPlanFromJSONRequest(params)
2650//
2651//    err := req.Send()
2652//    if err == nil { // resp is now filled
2653//        fmt.Println(resp)
2654//    }
2655//
2656// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/GetBackupPlanFromJSON
2657func (c *Backup) GetBackupPlanFromJSONRequest(input *GetBackupPlanFromJSONInput) (req *request.Request, output *GetBackupPlanFromJSONOutput) {
2658	op := &request.Operation{
2659		Name:       opGetBackupPlanFromJSON,
2660		HTTPMethod: "POST",
2661		HTTPPath:   "/backup/template/json/toPlan",
2662	}
2663
2664	if input == nil {
2665		input = &GetBackupPlanFromJSONInput{}
2666	}
2667
2668	output = &GetBackupPlanFromJSONOutput{}
2669	req = c.newRequest(op, input, output)
2670	return
2671}
2672
2673// GetBackupPlanFromJSON API operation for AWS Backup.
2674//
2675// Returns a valid JSON document specifying a backup plan or an error.
2676//
2677// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2678// with awserr.Error's Code and Message methods to get detailed information about
2679// the error.
2680//
2681// See the AWS API reference guide for AWS Backup's
2682// API operation GetBackupPlanFromJSON for usage and error information.
2683//
2684// Returned Error Types:
2685//   * LimitExceededException
2686//   A limit in the request has been exceeded; for example, a maximum number of
2687//   items allowed in a request.
2688//
2689//   * InvalidParameterValueException
2690//   Indicates that something is wrong with a parameter's value. For example,
2691//   the value is out of range.
2692//
2693//   * MissingParameterValueException
2694//   Indicates that a required parameter is missing.
2695//
2696//   * ServiceUnavailableException
2697//   The request failed due to a temporary failure of the server.
2698//
2699//   * InvalidRequestException
2700//   Indicates that something is wrong with the input to the request. For example,
2701//   a parameter is of the wrong type.
2702//
2703// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/GetBackupPlanFromJSON
2704func (c *Backup) GetBackupPlanFromJSON(input *GetBackupPlanFromJSONInput) (*GetBackupPlanFromJSONOutput, error) {
2705	req, out := c.GetBackupPlanFromJSONRequest(input)
2706	return out, req.Send()
2707}
2708
2709// GetBackupPlanFromJSONWithContext is the same as GetBackupPlanFromJSON with the addition of
2710// the ability to pass a context and additional request options.
2711//
2712// See GetBackupPlanFromJSON for details on how to use this API operation.
2713//
2714// The context must be non-nil and will be used for request cancellation. If
2715// the context is nil a panic will occur. In the future the SDK may create
2716// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2717// for more information on using Contexts.
2718func (c *Backup) GetBackupPlanFromJSONWithContext(ctx aws.Context, input *GetBackupPlanFromJSONInput, opts ...request.Option) (*GetBackupPlanFromJSONOutput, error) {
2719	req, out := c.GetBackupPlanFromJSONRequest(input)
2720	req.SetContext(ctx)
2721	req.ApplyOptions(opts...)
2722	return out, req.Send()
2723}
2724
2725const opGetBackupPlanFromTemplate = "GetBackupPlanFromTemplate"
2726
2727// GetBackupPlanFromTemplateRequest generates a "aws/request.Request" representing the
2728// client's request for the GetBackupPlanFromTemplate operation. The "output" return
2729// value will be populated with the request's response once the request completes
2730// successfully.
2731//
2732// Use "Send" method on the returned Request to send the API call to the service.
2733// the "output" return value is not valid until after Send returns without error.
2734//
2735// See GetBackupPlanFromTemplate for more information on using the GetBackupPlanFromTemplate
2736// API call, and error handling.
2737//
2738// This method is useful when you want to inject custom logic or configuration
2739// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2740//
2741//
2742//    // Example sending a request using the GetBackupPlanFromTemplateRequest method.
2743//    req, resp := client.GetBackupPlanFromTemplateRequest(params)
2744//
2745//    err := req.Send()
2746//    if err == nil { // resp is now filled
2747//        fmt.Println(resp)
2748//    }
2749//
2750// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/GetBackupPlanFromTemplate
2751func (c *Backup) GetBackupPlanFromTemplateRequest(input *GetBackupPlanFromTemplateInput) (req *request.Request, output *GetBackupPlanFromTemplateOutput) {
2752	op := &request.Operation{
2753		Name:       opGetBackupPlanFromTemplate,
2754		HTTPMethod: "GET",
2755		HTTPPath:   "/backup/template/plans/{templateId}/toPlan",
2756	}
2757
2758	if input == nil {
2759		input = &GetBackupPlanFromTemplateInput{}
2760	}
2761
2762	output = &GetBackupPlanFromTemplateOutput{}
2763	req = c.newRequest(op, input, output)
2764	return
2765}
2766
2767// GetBackupPlanFromTemplate API operation for AWS Backup.
2768//
2769// Returns the template specified by its templateId as a backup plan.
2770//
2771// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2772// with awserr.Error's Code and Message methods to get detailed information about
2773// the error.
2774//
2775// See the AWS API reference guide for AWS Backup's
2776// API operation GetBackupPlanFromTemplate for usage and error information.
2777//
2778// Returned Error Types:
2779//   * InvalidParameterValueException
2780//   Indicates that something is wrong with a parameter's value. For example,
2781//   the value is out of range.
2782//
2783//   * MissingParameterValueException
2784//   Indicates that a required parameter is missing.
2785//
2786//   * ServiceUnavailableException
2787//   The request failed due to a temporary failure of the server.
2788//
2789//   * ResourceNotFoundException
2790//   A resource that is required for the action doesn't exist.
2791//
2792// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/GetBackupPlanFromTemplate
2793func (c *Backup) GetBackupPlanFromTemplate(input *GetBackupPlanFromTemplateInput) (*GetBackupPlanFromTemplateOutput, error) {
2794	req, out := c.GetBackupPlanFromTemplateRequest(input)
2795	return out, req.Send()
2796}
2797
2798// GetBackupPlanFromTemplateWithContext is the same as GetBackupPlanFromTemplate with the addition of
2799// the ability to pass a context and additional request options.
2800//
2801// See GetBackupPlanFromTemplate for details on how to use this API operation.
2802//
2803// The context must be non-nil and will be used for request cancellation. If
2804// the context is nil a panic will occur. In the future the SDK may create
2805// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2806// for more information on using Contexts.
2807func (c *Backup) GetBackupPlanFromTemplateWithContext(ctx aws.Context, input *GetBackupPlanFromTemplateInput, opts ...request.Option) (*GetBackupPlanFromTemplateOutput, error) {
2808	req, out := c.GetBackupPlanFromTemplateRequest(input)
2809	req.SetContext(ctx)
2810	req.ApplyOptions(opts...)
2811	return out, req.Send()
2812}
2813
2814const opGetBackupSelection = "GetBackupSelection"
2815
2816// GetBackupSelectionRequest generates a "aws/request.Request" representing the
2817// client's request for the GetBackupSelection operation. The "output" return
2818// value will be populated with the request's response once the request completes
2819// successfully.
2820//
2821// Use "Send" method on the returned Request to send the API call to the service.
2822// the "output" return value is not valid until after Send returns without error.
2823//
2824// See GetBackupSelection for more information on using the GetBackupSelection
2825// API call, and error handling.
2826//
2827// This method is useful when you want to inject custom logic or configuration
2828// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2829//
2830//
2831//    // Example sending a request using the GetBackupSelectionRequest method.
2832//    req, resp := client.GetBackupSelectionRequest(params)
2833//
2834//    err := req.Send()
2835//    if err == nil { // resp is now filled
2836//        fmt.Println(resp)
2837//    }
2838//
2839// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/GetBackupSelection
2840func (c *Backup) GetBackupSelectionRequest(input *GetBackupSelectionInput) (req *request.Request, output *GetBackupSelectionOutput) {
2841	op := &request.Operation{
2842		Name:       opGetBackupSelection,
2843		HTTPMethod: "GET",
2844		HTTPPath:   "/backup/plans/{backupPlanId}/selections/{selectionId}",
2845	}
2846
2847	if input == nil {
2848		input = &GetBackupSelectionInput{}
2849	}
2850
2851	output = &GetBackupSelectionOutput{}
2852	req = c.newRequest(op, input, output)
2853	return
2854}
2855
2856// GetBackupSelection API operation for AWS Backup.
2857//
2858// Returns selection metadata and a document in JSON format that specifies a
2859// list of resources that are associated with a backup plan.
2860//
2861// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2862// with awserr.Error's Code and Message methods to get detailed information about
2863// the error.
2864//
2865// See the AWS API reference guide for AWS Backup's
2866// API operation GetBackupSelection for usage and error information.
2867//
2868// Returned Error Types:
2869//   * ResourceNotFoundException
2870//   A resource that is required for the action doesn't exist.
2871//
2872//   * InvalidParameterValueException
2873//   Indicates that something is wrong with a parameter's value. For example,
2874//   the value is out of range.
2875//
2876//   * MissingParameterValueException
2877//   Indicates that a required parameter is missing.
2878//
2879//   * ServiceUnavailableException
2880//   The request failed due to a temporary failure of the server.
2881//
2882// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/GetBackupSelection
2883func (c *Backup) GetBackupSelection(input *GetBackupSelectionInput) (*GetBackupSelectionOutput, error) {
2884	req, out := c.GetBackupSelectionRequest(input)
2885	return out, req.Send()
2886}
2887
2888// GetBackupSelectionWithContext is the same as GetBackupSelection with the addition of
2889// the ability to pass a context and additional request options.
2890//
2891// See GetBackupSelection for details on how to use this API operation.
2892//
2893// The context must be non-nil and will be used for request cancellation. If
2894// the context is nil a panic will occur. In the future the SDK may create
2895// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2896// for more information on using Contexts.
2897func (c *Backup) GetBackupSelectionWithContext(ctx aws.Context, input *GetBackupSelectionInput, opts ...request.Option) (*GetBackupSelectionOutput, error) {
2898	req, out := c.GetBackupSelectionRequest(input)
2899	req.SetContext(ctx)
2900	req.ApplyOptions(opts...)
2901	return out, req.Send()
2902}
2903
2904const opGetBackupVaultAccessPolicy = "GetBackupVaultAccessPolicy"
2905
2906// GetBackupVaultAccessPolicyRequest generates a "aws/request.Request" representing the
2907// client's request for the GetBackupVaultAccessPolicy operation. The "output" return
2908// value will be populated with the request's response once the request completes
2909// successfully.
2910//
2911// Use "Send" method on the returned Request to send the API call to the service.
2912// the "output" return value is not valid until after Send returns without error.
2913//
2914// See GetBackupVaultAccessPolicy for more information on using the GetBackupVaultAccessPolicy
2915// API call, and error handling.
2916//
2917// This method is useful when you want to inject custom logic or configuration
2918// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2919//
2920//
2921//    // Example sending a request using the GetBackupVaultAccessPolicyRequest method.
2922//    req, resp := client.GetBackupVaultAccessPolicyRequest(params)
2923//
2924//    err := req.Send()
2925//    if err == nil { // resp is now filled
2926//        fmt.Println(resp)
2927//    }
2928//
2929// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/GetBackupVaultAccessPolicy
2930func (c *Backup) GetBackupVaultAccessPolicyRequest(input *GetBackupVaultAccessPolicyInput) (req *request.Request, output *GetBackupVaultAccessPolicyOutput) {
2931	op := &request.Operation{
2932		Name:       opGetBackupVaultAccessPolicy,
2933		HTTPMethod: "GET",
2934		HTTPPath:   "/backup-vaults/{backupVaultName}/access-policy",
2935	}
2936
2937	if input == nil {
2938		input = &GetBackupVaultAccessPolicyInput{}
2939	}
2940
2941	output = &GetBackupVaultAccessPolicyOutput{}
2942	req = c.newRequest(op, input, output)
2943	return
2944}
2945
2946// GetBackupVaultAccessPolicy API operation for AWS Backup.
2947//
2948// Returns the access policy document that is associated with the named backup
2949// vault.
2950//
2951// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2952// with awserr.Error's Code and Message methods to get detailed information about
2953// the error.
2954//
2955// See the AWS API reference guide for AWS Backup's
2956// API operation GetBackupVaultAccessPolicy for usage and error information.
2957//
2958// Returned Error Types:
2959//   * ResourceNotFoundException
2960//   A resource that is required for the action doesn't exist.
2961//
2962//   * InvalidParameterValueException
2963//   Indicates that something is wrong with a parameter's value. For example,
2964//   the value is out of range.
2965//
2966//   * MissingParameterValueException
2967//   Indicates that a required parameter is missing.
2968//
2969//   * ServiceUnavailableException
2970//   The request failed due to a temporary failure of the server.
2971//
2972// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/GetBackupVaultAccessPolicy
2973func (c *Backup) GetBackupVaultAccessPolicy(input *GetBackupVaultAccessPolicyInput) (*GetBackupVaultAccessPolicyOutput, error) {
2974	req, out := c.GetBackupVaultAccessPolicyRequest(input)
2975	return out, req.Send()
2976}
2977
2978// GetBackupVaultAccessPolicyWithContext is the same as GetBackupVaultAccessPolicy with the addition of
2979// the ability to pass a context and additional request options.
2980//
2981// See GetBackupVaultAccessPolicy for details on how to use this API operation.
2982//
2983// The context must be non-nil and will be used for request cancellation. If
2984// the context is nil a panic will occur. In the future the SDK may create
2985// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2986// for more information on using Contexts.
2987func (c *Backup) GetBackupVaultAccessPolicyWithContext(ctx aws.Context, input *GetBackupVaultAccessPolicyInput, opts ...request.Option) (*GetBackupVaultAccessPolicyOutput, error) {
2988	req, out := c.GetBackupVaultAccessPolicyRequest(input)
2989	req.SetContext(ctx)
2990	req.ApplyOptions(opts...)
2991	return out, req.Send()
2992}
2993
2994const opGetBackupVaultNotifications = "GetBackupVaultNotifications"
2995
2996// GetBackupVaultNotificationsRequest generates a "aws/request.Request" representing the
2997// client's request for the GetBackupVaultNotifications operation. The "output" return
2998// value will be populated with the request's response once the request completes
2999// successfully.
3000//
3001// Use "Send" method on the returned Request to send the API call to the service.
3002// the "output" return value is not valid until after Send returns without error.
3003//
3004// See GetBackupVaultNotifications for more information on using the GetBackupVaultNotifications
3005// API call, and error handling.
3006//
3007// This method is useful when you want to inject custom logic or configuration
3008// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3009//
3010//
3011//    // Example sending a request using the GetBackupVaultNotificationsRequest method.
3012//    req, resp := client.GetBackupVaultNotificationsRequest(params)
3013//
3014//    err := req.Send()
3015//    if err == nil { // resp is now filled
3016//        fmt.Println(resp)
3017//    }
3018//
3019// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/GetBackupVaultNotifications
3020func (c *Backup) GetBackupVaultNotificationsRequest(input *GetBackupVaultNotificationsInput) (req *request.Request, output *GetBackupVaultNotificationsOutput) {
3021	op := &request.Operation{
3022		Name:       opGetBackupVaultNotifications,
3023		HTTPMethod: "GET",
3024		HTTPPath:   "/backup-vaults/{backupVaultName}/notification-configuration",
3025	}
3026
3027	if input == nil {
3028		input = &GetBackupVaultNotificationsInput{}
3029	}
3030
3031	output = &GetBackupVaultNotificationsOutput{}
3032	req = c.newRequest(op, input, output)
3033	return
3034}
3035
3036// GetBackupVaultNotifications API operation for AWS Backup.
3037//
3038// Returns event notifications for the specified backup vault.
3039//
3040// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3041// with awserr.Error's Code and Message methods to get detailed information about
3042// the error.
3043//
3044// See the AWS API reference guide for AWS Backup's
3045// API operation GetBackupVaultNotifications for usage and error information.
3046//
3047// Returned Error Types:
3048//   * ResourceNotFoundException
3049//   A resource that is required for the action doesn't exist.
3050//
3051//   * InvalidParameterValueException
3052//   Indicates that something is wrong with a parameter's value. For example,
3053//   the value is out of range.
3054//
3055//   * MissingParameterValueException
3056//   Indicates that a required parameter is missing.
3057//
3058//   * ServiceUnavailableException
3059//   The request failed due to a temporary failure of the server.
3060//
3061// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/GetBackupVaultNotifications
3062func (c *Backup) GetBackupVaultNotifications(input *GetBackupVaultNotificationsInput) (*GetBackupVaultNotificationsOutput, error) {
3063	req, out := c.GetBackupVaultNotificationsRequest(input)
3064	return out, req.Send()
3065}
3066
3067// GetBackupVaultNotificationsWithContext is the same as GetBackupVaultNotifications with the addition of
3068// the ability to pass a context and additional request options.
3069//
3070// See GetBackupVaultNotifications for details on how to use this API operation.
3071//
3072// The context must be non-nil and will be used for request cancellation. If
3073// the context is nil a panic will occur. In the future the SDK may create
3074// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3075// for more information on using Contexts.
3076func (c *Backup) GetBackupVaultNotificationsWithContext(ctx aws.Context, input *GetBackupVaultNotificationsInput, opts ...request.Option) (*GetBackupVaultNotificationsOutput, error) {
3077	req, out := c.GetBackupVaultNotificationsRequest(input)
3078	req.SetContext(ctx)
3079	req.ApplyOptions(opts...)
3080	return out, req.Send()
3081}
3082
3083const opGetRecoveryPointRestoreMetadata = "GetRecoveryPointRestoreMetadata"
3084
3085// GetRecoveryPointRestoreMetadataRequest generates a "aws/request.Request" representing the
3086// client's request for the GetRecoveryPointRestoreMetadata operation. The "output" return
3087// value will be populated with the request's response once the request completes
3088// successfully.
3089//
3090// Use "Send" method on the returned Request to send the API call to the service.
3091// the "output" return value is not valid until after Send returns without error.
3092//
3093// See GetRecoveryPointRestoreMetadata for more information on using the GetRecoveryPointRestoreMetadata
3094// API call, and error handling.
3095//
3096// This method is useful when you want to inject custom logic or configuration
3097// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3098//
3099//
3100//    // Example sending a request using the GetRecoveryPointRestoreMetadataRequest method.
3101//    req, resp := client.GetRecoveryPointRestoreMetadataRequest(params)
3102//
3103//    err := req.Send()
3104//    if err == nil { // resp is now filled
3105//        fmt.Println(resp)
3106//    }
3107//
3108// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/GetRecoveryPointRestoreMetadata
3109func (c *Backup) GetRecoveryPointRestoreMetadataRequest(input *GetRecoveryPointRestoreMetadataInput) (req *request.Request, output *GetRecoveryPointRestoreMetadataOutput) {
3110	op := &request.Operation{
3111		Name:       opGetRecoveryPointRestoreMetadata,
3112		HTTPMethod: "GET",
3113		HTTPPath:   "/backup-vaults/{backupVaultName}/recovery-points/{recoveryPointArn}/restore-metadata",
3114	}
3115
3116	if input == nil {
3117		input = &GetRecoveryPointRestoreMetadataInput{}
3118	}
3119
3120	output = &GetRecoveryPointRestoreMetadataOutput{}
3121	req = c.newRequest(op, input, output)
3122	return
3123}
3124
3125// GetRecoveryPointRestoreMetadata API operation for AWS Backup.
3126//
3127// Returns a set of metadata key-value pairs that were used to create the backup.
3128//
3129// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3130// with awserr.Error's Code and Message methods to get detailed information about
3131// the error.
3132//
3133// See the AWS API reference guide for AWS Backup's
3134// API operation GetRecoveryPointRestoreMetadata for usage and error information.
3135//
3136// Returned Error Types:
3137//   * ResourceNotFoundException
3138//   A resource that is required for the action doesn't exist.
3139//
3140//   * InvalidParameterValueException
3141//   Indicates that something is wrong with a parameter's value. For example,
3142//   the value is out of range.
3143//
3144//   * MissingParameterValueException
3145//   Indicates that a required parameter is missing.
3146//
3147//   * ServiceUnavailableException
3148//   The request failed due to a temporary failure of the server.
3149//
3150// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/GetRecoveryPointRestoreMetadata
3151func (c *Backup) GetRecoveryPointRestoreMetadata(input *GetRecoveryPointRestoreMetadataInput) (*GetRecoveryPointRestoreMetadataOutput, error) {
3152	req, out := c.GetRecoveryPointRestoreMetadataRequest(input)
3153	return out, req.Send()
3154}
3155
3156// GetRecoveryPointRestoreMetadataWithContext is the same as GetRecoveryPointRestoreMetadata with the addition of
3157// the ability to pass a context and additional request options.
3158//
3159// See GetRecoveryPointRestoreMetadata for details on how to use this API operation.
3160//
3161// The context must be non-nil and will be used for request cancellation. If
3162// the context is nil a panic will occur. In the future the SDK may create
3163// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3164// for more information on using Contexts.
3165func (c *Backup) GetRecoveryPointRestoreMetadataWithContext(ctx aws.Context, input *GetRecoveryPointRestoreMetadataInput, opts ...request.Option) (*GetRecoveryPointRestoreMetadataOutput, error) {
3166	req, out := c.GetRecoveryPointRestoreMetadataRequest(input)
3167	req.SetContext(ctx)
3168	req.ApplyOptions(opts...)
3169	return out, req.Send()
3170}
3171
3172const opGetSupportedResourceTypes = "GetSupportedResourceTypes"
3173
3174// GetSupportedResourceTypesRequest generates a "aws/request.Request" representing the
3175// client's request for the GetSupportedResourceTypes operation. The "output" return
3176// value will be populated with the request's response once the request completes
3177// successfully.
3178//
3179// Use "Send" method on the returned Request to send the API call to the service.
3180// the "output" return value is not valid until after Send returns without error.
3181//
3182// See GetSupportedResourceTypes for more information on using the GetSupportedResourceTypes
3183// API call, and error handling.
3184//
3185// This method is useful when you want to inject custom logic or configuration
3186// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3187//
3188//
3189//    // Example sending a request using the GetSupportedResourceTypesRequest method.
3190//    req, resp := client.GetSupportedResourceTypesRequest(params)
3191//
3192//    err := req.Send()
3193//    if err == nil { // resp is now filled
3194//        fmt.Println(resp)
3195//    }
3196//
3197// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/GetSupportedResourceTypes
3198func (c *Backup) GetSupportedResourceTypesRequest(input *GetSupportedResourceTypesInput) (req *request.Request, output *GetSupportedResourceTypesOutput) {
3199	op := &request.Operation{
3200		Name:       opGetSupportedResourceTypes,
3201		HTTPMethod: "GET",
3202		HTTPPath:   "/supported-resource-types",
3203	}
3204
3205	if input == nil {
3206		input = &GetSupportedResourceTypesInput{}
3207	}
3208
3209	output = &GetSupportedResourceTypesOutput{}
3210	req = c.newRequest(op, input, output)
3211	return
3212}
3213
3214// GetSupportedResourceTypes API operation for AWS Backup.
3215//
3216// Returns the Amazon Web Services resource types supported by Backup.
3217//
3218// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3219// with awserr.Error's Code and Message methods to get detailed information about
3220// the error.
3221//
3222// See the AWS API reference guide for AWS Backup's
3223// API operation GetSupportedResourceTypes for usage and error information.
3224//
3225// Returned Error Types:
3226//   * ServiceUnavailableException
3227//   The request failed due to a temporary failure of the server.
3228//
3229// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/GetSupportedResourceTypes
3230func (c *Backup) GetSupportedResourceTypes(input *GetSupportedResourceTypesInput) (*GetSupportedResourceTypesOutput, error) {
3231	req, out := c.GetSupportedResourceTypesRequest(input)
3232	return out, req.Send()
3233}
3234
3235// GetSupportedResourceTypesWithContext is the same as GetSupportedResourceTypes with the addition of
3236// the ability to pass a context and additional request options.
3237//
3238// See GetSupportedResourceTypes for details on how to use this API operation.
3239//
3240// The context must be non-nil and will be used for request cancellation. If
3241// the context is nil a panic will occur. In the future the SDK may create
3242// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3243// for more information on using Contexts.
3244func (c *Backup) GetSupportedResourceTypesWithContext(ctx aws.Context, input *GetSupportedResourceTypesInput, opts ...request.Option) (*GetSupportedResourceTypesOutput, error) {
3245	req, out := c.GetSupportedResourceTypesRequest(input)
3246	req.SetContext(ctx)
3247	req.ApplyOptions(opts...)
3248	return out, req.Send()
3249}
3250
3251const opListBackupJobs = "ListBackupJobs"
3252
3253// ListBackupJobsRequest generates a "aws/request.Request" representing the
3254// client's request for the ListBackupJobs operation. The "output" return
3255// value will be populated with the request's response once the request completes
3256// successfully.
3257//
3258// Use "Send" method on the returned Request to send the API call to the service.
3259// the "output" return value is not valid until after Send returns without error.
3260//
3261// See ListBackupJobs for more information on using the ListBackupJobs
3262// API call, and error handling.
3263//
3264// This method is useful when you want to inject custom logic or configuration
3265// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3266//
3267//
3268//    // Example sending a request using the ListBackupJobsRequest method.
3269//    req, resp := client.ListBackupJobsRequest(params)
3270//
3271//    err := req.Send()
3272//    if err == nil { // resp is now filled
3273//        fmt.Println(resp)
3274//    }
3275//
3276// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListBackupJobs
3277func (c *Backup) ListBackupJobsRequest(input *ListBackupJobsInput) (req *request.Request, output *ListBackupJobsOutput) {
3278	op := &request.Operation{
3279		Name:       opListBackupJobs,
3280		HTTPMethod: "GET",
3281		HTTPPath:   "/backup-jobs/",
3282		Paginator: &request.Paginator{
3283			InputTokens:     []string{"NextToken"},
3284			OutputTokens:    []string{"NextToken"},
3285			LimitToken:      "MaxResults",
3286			TruncationToken: "",
3287		},
3288	}
3289
3290	if input == nil {
3291		input = &ListBackupJobsInput{}
3292	}
3293
3294	output = &ListBackupJobsOutput{}
3295	req = c.newRequest(op, input, output)
3296	return
3297}
3298
3299// ListBackupJobs API operation for AWS Backup.
3300//
3301// Returns a list of existing backup jobs for an authenticated account for the
3302// last 30 days. For a longer period of time, consider using these monitoring
3303// tools (https://docs.aws.amazon.com/aws-backup/latest/devguide/monitoring.html).
3304//
3305// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3306// with awserr.Error's Code and Message methods to get detailed information about
3307// the error.
3308//
3309// See the AWS API reference guide for AWS Backup's
3310// API operation ListBackupJobs for usage and error information.
3311//
3312// Returned Error Types:
3313//   * InvalidParameterValueException
3314//   Indicates that something is wrong with a parameter's value. For example,
3315//   the value is out of range.
3316//
3317//   * ServiceUnavailableException
3318//   The request failed due to a temporary failure of the server.
3319//
3320// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListBackupJobs
3321func (c *Backup) ListBackupJobs(input *ListBackupJobsInput) (*ListBackupJobsOutput, error) {
3322	req, out := c.ListBackupJobsRequest(input)
3323	return out, req.Send()
3324}
3325
3326// ListBackupJobsWithContext is the same as ListBackupJobs with the addition of
3327// the ability to pass a context and additional request options.
3328//
3329// See ListBackupJobs for details on how to use this API operation.
3330//
3331// The context must be non-nil and will be used for request cancellation. If
3332// the context is nil a panic will occur. In the future the SDK may create
3333// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3334// for more information on using Contexts.
3335func (c *Backup) ListBackupJobsWithContext(ctx aws.Context, input *ListBackupJobsInput, opts ...request.Option) (*ListBackupJobsOutput, error) {
3336	req, out := c.ListBackupJobsRequest(input)
3337	req.SetContext(ctx)
3338	req.ApplyOptions(opts...)
3339	return out, req.Send()
3340}
3341
3342// ListBackupJobsPages iterates over the pages of a ListBackupJobs operation,
3343// calling the "fn" function with the response data for each page. To stop
3344// iterating, return false from the fn function.
3345//
3346// See ListBackupJobs method for more information on how to use this operation.
3347//
3348// Note: This operation can generate multiple requests to a service.
3349//
3350//    // Example iterating over at most 3 pages of a ListBackupJobs operation.
3351//    pageNum := 0
3352//    err := client.ListBackupJobsPages(params,
3353//        func(page *backup.ListBackupJobsOutput, lastPage bool) bool {
3354//            pageNum++
3355//            fmt.Println(page)
3356//            return pageNum <= 3
3357//        })
3358//
3359func (c *Backup) ListBackupJobsPages(input *ListBackupJobsInput, fn func(*ListBackupJobsOutput, bool) bool) error {
3360	return c.ListBackupJobsPagesWithContext(aws.BackgroundContext(), input, fn)
3361}
3362
3363// ListBackupJobsPagesWithContext same as ListBackupJobsPages except
3364// it takes a Context and allows setting request options on the pages.
3365//
3366// The context must be non-nil and will be used for request cancellation. If
3367// the context is nil a panic will occur. In the future the SDK may create
3368// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3369// for more information on using Contexts.
3370func (c *Backup) ListBackupJobsPagesWithContext(ctx aws.Context, input *ListBackupJobsInput, fn func(*ListBackupJobsOutput, bool) bool, opts ...request.Option) error {
3371	p := request.Pagination{
3372		NewRequest: func() (*request.Request, error) {
3373			var inCpy *ListBackupJobsInput
3374			if input != nil {
3375				tmp := *input
3376				inCpy = &tmp
3377			}
3378			req, _ := c.ListBackupJobsRequest(inCpy)
3379			req.SetContext(ctx)
3380			req.ApplyOptions(opts...)
3381			return req, nil
3382		},
3383	}
3384
3385	for p.Next() {
3386		if !fn(p.Page().(*ListBackupJobsOutput), !p.HasNextPage()) {
3387			break
3388		}
3389	}
3390
3391	return p.Err()
3392}
3393
3394const opListBackupPlanTemplates = "ListBackupPlanTemplates"
3395
3396// ListBackupPlanTemplatesRequest generates a "aws/request.Request" representing the
3397// client's request for the ListBackupPlanTemplates operation. The "output" return
3398// value will be populated with the request's response once the request completes
3399// successfully.
3400//
3401// Use "Send" method on the returned Request to send the API call to the service.
3402// the "output" return value is not valid until after Send returns without error.
3403//
3404// See ListBackupPlanTemplates for more information on using the ListBackupPlanTemplates
3405// API call, and error handling.
3406//
3407// This method is useful when you want to inject custom logic or configuration
3408// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3409//
3410//
3411//    // Example sending a request using the ListBackupPlanTemplatesRequest method.
3412//    req, resp := client.ListBackupPlanTemplatesRequest(params)
3413//
3414//    err := req.Send()
3415//    if err == nil { // resp is now filled
3416//        fmt.Println(resp)
3417//    }
3418//
3419// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListBackupPlanTemplates
3420func (c *Backup) ListBackupPlanTemplatesRequest(input *ListBackupPlanTemplatesInput) (req *request.Request, output *ListBackupPlanTemplatesOutput) {
3421	op := &request.Operation{
3422		Name:       opListBackupPlanTemplates,
3423		HTTPMethod: "GET",
3424		HTTPPath:   "/backup/template/plans",
3425		Paginator: &request.Paginator{
3426			InputTokens:     []string{"NextToken"},
3427			OutputTokens:    []string{"NextToken"},
3428			LimitToken:      "MaxResults",
3429			TruncationToken: "",
3430		},
3431	}
3432
3433	if input == nil {
3434		input = &ListBackupPlanTemplatesInput{}
3435	}
3436
3437	output = &ListBackupPlanTemplatesOutput{}
3438	req = c.newRequest(op, input, output)
3439	return
3440}
3441
3442// ListBackupPlanTemplates API operation for AWS Backup.
3443//
3444// Returns metadata of your saved backup plan templates, including the template
3445// ID, name, and the creation and deletion dates.
3446//
3447// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3448// with awserr.Error's Code and Message methods to get detailed information about
3449// the error.
3450//
3451// See the AWS API reference guide for AWS Backup's
3452// API operation ListBackupPlanTemplates for usage and error information.
3453//
3454// Returned Error Types:
3455//   * InvalidParameterValueException
3456//   Indicates that something is wrong with a parameter's value. For example,
3457//   the value is out of range.
3458//
3459//   * MissingParameterValueException
3460//   Indicates that a required parameter is missing.
3461//
3462//   * ServiceUnavailableException
3463//   The request failed due to a temporary failure of the server.
3464//
3465//   * ResourceNotFoundException
3466//   A resource that is required for the action doesn't exist.
3467//
3468// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListBackupPlanTemplates
3469func (c *Backup) ListBackupPlanTemplates(input *ListBackupPlanTemplatesInput) (*ListBackupPlanTemplatesOutput, error) {
3470	req, out := c.ListBackupPlanTemplatesRequest(input)
3471	return out, req.Send()
3472}
3473
3474// ListBackupPlanTemplatesWithContext is the same as ListBackupPlanTemplates with the addition of
3475// the ability to pass a context and additional request options.
3476//
3477// See ListBackupPlanTemplates for details on how to use this API operation.
3478//
3479// The context must be non-nil and will be used for request cancellation. If
3480// the context is nil a panic will occur. In the future the SDK may create
3481// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3482// for more information on using Contexts.
3483func (c *Backup) ListBackupPlanTemplatesWithContext(ctx aws.Context, input *ListBackupPlanTemplatesInput, opts ...request.Option) (*ListBackupPlanTemplatesOutput, error) {
3484	req, out := c.ListBackupPlanTemplatesRequest(input)
3485	req.SetContext(ctx)
3486	req.ApplyOptions(opts...)
3487	return out, req.Send()
3488}
3489
3490// ListBackupPlanTemplatesPages iterates over the pages of a ListBackupPlanTemplates operation,
3491// calling the "fn" function with the response data for each page. To stop
3492// iterating, return false from the fn function.
3493//
3494// See ListBackupPlanTemplates method for more information on how to use this operation.
3495//
3496// Note: This operation can generate multiple requests to a service.
3497//
3498//    // Example iterating over at most 3 pages of a ListBackupPlanTemplates operation.
3499//    pageNum := 0
3500//    err := client.ListBackupPlanTemplatesPages(params,
3501//        func(page *backup.ListBackupPlanTemplatesOutput, lastPage bool) bool {
3502//            pageNum++
3503//            fmt.Println(page)
3504//            return pageNum <= 3
3505//        })
3506//
3507func (c *Backup) ListBackupPlanTemplatesPages(input *ListBackupPlanTemplatesInput, fn func(*ListBackupPlanTemplatesOutput, bool) bool) error {
3508	return c.ListBackupPlanTemplatesPagesWithContext(aws.BackgroundContext(), input, fn)
3509}
3510
3511// ListBackupPlanTemplatesPagesWithContext same as ListBackupPlanTemplatesPages except
3512// it takes a Context and allows setting request options on the pages.
3513//
3514// The context must be non-nil and will be used for request cancellation. If
3515// the context is nil a panic will occur. In the future the SDK may create
3516// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3517// for more information on using Contexts.
3518func (c *Backup) ListBackupPlanTemplatesPagesWithContext(ctx aws.Context, input *ListBackupPlanTemplatesInput, fn func(*ListBackupPlanTemplatesOutput, bool) bool, opts ...request.Option) error {
3519	p := request.Pagination{
3520		NewRequest: func() (*request.Request, error) {
3521			var inCpy *ListBackupPlanTemplatesInput
3522			if input != nil {
3523				tmp := *input
3524				inCpy = &tmp
3525			}
3526			req, _ := c.ListBackupPlanTemplatesRequest(inCpy)
3527			req.SetContext(ctx)
3528			req.ApplyOptions(opts...)
3529			return req, nil
3530		},
3531	}
3532
3533	for p.Next() {
3534		if !fn(p.Page().(*ListBackupPlanTemplatesOutput), !p.HasNextPage()) {
3535			break
3536		}
3537	}
3538
3539	return p.Err()
3540}
3541
3542const opListBackupPlanVersions = "ListBackupPlanVersions"
3543
3544// ListBackupPlanVersionsRequest generates a "aws/request.Request" representing the
3545// client's request for the ListBackupPlanVersions operation. The "output" return
3546// value will be populated with the request's response once the request completes
3547// successfully.
3548//
3549// Use "Send" method on the returned Request to send the API call to the service.
3550// the "output" return value is not valid until after Send returns without error.
3551//
3552// See ListBackupPlanVersions for more information on using the ListBackupPlanVersions
3553// API call, and error handling.
3554//
3555// This method is useful when you want to inject custom logic or configuration
3556// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3557//
3558//
3559//    // Example sending a request using the ListBackupPlanVersionsRequest method.
3560//    req, resp := client.ListBackupPlanVersionsRequest(params)
3561//
3562//    err := req.Send()
3563//    if err == nil { // resp is now filled
3564//        fmt.Println(resp)
3565//    }
3566//
3567// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListBackupPlanVersions
3568func (c *Backup) ListBackupPlanVersionsRequest(input *ListBackupPlanVersionsInput) (req *request.Request, output *ListBackupPlanVersionsOutput) {
3569	op := &request.Operation{
3570		Name:       opListBackupPlanVersions,
3571		HTTPMethod: "GET",
3572		HTTPPath:   "/backup/plans/{backupPlanId}/versions/",
3573		Paginator: &request.Paginator{
3574			InputTokens:     []string{"NextToken"},
3575			OutputTokens:    []string{"NextToken"},
3576			LimitToken:      "MaxResults",
3577			TruncationToken: "",
3578		},
3579	}
3580
3581	if input == nil {
3582		input = &ListBackupPlanVersionsInput{}
3583	}
3584
3585	output = &ListBackupPlanVersionsOutput{}
3586	req = c.newRequest(op, input, output)
3587	return
3588}
3589
3590// ListBackupPlanVersions API operation for AWS Backup.
3591//
3592// Returns version metadata of your backup plans, including Amazon Resource
3593// Names (ARNs), backup plan IDs, creation and deletion dates, plan names, and
3594// version IDs.
3595//
3596// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3597// with awserr.Error's Code and Message methods to get detailed information about
3598// the error.
3599//
3600// See the AWS API reference guide for AWS Backup's
3601// API operation ListBackupPlanVersions for usage and error information.
3602//
3603// Returned Error Types:
3604//   * ResourceNotFoundException
3605//   A resource that is required for the action doesn't exist.
3606//
3607//   * InvalidParameterValueException
3608//   Indicates that something is wrong with a parameter's value. For example,
3609//   the value is out of range.
3610//
3611//   * MissingParameterValueException
3612//   Indicates that a required parameter is missing.
3613//
3614//   * ServiceUnavailableException
3615//   The request failed due to a temporary failure of the server.
3616//
3617// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListBackupPlanVersions
3618func (c *Backup) ListBackupPlanVersions(input *ListBackupPlanVersionsInput) (*ListBackupPlanVersionsOutput, error) {
3619	req, out := c.ListBackupPlanVersionsRequest(input)
3620	return out, req.Send()
3621}
3622
3623// ListBackupPlanVersionsWithContext is the same as ListBackupPlanVersions with the addition of
3624// the ability to pass a context and additional request options.
3625//
3626// See ListBackupPlanVersions for details on how to use this API operation.
3627//
3628// The context must be non-nil and will be used for request cancellation. If
3629// the context is nil a panic will occur. In the future the SDK may create
3630// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3631// for more information on using Contexts.
3632func (c *Backup) ListBackupPlanVersionsWithContext(ctx aws.Context, input *ListBackupPlanVersionsInput, opts ...request.Option) (*ListBackupPlanVersionsOutput, error) {
3633	req, out := c.ListBackupPlanVersionsRequest(input)
3634	req.SetContext(ctx)
3635	req.ApplyOptions(opts...)
3636	return out, req.Send()
3637}
3638
3639// ListBackupPlanVersionsPages iterates over the pages of a ListBackupPlanVersions operation,
3640// calling the "fn" function with the response data for each page. To stop
3641// iterating, return false from the fn function.
3642//
3643// See ListBackupPlanVersions method for more information on how to use this operation.
3644//
3645// Note: This operation can generate multiple requests to a service.
3646//
3647//    // Example iterating over at most 3 pages of a ListBackupPlanVersions operation.
3648//    pageNum := 0
3649//    err := client.ListBackupPlanVersionsPages(params,
3650//        func(page *backup.ListBackupPlanVersionsOutput, lastPage bool) bool {
3651//            pageNum++
3652//            fmt.Println(page)
3653//            return pageNum <= 3
3654//        })
3655//
3656func (c *Backup) ListBackupPlanVersionsPages(input *ListBackupPlanVersionsInput, fn func(*ListBackupPlanVersionsOutput, bool) bool) error {
3657	return c.ListBackupPlanVersionsPagesWithContext(aws.BackgroundContext(), input, fn)
3658}
3659
3660// ListBackupPlanVersionsPagesWithContext same as ListBackupPlanVersionsPages except
3661// it takes a Context and allows setting request options on the pages.
3662//
3663// The context must be non-nil and will be used for request cancellation. If
3664// the context is nil a panic will occur. In the future the SDK may create
3665// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3666// for more information on using Contexts.
3667func (c *Backup) ListBackupPlanVersionsPagesWithContext(ctx aws.Context, input *ListBackupPlanVersionsInput, fn func(*ListBackupPlanVersionsOutput, bool) bool, opts ...request.Option) error {
3668	p := request.Pagination{
3669		NewRequest: func() (*request.Request, error) {
3670			var inCpy *ListBackupPlanVersionsInput
3671			if input != nil {
3672				tmp := *input
3673				inCpy = &tmp
3674			}
3675			req, _ := c.ListBackupPlanVersionsRequest(inCpy)
3676			req.SetContext(ctx)
3677			req.ApplyOptions(opts...)
3678			return req, nil
3679		},
3680	}
3681
3682	for p.Next() {
3683		if !fn(p.Page().(*ListBackupPlanVersionsOutput), !p.HasNextPage()) {
3684			break
3685		}
3686	}
3687
3688	return p.Err()
3689}
3690
3691const opListBackupPlans = "ListBackupPlans"
3692
3693// ListBackupPlansRequest generates a "aws/request.Request" representing the
3694// client's request for the ListBackupPlans operation. The "output" return
3695// value will be populated with the request's response once the request completes
3696// successfully.
3697//
3698// Use "Send" method on the returned Request to send the API call to the service.
3699// the "output" return value is not valid until after Send returns without error.
3700//
3701// See ListBackupPlans for more information on using the ListBackupPlans
3702// API call, and error handling.
3703//
3704// This method is useful when you want to inject custom logic or configuration
3705// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3706//
3707//
3708//    // Example sending a request using the ListBackupPlansRequest method.
3709//    req, resp := client.ListBackupPlansRequest(params)
3710//
3711//    err := req.Send()
3712//    if err == nil { // resp is now filled
3713//        fmt.Println(resp)
3714//    }
3715//
3716// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListBackupPlans
3717func (c *Backup) ListBackupPlansRequest(input *ListBackupPlansInput) (req *request.Request, output *ListBackupPlansOutput) {
3718	op := &request.Operation{
3719		Name:       opListBackupPlans,
3720		HTTPMethod: "GET",
3721		HTTPPath:   "/backup/plans/",
3722		Paginator: &request.Paginator{
3723			InputTokens:     []string{"NextToken"},
3724			OutputTokens:    []string{"NextToken"},
3725			LimitToken:      "MaxResults",
3726			TruncationToken: "",
3727		},
3728	}
3729
3730	if input == nil {
3731		input = &ListBackupPlansInput{}
3732	}
3733
3734	output = &ListBackupPlansOutput{}
3735	req = c.newRequest(op, input, output)
3736	return
3737}
3738
3739// ListBackupPlans API operation for AWS Backup.
3740//
3741// Returns a list of all active backup plans for an authenticated account. The
3742// list contains information such as Amazon Resource Names (ARNs), plan IDs,
3743// creation and deletion dates, version IDs, plan names, and creator request
3744// IDs.
3745//
3746// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3747// with awserr.Error's Code and Message methods to get detailed information about
3748// the error.
3749//
3750// See the AWS API reference guide for AWS Backup's
3751// API operation ListBackupPlans for usage and error information.
3752//
3753// Returned Error Types:
3754//   * ResourceNotFoundException
3755//   A resource that is required for the action doesn't exist.
3756//
3757//   * InvalidParameterValueException
3758//   Indicates that something is wrong with a parameter's value. For example,
3759//   the value is out of range.
3760//
3761//   * MissingParameterValueException
3762//   Indicates that a required parameter is missing.
3763//
3764//   * ServiceUnavailableException
3765//   The request failed due to a temporary failure of the server.
3766//
3767// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListBackupPlans
3768func (c *Backup) ListBackupPlans(input *ListBackupPlansInput) (*ListBackupPlansOutput, error) {
3769	req, out := c.ListBackupPlansRequest(input)
3770	return out, req.Send()
3771}
3772
3773// ListBackupPlansWithContext is the same as ListBackupPlans with the addition of
3774// the ability to pass a context and additional request options.
3775//
3776// See ListBackupPlans for details on how to use this API operation.
3777//
3778// The context must be non-nil and will be used for request cancellation. If
3779// the context is nil a panic will occur. In the future the SDK may create
3780// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3781// for more information on using Contexts.
3782func (c *Backup) ListBackupPlansWithContext(ctx aws.Context, input *ListBackupPlansInput, opts ...request.Option) (*ListBackupPlansOutput, error) {
3783	req, out := c.ListBackupPlansRequest(input)
3784	req.SetContext(ctx)
3785	req.ApplyOptions(opts...)
3786	return out, req.Send()
3787}
3788
3789// ListBackupPlansPages iterates over the pages of a ListBackupPlans operation,
3790// calling the "fn" function with the response data for each page. To stop
3791// iterating, return false from the fn function.
3792//
3793// See ListBackupPlans method for more information on how to use this operation.
3794//
3795// Note: This operation can generate multiple requests to a service.
3796//
3797//    // Example iterating over at most 3 pages of a ListBackupPlans operation.
3798//    pageNum := 0
3799//    err := client.ListBackupPlansPages(params,
3800//        func(page *backup.ListBackupPlansOutput, lastPage bool) bool {
3801//            pageNum++
3802//            fmt.Println(page)
3803//            return pageNum <= 3
3804//        })
3805//
3806func (c *Backup) ListBackupPlansPages(input *ListBackupPlansInput, fn func(*ListBackupPlansOutput, bool) bool) error {
3807	return c.ListBackupPlansPagesWithContext(aws.BackgroundContext(), input, fn)
3808}
3809
3810// ListBackupPlansPagesWithContext same as ListBackupPlansPages except
3811// it takes a Context and allows setting request options on the pages.
3812//
3813// The context must be non-nil and will be used for request cancellation. If
3814// the context is nil a panic will occur. In the future the SDK may create
3815// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3816// for more information on using Contexts.
3817func (c *Backup) ListBackupPlansPagesWithContext(ctx aws.Context, input *ListBackupPlansInput, fn func(*ListBackupPlansOutput, bool) bool, opts ...request.Option) error {
3818	p := request.Pagination{
3819		NewRequest: func() (*request.Request, error) {
3820			var inCpy *ListBackupPlansInput
3821			if input != nil {
3822				tmp := *input
3823				inCpy = &tmp
3824			}
3825			req, _ := c.ListBackupPlansRequest(inCpy)
3826			req.SetContext(ctx)
3827			req.ApplyOptions(opts...)
3828			return req, nil
3829		},
3830	}
3831
3832	for p.Next() {
3833		if !fn(p.Page().(*ListBackupPlansOutput), !p.HasNextPage()) {
3834			break
3835		}
3836	}
3837
3838	return p.Err()
3839}
3840
3841const opListBackupSelections = "ListBackupSelections"
3842
3843// ListBackupSelectionsRequest generates a "aws/request.Request" representing the
3844// client's request for the ListBackupSelections operation. The "output" return
3845// value will be populated with the request's response once the request completes
3846// successfully.
3847//
3848// Use "Send" method on the returned Request to send the API call to the service.
3849// the "output" return value is not valid until after Send returns without error.
3850//
3851// See ListBackupSelections for more information on using the ListBackupSelections
3852// API call, and error handling.
3853//
3854// This method is useful when you want to inject custom logic or configuration
3855// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3856//
3857//
3858//    // Example sending a request using the ListBackupSelectionsRequest method.
3859//    req, resp := client.ListBackupSelectionsRequest(params)
3860//
3861//    err := req.Send()
3862//    if err == nil { // resp is now filled
3863//        fmt.Println(resp)
3864//    }
3865//
3866// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListBackupSelections
3867func (c *Backup) ListBackupSelectionsRequest(input *ListBackupSelectionsInput) (req *request.Request, output *ListBackupSelectionsOutput) {
3868	op := &request.Operation{
3869		Name:       opListBackupSelections,
3870		HTTPMethod: "GET",
3871		HTTPPath:   "/backup/plans/{backupPlanId}/selections/",
3872		Paginator: &request.Paginator{
3873			InputTokens:     []string{"NextToken"},
3874			OutputTokens:    []string{"NextToken"},
3875			LimitToken:      "MaxResults",
3876			TruncationToken: "",
3877		},
3878	}
3879
3880	if input == nil {
3881		input = &ListBackupSelectionsInput{}
3882	}
3883
3884	output = &ListBackupSelectionsOutput{}
3885	req = c.newRequest(op, input, output)
3886	return
3887}
3888
3889// ListBackupSelections API operation for AWS Backup.
3890//
3891// Returns an array containing metadata of the resources associated with the
3892// target backup plan.
3893//
3894// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3895// with awserr.Error's Code and Message methods to get detailed information about
3896// the error.
3897//
3898// See the AWS API reference guide for AWS Backup's
3899// API operation ListBackupSelections for usage and error information.
3900//
3901// Returned Error Types:
3902//   * ResourceNotFoundException
3903//   A resource that is required for the action doesn't exist.
3904//
3905//   * InvalidParameterValueException
3906//   Indicates that something is wrong with a parameter's value. For example,
3907//   the value is out of range.
3908//
3909//   * MissingParameterValueException
3910//   Indicates that a required parameter is missing.
3911//
3912//   * ServiceUnavailableException
3913//   The request failed due to a temporary failure of the server.
3914//
3915// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListBackupSelections
3916func (c *Backup) ListBackupSelections(input *ListBackupSelectionsInput) (*ListBackupSelectionsOutput, error) {
3917	req, out := c.ListBackupSelectionsRequest(input)
3918	return out, req.Send()
3919}
3920
3921// ListBackupSelectionsWithContext is the same as ListBackupSelections with the addition of
3922// the ability to pass a context and additional request options.
3923//
3924// See ListBackupSelections for details on how to use this API operation.
3925//
3926// The context must be non-nil and will be used for request cancellation. If
3927// the context is nil a panic will occur. In the future the SDK may create
3928// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3929// for more information on using Contexts.
3930func (c *Backup) ListBackupSelectionsWithContext(ctx aws.Context, input *ListBackupSelectionsInput, opts ...request.Option) (*ListBackupSelectionsOutput, error) {
3931	req, out := c.ListBackupSelectionsRequest(input)
3932	req.SetContext(ctx)
3933	req.ApplyOptions(opts...)
3934	return out, req.Send()
3935}
3936
3937// ListBackupSelectionsPages iterates over the pages of a ListBackupSelections operation,
3938// calling the "fn" function with the response data for each page. To stop
3939// iterating, return false from the fn function.
3940//
3941// See ListBackupSelections method for more information on how to use this operation.
3942//
3943// Note: This operation can generate multiple requests to a service.
3944//
3945//    // Example iterating over at most 3 pages of a ListBackupSelections operation.
3946//    pageNum := 0
3947//    err := client.ListBackupSelectionsPages(params,
3948//        func(page *backup.ListBackupSelectionsOutput, lastPage bool) bool {
3949//            pageNum++
3950//            fmt.Println(page)
3951//            return pageNum <= 3
3952//        })
3953//
3954func (c *Backup) ListBackupSelectionsPages(input *ListBackupSelectionsInput, fn func(*ListBackupSelectionsOutput, bool) bool) error {
3955	return c.ListBackupSelectionsPagesWithContext(aws.BackgroundContext(), input, fn)
3956}
3957
3958// ListBackupSelectionsPagesWithContext same as ListBackupSelectionsPages except
3959// it takes a Context and allows setting request options on the pages.
3960//
3961// The context must be non-nil and will be used for request cancellation. If
3962// the context is nil a panic will occur. In the future the SDK may create
3963// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3964// for more information on using Contexts.
3965func (c *Backup) ListBackupSelectionsPagesWithContext(ctx aws.Context, input *ListBackupSelectionsInput, fn func(*ListBackupSelectionsOutput, bool) bool, opts ...request.Option) error {
3966	p := request.Pagination{
3967		NewRequest: func() (*request.Request, error) {
3968			var inCpy *ListBackupSelectionsInput
3969			if input != nil {
3970				tmp := *input
3971				inCpy = &tmp
3972			}
3973			req, _ := c.ListBackupSelectionsRequest(inCpy)
3974			req.SetContext(ctx)
3975			req.ApplyOptions(opts...)
3976			return req, nil
3977		},
3978	}
3979
3980	for p.Next() {
3981		if !fn(p.Page().(*ListBackupSelectionsOutput), !p.HasNextPage()) {
3982			break
3983		}
3984	}
3985
3986	return p.Err()
3987}
3988
3989const opListBackupVaults = "ListBackupVaults"
3990
3991// ListBackupVaultsRequest generates a "aws/request.Request" representing the
3992// client's request for the ListBackupVaults operation. The "output" return
3993// value will be populated with the request's response once the request completes
3994// successfully.
3995//
3996// Use "Send" method on the returned Request to send the API call to the service.
3997// the "output" return value is not valid until after Send returns without error.
3998//
3999// See ListBackupVaults for more information on using the ListBackupVaults
4000// API call, and error handling.
4001//
4002// This method is useful when you want to inject custom logic or configuration
4003// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4004//
4005//
4006//    // Example sending a request using the ListBackupVaultsRequest method.
4007//    req, resp := client.ListBackupVaultsRequest(params)
4008//
4009//    err := req.Send()
4010//    if err == nil { // resp is now filled
4011//        fmt.Println(resp)
4012//    }
4013//
4014// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListBackupVaults
4015func (c *Backup) ListBackupVaultsRequest(input *ListBackupVaultsInput) (req *request.Request, output *ListBackupVaultsOutput) {
4016	op := &request.Operation{
4017		Name:       opListBackupVaults,
4018		HTTPMethod: "GET",
4019		HTTPPath:   "/backup-vaults/",
4020		Paginator: &request.Paginator{
4021			InputTokens:     []string{"NextToken"},
4022			OutputTokens:    []string{"NextToken"},
4023			LimitToken:      "MaxResults",
4024			TruncationToken: "",
4025		},
4026	}
4027
4028	if input == nil {
4029		input = &ListBackupVaultsInput{}
4030	}
4031
4032	output = &ListBackupVaultsOutput{}
4033	req = c.newRequest(op, input, output)
4034	return
4035}
4036
4037// ListBackupVaults API operation for AWS Backup.
4038//
4039// Returns a list of recovery point storage containers along with information
4040// about them.
4041//
4042// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4043// with awserr.Error's Code and Message methods to get detailed information about
4044// the error.
4045//
4046// See the AWS API reference guide for AWS Backup's
4047// API operation ListBackupVaults for usage and error information.
4048//
4049// Returned Error Types:
4050//   * ResourceNotFoundException
4051//   A resource that is required for the action doesn't exist.
4052//
4053//   * InvalidParameterValueException
4054//   Indicates that something is wrong with a parameter's value. For example,
4055//   the value is out of range.
4056//
4057//   * MissingParameterValueException
4058//   Indicates that a required parameter is missing.
4059//
4060//   * ServiceUnavailableException
4061//   The request failed due to a temporary failure of the server.
4062//
4063// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListBackupVaults
4064func (c *Backup) ListBackupVaults(input *ListBackupVaultsInput) (*ListBackupVaultsOutput, error) {
4065	req, out := c.ListBackupVaultsRequest(input)
4066	return out, req.Send()
4067}
4068
4069// ListBackupVaultsWithContext is the same as ListBackupVaults with the addition of
4070// the ability to pass a context and additional request options.
4071//
4072// See ListBackupVaults for details on how to use this API operation.
4073//
4074// The context must be non-nil and will be used for request cancellation. If
4075// the context is nil a panic will occur. In the future the SDK may create
4076// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4077// for more information on using Contexts.
4078func (c *Backup) ListBackupVaultsWithContext(ctx aws.Context, input *ListBackupVaultsInput, opts ...request.Option) (*ListBackupVaultsOutput, error) {
4079	req, out := c.ListBackupVaultsRequest(input)
4080	req.SetContext(ctx)
4081	req.ApplyOptions(opts...)
4082	return out, req.Send()
4083}
4084
4085// ListBackupVaultsPages iterates over the pages of a ListBackupVaults operation,
4086// calling the "fn" function with the response data for each page. To stop
4087// iterating, return false from the fn function.
4088//
4089// See ListBackupVaults method for more information on how to use this operation.
4090//
4091// Note: This operation can generate multiple requests to a service.
4092//
4093//    // Example iterating over at most 3 pages of a ListBackupVaults operation.
4094//    pageNum := 0
4095//    err := client.ListBackupVaultsPages(params,
4096//        func(page *backup.ListBackupVaultsOutput, lastPage bool) bool {
4097//            pageNum++
4098//            fmt.Println(page)
4099//            return pageNum <= 3
4100//        })
4101//
4102func (c *Backup) ListBackupVaultsPages(input *ListBackupVaultsInput, fn func(*ListBackupVaultsOutput, bool) bool) error {
4103	return c.ListBackupVaultsPagesWithContext(aws.BackgroundContext(), input, fn)
4104}
4105
4106// ListBackupVaultsPagesWithContext same as ListBackupVaultsPages except
4107// it takes a Context and allows setting request options on the pages.
4108//
4109// The context must be non-nil and will be used for request cancellation. If
4110// the context is nil a panic will occur. In the future the SDK may create
4111// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4112// for more information on using Contexts.
4113func (c *Backup) ListBackupVaultsPagesWithContext(ctx aws.Context, input *ListBackupVaultsInput, fn func(*ListBackupVaultsOutput, bool) bool, opts ...request.Option) error {
4114	p := request.Pagination{
4115		NewRequest: func() (*request.Request, error) {
4116			var inCpy *ListBackupVaultsInput
4117			if input != nil {
4118				tmp := *input
4119				inCpy = &tmp
4120			}
4121			req, _ := c.ListBackupVaultsRequest(inCpy)
4122			req.SetContext(ctx)
4123			req.ApplyOptions(opts...)
4124			return req, nil
4125		},
4126	}
4127
4128	for p.Next() {
4129		if !fn(p.Page().(*ListBackupVaultsOutput), !p.HasNextPage()) {
4130			break
4131		}
4132	}
4133
4134	return p.Err()
4135}
4136
4137const opListCopyJobs = "ListCopyJobs"
4138
4139// ListCopyJobsRequest generates a "aws/request.Request" representing the
4140// client's request for the ListCopyJobs operation. The "output" return
4141// value will be populated with the request's response once the request completes
4142// successfully.
4143//
4144// Use "Send" method on the returned Request to send the API call to the service.
4145// the "output" return value is not valid until after Send returns without error.
4146//
4147// See ListCopyJobs for more information on using the ListCopyJobs
4148// API call, and error handling.
4149//
4150// This method is useful when you want to inject custom logic or configuration
4151// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4152//
4153//
4154//    // Example sending a request using the ListCopyJobsRequest method.
4155//    req, resp := client.ListCopyJobsRequest(params)
4156//
4157//    err := req.Send()
4158//    if err == nil { // resp is now filled
4159//        fmt.Println(resp)
4160//    }
4161//
4162// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListCopyJobs
4163func (c *Backup) ListCopyJobsRequest(input *ListCopyJobsInput) (req *request.Request, output *ListCopyJobsOutput) {
4164	op := &request.Operation{
4165		Name:       opListCopyJobs,
4166		HTTPMethod: "GET",
4167		HTTPPath:   "/copy-jobs/",
4168		Paginator: &request.Paginator{
4169			InputTokens:     []string{"NextToken"},
4170			OutputTokens:    []string{"NextToken"},
4171			LimitToken:      "MaxResults",
4172			TruncationToken: "",
4173		},
4174	}
4175
4176	if input == nil {
4177		input = &ListCopyJobsInput{}
4178	}
4179
4180	output = &ListCopyJobsOutput{}
4181	req = c.newRequest(op, input, output)
4182	return
4183}
4184
4185// ListCopyJobs API operation for AWS Backup.
4186//
4187// Returns metadata about your copy jobs.
4188//
4189// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4190// with awserr.Error's Code and Message methods to get detailed information about
4191// the error.
4192//
4193// See the AWS API reference guide for AWS Backup's
4194// API operation ListCopyJobs for usage and error information.
4195//
4196// Returned Error Types:
4197//   * InvalidParameterValueException
4198//   Indicates that something is wrong with a parameter's value. For example,
4199//   the value is out of range.
4200//
4201//   * ServiceUnavailableException
4202//   The request failed due to a temporary failure of the server.
4203//
4204// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListCopyJobs
4205func (c *Backup) ListCopyJobs(input *ListCopyJobsInput) (*ListCopyJobsOutput, error) {
4206	req, out := c.ListCopyJobsRequest(input)
4207	return out, req.Send()
4208}
4209
4210// ListCopyJobsWithContext is the same as ListCopyJobs with the addition of
4211// the ability to pass a context and additional request options.
4212//
4213// See ListCopyJobs for details on how to use this API operation.
4214//
4215// The context must be non-nil and will be used for request cancellation. If
4216// the context is nil a panic will occur. In the future the SDK may create
4217// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4218// for more information on using Contexts.
4219func (c *Backup) ListCopyJobsWithContext(ctx aws.Context, input *ListCopyJobsInput, opts ...request.Option) (*ListCopyJobsOutput, error) {
4220	req, out := c.ListCopyJobsRequest(input)
4221	req.SetContext(ctx)
4222	req.ApplyOptions(opts...)
4223	return out, req.Send()
4224}
4225
4226// ListCopyJobsPages iterates over the pages of a ListCopyJobs operation,
4227// calling the "fn" function with the response data for each page. To stop
4228// iterating, return false from the fn function.
4229//
4230// See ListCopyJobs method for more information on how to use this operation.
4231//
4232// Note: This operation can generate multiple requests to a service.
4233//
4234//    // Example iterating over at most 3 pages of a ListCopyJobs operation.
4235//    pageNum := 0
4236//    err := client.ListCopyJobsPages(params,
4237//        func(page *backup.ListCopyJobsOutput, lastPage bool) bool {
4238//            pageNum++
4239//            fmt.Println(page)
4240//            return pageNum <= 3
4241//        })
4242//
4243func (c *Backup) ListCopyJobsPages(input *ListCopyJobsInput, fn func(*ListCopyJobsOutput, bool) bool) error {
4244	return c.ListCopyJobsPagesWithContext(aws.BackgroundContext(), input, fn)
4245}
4246
4247// ListCopyJobsPagesWithContext same as ListCopyJobsPages except
4248// it takes a Context and allows setting request options on the pages.
4249//
4250// The context must be non-nil and will be used for request cancellation. If
4251// the context is nil a panic will occur. In the future the SDK may create
4252// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4253// for more information on using Contexts.
4254func (c *Backup) ListCopyJobsPagesWithContext(ctx aws.Context, input *ListCopyJobsInput, fn func(*ListCopyJobsOutput, bool) bool, opts ...request.Option) error {
4255	p := request.Pagination{
4256		NewRequest: func() (*request.Request, error) {
4257			var inCpy *ListCopyJobsInput
4258			if input != nil {
4259				tmp := *input
4260				inCpy = &tmp
4261			}
4262			req, _ := c.ListCopyJobsRequest(inCpy)
4263			req.SetContext(ctx)
4264			req.ApplyOptions(opts...)
4265			return req, nil
4266		},
4267	}
4268
4269	for p.Next() {
4270		if !fn(p.Page().(*ListCopyJobsOutput), !p.HasNextPage()) {
4271			break
4272		}
4273	}
4274
4275	return p.Err()
4276}
4277
4278const opListFrameworks = "ListFrameworks"
4279
4280// ListFrameworksRequest generates a "aws/request.Request" representing the
4281// client's request for the ListFrameworks operation. The "output" return
4282// value will be populated with the request's response once the request completes
4283// successfully.
4284//
4285// Use "Send" method on the returned Request to send the API call to the service.
4286// the "output" return value is not valid until after Send returns without error.
4287//
4288// See ListFrameworks for more information on using the ListFrameworks
4289// API call, and error handling.
4290//
4291// This method is useful when you want to inject custom logic or configuration
4292// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4293//
4294//
4295//    // Example sending a request using the ListFrameworksRequest method.
4296//    req, resp := client.ListFrameworksRequest(params)
4297//
4298//    err := req.Send()
4299//    if err == nil { // resp is now filled
4300//        fmt.Println(resp)
4301//    }
4302//
4303// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListFrameworks
4304func (c *Backup) ListFrameworksRequest(input *ListFrameworksInput) (req *request.Request, output *ListFrameworksOutput) {
4305	op := &request.Operation{
4306		Name:       opListFrameworks,
4307		HTTPMethod: "GET",
4308		HTTPPath:   "/audit/frameworks",
4309		Paginator: &request.Paginator{
4310			InputTokens:     []string{"NextToken"},
4311			OutputTokens:    []string{"NextToken"},
4312			LimitToken:      "MaxResults",
4313			TruncationToken: "",
4314		},
4315	}
4316
4317	if input == nil {
4318		input = &ListFrameworksInput{}
4319	}
4320
4321	output = &ListFrameworksOutput{}
4322	req = c.newRequest(op, input, output)
4323	return
4324}
4325
4326// ListFrameworks API operation for AWS Backup.
4327//
4328// Returns a list of all frameworks for an Amazon Web Services account and Amazon
4329// Web Services Region.
4330//
4331// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4332// with awserr.Error's Code and Message methods to get detailed information about
4333// the error.
4334//
4335// See the AWS API reference guide for AWS Backup's
4336// API operation ListFrameworks for usage and error information.
4337//
4338// Returned Error Types:
4339//   * InvalidParameterValueException
4340//   Indicates that something is wrong with a parameter's value. For example,
4341//   the value is out of range.
4342//
4343//   * ServiceUnavailableException
4344//   The request failed due to a temporary failure of the server.
4345//
4346// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListFrameworks
4347func (c *Backup) ListFrameworks(input *ListFrameworksInput) (*ListFrameworksOutput, error) {
4348	req, out := c.ListFrameworksRequest(input)
4349	return out, req.Send()
4350}
4351
4352// ListFrameworksWithContext is the same as ListFrameworks with the addition of
4353// the ability to pass a context and additional request options.
4354//
4355// See ListFrameworks for details on how to use this API operation.
4356//
4357// The context must be non-nil and will be used for request cancellation. If
4358// the context is nil a panic will occur. In the future the SDK may create
4359// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4360// for more information on using Contexts.
4361func (c *Backup) ListFrameworksWithContext(ctx aws.Context, input *ListFrameworksInput, opts ...request.Option) (*ListFrameworksOutput, error) {
4362	req, out := c.ListFrameworksRequest(input)
4363	req.SetContext(ctx)
4364	req.ApplyOptions(opts...)
4365	return out, req.Send()
4366}
4367
4368// ListFrameworksPages iterates over the pages of a ListFrameworks operation,
4369// calling the "fn" function with the response data for each page. To stop
4370// iterating, return false from the fn function.
4371//
4372// See ListFrameworks method for more information on how to use this operation.
4373//
4374// Note: This operation can generate multiple requests to a service.
4375//
4376//    // Example iterating over at most 3 pages of a ListFrameworks operation.
4377//    pageNum := 0
4378//    err := client.ListFrameworksPages(params,
4379//        func(page *backup.ListFrameworksOutput, lastPage bool) bool {
4380//            pageNum++
4381//            fmt.Println(page)
4382//            return pageNum <= 3
4383//        })
4384//
4385func (c *Backup) ListFrameworksPages(input *ListFrameworksInput, fn func(*ListFrameworksOutput, bool) bool) error {
4386	return c.ListFrameworksPagesWithContext(aws.BackgroundContext(), input, fn)
4387}
4388
4389// ListFrameworksPagesWithContext same as ListFrameworksPages except
4390// it takes a Context and allows setting request options on the pages.
4391//
4392// The context must be non-nil and will be used for request cancellation. If
4393// the context is nil a panic will occur. In the future the SDK may create
4394// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4395// for more information on using Contexts.
4396func (c *Backup) ListFrameworksPagesWithContext(ctx aws.Context, input *ListFrameworksInput, fn func(*ListFrameworksOutput, bool) bool, opts ...request.Option) error {
4397	p := request.Pagination{
4398		NewRequest: func() (*request.Request, error) {
4399			var inCpy *ListFrameworksInput
4400			if input != nil {
4401				tmp := *input
4402				inCpy = &tmp
4403			}
4404			req, _ := c.ListFrameworksRequest(inCpy)
4405			req.SetContext(ctx)
4406			req.ApplyOptions(opts...)
4407			return req, nil
4408		},
4409	}
4410
4411	for p.Next() {
4412		if !fn(p.Page().(*ListFrameworksOutput), !p.HasNextPage()) {
4413			break
4414		}
4415	}
4416
4417	return p.Err()
4418}
4419
4420const opListProtectedResources = "ListProtectedResources"
4421
4422// ListProtectedResourcesRequest generates a "aws/request.Request" representing the
4423// client's request for the ListProtectedResources operation. The "output" return
4424// value will be populated with the request's response once the request completes
4425// successfully.
4426//
4427// Use "Send" method on the returned Request to send the API call to the service.
4428// the "output" return value is not valid until after Send returns without error.
4429//
4430// See ListProtectedResources for more information on using the ListProtectedResources
4431// API call, and error handling.
4432//
4433// This method is useful when you want to inject custom logic or configuration
4434// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4435//
4436//
4437//    // Example sending a request using the ListProtectedResourcesRequest method.
4438//    req, resp := client.ListProtectedResourcesRequest(params)
4439//
4440//    err := req.Send()
4441//    if err == nil { // resp is now filled
4442//        fmt.Println(resp)
4443//    }
4444//
4445// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListProtectedResources
4446func (c *Backup) ListProtectedResourcesRequest(input *ListProtectedResourcesInput) (req *request.Request, output *ListProtectedResourcesOutput) {
4447	op := &request.Operation{
4448		Name:       opListProtectedResources,
4449		HTTPMethod: "GET",
4450		HTTPPath:   "/resources/",
4451		Paginator: &request.Paginator{
4452			InputTokens:     []string{"NextToken"},
4453			OutputTokens:    []string{"NextToken"},
4454			LimitToken:      "MaxResults",
4455			TruncationToken: "",
4456		},
4457	}
4458
4459	if input == nil {
4460		input = &ListProtectedResourcesInput{}
4461	}
4462
4463	output = &ListProtectedResourcesOutput{}
4464	req = c.newRequest(op, input, output)
4465	return
4466}
4467
4468// ListProtectedResources API operation for AWS Backup.
4469//
4470// Returns an array of resources successfully backed up by Backup, including
4471// the time the resource was saved, an Amazon Resource Name (ARN) of the resource,
4472// and a resource type.
4473//
4474// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4475// with awserr.Error's Code and Message methods to get detailed information about
4476// the error.
4477//
4478// See the AWS API reference guide for AWS Backup's
4479// API operation ListProtectedResources for usage and error information.
4480//
4481// Returned Error Types:
4482//   * InvalidParameterValueException
4483//   Indicates that something is wrong with a parameter's value. For example,
4484//   the value is out of range.
4485//
4486//   * ServiceUnavailableException
4487//   The request failed due to a temporary failure of the server.
4488//
4489// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListProtectedResources
4490func (c *Backup) ListProtectedResources(input *ListProtectedResourcesInput) (*ListProtectedResourcesOutput, error) {
4491	req, out := c.ListProtectedResourcesRequest(input)
4492	return out, req.Send()
4493}
4494
4495// ListProtectedResourcesWithContext is the same as ListProtectedResources with the addition of
4496// the ability to pass a context and additional request options.
4497//
4498// See ListProtectedResources for details on how to use this API operation.
4499//
4500// The context must be non-nil and will be used for request cancellation. If
4501// the context is nil a panic will occur. In the future the SDK may create
4502// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4503// for more information on using Contexts.
4504func (c *Backup) ListProtectedResourcesWithContext(ctx aws.Context, input *ListProtectedResourcesInput, opts ...request.Option) (*ListProtectedResourcesOutput, error) {
4505	req, out := c.ListProtectedResourcesRequest(input)
4506	req.SetContext(ctx)
4507	req.ApplyOptions(opts...)
4508	return out, req.Send()
4509}
4510
4511// ListProtectedResourcesPages iterates over the pages of a ListProtectedResources operation,
4512// calling the "fn" function with the response data for each page. To stop
4513// iterating, return false from the fn function.
4514//
4515// See ListProtectedResources method for more information on how to use this operation.
4516//
4517// Note: This operation can generate multiple requests to a service.
4518//
4519//    // Example iterating over at most 3 pages of a ListProtectedResources operation.
4520//    pageNum := 0
4521//    err := client.ListProtectedResourcesPages(params,
4522//        func(page *backup.ListProtectedResourcesOutput, lastPage bool) bool {
4523//            pageNum++
4524//            fmt.Println(page)
4525//            return pageNum <= 3
4526//        })
4527//
4528func (c *Backup) ListProtectedResourcesPages(input *ListProtectedResourcesInput, fn func(*ListProtectedResourcesOutput, bool) bool) error {
4529	return c.ListProtectedResourcesPagesWithContext(aws.BackgroundContext(), input, fn)
4530}
4531
4532// ListProtectedResourcesPagesWithContext same as ListProtectedResourcesPages except
4533// it takes a Context and allows setting request options on the pages.
4534//
4535// The context must be non-nil and will be used for request cancellation. If
4536// the context is nil a panic will occur. In the future the SDK may create
4537// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4538// for more information on using Contexts.
4539func (c *Backup) ListProtectedResourcesPagesWithContext(ctx aws.Context, input *ListProtectedResourcesInput, fn func(*ListProtectedResourcesOutput, bool) bool, opts ...request.Option) error {
4540	p := request.Pagination{
4541		NewRequest: func() (*request.Request, error) {
4542			var inCpy *ListProtectedResourcesInput
4543			if input != nil {
4544				tmp := *input
4545				inCpy = &tmp
4546			}
4547			req, _ := c.ListProtectedResourcesRequest(inCpy)
4548			req.SetContext(ctx)
4549			req.ApplyOptions(opts...)
4550			return req, nil
4551		},
4552	}
4553
4554	for p.Next() {
4555		if !fn(p.Page().(*ListProtectedResourcesOutput), !p.HasNextPage()) {
4556			break
4557		}
4558	}
4559
4560	return p.Err()
4561}
4562
4563const opListRecoveryPointsByBackupVault = "ListRecoveryPointsByBackupVault"
4564
4565// ListRecoveryPointsByBackupVaultRequest generates a "aws/request.Request" representing the
4566// client's request for the ListRecoveryPointsByBackupVault operation. The "output" return
4567// value will be populated with the request's response once the request completes
4568// successfully.
4569//
4570// Use "Send" method on the returned Request to send the API call to the service.
4571// the "output" return value is not valid until after Send returns without error.
4572//
4573// See ListRecoveryPointsByBackupVault for more information on using the ListRecoveryPointsByBackupVault
4574// API call, and error handling.
4575//
4576// This method is useful when you want to inject custom logic or configuration
4577// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4578//
4579//
4580//    // Example sending a request using the ListRecoveryPointsByBackupVaultRequest method.
4581//    req, resp := client.ListRecoveryPointsByBackupVaultRequest(params)
4582//
4583//    err := req.Send()
4584//    if err == nil { // resp is now filled
4585//        fmt.Println(resp)
4586//    }
4587//
4588// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListRecoveryPointsByBackupVault
4589func (c *Backup) ListRecoveryPointsByBackupVaultRequest(input *ListRecoveryPointsByBackupVaultInput) (req *request.Request, output *ListRecoveryPointsByBackupVaultOutput) {
4590	op := &request.Operation{
4591		Name:       opListRecoveryPointsByBackupVault,
4592		HTTPMethod: "GET",
4593		HTTPPath:   "/backup-vaults/{backupVaultName}/recovery-points/",
4594		Paginator: &request.Paginator{
4595			InputTokens:     []string{"NextToken"},
4596			OutputTokens:    []string{"NextToken"},
4597			LimitToken:      "MaxResults",
4598			TruncationToken: "",
4599		},
4600	}
4601
4602	if input == nil {
4603		input = &ListRecoveryPointsByBackupVaultInput{}
4604	}
4605
4606	output = &ListRecoveryPointsByBackupVaultOutput{}
4607	req = c.newRequest(op, input, output)
4608	return
4609}
4610
4611// ListRecoveryPointsByBackupVault API operation for AWS Backup.
4612//
4613// Returns detailed information about the recovery points stored in a backup
4614// vault.
4615//
4616// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4617// with awserr.Error's Code and Message methods to get detailed information about
4618// the error.
4619//
4620// See the AWS API reference guide for AWS Backup's
4621// API operation ListRecoveryPointsByBackupVault for usage and error information.
4622//
4623// Returned Error Types:
4624//   * ResourceNotFoundException
4625//   A resource that is required for the action doesn't exist.
4626//
4627//   * InvalidParameterValueException
4628//   Indicates that something is wrong with a parameter's value. For example,
4629//   the value is out of range.
4630//
4631//   * MissingParameterValueException
4632//   Indicates that a required parameter is missing.
4633//
4634//   * ServiceUnavailableException
4635//   The request failed due to a temporary failure of the server.
4636//
4637// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListRecoveryPointsByBackupVault
4638func (c *Backup) ListRecoveryPointsByBackupVault(input *ListRecoveryPointsByBackupVaultInput) (*ListRecoveryPointsByBackupVaultOutput, error) {
4639	req, out := c.ListRecoveryPointsByBackupVaultRequest(input)
4640	return out, req.Send()
4641}
4642
4643// ListRecoveryPointsByBackupVaultWithContext is the same as ListRecoveryPointsByBackupVault with the addition of
4644// the ability to pass a context and additional request options.
4645//
4646// See ListRecoveryPointsByBackupVault for details on how to use this API operation.
4647//
4648// The context must be non-nil and will be used for request cancellation. If
4649// the context is nil a panic will occur. In the future the SDK may create
4650// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4651// for more information on using Contexts.
4652func (c *Backup) ListRecoveryPointsByBackupVaultWithContext(ctx aws.Context, input *ListRecoveryPointsByBackupVaultInput, opts ...request.Option) (*ListRecoveryPointsByBackupVaultOutput, error) {
4653	req, out := c.ListRecoveryPointsByBackupVaultRequest(input)
4654	req.SetContext(ctx)
4655	req.ApplyOptions(opts...)
4656	return out, req.Send()
4657}
4658
4659// ListRecoveryPointsByBackupVaultPages iterates over the pages of a ListRecoveryPointsByBackupVault operation,
4660// calling the "fn" function with the response data for each page. To stop
4661// iterating, return false from the fn function.
4662//
4663// See ListRecoveryPointsByBackupVault method for more information on how to use this operation.
4664//
4665// Note: This operation can generate multiple requests to a service.
4666//
4667//    // Example iterating over at most 3 pages of a ListRecoveryPointsByBackupVault operation.
4668//    pageNum := 0
4669//    err := client.ListRecoveryPointsByBackupVaultPages(params,
4670//        func(page *backup.ListRecoveryPointsByBackupVaultOutput, lastPage bool) bool {
4671//            pageNum++
4672//            fmt.Println(page)
4673//            return pageNum <= 3
4674//        })
4675//
4676func (c *Backup) ListRecoveryPointsByBackupVaultPages(input *ListRecoveryPointsByBackupVaultInput, fn func(*ListRecoveryPointsByBackupVaultOutput, bool) bool) error {
4677	return c.ListRecoveryPointsByBackupVaultPagesWithContext(aws.BackgroundContext(), input, fn)
4678}
4679
4680// ListRecoveryPointsByBackupVaultPagesWithContext same as ListRecoveryPointsByBackupVaultPages except
4681// it takes a Context and allows setting request options on the pages.
4682//
4683// The context must be non-nil and will be used for request cancellation. If
4684// the context is nil a panic will occur. In the future the SDK may create
4685// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4686// for more information on using Contexts.
4687func (c *Backup) ListRecoveryPointsByBackupVaultPagesWithContext(ctx aws.Context, input *ListRecoveryPointsByBackupVaultInput, fn func(*ListRecoveryPointsByBackupVaultOutput, bool) bool, opts ...request.Option) error {
4688	p := request.Pagination{
4689		NewRequest: func() (*request.Request, error) {
4690			var inCpy *ListRecoveryPointsByBackupVaultInput
4691			if input != nil {
4692				tmp := *input
4693				inCpy = &tmp
4694			}
4695			req, _ := c.ListRecoveryPointsByBackupVaultRequest(inCpy)
4696			req.SetContext(ctx)
4697			req.ApplyOptions(opts...)
4698			return req, nil
4699		},
4700	}
4701
4702	for p.Next() {
4703		if !fn(p.Page().(*ListRecoveryPointsByBackupVaultOutput), !p.HasNextPage()) {
4704			break
4705		}
4706	}
4707
4708	return p.Err()
4709}
4710
4711const opListRecoveryPointsByResource = "ListRecoveryPointsByResource"
4712
4713// ListRecoveryPointsByResourceRequest generates a "aws/request.Request" representing the
4714// client's request for the ListRecoveryPointsByResource operation. The "output" return
4715// value will be populated with the request's response once the request completes
4716// successfully.
4717//
4718// Use "Send" method on the returned Request to send the API call to the service.
4719// the "output" return value is not valid until after Send returns without error.
4720//
4721// See ListRecoveryPointsByResource for more information on using the ListRecoveryPointsByResource
4722// API call, and error handling.
4723//
4724// This method is useful when you want to inject custom logic or configuration
4725// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4726//
4727//
4728//    // Example sending a request using the ListRecoveryPointsByResourceRequest method.
4729//    req, resp := client.ListRecoveryPointsByResourceRequest(params)
4730//
4731//    err := req.Send()
4732//    if err == nil { // resp is now filled
4733//        fmt.Println(resp)
4734//    }
4735//
4736// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListRecoveryPointsByResource
4737func (c *Backup) ListRecoveryPointsByResourceRequest(input *ListRecoveryPointsByResourceInput) (req *request.Request, output *ListRecoveryPointsByResourceOutput) {
4738	op := &request.Operation{
4739		Name:       opListRecoveryPointsByResource,
4740		HTTPMethod: "GET",
4741		HTTPPath:   "/resources/{resourceArn}/recovery-points/",
4742		Paginator: &request.Paginator{
4743			InputTokens:     []string{"NextToken"},
4744			OutputTokens:    []string{"NextToken"},
4745			LimitToken:      "MaxResults",
4746			TruncationToken: "",
4747		},
4748	}
4749
4750	if input == nil {
4751		input = &ListRecoveryPointsByResourceInput{}
4752	}
4753
4754	output = &ListRecoveryPointsByResourceOutput{}
4755	req = c.newRequest(op, input, output)
4756	return
4757}
4758
4759// ListRecoveryPointsByResource API operation for AWS Backup.
4760//
4761// Returns detailed information about all the recovery points of the type specified
4762// by a resource Amazon Resource Name (ARN).
4763//
4764// For Amazon EFS and Amazon EC2, this action only lists recovery points created
4765// by Backup.
4766//
4767// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4768// with awserr.Error's Code and Message methods to get detailed information about
4769// the error.
4770//
4771// See the AWS API reference guide for AWS Backup's
4772// API operation ListRecoveryPointsByResource for usage and error information.
4773//
4774// Returned Error Types:
4775//   * ResourceNotFoundException
4776//   A resource that is required for the action doesn't exist.
4777//
4778//   * InvalidParameterValueException
4779//   Indicates that something is wrong with a parameter's value. For example,
4780//   the value is out of range.
4781//
4782//   * MissingParameterValueException
4783//   Indicates that a required parameter is missing.
4784//
4785//   * ServiceUnavailableException
4786//   The request failed due to a temporary failure of the server.
4787//
4788// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListRecoveryPointsByResource
4789func (c *Backup) ListRecoveryPointsByResource(input *ListRecoveryPointsByResourceInput) (*ListRecoveryPointsByResourceOutput, error) {
4790	req, out := c.ListRecoveryPointsByResourceRequest(input)
4791	return out, req.Send()
4792}
4793
4794// ListRecoveryPointsByResourceWithContext is the same as ListRecoveryPointsByResource with the addition of
4795// the ability to pass a context and additional request options.
4796//
4797// See ListRecoveryPointsByResource for details on how to use this API operation.
4798//
4799// The context must be non-nil and will be used for request cancellation. If
4800// the context is nil a panic will occur. In the future the SDK may create
4801// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4802// for more information on using Contexts.
4803func (c *Backup) ListRecoveryPointsByResourceWithContext(ctx aws.Context, input *ListRecoveryPointsByResourceInput, opts ...request.Option) (*ListRecoveryPointsByResourceOutput, error) {
4804	req, out := c.ListRecoveryPointsByResourceRequest(input)
4805	req.SetContext(ctx)
4806	req.ApplyOptions(opts...)
4807	return out, req.Send()
4808}
4809
4810// ListRecoveryPointsByResourcePages iterates over the pages of a ListRecoveryPointsByResource operation,
4811// calling the "fn" function with the response data for each page. To stop
4812// iterating, return false from the fn function.
4813//
4814// See ListRecoveryPointsByResource method for more information on how to use this operation.
4815//
4816// Note: This operation can generate multiple requests to a service.
4817//
4818//    // Example iterating over at most 3 pages of a ListRecoveryPointsByResource operation.
4819//    pageNum := 0
4820//    err := client.ListRecoveryPointsByResourcePages(params,
4821//        func(page *backup.ListRecoveryPointsByResourceOutput, lastPage bool) bool {
4822//            pageNum++
4823//            fmt.Println(page)
4824//            return pageNum <= 3
4825//        })
4826//
4827func (c *Backup) ListRecoveryPointsByResourcePages(input *ListRecoveryPointsByResourceInput, fn func(*ListRecoveryPointsByResourceOutput, bool) bool) error {
4828	return c.ListRecoveryPointsByResourcePagesWithContext(aws.BackgroundContext(), input, fn)
4829}
4830
4831// ListRecoveryPointsByResourcePagesWithContext same as ListRecoveryPointsByResourcePages except
4832// it takes a Context and allows setting request options on the pages.
4833//
4834// The context must be non-nil and will be used for request cancellation. If
4835// the context is nil a panic will occur. In the future the SDK may create
4836// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4837// for more information on using Contexts.
4838func (c *Backup) ListRecoveryPointsByResourcePagesWithContext(ctx aws.Context, input *ListRecoveryPointsByResourceInput, fn func(*ListRecoveryPointsByResourceOutput, bool) bool, opts ...request.Option) error {
4839	p := request.Pagination{
4840		NewRequest: func() (*request.Request, error) {
4841			var inCpy *ListRecoveryPointsByResourceInput
4842			if input != nil {
4843				tmp := *input
4844				inCpy = &tmp
4845			}
4846			req, _ := c.ListRecoveryPointsByResourceRequest(inCpy)
4847			req.SetContext(ctx)
4848			req.ApplyOptions(opts...)
4849			return req, nil
4850		},
4851	}
4852
4853	for p.Next() {
4854		if !fn(p.Page().(*ListRecoveryPointsByResourceOutput), !p.HasNextPage()) {
4855			break
4856		}
4857	}
4858
4859	return p.Err()
4860}
4861
4862const opListReportJobs = "ListReportJobs"
4863
4864// ListReportJobsRequest generates a "aws/request.Request" representing the
4865// client's request for the ListReportJobs operation. The "output" return
4866// value will be populated with the request's response once the request completes
4867// successfully.
4868//
4869// Use "Send" method on the returned Request to send the API call to the service.
4870// the "output" return value is not valid until after Send returns without error.
4871//
4872// See ListReportJobs for more information on using the ListReportJobs
4873// API call, and error handling.
4874//
4875// This method is useful when you want to inject custom logic or configuration
4876// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4877//
4878//
4879//    // Example sending a request using the ListReportJobsRequest method.
4880//    req, resp := client.ListReportJobsRequest(params)
4881//
4882//    err := req.Send()
4883//    if err == nil { // resp is now filled
4884//        fmt.Println(resp)
4885//    }
4886//
4887// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListReportJobs
4888func (c *Backup) ListReportJobsRequest(input *ListReportJobsInput) (req *request.Request, output *ListReportJobsOutput) {
4889	op := &request.Operation{
4890		Name:       opListReportJobs,
4891		HTTPMethod: "GET",
4892		HTTPPath:   "/audit/report-jobs",
4893		Paginator: &request.Paginator{
4894			InputTokens:     []string{"NextToken"},
4895			OutputTokens:    []string{"NextToken"},
4896			LimitToken:      "MaxResults",
4897			TruncationToken: "",
4898		},
4899	}
4900
4901	if input == nil {
4902		input = &ListReportJobsInput{}
4903	}
4904
4905	output = &ListReportJobsOutput{}
4906	req = c.newRequest(op, input, output)
4907	return
4908}
4909
4910// ListReportJobs API operation for AWS Backup.
4911//
4912// Returns details about your report jobs.
4913//
4914// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4915// with awserr.Error's Code and Message methods to get detailed information about
4916// the error.
4917//
4918// See the AWS API reference guide for AWS Backup's
4919// API operation ListReportJobs for usage and error information.
4920//
4921// Returned Error Types:
4922//   * InvalidParameterValueException
4923//   Indicates that something is wrong with a parameter's value. For example,
4924//   the value is out of range.
4925//
4926//   * ServiceUnavailableException
4927//   The request failed due to a temporary failure of the server.
4928//
4929// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListReportJobs
4930func (c *Backup) ListReportJobs(input *ListReportJobsInput) (*ListReportJobsOutput, error) {
4931	req, out := c.ListReportJobsRequest(input)
4932	return out, req.Send()
4933}
4934
4935// ListReportJobsWithContext is the same as ListReportJobs with the addition of
4936// the ability to pass a context and additional request options.
4937//
4938// See ListReportJobs for details on how to use this API operation.
4939//
4940// The context must be non-nil and will be used for request cancellation. If
4941// the context is nil a panic will occur. In the future the SDK may create
4942// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4943// for more information on using Contexts.
4944func (c *Backup) ListReportJobsWithContext(ctx aws.Context, input *ListReportJobsInput, opts ...request.Option) (*ListReportJobsOutput, error) {
4945	req, out := c.ListReportJobsRequest(input)
4946	req.SetContext(ctx)
4947	req.ApplyOptions(opts...)
4948	return out, req.Send()
4949}
4950
4951// ListReportJobsPages iterates over the pages of a ListReportJobs operation,
4952// calling the "fn" function with the response data for each page. To stop
4953// iterating, return false from the fn function.
4954//
4955// See ListReportJobs method for more information on how to use this operation.
4956//
4957// Note: This operation can generate multiple requests to a service.
4958//
4959//    // Example iterating over at most 3 pages of a ListReportJobs operation.
4960//    pageNum := 0
4961//    err := client.ListReportJobsPages(params,
4962//        func(page *backup.ListReportJobsOutput, lastPage bool) bool {
4963//            pageNum++
4964//            fmt.Println(page)
4965//            return pageNum <= 3
4966//        })
4967//
4968func (c *Backup) ListReportJobsPages(input *ListReportJobsInput, fn func(*ListReportJobsOutput, bool) bool) error {
4969	return c.ListReportJobsPagesWithContext(aws.BackgroundContext(), input, fn)
4970}
4971
4972// ListReportJobsPagesWithContext same as ListReportJobsPages except
4973// it takes a Context and allows setting request options on the pages.
4974//
4975// The context must be non-nil and will be used for request cancellation. If
4976// the context is nil a panic will occur. In the future the SDK may create
4977// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4978// for more information on using Contexts.
4979func (c *Backup) ListReportJobsPagesWithContext(ctx aws.Context, input *ListReportJobsInput, fn func(*ListReportJobsOutput, bool) bool, opts ...request.Option) error {
4980	p := request.Pagination{
4981		NewRequest: func() (*request.Request, error) {
4982			var inCpy *ListReportJobsInput
4983			if input != nil {
4984				tmp := *input
4985				inCpy = &tmp
4986			}
4987			req, _ := c.ListReportJobsRequest(inCpy)
4988			req.SetContext(ctx)
4989			req.ApplyOptions(opts...)
4990			return req, nil
4991		},
4992	}
4993
4994	for p.Next() {
4995		if !fn(p.Page().(*ListReportJobsOutput), !p.HasNextPage()) {
4996			break
4997		}
4998	}
4999
5000	return p.Err()
5001}
5002
5003const opListReportPlans = "ListReportPlans"
5004
5005// ListReportPlansRequest generates a "aws/request.Request" representing the
5006// client's request for the ListReportPlans operation. The "output" return
5007// value will be populated with the request's response once the request completes
5008// successfully.
5009//
5010// Use "Send" method on the returned Request to send the API call to the service.
5011// the "output" return value is not valid until after Send returns without error.
5012//
5013// See ListReportPlans for more information on using the ListReportPlans
5014// API call, and error handling.
5015//
5016// This method is useful when you want to inject custom logic or configuration
5017// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5018//
5019//
5020//    // Example sending a request using the ListReportPlansRequest method.
5021//    req, resp := client.ListReportPlansRequest(params)
5022//
5023//    err := req.Send()
5024//    if err == nil { // resp is now filled
5025//        fmt.Println(resp)
5026//    }
5027//
5028// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListReportPlans
5029func (c *Backup) ListReportPlansRequest(input *ListReportPlansInput) (req *request.Request, output *ListReportPlansOutput) {
5030	op := &request.Operation{
5031		Name:       opListReportPlans,
5032		HTTPMethod: "GET",
5033		HTTPPath:   "/audit/report-plans",
5034		Paginator: &request.Paginator{
5035			InputTokens:     []string{"NextToken"},
5036			OutputTokens:    []string{"NextToken"},
5037			LimitToken:      "MaxResults",
5038			TruncationToken: "",
5039		},
5040	}
5041
5042	if input == nil {
5043		input = &ListReportPlansInput{}
5044	}
5045
5046	output = &ListReportPlansOutput{}
5047	req = c.newRequest(op, input, output)
5048	return
5049}
5050
5051// ListReportPlans API operation for AWS Backup.
5052//
5053// Returns a list of your report plans. For detailed information about a single
5054// report plan, use DescribeReportPlan.
5055//
5056// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5057// with awserr.Error's Code and Message methods to get detailed information about
5058// the error.
5059//
5060// See the AWS API reference guide for AWS Backup's
5061// API operation ListReportPlans for usage and error information.
5062//
5063// Returned Error Types:
5064//   * InvalidParameterValueException
5065//   Indicates that something is wrong with a parameter's value. For example,
5066//   the value is out of range.
5067//
5068//   * ServiceUnavailableException
5069//   The request failed due to a temporary failure of the server.
5070//
5071// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListReportPlans
5072func (c *Backup) ListReportPlans(input *ListReportPlansInput) (*ListReportPlansOutput, error) {
5073	req, out := c.ListReportPlansRequest(input)
5074	return out, req.Send()
5075}
5076
5077// ListReportPlansWithContext is the same as ListReportPlans with the addition of
5078// the ability to pass a context and additional request options.
5079//
5080// See ListReportPlans for details on how to use this API operation.
5081//
5082// The context must be non-nil and will be used for request cancellation. If
5083// the context is nil a panic will occur. In the future the SDK may create
5084// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5085// for more information on using Contexts.
5086func (c *Backup) ListReportPlansWithContext(ctx aws.Context, input *ListReportPlansInput, opts ...request.Option) (*ListReportPlansOutput, error) {
5087	req, out := c.ListReportPlansRequest(input)
5088	req.SetContext(ctx)
5089	req.ApplyOptions(opts...)
5090	return out, req.Send()
5091}
5092
5093// ListReportPlansPages iterates over the pages of a ListReportPlans operation,
5094// calling the "fn" function with the response data for each page. To stop
5095// iterating, return false from the fn function.
5096//
5097// See ListReportPlans method for more information on how to use this operation.
5098//
5099// Note: This operation can generate multiple requests to a service.
5100//
5101//    // Example iterating over at most 3 pages of a ListReportPlans operation.
5102//    pageNum := 0
5103//    err := client.ListReportPlansPages(params,
5104//        func(page *backup.ListReportPlansOutput, lastPage bool) bool {
5105//            pageNum++
5106//            fmt.Println(page)
5107//            return pageNum <= 3
5108//        })
5109//
5110func (c *Backup) ListReportPlansPages(input *ListReportPlansInput, fn func(*ListReportPlansOutput, bool) bool) error {
5111	return c.ListReportPlansPagesWithContext(aws.BackgroundContext(), input, fn)
5112}
5113
5114// ListReportPlansPagesWithContext same as ListReportPlansPages except
5115// it takes a Context and allows setting request options on the pages.
5116//
5117// The context must be non-nil and will be used for request cancellation. If
5118// the context is nil a panic will occur. In the future the SDK may create
5119// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5120// for more information on using Contexts.
5121func (c *Backup) ListReportPlansPagesWithContext(ctx aws.Context, input *ListReportPlansInput, fn func(*ListReportPlansOutput, bool) bool, opts ...request.Option) error {
5122	p := request.Pagination{
5123		NewRequest: func() (*request.Request, error) {
5124			var inCpy *ListReportPlansInput
5125			if input != nil {
5126				tmp := *input
5127				inCpy = &tmp
5128			}
5129			req, _ := c.ListReportPlansRequest(inCpy)
5130			req.SetContext(ctx)
5131			req.ApplyOptions(opts...)
5132			return req, nil
5133		},
5134	}
5135
5136	for p.Next() {
5137		if !fn(p.Page().(*ListReportPlansOutput), !p.HasNextPage()) {
5138			break
5139		}
5140	}
5141
5142	return p.Err()
5143}
5144
5145const opListRestoreJobs = "ListRestoreJobs"
5146
5147// ListRestoreJobsRequest generates a "aws/request.Request" representing the
5148// client's request for the ListRestoreJobs operation. The "output" return
5149// value will be populated with the request's response once the request completes
5150// successfully.
5151//
5152// Use "Send" method on the returned Request to send the API call to the service.
5153// the "output" return value is not valid until after Send returns without error.
5154//
5155// See ListRestoreJobs for more information on using the ListRestoreJobs
5156// API call, and error handling.
5157//
5158// This method is useful when you want to inject custom logic or configuration
5159// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5160//
5161//
5162//    // Example sending a request using the ListRestoreJobsRequest method.
5163//    req, resp := client.ListRestoreJobsRequest(params)
5164//
5165//    err := req.Send()
5166//    if err == nil { // resp is now filled
5167//        fmt.Println(resp)
5168//    }
5169//
5170// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListRestoreJobs
5171func (c *Backup) ListRestoreJobsRequest(input *ListRestoreJobsInput) (req *request.Request, output *ListRestoreJobsOutput) {
5172	op := &request.Operation{
5173		Name:       opListRestoreJobs,
5174		HTTPMethod: "GET",
5175		HTTPPath:   "/restore-jobs/",
5176		Paginator: &request.Paginator{
5177			InputTokens:     []string{"NextToken"},
5178			OutputTokens:    []string{"NextToken"},
5179			LimitToken:      "MaxResults",
5180			TruncationToken: "",
5181		},
5182	}
5183
5184	if input == nil {
5185		input = &ListRestoreJobsInput{}
5186	}
5187
5188	output = &ListRestoreJobsOutput{}
5189	req = c.newRequest(op, input, output)
5190	return
5191}
5192
5193// ListRestoreJobs API operation for AWS Backup.
5194//
5195// Returns a list of jobs that Backup initiated to restore a saved resource,
5196// including details about the recovery process.
5197//
5198// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5199// with awserr.Error's Code and Message methods to get detailed information about
5200// the error.
5201//
5202// See the AWS API reference guide for AWS Backup's
5203// API operation ListRestoreJobs for usage and error information.
5204//
5205// Returned Error Types:
5206//   * ResourceNotFoundException
5207//   A resource that is required for the action doesn't exist.
5208//
5209//   * InvalidParameterValueException
5210//   Indicates that something is wrong with a parameter's value. For example,
5211//   the value is out of range.
5212//
5213//   * MissingParameterValueException
5214//   Indicates that a required parameter is missing.
5215//
5216//   * ServiceUnavailableException
5217//   The request failed due to a temporary failure of the server.
5218//
5219// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListRestoreJobs
5220func (c *Backup) ListRestoreJobs(input *ListRestoreJobsInput) (*ListRestoreJobsOutput, error) {
5221	req, out := c.ListRestoreJobsRequest(input)
5222	return out, req.Send()
5223}
5224
5225// ListRestoreJobsWithContext is the same as ListRestoreJobs with the addition of
5226// the ability to pass a context and additional request options.
5227//
5228// See ListRestoreJobs for details on how to use this API operation.
5229//
5230// The context must be non-nil and will be used for request cancellation. If
5231// the context is nil a panic will occur. In the future the SDK may create
5232// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5233// for more information on using Contexts.
5234func (c *Backup) ListRestoreJobsWithContext(ctx aws.Context, input *ListRestoreJobsInput, opts ...request.Option) (*ListRestoreJobsOutput, error) {
5235	req, out := c.ListRestoreJobsRequest(input)
5236	req.SetContext(ctx)
5237	req.ApplyOptions(opts...)
5238	return out, req.Send()
5239}
5240
5241// ListRestoreJobsPages iterates over the pages of a ListRestoreJobs operation,
5242// calling the "fn" function with the response data for each page. To stop
5243// iterating, return false from the fn function.
5244//
5245// See ListRestoreJobs method for more information on how to use this operation.
5246//
5247// Note: This operation can generate multiple requests to a service.
5248//
5249//    // Example iterating over at most 3 pages of a ListRestoreJobs operation.
5250//    pageNum := 0
5251//    err := client.ListRestoreJobsPages(params,
5252//        func(page *backup.ListRestoreJobsOutput, lastPage bool) bool {
5253//            pageNum++
5254//            fmt.Println(page)
5255//            return pageNum <= 3
5256//        })
5257//
5258func (c *Backup) ListRestoreJobsPages(input *ListRestoreJobsInput, fn func(*ListRestoreJobsOutput, bool) bool) error {
5259	return c.ListRestoreJobsPagesWithContext(aws.BackgroundContext(), input, fn)
5260}
5261
5262// ListRestoreJobsPagesWithContext same as ListRestoreJobsPages except
5263// it takes a Context and allows setting request options on the pages.
5264//
5265// The context must be non-nil and will be used for request cancellation. If
5266// the context is nil a panic will occur. In the future the SDK may create
5267// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5268// for more information on using Contexts.
5269func (c *Backup) ListRestoreJobsPagesWithContext(ctx aws.Context, input *ListRestoreJobsInput, fn func(*ListRestoreJobsOutput, bool) bool, opts ...request.Option) error {
5270	p := request.Pagination{
5271		NewRequest: func() (*request.Request, error) {
5272			var inCpy *ListRestoreJobsInput
5273			if input != nil {
5274				tmp := *input
5275				inCpy = &tmp
5276			}
5277			req, _ := c.ListRestoreJobsRequest(inCpy)
5278			req.SetContext(ctx)
5279			req.ApplyOptions(opts...)
5280			return req, nil
5281		},
5282	}
5283
5284	for p.Next() {
5285		if !fn(p.Page().(*ListRestoreJobsOutput), !p.HasNextPage()) {
5286			break
5287		}
5288	}
5289
5290	return p.Err()
5291}
5292
5293const opListTags = "ListTags"
5294
5295// ListTagsRequest generates a "aws/request.Request" representing the
5296// client's request for the ListTags operation. The "output" return
5297// value will be populated with the request's response once the request completes
5298// successfully.
5299//
5300// Use "Send" method on the returned Request to send the API call to the service.
5301// the "output" return value is not valid until after Send returns without error.
5302//
5303// See ListTags for more information on using the ListTags
5304// API call, and error handling.
5305//
5306// This method is useful when you want to inject custom logic or configuration
5307// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5308//
5309//
5310//    // Example sending a request using the ListTagsRequest method.
5311//    req, resp := client.ListTagsRequest(params)
5312//
5313//    err := req.Send()
5314//    if err == nil { // resp is now filled
5315//        fmt.Println(resp)
5316//    }
5317//
5318// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListTags
5319func (c *Backup) ListTagsRequest(input *ListTagsInput) (req *request.Request, output *ListTagsOutput) {
5320	op := &request.Operation{
5321		Name:       opListTags,
5322		HTTPMethod: "GET",
5323		HTTPPath:   "/tags/{resourceArn}/",
5324		Paginator: &request.Paginator{
5325			InputTokens:     []string{"NextToken"},
5326			OutputTokens:    []string{"NextToken"},
5327			LimitToken:      "MaxResults",
5328			TruncationToken: "",
5329		},
5330	}
5331
5332	if input == nil {
5333		input = &ListTagsInput{}
5334	}
5335
5336	output = &ListTagsOutput{}
5337	req = c.newRequest(op, input, output)
5338	return
5339}
5340
5341// ListTags API operation for AWS Backup.
5342//
5343// Returns a list of key-value pairs assigned to a target recovery point, backup
5344// plan, or backup vault.
5345//
5346// ListTags are currently only supported with Amazon EFS backups.
5347//
5348// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5349// with awserr.Error's Code and Message methods to get detailed information about
5350// the error.
5351//
5352// See the AWS API reference guide for AWS Backup's
5353// API operation ListTags for usage and error information.
5354//
5355// Returned Error Types:
5356//   * ResourceNotFoundException
5357//   A resource that is required for the action doesn't exist.
5358//
5359//   * InvalidParameterValueException
5360//   Indicates that something is wrong with a parameter's value. For example,
5361//   the value is out of range.
5362//
5363//   * MissingParameterValueException
5364//   Indicates that a required parameter is missing.
5365//
5366//   * ServiceUnavailableException
5367//   The request failed due to a temporary failure of the server.
5368//
5369// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListTags
5370func (c *Backup) ListTags(input *ListTagsInput) (*ListTagsOutput, error) {
5371	req, out := c.ListTagsRequest(input)
5372	return out, req.Send()
5373}
5374
5375// ListTagsWithContext is the same as ListTags with the addition of
5376// the ability to pass a context and additional request options.
5377//
5378// See ListTags for details on how to use this API operation.
5379//
5380// The context must be non-nil and will be used for request cancellation. If
5381// the context is nil a panic will occur. In the future the SDK may create
5382// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5383// for more information on using Contexts.
5384func (c *Backup) ListTagsWithContext(ctx aws.Context, input *ListTagsInput, opts ...request.Option) (*ListTagsOutput, error) {
5385	req, out := c.ListTagsRequest(input)
5386	req.SetContext(ctx)
5387	req.ApplyOptions(opts...)
5388	return out, req.Send()
5389}
5390
5391// ListTagsPages iterates over the pages of a ListTags operation,
5392// calling the "fn" function with the response data for each page. To stop
5393// iterating, return false from the fn function.
5394//
5395// See ListTags method for more information on how to use this operation.
5396//
5397// Note: This operation can generate multiple requests to a service.
5398//
5399//    // Example iterating over at most 3 pages of a ListTags operation.
5400//    pageNum := 0
5401//    err := client.ListTagsPages(params,
5402//        func(page *backup.ListTagsOutput, lastPage bool) bool {
5403//            pageNum++
5404//            fmt.Println(page)
5405//            return pageNum <= 3
5406//        })
5407//
5408func (c *Backup) ListTagsPages(input *ListTagsInput, fn func(*ListTagsOutput, bool) bool) error {
5409	return c.ListTagsPagesWithContext(aws.BackgroundContext(), input, fn)
5410}
5411
5412// ListTagsPagesWithContext same as ListTagsPages except
5413// it takes a Context and allows setting request options on the pages.
5414//
5415// The context must be non-nil and will be used for request cancellation. If
5416// the context is nil a panic will occur. In the future the SDK may create
5417// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5418// for more information on using Contexts.
5419func (c *Backup) ListTagsPagesWithContext(ctx aws.Context, input *ListTagsInput, fn func(*ListTagsOutput, bool) bool, opts ...request.Option) error {
5420	p := request.Pagination{
5421		NewRequest: func() (*request.Request, error) {
5422			var inCpy *ListTagsInput
5423			if input != nil {
5424				tmp := *input
5425				inCpy = &tmp
5426			}
5427			req, _ := c.ListTagsRequest(inCpy)
5428			req.SetContext(ctx)
5429			req.ApplyOptions(opts...)
5430			return req, nil
5431		},
5432	}
5433
5434	for p.Next() {
5435		if !fn(p.Page().(*ListTagsOutput), !p.HasNextPage()) {
5436			break
5437		}
5438	}
5439
5440	return p.Err()
5441}
5442
5443const opPutBackupVaultAccessPolicy = "PutBackupVaultAccessPolicy"
5444
5445// PutBackupVaultAccessPolicyRequest generates a "aws/request.Request" representing the
5446// client's request for the PutBackupVaultAccessPolicy operation. The "output" return
5447// value will be populated with the request's response once the request completes
5448// successfully.
5449//
5450// Use "Send" method on the returned Request to send the API call to the service.
5451// the "output" return value is not valid until after Send returns without error.
5452//
5453// See PutBackupVaultAccessPolicy for more information on using the PutBackupVaultAccessPolicy
5454// API call, and error handling.
5455//
5456// This method is useful when you want to inject custom logic or configuration
5457// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5458//
5459//
5460//    // Example sending a request using the PutBackupVaultAccessPolicyRequest method.
5461//    req, resp := client.PutBackupVaultAccessPolicyRequest(params)
5462//
5463//    err := req.Send()
5464//    if err == nil { // resp is now filled
5465//        fmt.Println(resp)
5466//    }
5467//
5468// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/PutBackupVaultAccessPolicy
5469func (c *Backup) PutBackupVaultAccessPolicyRequest(input *PutBackupVaultAccessPolicyInput) (req *request.Request, output *PutBackupVaultAccessPolicyOutput) {
5470	op := &request.Operation{
5471		Name:       opPutBackupVaultAccessPolicy,
5472		HTTPMethod: "PUT",
5473		HTTPPath:   "/backup-vaults/{backupVaultName}/access-policy",
5474	}
5475
5476	if input == nil {
5477		input = &PutBackupVaultAccessPolicyInput{}
5478	}
5479
5480	output = &PutBackupVaultAccessPolicyOutput{}
5481	req = c.newRequest(op, input, output)
5482	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5483	return
5484}
5485
5486// PutBackupVaultAccessPolicy API operation for AWS Backup.
5487//
5488// Sets a resource-based policy that is used to manage access permissions on
5489// the target backup vault. Requires a backup vault name and an access policy
5490// document in JSON format.
5491//
5492// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5493// with awserr.Error's Code and Message methods to get detailed information about
5494// the error.
5495//
5496// See the AWS API reference guide for AWS Backup's
5497// API operation PutBackupVaultAccessPolicy for usage and error information.
5498//
5499// Returned Error Types:
5500//   * ResourceNotFoundException
5501//   A resource that is required for the action doesn't exist.
5502//
5503//   * InvalidParameterValueException
5504//   Indicates that something is wrong with a parameter's value. For example,
5505//   the value is out of range.
5506//
5507//   * MissingParameterValueException
5508//   Indicates that a required parameter is missing.
5509//
5510//   * ServiceUnavailableException
5511//   The request failed due to a temporary failure of the server.
5512//
5513// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/PutBackupVaultAccessPolicy
5514func (c *Backup) PutBackupVaultAccessPolicy(input *PutBackupVaultAccessPolicyInput) (*PutBackupVaultAccessPolicyOutput, error) {
5515	req, out := c.PutBackupVaultAccessPolicyRequest(input)
5516	return out, req.Send()
5517}
5518
5519// PutBackupVaultAccessPolicyWithContext is the same as PutBackupVaultAccessPolicy with the addition of
5520// the ability to pass a context and additional request options.
5521//
5522// See PutBackupVaultAccessPolicy for details on how to use this API operation.
5523//
5524// The context must be non-nil and will be used for request cancellation. If
5525// the context is nil a panic will occur. In the future the SDK may create
5526// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5527// for more information on using Contexts.
5528func (c *Backup) PutBackupVaultAccessPolicyWithContext(ctx aws.Context, input *PutBackupVaultAccessPolicyInput, opts ...request.Option) (*PutBackupVaultAccessPolicyOutput, error) {
5529	req, out := c.PutBackupVaultAccessPolicyRequest(input)
5530	req.SetContext(ctx)
5531	req.ApplyOptions(opts...)
5532	return out, req.Send()
5533}
5534
5535const opPutBackupVaultLockConfiguration = "PutBackupVaultLockConfiguration"
5536
5537// PutBackupVaultLockConfigurationRequest generates a "aws/request.Request" representing the
5538// client's request for the PutBackupVaultLockConfiguration operation. The "output" return
5539// value will be populated with the request's response once the request completes
5540// successfully.
5541//
5542// Use "Send" method on the returned Request to send the API call to the service.
5543// the "output" return value is not valid until after Send returns without error.
5544//
5545// See PutBackupVaultLockConfiguration for more information on using the PutBackupVaultLockConfiguration
5546// API call, and error handling.
5547//
5548// This method is useful when you want to inject custom logic or configuration
5549// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5550//
5551//
5552//    // Example sending a request using the PutBackupVaultLockConfigurationRequest method.
5553//    req, resp := client.PutBackupVaultLockConfigurationRequest(params)
5554//
5555//    err := req.Send()
5556//    if err == nil { // resp is now filled
5557//        fmt.Println(resp)
5558//    }
5559//
5560// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/PutBackupVaultLockConfiguration
5561func (c *Backup) PutBackupVaultLockConfigurationRequest(input *PutBackupVaultLockConfigurationInput) (req *request.Request, output *PutBackupVaultLockConfigurationOutput) {
5562	op := &request.Operation{
5563		Name:       opPutBackupVaultLockConfiguration,
5564		HTTPMethod: "PUT",
5565		HTTPPath:   "/backup-vaults/{backupVaultName}/vault-lock",
5566	}
5567
5568	if input == nil {
5569		input = &PutBackupVaultLockConfigurationInput{}
5570	}
5571
5572	output = &PutBackupVaultLockConfigurationOutput{}
5573	req = c.newRequest(op, input, output)
5574	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5575	return
5576}
5577
5578// PutBackupVaultLockConfiguration API operation for AWS Backup.
5579//
5580// Applies Backup Vault Lock to a backup vault, preventing attempts to delete
5581// any recovery point stored in or created in a backup vault. Vault Lock also
5582// prevents attempts to update the lifecycle policy that controls the retention
5583// period of any recovery point currently stored in a backup vault. If specified,
5584// Vault Lock enforces a minimum and maximum retention period for future backup
5585// and copy jobs that target a backup vault.
5586//
5587// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5588// with awserr.Error's Code and Message methods to get detailed information about
5589// the error.
5590//
5591// See the AWS API reference guide for AWS Backup's
5592// API operation PutBackupVaultLockConfiguration for usage and error information.
5593//
5594// Returned Error Types:
5595//   * ResourceNotFoundException
5596//   A resource that is required for the action doesn't exist.
5597//
5598//   * InvalidParameterValueException
5599//   Indicates that something is wrong with a parameter's value. For example,
5600//   the value is out of range.
5601//
5602//   * MissingParameterValueException
5603//   Indicates that a required parameter is missing.
5604//
5605//   * InvalidRequestException
5606//   Indicates that something is wrong with the input to the request. For example,
5607//   a parameter is of the wrong type.
5608//
5609//   * ServiceUnavailableException
5610//   The request failed due to a temporary failure of the server.
5611//
5612// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/PutBackupVaultLockConfiguration
5613func (c *Backup) PutBackupVaultLockConfiguration(input *PutBackupVaultLockConfigurationInput) (*PutBackupVaultLockConfigurationOutput, error) {
5614	req, out := c.PutBackupVaultLockConfigurationRequest(input)
5615	return out, req.Send()
5616}
5617
5618// PutBackupVaultLockConfigurationWithContext is the same as PutBackupVaultLockConfiguration with the addition of
5619// the ability to pass a context and additional request options.
5620//
5621// See PutBackupVaultLockConfiguration for details on how to use this API operation.
5622//
5623// The context must be non-nil and will be used for request cancellation. If
5624// the context is nil a panic will occur. In the future the SDK may create
5625// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5626// for more information on using Contexts.
5627func (c *Backup) PutBackupVaultLockConfigurationWithContext(ctx aws.Context, input *PutBackupVaultLockConfigurationInput, opts ...request.Option) (*PutBackupVaultLockConfigurationOutput, error) {
5628	req, out := c.PutBackupVaultLockConfigurationRequest(input)
5629	req.SetContext(ctx)
5630	req.ApplyOptions(opts...)
5631	return out, req.Send()
5632}
5633
5634const opPutBackupVaultNotifications = "PutBackupVaultNotifications"
5635
5636// PutBackupVaultNotificationsRequest generates a "aws/request.Request" representing the
5637// client's request for the PutBackupVaultNotifications operation. The "output" return
5638// value will be populated with the request's response once the request completes
5639// successfully.
5640//
5641// Use "Send" method on the returned Request to send the API call to the service.
5642// the "output" return value is not valid until after Send returns without error.
5643//
5644// See PutBackupVaultNotifications for more information on using the PutBackupVaultNotifications
5645// API call, and error handling.
5646//
5647// This method is useful when you want to inject custom logic or configuration
5648// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5649//
5650//
5651//    // Example sending a request using the PutBackupVaultNotificationsRequest method.
5652//    req, resp := client.PutBackupVaultNotificationsRequest(params)
5653//
5654//    err := req.Send()
5655//    if err == nil { // resp is now filled
5656//        fmt.Println(resp)
5657//    }
5658//
5659// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/PutBackupVaultNotifications
5660func (c *Backup) PutBackupVaultNotificationsRequest(input *PutBackupVaultNotificationsInput) (req *request.Request, output *PutBackupVaultNotificationsOutput) {
5661	op := &request.Operation{
5662		Name:       opPutBackupVaultNotifications,
5663		HTTPMethod: "PUT",
5664		HTTPPath:   "/backup-vaults/{backupVaultName}/notification-configuration",
5665	}
5666
5667	if input == nil {
5668		input = &PutBackupVaultNotificationsInput{}
5669	}
5670
5671	output = &PutBackupVaultNotificationsOutput{}
5672	req = c.newRequest(op, input, output)
5673	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5674	return
5675}
5676
5677// PutBackupVaultNotifications API operation for AWS Backup.
5678//
5679// Turns on notifications on a backup vault for the specified topic and events.
5680//
5681// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5682// with awserr.Error's Code and Message methods to get detailed information about
5683// the error.
5684//
5685// See the AWS API reference guide for AWS Backup's
5686// API operation PutBackupVaultNotifications for usage and error information.
5687//
5688// Returned Error Types:
5689//   * ResourceNotFoundException
5690//   A resource that is required for the action doesn't exist.
5691//
5692//   * InvalidParameterValueException
5693//   Indicates that something is wrong with a parameter's value. For example,
5694//   the value is out of range.
5695//
5696//   * MissingParameterValueException
5697//   Indicates that a required parameter is missing.
5698//
5699//   * ServiceUnavailableException
5700//   The request failed due to a temporary failure of the server.
5701//
5702// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/PutBackupVaultNotifications
5703func (c *Backup) PutBackupVaultNotifications(input *PutBackupVaultNotificationsInput) (*PutBackupVaultNotificationsOutput, error) {
5704	req, out := c.PutBackupVaultNotificationsRequest(input)
5705	return out, req.Send()
5706}
5707
5708// PutBackupVaultNotificationsWithContext is the same as PutBackupVaultNotifications with the addition of
5709// the ability to pass a context and additional request options.
5710//
5711// See PutBackupVaultNotifications for details on how to use this API operation.
5712//
5713// The context must be non-nil and will be used for request cancellation. If
5714// the context is nil a panic will occur. In the future the SDK may create
5715// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5716// for more information on using Contexts.
5717func (c *Backup) PutBackupVaultNotificationsWithContext(ctx aws.Context, input *PutBackupVaultNotificationsInput, opts ...request.Option) (*PutBackupVaultNotificationsOutput, error) {
5718	req, out := c.PutBackupVaultNotificationsRequest(input)
5719	req.SetContext(ctx)
5720	req.ApplyOptions(opts...)
5721	return out, req.Send()
5722}
5723
5724const opStartBackupJob = "StartBackupJob"
5725
5726// StartBackupJobRequest generates a "aws/request.Request" representing the
5727// client's request for the StartBackupJob operation. The "output" return
5728// value will be populated with the request's response once the request completes
5729// successfully.
5730//
5731// Use "Send" method on the returned Request to send the API call to the service.
5732// the "output" return value is not valid until after Send returns without error.
5733//
5734// See StartBackupJob for more information on using the StartBackupJob
5735// API call, and error handling.
5736//
5737// This method is useful when you want to inject custom logic or configuration
5738// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5739//
5740//
5741//    // Example sending a request using the StartBackupJobRequest method.
5742//    req, resp := client.StartBackupJobRequest(params)
5743//
5744//    err := req.Send()
5745//    if err == nil { // resp is now filled
5746//        fmt.Println(resp)
5747//    }
5748//
5749// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/StartBackupJob
5750func (c *Backup) StartBackupJobRequest(input *StartBackupJobInput) (req *request.Request, output *StartBackupJobOutput) {
5751	op := &request.Operation{
5752		Name:       opStartBackupJob,
5753		HTTPMethod: "PUT",
5754		HTTPPath:   "/backup-jobs",
5755	}
5756
5757	if input == nil {
5758		input = &StartBackupJobInput{}
5759	}
5760
5761	output = &StartBackupJobOutput{}
5762	req = c.newRequest(op, input, output)
5763	return
5764}
5765
5766// StartBackupJob API operation for AWS Backup.
5767//
5768// Starts an on-demand backup job for the specified resource.
5769//
5770// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5771// with awserr.Error's Code and Message methods to get detailed information about
5772// the error.
5773//
5774// See the AWS API reference guide for AWS Backup's
5775// API operation StartBackupJob for usage and error information.
5776//
5777// Returned Error Types:
5778//   * ResourceNotFoundException
5779//   A resource that is required for the action doesn't exist.
5780//
5781//   * InvalidParameterValueException
5782//   Indicates that something is wrong with a parameter's value. For example,
5783//   the value is out of range.
5784//
5785//   * MissingParameterValueException
5786//   Indicates that a required parameter is missing.
5787//
5788//   * InvalidRequestException
5789//   Indicates that something is wrong with the input to the request. For example,
5790//   a parameter is of the wrong type.
5791//
5792//   * ServiceUnavailableException
5793//   The request failed due to a temporary failure of the server.
5794//
5795//   * LimitExceededException
5796//   A limit in the request has been exceeded; for example, a maximum number of
5797//   items allowed in a request.
5798//
5799// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/StartBackupJob
5800func (c *Backup) StartBackupJob(input *StartBackupJobInput) (*StartBackupJobOutput, error) {
5801	req, out := c.StartBackupJobRequest(input)
5802	return out, req.Send()
5803}
5804
5805// StartBackupJobWithContext is the same as StartBackupJob with the addition of
5806// the ability to pass a context and additional request options.
5807//
5808// See StartBackupJob for details on how to use this API operation.
5809//
5810// The context must be non-nil and will be used for request cancellation. If
5811// the context is nil a panic will occur. In the future the SDK may create
5812// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5813// for more information on using Contexts.
5814func (c *Backup) StartBackupJobWithContext(ctx aws.Context, input *StartBackupJobInput, opts ...request.Option) (*StartBackupJobOutput, error) {
5815	req, out := c.StartBackupJobRequest(input)
5816	req.SetContext(ctx)
5817	req.ApplyOptions(opts...)
5818	return out, req.Send()
5819}
5820
5821const opStartCopyJob = "StartCopyJob"
5822
5823// StartCopyJobRequest generates a "aws/request.Request" representing the
5824// client's request for the StartCopyJob operation. The "output" return
5825// value will be populated with the request's response once the request completes
5826// successfully.
5827//
5828// Use "Send" method on the returned Request to send the API call to the service.
5829// the "output" return value is not valid until after Send returns without error.
5830//
5831// See StartCopyJob for more information on using the StartCopyJob
5832// API call, and error handling.
5833//
5834// This method is useful when you want to inject custom logic or configuration
5835// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5836//
5837//
5838//    // Example sending a request using the StartCopyJobRequest method.
5839//    req, resp := client.StartCopyJobRequest(params)
5840//
5841//    err := req.Send()
5842//    if err == nil { // resp is now filled
5843//        fmt.Println(resp)
5844//    }
5845//
5846// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/StartCopyJob
5847func (c *Backup) StartCopyJobRequest(input *StartCopyJobInput) (req *request.Request, output *StartCopyJobOutput) {
5848	op := &request.Operation{
5849		Name:       opStartCopyJob,
5850		HTTPMethod: "PUT",
5851		HTTPPath:   "/copy-jobs",
5852	}
5853
5854	if input == nil {
5855		input = &StartCopyJobInput{}
5856	}
5857
5858	output = &StartCopyJobOutput{}
5859	req = c.newRequest(op, input, output)
5860	return
5861}
5862
5863// StartCopyJob API operation for AWS Backup.
5864//
5865// Starts a job to create a one-time copy of the specified resource.
5866//
5867// Does not support continuous backups.
5868//
5869// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5870// with awserr.Error's Code and Message methods to get detailed information about
5871// the error.
5872//
5873// See the AWS API reference guide for AWS Backup's
5874// API operation StartCopyJob for usage and error information.
5875//
5876// Returned Error Types:
5877//   * ResourceNotFoundException
5878//   A resource that is required for the action doesn't exist.
5879//
5880//   * InvalidParameterValueException
5881//   Indicates that something is wrong with a parameter's value. For example,
5882//   the value is out of range.
5883//
5884//   * MissingParameterValueException
5885//   Indicates that a required parameter is missing.
5886//
5887//   * ServiceUnavailableException
5888//   The request failed due to a temporary failure of the server.
5889//
5890//   * LimitExceededException
5891//   A limit in the request has been exceeded; for example, a maximum number of
5892//   items allowed in a request.
5893//
5894//   * InvalidRequestException
5895//   Indicates that something is wrong with the input to the request. For example,
5896//   a parameter is of the wrong type.
5897//
5898// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/StartCopyJob
5899func (c *Backup) StartCopyJob(input *StartCopyJobInput) (*StartCopyJobOutput, error) {
5900	req, out := c.StartCopyJobRequest(input)
5901	return out, req.Send()
5902}
5903
5904// StartCopyJobWithContext is the same as StartCopyJob with the addition of
5905// the ability to pass a context and additional request options.
5906//
5907// See StartCopyJob for details on how to use this API operation.
5908//
5909// The context must be non-nil and will be used for request cancellation. If
5910// the context is nil a panic will occur. In the future the SDK may create
5911// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5912// for more information on using Contexts.
5913func (c *Backup) StartCopyJobWithContext(ctx aws.Context, input *StartCopyJobInput, opts ...request.Option) (*StartCopyJobOutput, error) {
5914	req, out := c.StartCopyJobRequest(input)
5915	req.SetContext(ctx)
5916	req.ApplyOptions(opts...)
5917	return out, req.Send()
5918}
5919
5920const opStartReportJob = "StartReportJob"
5921
5922// StartReportJobRequest generates a "aws/request.Request" representing the
5923// client's request for the StartReportJob operation. The "output" return
5924// value will be populated with the request's response once the request completes
5925// successfully.
5926//
5927// Use "Send" method on the returned Request to send the API call to the service.
5928// the "output" return value is not valid until after Send returns without error.
5929//
5930// See StartReportJob for more information on using the StartReportJob
5931// API call, and error handling.
5932//
5933// This method is useful when you want to inject custom logic or configuration
5934// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5935//
5936//
5937//    // Example sending a request using the StartReportJobRequest method.
5938//    req, resp := client.StartReportJobRequest(params)
5939//
5940//    err := req.Send()
5941//    if err == nil { // resp is now filled
5942//        fmt.Println(resp)
5943//    }
5944//
5945// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/StartReportJob
5946func (c *Backup) StartReportJobRequest(input *StartReportJobInput) (req *request.Request, output *StartReportJobOutput) {
5947	op := &request.Operation{
5948		Name:       opStartReportJob,
5949		HTTPMethod: "POST",
5950		HTTPPath:   "/audit/report-jobs/{reportPlanName}",
5951	}
5952
5953	if input == nil {
5954		input = &StartReportJobInput{}
5955	}
5956
5957	output = &StartReportJobOutput{}
5958	req = c.newRequest(op, input, output)
5959	return
5960}
5961
5962// StartReportJob API operation for AWS Backup.
5963//
5964// Starts an on-demand report job for the specified report plan.
5965//
5966// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5967// with awserr.Error's Code and Message methods to get detailed information about
5968// the error.
5969//
5970// See the AWS API reference guide for AWS Backup's
5971// API operation StartReportJob for usage and error information.
5972//
5973// Returned Error Types:
5974//   * InvalidParameterValueException
5975//   Indicates that something is wrong with a parameter's value. For example,
5976//   the value is out of range.
5977//
5978//   * ServiceUnavailableException
5979//   The request failed due to a temporary failure of the server.
5980//
5981//   * MissingParameterValueException
5982//   Indicates that a required parameter is missing.
5983//
5984//   * ResourceNotFoundException
5985//   A resource that is required for the action doesn't exist.
5986//
5987// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/StartReportJob
5988func (c *Backup) StartReportJob(input *StartReportJobInput) (*StartReportJobOutput, error) {
5989	req, out := c.StartReportJobRequest(input)
5990	return out, req.Send()
5991}
5992
5993// StartReportJobWithContext is the same as StartReportJob with the addition of
5994// the ability to pass a context and additional request options.
5995//
5996// See StartReportJob for details on how to use this API operation.
5997//
5998// The context must be non-nil and will be used for request cancellation. If
5999// the context is nil a panic will occur. In the future the SDK may create
6000// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6001// for more information on using Contexts.
6002func (c *Backup) StartReportJobWithContext(ctx aws.Context, input *StartReportJobInput, opts ...request.Option) (*StartReportJobOutput, error) {
6003	req, out := c.StartReportJobRequest(input)
6004	req.SetContext(ctx)
6005	req.ApplyOptions(opts...)
6006	return out, req.Send()
6007}
6008
6009const opStartRestoreJob = "StartRestoreJob"
6010
6011// StartRestoreJobRequest generates a "aws/request.Request" representing the
6012// client's request for the StartRestoreJob operation. The "output" return
6013// value will be populated with the request's response once the request completes
6014// successfully.
6015//
6016// Use "Send" method on the returned Request to send the API call to the service.
6017// the "output" return value is not valid until after Send returns without error.
6018//
6019// See StartRestoreJob for more information on using the StartRestoreJob
6020// API call, and error handling.
6021//
6022// This method is useful when you want to inject custom logic or configuration
6023// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6024//
6025//
6026//    // Example sending a request using the StartRestoreJobRequest method.
6027//    req, resp := client.StartRestoreJobRequest(params)
6028//
6029//    err := req.Send()
6030//    if err == nil { // resp is now filled
6031//        fmt.Println(resp)
6032//    }
6033//
6034// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/StartRestoreJob
6035func (c *Backup) StartRestoreJobRequest(input *StartRestoreJobInput) (req *request.Request, output *StartRestoreJobOutput) {
6036	op := &request.Operation{
6037		Name:       opStartRestoreJob,
6038		HTTPMethod: "PUT",
6039		HTTPPath:   "/restore-jobs",
6040	}
6041
6042	if input == nil {
6043		input = &StartRestoreJobInput{}
6044	}
6045
6046	output = &StartRestoreJobOutput{}
6047	req = c.newRequest(op, input, output)
6048	return
6049}
6050
6051// StartRestoreJob API operation for AWS Backup.
6052//
6053// Recovers the saved resource identified by an Amazon Resource Name (ARN).
6054//
6055// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6056// with awserr.Error's Code and Message methods to get detailed information about
6057// the error.
6058//
6059// See the AWS API reference guide for AWS Backup's
6060// API operation StartRestoreJob for usage and error information.
6061//
6062// Returned Error Types:
6063//   * ResourceNotFoundException
6064//   A resource that is required for the action doesn't exist.
6065//
6066//   * InvalidParameterValueException
6067//   Indicates that something is wrong with a parameter's value. For example,
6068//   the value is out of range.
6069//
6070//   * MissingParameterValueException
6071//   Indicates that a required parameter is missing.
6072//
6073//   * ServiceUnavailableException
6074//   The request failed due to a temporary failure of the server.
6075//
6076// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/StartRestoreJob
6077func (c *Backup) StartRestoreJob(input *StartRestoreJobInput) (*StartRestoreJobOutput, error) {
6078	req, out := c.StartRestoreJobRequest(input)
6079	return out, req.Send()
6080}
6081
6082// StartRestoreJobWithContext is the same as StartRestoreJob with the addition of
6083// the ability to pass a context and additional request options.
6084//
6085// See StartRestoreJob for details on how to use this API operation.
6086//
6087// The context must be non-nil and will be used for request cancellation. If
6088// the context is nil a panic will occur. In the future the SDK may create
6089// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6090// for more information on using Contexts.
6091func (c *Backup) StartRestoreJobWithContext(ctx aws.Context, input *StartRestoreJobInput, opts ...request.Option) (*StartRestoreJobOutput, error) {
6092	req, out := c.StartRestoreJobRequest(input)
6093	req.SetContext(ctx)
6094	req.ApplyOptions(opts...)
6095	return out, req.Send()
6096}
6097
6098const opStopBackupJob = "StopBackupJob"
6099
6100// StopBackupJobRequest generates a "aws/request.Request" representing the
6101// client's request for the StopBackupJob operation. The "output" return
6102// value will be populated with the request's response once the request completes
6103// successfully.
6104//
6105// Use "Send" method on the returned Request to send the API call to the service.
6106// the "output" return value is not valid until after Send returns without error.
6107//
6108// See StopBackupJob for more information on using the StopBackupJob
6109// API call, and error handling.
6110//
6111// This method is useful when you want to inject custom logic or configuration
6112// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6113//
6114//
6115//    // Example sending a request using the StopBackupJobRequest method.
6116//    req, resp := client.StopBackupJobRequest(params)
6117//
6118//    err := req.Send()
6119//    if err == nil { // resp is now filled
6120//        fmt.Println(resp)
6121//    }
6122//
6123// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/StopBackupJob
6124func (c *Backup) StopBackupJobRequest(input *StopBackupJobInput) (req *request.Request, output *StopBackupJobOutput) {
6125	op := &request.Operation{
6126		Name:       opStopBackupJob,
6127		HTTPMethod: "POST",
6128		HTTPPath:   "/backup-jobs/{backupJobId}",
6129	}
6130
6131	if input == nil {
6132		input = &StopBackupJobInput{}
6133	}
6134
6135	output = &StopBackupJobOutput{}
6136	req = c.newRequest(op, input, output)
6137	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6138	return
6139}
6140
6141// StopBackupJob API operation for AWS Backup.
6142//
6143// Attempts to cancel a job to create a one-time backup of a resource.
6144//
6145// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6146// with awserr.Error's Code and Message methods to get detailed information about
6147// the error.
6148//
6149// See the AWS API reference guide for AWS Backup's
6150// API operation StopBackupJob for usage and error information.
6151//
6152// Returned Error Types:
6153//   * MissingParameterValueException
6154//   Indicates that a required parameter is missing.
6155//
6156//   * ResourceNotFoundException
6157//   A resource that is required for the action doesn't exist.
6158//
6159//   * InvalidParameterValueException
6160//   Indicates that something is wrong with a parameter's value. For example,
6161//   the value is out of range.
6162//
6163//   * InvalidRequestException
6164//   Indicates that something is wrong with the input to the request. For example,
6165//   a parameter is of the wrong type.
6166//
6167//   * ServiceUnavailableException
6168//   The request failed due to a temporary failure of the server.
6169//
6170// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/StopBackupJob
6171func (c *Backup) StopBackupJob(input *StopBackupJobInput) (*StopBackupJobOutput, error) {
6172	req, out := c.StopBackupJobRequest(input)
6173	return out, req.Send()
6174}
6175
6176// StopBackupJobWithContext is the same as StopBackupJob with the addition of
6177// the ability to pass a context and additional request options.
6178//
6179// See StopBackupJob for details on how to use this API operation.
6180//
6181// The context must be non-nil and will be used for request cancellation. If
6182// the context is nil a panic will occur. In the future the SDK may create
6183// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6184// for more information on using Contexts.
6185func (c *Backup) StopBackupJobWithContext(ctx aws.Context, input *StopBackupJobInput, opts ...request.Option) (*StopBackupJobOutput, error) {
6186	req, out := c.StopBackupJobRequest(input)
6187	req.SetContext(ctx)
6188	req.ApplyOptions(opts...)
6189	return out, req.Send()
6190}
6191
6192const opTagResource = "TagResource"
6193
6194// TagResourceRequest generates a "aws/request.Request" representing the
6195// client's request for the TagResource operation. The "output" return
6196// value will be populated with the request's response once the request completes
6197// successfully.
6198//
6199// Use "Send" method on the returned Request to send the API call to the service.
6200// the "output" return value is not valid until after Send returns without error.
6201//
6202// See TagResource for more information on using the TagResource
6203// API call, and error handling.
6204//
6205// This method is useful when you want to inject custom logic or configuration
6206// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6207//
6208//
6209//    // Example sending a request using the TagResourceRequest method.
6210//    req, resp := client.TagResourceRequest(params)
6211//
6212//    err := req.Send()
6213//    if err == nil { // resp is now filled
6214//        fmt.Println(resp)
6215//    }
6216//
6217// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/TagResource
6218func (c *Backup) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
6219	op := &request.Operation{
6220		Name:       opTagResource,
6221		HTTPMethod: "POST",
6222		HTTPPath:   "/tags/{resourceArn}",
6223	}
6224
6225	if input == nil {
6226		input = &TagResourceInput{}
6227	}
6228
6229	output = &TagResourceOutput{}
6230	req = c.newRequest(op, input, output)
6231	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6232	return
6233}
6234
6235// TagResource API operation for AWS Backup.
6236//
6237// Assigns a set of key-value pairs to a recovery point, backup plan, or backup
6238// vault identified by an Amazon Resource Name (ARN).
6239//
6240// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6241// with awserr.Error's Code and Message methods to get detailed information about
6242// the error.
6243//
6244// See the AWS API reference guide for AWS Backup's
6245// API operation TagResource for usage and error information.
6246//
6247// Returned Error Types:
6248//   * ResourceNotFoundException
6249//   A resource that is required for the action doesn't exist.
6250//
6251//   * InvalidParameterValueException
6252//   Indicates that something is wrong with a parameter's value. For example,
6253//   the value is out of range.
6254//
6255//   * MissingParameterValueException
6256//   Indicates that a required parameter is missing.
6257//
6258//   * ServiceUnavailableException
6259//   The request failed due to a temporary failure of the server.
6260//
6261//   * LimitExceededException
6262//   A limit in the request has been exceeded; for example, a maximum number of
6263//   items allowed in a request.
6264//
6265// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/TagResource
6266func (c *Backup) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
6267	req, out := c.TagResourceRequest(input)
6268	return out, req.Send()
6269}
6270
6271// TagResourceWithContext is the same as TagResource with the addition of
6272// the ability to pass a context and additional request options.
6273//
6274// See TagResource for details on how to use this API operation.
6275//
6276// The context must be non-nil and will be used for request cancellation. If
6277// the context is nil a panic will occur. In the future the SDK may create
6278// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6279// for more information on using Contexts.
6280func (c *Backup) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
6281	req, out := c.TagResourceRequest(input)
6282	req.SetContext(ctx)
6283	req.ApplyOptions(opts...)
6284	return out, req.Send()
6285}
6286
6287const opUntagResource = "UntagResource"
6288
6289// UntagResourceRequest generates a "aws/request.Request" representing the
6290// client's request for the UntagResource operation. The "output" return
6291// value will be populated with the request's response once the request completes
6292// successfully.
6293//
6294// Use "Send" method on the returned Request to send the API call to the service.
6295// the "output" return value is not valid until after Send returns without error.
6296//
6297// See UntagResource for more information on using the UntagResource
6298// API call, and error handling.
6299//
6300// This method is useful when you want to inject custom logic or configuration
6301// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6302//
6303//
6304//    // Example sending a request using the UntagResourceRequest method.
6305//    req, resp := client.UntagResourceRequest(params)
6306//
6307//    err := req.Send()
6308//    if err == nil { // resp is now filled
6309//        fmt.Println(resp)
6310//    }
6311//
6312// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/UntagResource
6313func (c *Backup) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
6314	op := &request.Operation{
6315		Name:       opUntagResource,
6316		HTTPMethod: "POST",
6317		HTTPPath:   "/untag/{resourceArn}",
6318	}
6319
6320	if input == nil {
6321		input = &UntagResourceInput{}
6322	}
6323
6324	output = &UntagResourceOutput{}
6325	req = c.newRequest(op, input, output)
6326	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6327	return
6328}
6329
6330// UntagResource API operation for AWS Backup.
6331//
6332// Removes a set of key-value pairs from a recovery point, backup plan, or backup
6333// vault identified by an Amazon Resource Name (ARN)
6334//
6335// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6336// with awserr.Error's Code and Message methods to get detailed information about
6337// the error.
6338//
6339// See the AWS API reference guide for AWS Backup's
6340// API operation UntagResource for usage and error information.
6341//
6342// Returned Error Types:
6343//   * ResourceNotFoundException
6344//   A resource that is required for the action doesn't exist.
6345//
6346//   * InvalidParameterValueException
6347//   Indicates that something is wrong with a parameter's value. For example,
6348//   the value is out of range.
6349//
6350//   * MissingParameterValueException
6351//   Indicates that a required parameter is missing.
6352//
6353//   * ServiceUnavailableException
6354//   The request failed due to a temporary failure of the server.
6355//
6356// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/UntagResource
6357func (c *Backup) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
6358	req, out := c.UntagResourceRequest(input)
6359	return out, req.Send()
6360}
6361
6362// UntagResourceWithContext is the same as UntagResource with the addition of
6363// the ability to pass a context and additional request options.
6364//
6365// See UntagResource for details on how to use this API operation.
6366//
6367// The context must be non-nil and will be used for request cancellation. If
6368// the context is nil a panic will occur. In the future the SDK may create
6369// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6370// for more information on using Contexts.
6371func (c *Backup) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
6372	req, out := c.UntagResourceRequest(input)
6373	req.SetContext(ctx)
6374	req.ApplyOptions(opts...)
6375	return out, req.Send()
6376}
6377
6378const opUpdateBackupPlan = "UpdateBackupPlan"
6379
6380// UpdateBackupPlanRequest generates a "aws/request.Request" representing the
6381// client's request for the UpdateBackupPlan operation. The "output" return
6382// value will be populated with the request's response once the request completes
6383// successfully.
6384//
6385// Use "Send" method on the returned Request to send the API call to the service.
6386// the "output" return value is not valid until after Send returns without error.
6387//
6388// See UpdateBackupPlan for more information on using the UpdateBackupPlan
6389// API call, and error handling.
6390//
6391// This method is useful when you want to inject custom logic or configuration
6392// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6393//
6394//
6395//    // Example sending a request using the UpdateBackupPlanRequest method.
6396//    req, resp := client.UpdateBackupPlanRequest(params)
6397//
6398//    err := req.Send()
6399//    if err == nil { // resp is now filled
6400//        fmt.Println(resp)
6401//    }
6402//
6403// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/UpdateBackupPlan
6404func (c *Backup) UpdateBackupPlanRequest(input *UpdateBackupPlanInput) (req *request.Request, output *UpdateBackupPlanOutput) {
6405	op := &request.Operation{
6406		Name:       opUpdateBackupPlan,
6407		HTTPMethod: "POST",
6408		HTTPPath:   "/backup/plans/{backupPlanId}",
6409	}
6410
6411	if input == nil {
6412		input = &UpdateBackupPlanInput{}
6413	}
6414
6415	output = &UpdateBackupPlanOutput{}
6416	req = c.newRequest(op, input, output)
6417	return
6418}
6419
6420// UpdateBackupPlan API operation for AWS Backup.
6421//
6422// Updates an existing backup plan identified by its backupPlanId with the input
6423// document in JSON format. The new version is uniquely identified by a VersionId.
6424//
6425// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6426// with awserr.Error's Code and Message methods to get detailed information about
6427// the error.
6428//
6429// See the AWS API reference guide for AWS Backup's
6430// API operation UpdateBackupPlan for usage and error information.
6431//
6432// Returned Error Types:
6433//   * ResourceNotFoundException
6434//   A resource that is required for the action doesn't exist.
6435//
6436//   * InvalidParameterValueException
6437//   Indicates that something is wrong with a parameter's value. For example,
6438//   the value is out of range.
6439//
6440//   * MissingParameterValueException
6441//   Indicates that a required parameter is missing.
6442//
6443//   * ServiceUnavailableException
6444//   The request failed due to a temporary failure of the server.
6445//
6446// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/UpdateBackupPlan
6447func (c *Backup) UpdateBackupPlan(input *UpdateBackupPlanInput) (*UpdateBackupPlanOutput, error) {
6448	req, out := c.UpdateBackupPlanRequest(input)
6449	return out, req.Send()
6450}
6451
6452// UpdateBackupPlanWithContext is the same as UpdateBackupPlan with the addition of
6453// the ability to pass a context and additional request options.
6454//
6455// See UpdateBackupPlan for details on how to use this API operation.
6456//
6457// The context must be non-nil and will be used for request cancellation. If
6458// the context is nil a panic will occur. In the future the SDK may create
6459// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6460// for more information on using Contexts.
6461func (c *Backup) UpdateBackupPlanWithContext(ctx aws.Context, input *UpdateBackupPlanInput, opts ...request.Option) (*UpdateBackupPlanOutput, error) {
6462	req, out := c.UpdateBackupPlanRequest(input)
6463	req.SetContext(ctx)
6464	req.ApplyOptions(opts...)
6465	return out, req.Send()
6466}
6467
6468const opUpdateFramework = "UpdateFramework"
6469
6470// UpdateFrameworkRequest generates a "aws/request.Request" representing the
6471// client's request for the UpdateFramework operation. The "output" return
6472// value will be populated with the request's response once the request completes
6473// successfully.
6474//
6475// Use "Send" method on the returned Request to send the API call to the service.
6476// the "output" return value is not valid until after Send returns without error.
6477//
6478// See UpdateFramework for more information on using the UpdateFramework
6479// API call, and error handling.
6480//
6481// This method is useful when you want to inject custom logic or configuration
6482// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6483//
6484//
6485//    // Example sending a request using the UpdateFrameworkRequest method.
6486//    req, resp := client.UpdateFrameworkRequest(params)
6487//
6488//    err := req.Send()
6489//    if err == nil { // resp is now filled
6490//        fmt.Println(resp)
6491//    }
6492//
6493// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/UpdateFramework
6494func (c *Backup) UpdateFrameworkRequest(input *UpdateFrameworkInput) (req *request.Request, output *UpdateFrameworkOutput) {
6495	op := &request.Operation{
6496		Name:       opUpdateFramework,
6497		HTTPMethod: "PUT",
6498		HTTPPath:   "/audit/frameworks/{frameworkName}",
6499	}
6500
6501	if input == nil {
6502		input = &UpdateFrameworkInput{}
6503	}
6504
6505	output = &UpdateFrameworkOutput{}
6506	req = c.newRequest(op, input, output)
6507	return
6508}
6509
6510// UpdateFramework API operation for AWS Backup.
6511//
6512// Updates an existing framework identified by its FrameworkName with the input
6513// document in JSON format.
6514//
6515// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6516// with awserr.Error's Code and Message methods to get detailed information about
6517// the error.
6518//
6519// See the AWS API reference guide for AWS Backup's
6520// API operation UpdateFramework for usage and error information.
6521//
6522// Returned Error Types:
6523//   * AlreadyExistsException
6524//   The required resource already exists.
6525//
6526//   * ResourceNotFoundException
6527//   A resource that is required for the action doesn't exist.
6528//
6529//   * LimitExceededException
6530//   A limit in the request has been exceeded; for example, a maximum number of
6531//   items allowed in a request.
6532//
6533//   * InvalidParameterValueException
6534//   Indicates that something is wrong with a parameter's value. For example,
6535//   the value is out of range.
6536//
6537//   * MissingParameterValueException
6538//   Indicates that a required parameter is missing.
6539//
6540//   * ConflictException
6541//   Backup can't perform the action that you requested until it finishes performing
6542//   a previous action. Try again later.
6543//
6544//   * ServiceUnavailableException
6545//   The request failed due to a temporary failure of the server.
6546//
6547// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/UpdateFramework
6548func (c *Backup) UpdateFramework(input *UpdateFrameworkInput) (*UpdateFrameworkOutput, error) {
6549	req, out := c.UpdateFrameworkRequest(input)
6550	return out, req.Send()
6551}
6552
6553// UpdateFrameworkWithContext is the same as UpdateFramework with the addition of
6554// the ability to pass a context and additional request options.
6555//
6556// See UpdateFramework for details on how to use this API operation.
6557//
6558// The context must be non-nil and will be used for request cancellation. If
6559// the context is nil a panic will occur. In the future the SDK may create
6560// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6561// for more information on using Contexts.
6562func (c *Backup) UpdateFrameworkWithContext(ctx aws.Context, input *UpdateFrameworkInput, opts ...request.Option) (*UpdateFrameworkOutput, error) {
6563	req, out := c.UpdateFrameworkRequest(input)
6564	req.SetContext(ctx)
6565	req.ApplyOptions(opts...)
6566	return out, req.Send()
6567}
6568
6569const opUpdateGlobalSettings = "UpdateGlobalSettings"
6570
6571// UpdateGlobalSettingsRequest generates a "aws/request.Request" representing the
6572// client's request for the UpdateGlobalSettings operation. The "output" return
6573// value will be populated with the request's response once the request completes
6574// successfully.
6575//
6576// Use "Send" method on the returned Request to send the API call to the service.
6577// the "output" return value is not valid until after Send returns without error.
6578//
6579// See UpdateGlobalSettings for more information on using the UpdateGlobalSettings
6580// API call, and error handling.
6581//
6582// This method is useful when you want to inject custom logic or configuration
6583// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6584//
6585//
6586//    // Example sending a request using the UpdateGlobalSettingsRequest method.
6587//    req, resp := client.UpdateGlobalSettingsRequest(params)
6588//
6589//    err := req.Send()
6590//    if err == nil { // resp is now filled
6591//        fmt.Println(resp)
6592//    }
6593//
6594// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/UpdateGlobalSettings
6595func (c *Backup) UpdateGlobalSettingsRequest(input *UpdateGlobalSettingsInput) (req *request.Request, output *UpdateGlobalSettingsOutput) {
6596	op := &request.Operation{
6597		Name:       opUpdateGlobalSettings,
6598		HTTPMethod: "PUT",
6599		HTTPPath:   "/global-settings",
6600	}
6601
6602	if input == nil {
6603		input = &UpdateGlobalSettingsInput{}
6604	}
6605
6606	output = &UpdateGlobalSettingsOutput{}
6607	req = c.newRequest(op, input, output)
6608	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6609	return
6610}
6611
6612// UpdateGlobalSettings API operation for AWS Backup.
6613//
6614// Updates whether the Amazon Web Services account is opted in to cross-account
6615// backup. Returns an error if the account is not an Organizations management
6616// account. Use the DescribeGlobalSettings API to determine the current settings.
6617//
6618// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6619// with awserr.Error's Code and Message methods to get detailed information about
6620// the error.
6621//
6622// See the AWS API reference guide for AWS Backup's
6623// API operation UpdateGlobalSettings for usage and error information.
6624//
6625// Returned Error Types:
6626//   * ServiceUnavailableException
6627//   The request failed due to a temporary failure of the server.
6628//
6629//   * MissingParameterValueException
6630//   Indicates that a required parameter is missing.
6631//
6632//   * InvalidParameterValueException
6633//   Indicates that something is wrong with a parameter's value. For example,
6634//   the value is out of range.
6635//
6636//   * InvalidRequestException
6637//   Indicates that something is wrong with the input to the request. For example,
6638//   a parameter is of the wrong type.
6639//
6640// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/UpdateGlobalSettings
6641func (c *Backup) UpdateGlobalSettings(input *UpdateGlobalSettingsInput) (*UpdateGlobalSettingsOutput, error) {
6642	req, out := c.UpdateGlobalSettingsRequest(input)
6643	return out, req.Send()
6644}
6645
6646// UpdateGlobalSettingsWithContext is the same as UpdateGlobalSettings with the addition of
6647// the ability to pass a context and additional request options.
6648//
6649// See UpdateGlobalSettings for details on how to use this API operation.
6650//
6651// The context must be non-nil and will be used for request cancellation. If
6652// the context is nil a panic will occur. In the future the SDK may create
6653// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6654// for more information on using Contexts.
6655func (c *Backup) UpdateGlobalSettingsWithContext(ctx aws.Context, input *UpdateGlobalSettingsInput, opts ...request.Option) (*UpdateGlobalSettingsOutput, error) {
6656	req, out := c.UpdateGlobalSettingsRequest(input)
6657	req.SetContext(ctx)
6658	req.ApplyOptions(opts...)
6659	return out, req.Send()
6660}
6661
6662const opUpdateRecoveryPointLifecycle = "UpdateRecoveryPointLifecycle"
6663
6664// UpdateRecoveryPointLifecycleRequest generates a "aws/request.Request" representing the
6665// client's request for the UpdateRecoveryPointLifecycle operation. The "output" return
6666// value will be populated with the request's response once the request completes
6667// successfully.
6668//
6669// Use "Send" method on the returned Request to send the API call to the service.
6670// the "output" return value is not valid until after Send returns without error.
6671//
6672// See UpdateRecoveryPointLifecycle for more information on using the UpdateRecoveryPointLifecycle
6673// API call, and error handling.
6674//
6675// This method is useful when you want to inject custom logic or configuration
6676// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6677//
6678//
6679//    // Example sending a request using the UpdateRecoveryPointLifecycleRequest method.
6680//    req, resp := client.UpdateRecoveryPointLifecycleRequest(params)
6681//
6682//    err := req.Send()
6683//    if err == nil { // resp is now filled
6684//        fmt.Println(resp)
6685//    }
6686//
6687// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/UpdateRecoveryPointLifecycle
6688func (c *Backup) UpdateRecoveryPointLifecycleRequest(input *UpdateRecoveryPointLifecycleInput) (req *request.Request, output *UpdateRecoveryPointLifecycleOutput) {
6689	op := &request.Operation{
6690		Name:       opUpdateRecoveryPointLifecycle,
6691		HTTPMethod: "POST",
6692		HTTPPath:   "/backup-vaults/{backupVaultName}/recovery-points/{recoveryPointArn}",
6693	}
6694
6695	if input == nil {
6696		input = &UpdateRecoveryPointLifecycleInput{}
6697	}
6698
6699	output = &UpdateRecoveryPointLifecycleOutput{}
6700	req = c.newRequest(op, input, output)
6701	return
6702}
6703
6704// UpdateRecoveryPointLifecycle API operation for AWS Backup.
6705//
6706// Sets the transition lifecycle of a recovery point.
6707//
6708// The lifecycle defines when a protected resource is transitioned to cold storage
6709// and when it expires. Backup transitions and expires backups automatically
6710// according to the lifecycle that you define.
6711//
6712// Backups transitioned to cold storage must be stored in cold storage for a
6713// minimum of 90 days. Therefore, the “expire after days” setting must be
6714// 90 days greater than the “transition to cold after days” setting. The
6715// “transition to cold after days” setting cannot be changed after a backup
6716// has been transitioned to cold.
6717//
6718// Only Amazon EFS file system backups can be transitioned to cold storage.
6719//
6720// Does not support continuous backups.
6721//
6722// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6723// with awserr.Error's Code and Message methods to get detailed information about
6724// the error.
6725//
6726// See the AWS API reference guide for AWS Backup's
6727// API operation UpdateRecoveryPointLifecycle for usage and error information.
6728//
6729// Returned Error Types:
6730//   * ResourceNotFoundException
6731//   A resource that is required for the action doesn't exist.
6732//
6733//   * InvalidParameterValueException
6734//   Indicates that something is wrong with a parameter's value. For example,
6735//   the value is out of range.
6736//
6737//   * MissingParameterValueException
6738//   Indicates that a required parameter is missing.
6739//
6740//   * ServiceUnavailableException
6741//   The request failed due to a temporary failure of the server.
6742//
6743// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/UpdateRecoveryPointLifecycle
6744func (c *Backup) UpdateRecoveryPointLifecycle(input *UpdateRecoveryPointLifecycleInput) (*UpdateRecoveryPointLifecycleOutput, error) {
6745	req, out := c.UpdateRecoveryPointLifecycleRequest(input)
6746	return out, req.Send()
6747}
6748
6749// UpdateRecoveryPointLifecycleWithContext is the same as UpdateRecoveryPointLifecycle with the addition of
6750// the ability to pass a context and additional request options.
6751//
6752// See UpdateRecoveryPointLifecycle for details on how to use this API operation.
6753//
6754// The context must be non-nil and will be used for request cancellation. If
6755// the context is nil a panic will occur. In the future the SDK may create
6756// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6757// for more information on using Contexts.
6758func (c *Backup) UpdateRecoveryPointLifecycleWithContext(ctx aws.Context, input *UpdateRecoveryPointLifecycleInput, opts ...request.Option) (*UpdateRecoveryPointLifecycleOutput, error) {
6759	req, out := c.UpdateRecoveryPointLifecycleRequest(input)
6760	req.SetContext(ctx)
6761	req.ApplyOptions(opts...)
6762	return out, req.Send()
6763}
6764
6765const opUpdateRegionSettings = "UpdateRegionSettings"
6766
6767// UpdateRegionSettingsRequest generates a "aws/request.Request" representing the
6768// client's request for the UpdateRegionSettings operation. The "output" return
6769// value will be populated with the request's response once the request completes
6770// successfully.
6771//
6772// Use "Send" method on the returned Request to send the API call to the service.
6773// the "output" return value is not valid until after Send returns without error.
6774//
6775// See UpdateRegionSettings for more information on using the UpdateRegionSettings
6776// API call, and error handling.
6777//
6778// This method is useful when you want to inject custom logic or configuration
6779// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6780//
6781//
6782//    // Example sending a request using the UpdateRegionSettingsRequest method.
6783//    req, resp := client.UpdateRegionSettingsRequest(params)
6784//
6785//    err := req.Send()
6786//    if err == nil { // resp is now filled
6787//        fmt.Println(resp)
6788//    }
6789//
6790// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/UpdateRegionSettings
6791func (c *Backup) UpdateRegionSettingsRequest(input *UpdateRegionSettingsInput) (req *request.Request, output *UpdateRegionSettingsOutput) {
6792	op := &request.Operation{
6793		Name:       opUpdateRegionSettings,
6794		HTTPMethod: "PUT",
6795		HTTPPath:   "/account-settings",
6796	}
6797
6798	if input == nil {
6799		input = &UpdateRegionSettingsInput{}
6800	}
6801
6802	output = &UpdateRegionSettingsOutput{}
6803	req = c.newRequest(op, input, output)
6804	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6805	return
6806}
6807
6808// UpdateRegionSettings API operation for AWS Backup.
6809//
6810// Updates the current service opt-in settings for the Region. If service-opt-in
6811// is enabled for a service, Backup tries to protect that service's resources
6812// in this Region, when the resource is included in an on-demand backup or scheduled
6813// backup plan. Otherwise, Backup does not try to protect that service's resources
6814// in this Region. Use the DescribeRegionSettings API to determine the resource
6815// types that are supported.
6816//
6817// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6818// with awserr.Error's Code and Message methods to get detailed information about
6819// the error.
6820//
6821// See the AWS API reference guide for AWS Backup's
6822// API operation UpdateRegionSettings for usage and error information.
6823//
6824// Returned Error Types:
6825//   * ServiceUnavailableException
6826//   The request failed due to a temporary failure of the server.
6827//
6828//   * MissingParameterValueException
6829//   Indicates that a required parameter is missing.
6830//
6831//   * InvalidParameterValueException
6832//   Indicates that something is wrong with a parameter's value. For example,
6833//   the value is out of range.
6834//
6835// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/UpdateRegionSettings
6836func (c *Backup) UpdateRegionSettings(input *UpdateRegionSettingsInput) (*UpdateRegionSettingsOutput, error) {
6837	req, out := c.UpdateRegionSettingsRequest(input)
6838	return out, req.Send()
6839}
6840
6841// UpdateRegionSettingsWithContext is the same as UpdateRegionSettings with the addition of
6842// the ability to pass a context and additional request options.
6843//
6844// See UpdateRegionSettings for details on how to use this API operation.
6845//
6846// The context must be non-nil and will be used for request cancellation. If
6847// the context is nil a panic will occur. In the future the SDK may create
6848// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6849// for more information on using Contexts.
6850func (c *Backup) UpdateRegionSettingsWithContext(ctx aws.Context, input *UpdateRegionSettingsInput, opts ...request.Option) (*UpdateRegionSettingsOutput, error) {
6851	req, out := c.UpdateRegionSettingsRequest(input)
6852	req.SetContext(ctx)
6853	req.ApplyOptions(opts...)
6854	return out, req.Send()
6855}
6856
6857const opUpdateReportPlan = "UpdateReportPlan"
6858
6859// UpdateReportPlanRequest generates a "aws/request.Request" representing the
6860// client's request for the UpdateReportPlan operation. The "output" return
6861// value will be populated with the request's response once the request completes
6862// successfully.
6863//
6864// Use "Send" method on the returned Request to send the API call to the service.
6865// the "output" return value is not valid until after Send returns without error.
6866//
6867// See UpdateReportPlan for more information on using the UpdateReportPlan
6868// API call, and error handling.
6869//
6870// This method is useful when you want to inject custom logic or configuration
6871// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6872//
6873//
6874//    // Example sending a request using the UpdateReportPlanRequest method.
6875//    req, resp := client.UpdateReportPlanRequest(params)
6876//
6877//    err := req.Send()
6878//    if err == nil { // resp is now filled
6879//        fmt.Println(resp)
6880//    }
6881//
6882// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/UpdateReportPlan
6883func (c *Backup) UpdateReportPlanRequest(input *UpdateReportPlanInput) (req *request.Request, output *UpdateReportPlanOutput) {
6884	op := &request.Operation{
6885		Name:       opUpdateReportPlan,
6886		HTTPMethod: "PUT",
6887		HTTPPath:   "/audit/report-plans/{reportPlanName}",
6888	}
6889
6890	if input == nil {
6891		input = &UpdateReportPlanInput{}
6892	}
6893
6894	output = &UpdateReportPlanOutput{}
6895	req = c.newRequest(op, input, output)
6896	return
6897}
6898
6899// UpdateReportPlan API operation for AWS Backup.
6900//
6901// Updates an existing report plan identified by its ReportPlanName with the
6902// input document in JSON format.
6903//
6904// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6905// with awserr.Error's Code and Message methods to get detailed information about
6906// the error.
6907//
6908// See the AWS API reference guide for AWS Backup's
6909// API operation UpdateReportPlan for usage and error information.
6910//
6911// Returned Error Types:
6912//   * ResourceNotFoundException
6913//   A resource that is required for the action doesn't exist.
6914//
6915//   * InvalidParameterValueException
6916//   Indicates that something is wrong with a parameter's value. For example,
6917//   the value is out of range.
6918//
6919//   * ServiceUnavailableException
6920//   The request failed due to a temporary failure of the server.
6921//
6922//   * MissingParameterValueException
6923//   Indicates that a required parameter is missing.
6924//
6925//   * ConflictException
6926//   Backup can't perform the action that you requested until it finishes performing
6927//   a previous action. Try again later.
6928//
6929// See also, https://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/UpdateReportPlan
6930func (c *Backup) UpdateReportPlan(input *UpdateReportPlanInput) (*UpdateReportPlanOutput, error) {
6931	req, out := c.UpdateReportPlanRequest(input)
6932	return out, req.Send()
6933}
6934
6935// UpdateReportPlanWithContext is the same as UpdateReportPlan with the addition of
6936// the ability to pass a context and additional request options.
6937//
6938// See UpdateReportPlan for details on how to use this API operation.
6939//
6940// The context must be non-nil and will be used for request cancellation. If
6941// the context is nil a panic will occur. In the future the SDK may create
6942// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6943// for more information on using Contexts.
6944func (c *Backup) UpdateReportPlanWithContext(ctx aws.Context, input *UpdateReportPlanInput, opts ...request.Option) (*UpdateReportPlanOutput, error) {
6945	req, out := c.UpdateReportPlanRequest(input)
6946	req.SetContext(ctx)
6947	req.ApplyOptions(opts...)
6948	return out, req.Send()
6949}
6950
6951// A list of backup options for each resource type.
6952type AdvancedBackupSetting struct {
6953	_ struct{} `type:"structure"`
6954
6955	// Specifies the backup option for a selected resource. This option is only
6956	// available for Windows VSS backup jobs.
6957	//
6958	// Valid values:
6959	//
6960	// Set to "WindowsVSS":"enabled" to enable the WindowsVSS backup option and
6961	// create a Windows VSS backup.
6962	//
6963	// Set to "WindowsVSS":"disabled" to create a regular backup. The WindowsVSS
6964	// option is not enabled by default.
6965	//
6966	// If you specify an invalid option, you get an InvalidParameterValueException
6967	// exception.
6968	//
6969	// For more information about Windows VSS backups, see Creating a VSS-Enabled
6970	// Windows Backup (https://docs.aws.amazon.com/aws-backup/latest/devguide/windows-backups.html).
6971	BackupOptions map[string]*string `type:"map"`
6972
6973	// Specifies an object containing resource type and backup options. The only
6974	// supported resource type is Amazon EC2 instances with Windows Volume Shadow
6975	// Copy Service (VSS). For a CloudFormation example, see the sample CloudFormation
6976	// template to enable Windows VSS (https://docs.aws.amazon.com/aws-backup/latest/devguide/integrate-cloudformation-with-aws-backup.html)
6977	// in the Backup User Guide.
6978	//
6979	// Valid values: EC2.
6980	ResourceType *string `type:"string"`
6981}
6982
6983// String returns the string representation.
6984//
6985// API parameter values that are decorated as "sensitive" in the API will not
6986// be included in the string output. The member name will be present, but the
6987// value will be replaced with "sensitive".
6988func (s AdvancedBackupSetting) String() string {
6989	return awsutil.Prettify(s)
6990}
6991
6992// GoString returns the string representation.
6993//
6994// API parameter values that are decorated as "sensitive" in the API will not
6995// be included in the string output. The member name will be present, but the
6996// value will be replaced with "sensitive".
6997func (s AdvancedBackupSetting) GoString() string {
6998	return s.String()
6999}
7000
7001// SetBackupOptions sets the BackupOptions field's value.
7002func (s *AdvancedBackupSetting) SetBackupOptions(v map[string]*string) *AdvancedBackupSetting {
7003	s.BackupOptions = v
7004	return s
7005}
7006
7007// SetResourceType sets the ResourceType field's value.
7008func (s *AdvancedBackupSetting) SetResourceType(v string) *AdvancedBackupSetting {
7009	s.ResourceType = &v
7010	return s
7011}
7012
7013// The required resource already exists.
7014type AlreadyExistsException struct {
7015	_            struct{}                  `type:"structure"`
7016	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
7017
7018	Arn *string `type:"string"`
7019
7020	Code_ *string `locationName:"Code" type:"string"`
7021
7022	Context *string `type:"string"`
7023
7024	CreatorRequestId *string `type:"string"`
7025
7026	Message_ *string `locationName:"Message" type:"string"`
7027
7028	Type *string `type:"string"`
7029}
7030
7031// String returns the string representation.
7032//
7033// API parameter values that are decorated as "sensitive" in the API will not
7034// be included in the string output. The member name will be present, but the
7035// value will be replaced with "sensitive".
7036func (s AlreadyExistsException) String() string {
7037	return awsutil.Prettify(s)
7038}
7039
7040// GoString returns the string representation.
7041//
7042// API parameter values that are decorated as "sensitive" in the API will not
7043// be included in the string output. The member name will be present, but the
7044// value will be replaced with "sensitive".
7045func (s AlreadyExistsException) GoString() string {
7046	return s.String()
7047}
7048
7049func newErrorAlreadyExistsException(v protocol.ResponseMetadata) error {
7050	return &AlreadyExistsException{
7051		RespMetadata: v,
7052	}
7053}
7054
7055// Code returns the exception type name.
7056func (s *AlreadyExistsException) Code() string {
7057	return "AlreadyExistsException"
7058}
7059
7060// Message returns the exception's message.
7061func (s *AlreadyExistsException) Message() string {
7062	if s.Message_ != nil {
7063		return *s.Message_
7064	}
7065	return ""
7066}
7067
7068// OrigErr always returns nil, satisfies awserr.Error interface.
7069func (s *AlreadyExistsException) OrigErr() error {
7070	return nil
7071}
7072
7073func (s *AlreadyExistsException) Error() string {
7074	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
7075}
7076
7077// Status code returns the HTTP status code for the request's response error.
7078func (s *AlreadyExistsException) StatusCode() int {
7079	return s.RespMetadata.StatusCode
7080}
7081
7082// RequestID returns the service's response RequestID for request.
7083func (s *AlreadyExistsException) RequestID() string {
7084	return s.RespMetadata.RequestID
7085}
7086
7087// Contains DeleteAt and MoveToColdStorageAt timestamps, which are used to specify
7088// a lifecycle for a recovery point.
7089//
7090// The lifecycle defines when a protected resource is transitioned to cold storage
7091// and when it expires. Backup transitions and expires backups automatically
7092// according to the lifecycle that you define.
7093//
7094// Backups transitioned to cold storage must be stored in cold storage for a
7095// minimum of 90 days. Therefore, the “expire after days” setting must be
7096// 90 days greater than the “transition to cold after days” setting. The
7097// “transition to cold after days” setting cannot be changed after a backup
7098// has been transitioned to cold.
7099//
7100// Only Amazon EFS file system backups can be transitioned to cold storage.
7101type CalculatedLifecycle struct {
7102	_ struct{} `type:"structure"`
7103
7104	// A timestamp that specifies when to delete a recovery point.
7105	DeleteAt *time.Time `type:"timestamp"`
7106
7107	// A timestamp that specifies when to transition a recovery point to cold storage.
7108	MoveToColdStorageAt *time.Time `type:"timestamp"`
7109}
7110
7111// String returns the string representation.
7112//
7113// API parameter values that are decorated as "sensitive" in the API will not
7114// be included in the string output. The member name will be present, but the
7115// value will be replaced with "sensitive".
7116func (s CalculatedLifecycle) String() string {
7117	return awsutil.Prettify(s)
7118}
7119
7120// GoString returns the string representation.
7121//
7122// API parameter values that are decorated as "sensitive" in the API will not
7123// be included in the string output. The member name will be present, but the
7124// value will be replaced with "sensitive".
7125func (s CalculatedLifecycle) GoString() string {
7126	return s.String()
7127}
7128
7129// SetDeleteAt sets the DeleteAt field's value.
7130func (s *CalculatedLifecycle) SetDeleteAt(v time.Time) *CalculatedLifecycle {
7131	s.DeleteAt = &v
7132	return s
7133}
7134
7135// SetMoveToColdStorageAt sets the MoveToColdStorageAt field's value.
7136func (s *CalculatedLifecycle) SetMoveToColdStorageAt(v time.Time) *CalculatedLifecycle {
7137	s.MoveToColdStorageAt = &v
7138	return s
7139}
7140
7141// Contains an array of triplets made up of a condition type (such as StringEquals),
7142// a key, and a value. Conditions are used to filter resources in a selection
7143// that is assigned to a backup plan.
7144type Condition struct {
7145	_ struct{} `type:"structure"`
7146
7147	// The key in a key-value pair. For example, in "ec2:ResourceTag/Department":
7148	// "accounting", "ec2:ResourceTag/Department" is the key.
7149	//
7150	// ConditionKey is a required field
7151	ConditionKey *string `type:"string" required:"true"`
7152
7153	// An operation, such as StringEquals, that is applied to a key-value pair used
7154	// to filter resources in a selection.
7155	//
7156	// ConditionType is a required field
7157	ConditionType *string `type:"string" required:"true" enum:"ConditionType"`
7158
7159	// The value in a key-value pair. For example, in "ec2:ResourceTag/Department":
7160	// "accounting", "accounting" is the value.
7161	//
7162	// ConditionValue is a required field
7163	ConditionValue *string `type:"string" required:"true"`
7164}
7165
7166// String returns the string representation.
7167//
7168// API parameter values that are decorated as "sensitive" in the API will not
7169// be included in the string output. The member name will be present, but the
7170// value will be replaced with "sensitive".
7171func (s Condition) String() string {
7172	return awsutil.Prettify(s)
7173}
7174
7175// GoString returns the string representation.
7176//
7177// API parameter values that are decorated as "sensitive" in the API will not
7178// be included in the string output. The member name will be present, but the
7179// value will be replaced with "sensitive".
7180func (s Condition) GoString() string {
7181	return s.String()
7182}
7183
7184// Validate inspects the fields of the type to determine if they are valid.
7185func (s *Condition) Validate() error {
7186	invalidParams := request.ErrInvalidParams{Context: "Condition"}
7187	if s.ConditionKey == nil {
7188		invalidParams.Add(request.NewErrParamRequired("ConditionKey"))
7189	}
7190	if s.ConditionType == nil {
7191		invalidParams.Add(request.NewErrParamRequired("ConditionType"))
7192	}
7193	if s.ConditionValue == nil {
7194		invalidParams.Add(request.NewErrParamRequired("ConditionValue"))
7195	}
7196
7197	if invalidParams.Len() > 0 {
7198		return invalidParams
7199	}
7200	return nil
7201}
7202
7203// SetConditionKey sets the ConditionKey field's value.
7204func (s *Condition) SetConditionKey(v string) *Condition {
7205	s.ConditionKey = &v
7206	return s
7207}
7208
7209// SetConditionType sets the ConditionType field's value.
7210func (s *Condition) SetConditionType(v string) *Condition {
7211	s.ConditionType = &v
7212	return s
7213}
7214
7215// SetConditionValue sets the ConditionValue field's value.
7216func (s *Condition) SetConditionValue(v string) *Condition {
7217	s.ConditionValue = &v
7218	return s
7219}
7220
7221// Backup can't perform the action that you requested until it finishes performing
7222// a previous action. Try again later.
7223type ConflictException struct {
7224	_            struct{}                  `type:"structure"`
7225	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
7226
7227	Code_ *string `locationName:"Code" type:"string"`
7228
7229	Context *string `type:"string"`
7230
7231	Message_ *string `locationName:"Message" type:"string"`
7232
7233	Type *string `type:"string"`
7234}
7235
7236// String returns the string representation.
7237//
7238// API parameter values that are decorated as "sensitive" in the API will not
7239// be included in the string output. The member name will be present, but the
7240// value will be replaced with "sensitive".
7241func (s ConflictException) String() string {
7242	return awsutil.Prettify(s)
7243}
7244
7245// GoString returns the string representation.
7246//
7247// API parameter values that are decorated as "sensitive" in the API will not
7248// be included in the string output. The member name will be present, but the
7249// value will be replaced with "sensitive".
7250func (s ConflictException) GoString() string {
7251	return s.String()
7252}
7253
7254func newErrorConflictException(v protocol.ResponseMetadata) error {
7255	return &ConflictException{
7256		RespMetadata: v,
7257	}
7258}
7259
7260// Code returns the exception type name.
7261func (s *ConflictException) Code() string {
7262	return "ConflictException"
7263}
7264
7265// Message returns the exception's message.
7266func (s *ConflictException) Message() string {
7267	if s.Message_ != nil {
7268		return *s.Message_
7269	}
7270	return ""
7271}
7272
7273// OrigErr always returns nil, satisfies awserr.Error interface.
7274func (s *ConflictException) OrigErr() error {
7275	return nil
7276}
7277
7278func (s *ConflictException) Error() string {
7279	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
7280}
7281
7282// Status code returns the HTTP status code for the request's response error.
7283func (s *ConflictException) StatusCode() int {
7284	return s.RespMetadata.StatusCode
7285}
7286
7287// RequestID returns the service's response RequestID for request.
7288func (s *ConflictException) RequestID() string {
7289	return s.RespMetadata.RequestID
7290}
7291
7292// A list of parameters for a control. A control can have zero, one, or more
7293// than one parameter. An example of a control with two parameters is: "backup
7294// plan frequency is at least daily and the retention period is at least 1 year".
7295// The first parameter is daily. The second parameter is 1 year.
7296type ControlInputParameter struct {
7297	_ struct{} `type:"structure"`
7298
7299	// The name of a parameter, for example, BackupPlanFrequency.
7300	ParameterName *string `type:"string"`
7301
7302	// The value of parameter, for example, hourly.
7303	ParameterValue *string `type:"string"`
7304}
7305
7306// String returns the string representation.
7307//
7308// API parameter values that are decorated as "sensitive" in the API will not
7309// be included in the string output. The member name will be present, but the
7310// value will be replaced with "sensitive".
7311func (s ControlInputParameter) String() string {
7312	return awsutil.Prettify(s)
7313}
7314
7315// GoString returns the string representation.
7316//
7317// API parameter values that are decorated as "sensitive" in the API will not
7318// be included in the string output. The member name will be present, but the
7319// value will be replaced with "sensitive".
7320func (s ControlInputParameter) GoString() string {
7321	return s.String()
7322}
7323
7324// SetParameterName sets the ParameterName field's value.
7325func (s *ControlInputParameter) SetParameterName(v string) *ControlInputParameter {
7326	s.ParameterName = &v
7327	return s
7328}
7329
7330// SetParameterValue sets the ParameterValue field's value.
7331func (s *ControlInputParameter) SetParameterValue(v string) *ControlInputParameter {
7332	s.ParameterValue = &v
7333	return s
7334}
7335
7336// A framework consists of one or more controls. Each control has its own control
7337// scope. The control scope defines what the control will evaluate. Three examples
7338// of control scopes are: a specific backup plan, all backup plans with a specific
7339// tag, or all backup plans.
7340//
7341// To set a control scope that includes all of a particular resource, leave
7342// the ControlScope empty or do not pass it when calling CreateFramework.
7343type ControlScope struct {
7344	_ struct{} `type:"structure"`
7345
7346	// The ID of the only Amazon Web Services resource that you want your control
7347	// scope to contain.
7348	ComplianceResourceIds []*string `min:"1" type:"list"`
7349
7350	// Describes whether the control scope includes one or more types of resources,
7351	// such as EFS or RDS.
7352	ComplianceResourceTypes []*string `type:"list"`
7353
7354	// Describes whether the control scope includes resources with one or more tags.
7355	// Each tag is a key-value pair.
7356	Tags map[string]*string `type:"map"`
7357}
7358
7359// String returns the string representation.
7360//
7361// API parameter values that are decorated as "sensitive" in the API will not
7362// be included in the string output. The member name will be present, but the
7363// value will be replaced with "sensitive".
7364func (s ControlScope) String() string {
7365	return awsutil.Prettify(s)
7366}
7367
7368// GoString returns the string representation.
7369//
7370// API parameter values that are decorated as "sensitive" in the API will not
7371// be included in the string output. The member name will be present, but the
7372// value will be replaced with "sensitive".
7373func (s ControlScope) GoString() string {
7374	return s.String()
7375}
7376
7377// Validate inspects the fields of the type to determine if they are valid.
7378func (s *ControlScope) Validate() error {
7379	invalidParams := request.ErrInvalidParams{Context: "ControlScope"}
7380	if s.ComplianceResourceIds != nil && len(s.ComplianceResourceIds) < 1 {
7381		invalidParams.Add(request.NewErrParamMinLen("ComplianceResourceIds", 1))
7382	}
7383
7384	if invalidParams.Len() > 0 {
7385		return invalidParams
7386	}
7387	return nil
7388}
7389
7390// SetComplianceResourceIds sets the ComplianceResourceIds field's value.
7391func (s *ControlScope) SetComplianceResourceIds(v []*string) *ControlScope {
7392	s.ComplianceResourceIds = v
7393	return s
7394}
7395
7396// SetComplianceResourceTypes sets the ComplianceResourceTypes field's value.
7397func (s *ControlScope) SetComplianceResourceTypes(v []*string) *ControlScope {
7398	s.ComplianceResourceTypes = v
7399	return s
7400}
7401
7402// SetTags sets the Tags field's value.
7403func (s *ControlScope) SetTags(v map[string]*string) *ControlScope {
7404	s.Tags = v
7405	return s
7406}
7407
7408// The details of the copy operation.
7409type CopyAction struct {
7410	_ struct{} `type:"structure"`
7411
7412	// An Amazon Resource Name (ARN) that uniquely identifies the destination backup
7413	// vault for the copied backup. For example, arn:aws:backup:us-east-1:123456789012:vault:aBackupVault.
7414	//
7415	// DestinationBackupVaultArn is a required field
7416	DestinationBackupVaultArn *string `type:"string" required:"true"`
7417
7418	// Contains an array of Transition objects specifying how long in days before
7419	// a recovery point transitions to cold storage or is deleted.
7420	//
7421	// Backups transitioned to cold storage must be stored in cold storage for a
7422	// minimum of 90 days. Therefore, on the console, the “expire after days”
7423	// setting must be 90 days greater than the “transition to cold after days”
7424	// setting. The “transition to cold after days” setting cannot be changed
7425	// after a backup has been transitioned to cold.
7426	//
7427	// Only Amazon EFS file system backups can be transitioned to cold storage.
7428	Lifecycle *Lifecycle `type:"structure"`
7429}
7430
7431// String returns the string representation.
7432//
7433// API parameter values that are decorated as "sensitive" in the API will not
7434// be included in the string output. The member name will be present, but the
7435// value will be replaced with "sensitive".
7436func (s CopyAction) String() string {
7437	return awsutil.Prettify(s)
7438}
7439
7440// GoString returns the string representation.
7441//
7442// API parameter values that are decorated as "sensitive" in the API will not
7443// be included in the string output. The member name will be present, but the
7444// value will be replaced with "sensitive".
7445func (s CopyAction) GoString() string {
7446	return s.String()
7447}
7448
7449// Validate inspects the fields of the type to determine if they are valid.
7450func (s *CopyAction) Validate() error {
7451	invalidParams := request.ErrInvalidParams{Context: "CopyAction"}
7452	if s.DestinationBackupVaultArn == nil {
7453		invalidParams.Add(request.NewErrParamRequired("DestinationBackupVaultArn"))
7454	}
7455
7456	if invalidParams.Len() > 0 {
7457		return invalidParams
7458	}
7459	return nil
7460}
7461
7462// SetDestinationBackupVaultArn sets the DestinationBackupVaultArn field's value.
7463func (s *CopyAction) SetDestinationBackupVaultArn(v string) *CopyAction {
7464	s.DestinationBackupVaultArn = &v
7465	return s
7466}
7467
7468// SetLifecycle sets the Lifecycle field's value.
7469func (s *CopyAction) SetLifecycle(v *Lifecycle) *CopyAction {
7470	s.Lifecycle = v
7471	return s
7472}
7473
7474// Contains detailed information about a copy job.
7475type CopyJob struct {
7476	_ struct{} `type:"structure"`
7477
7478	// The account ID that owns the copy job.
7479	AccountId *string `type:"string"`
7480
7481	// The size, in bytes, of a copy job.
7482	BackupSizeInBytes *int64 `type:"long"`
7483
7484	// The date and time a copy job is completed, in Unix format and Coordinated
7485	// Universal Time (UTC). The value of CompletionDate is accurate to milliseconds.
7486	// For example, the value 1516925490.087 represents Friday, January 26, 2018
7487	// 12:11:30.087 AM.
7488	CompletionDate *time.Time `type:"timestamp"`
7489
7490	// Uniquely identifies a copy job.
7491	CopyJobId *string `type:"string"`
7492
7493	// Contains information about the backup plan and rule that Backup used to initiate
7494	// the recovery point backup.
7495	CreatedBy *RecoveryPointCreator `type:"structure"`
7496
7497	// The date and time a copy job is created, in Unix format and Coordinated Universal
7498	// Time (UTC). The value of CreationDate is accurate to milliseconds. For example,
7499	// the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087
7500	// AM.
7501	CreationDate *time.Time `type:"timestamp"`
7502
7503	// An Amazon Resource Name (ARN) that uniquely identifies a destination copy
7504	// vault; for example, arn:aws:backup:us-east-1:123456789012:vault:aBackupVault.
7505	DestinationBackupVaultArn *string `type:"string"`
7506
7507	// An ARN that uniquely identifies a destination recovery point; for example,
7508	// arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45.
7509	DestinationRecoveryPointArn *string `type:"string"`
7510
7511	// Specifies the IAM role ARN used to copy the target recovery point; for example,
7512	// arn:aws:iam::123456789012:role/S3Access.
7513	IamRoleArn *string `type:"string"`
7514
7515	// The Amazon Web Services resource to be copied; for example, an Amazon Elastic
7516	// Block Store (Amazon EBS) volume or an Amazon Relational Database Service
7517	// (Amazon RDS) database.
7518	ResourceArn *string `type:"string"`
7519
7520	// The type of Amazon Web Services resource to be copied; for example, an Amazon
7521	// Elastic Block Store (Amazon EBS) volume or an Amazon Relational Database
7522	// Service (Amazon RDS) database.
7523	ResourceType *string `type:"string"`
7524
7525	// An Amazon Resource Name (ARN) that uniquely identifies a source copy vault;
7526	// for example, arn:aws:backup:us-east-1:123456789012:vault:aBackupVault.
7527	SourceBackupVaultArn *string `type:"string"`
7528
7529	// An ARN that uniquely identifies a source recovery point; for example, arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45.
7530	SourceRecoveryPointArn *string `type:"string"`
7531
7532	// The current state of a copy job.
7533	State *string `type:"string" enum:"CopyJobState"`
7534
7535	// A detailed message explaining the status of the job to copy a resource.
7536	StatusMessage *string `type:"string"`
7537}
7538
7539// String returns the string representation.
7540//
7541// API parameter values that are decorated as "sensitive" in the API will not
7542// be included in the string output. The member name will be present, but the
7543// value will be replaced with "sensitive".
7544func (s CopyJob) String() string {
7545	return awsutil.Prettify(s)
7546}
7547
7548// GoString returns the string representation.
7549//
7550// API parameter values that are decorated as "sensitive" in the API will not
7551// be included in the string output. The member name will be present, but the
7552// value will be replaced with "sensitive".
7553func (s CopyJob) GoString() string {
7554	return s.String()
7555}
7556
7557// SetAccountId sets the AccountId field's value.
7558func (s *CopyJob) SetAccountId(v string) *CopyJob {
7559	s.AccountId = &v
7560	return s
7561}
7562
7563// SetBackupSizeInBytes sets the BackupSizeInBytes field's value.
7564func (s *CopyJob) SetBackupSizeInBytes(v int64) *CopyJob {
7565	s.BackupSizeInBytes = &v
7566	return s
7567}
7568
7569// SetCompletionDate sets the CompletionDate field's value.
7570func (s *CopyJob) SetCompletionDate(v time.Time) *CopyJob {
7571	s.CompletionDate = &v
7572	return s
7573}
7574
7575// SetCopyJobId sets the CopyJobId field's value.
7576func (s *CopyJob) SetCopyJobId(v string) *CopyJob {
7577	s.CopyJobId = &v
7578	return s
7579}
7580
7581// SetCreatedBy sets the CreatedBy field's value.
7582func (s *CopyJob) SetCreatedBy(v *RecoveryPointCreator) *CopyJob {
7583	s.CreatedBy = v
7584	return s
7585}
7586
7587// SetCreationDate sets the CreationDate field's value.
7588func (s *CopyJob) SetCreationDate(v time.Time) *CopyJob {
7589	s.CreationDate = &v
7590	return s
7591}
7592
7593// SetDestinationBackupVaultArn sets the DestinationBackupVaultArn field's value.
7594func (s *CopyJob) SetDestinationBackupVaultArn(v string) *CopyJob {
7595	s.DestinationBackupVaultArn = &v
7596	return s
7597}
7598
7599// SetDestinationRecoveryPointArn sets the DestinationRecoveryPointArn field's value.
7600func (s *CopyJob) SetDestinationRecoveryPointArn(v string) *CopyJob {
7601	s.DestinationRecoveryPointArn = &v
7602	return s
7603}
7604
7605// SetIamRoleArn sets the IamRoleArn field's value.
7606func (s *CopyJob) SetIamRoleArn(v string) *CopyJob {
7607	s.IamRoleArn = &v
7608	return s
7609}
7610
7611// SetResourceArn sets the ResourceArn field's value.
7612func (s *CopyJob) SetResourceArn(v string) *CopyJob {
7613	s.ResourceArn = &v
7614	return s
7615}
7616
7617// SetResourceType sets the ResourceType field's value.
7618func (s *CopyJob) SetResourceType(v string) *CopyJob {
7619	s.ResourceType = &v
7620	return s
7621}
7622
7623// SetSourceBackupVaultArn sets the SourceBackupVaultArn field's value.
7624func (s *CopyJob) SetSourceBackupVaultArn(v string) *CopyJob {
7625	s.SourceBackupVaultArn = &v
7626	return s
7627}
7628
7629// SetSourceRecoveryPointArn sets the SourceRecoveryPointArn field's value.
7630func (s *CopyJob) SetSourceRecoveryPointArn(v string) *CopyJob {
7631	s.SourceRecoveryPointArn = &v
7632	return s
7633}
7634
7635// SetState sets the State field's value.
7636func (s *CopyJob) SetState(v string) *CopyJob {
7637	s.State = &v
7638	return s
7639}
7640
7641// SetStatusMessage sets the StatusMessage field's value.
7642func (s *CopyJob) SetStatusMessage(v string) *CopyJob {
7643	s.StatusMessage = &v
7644	return s
7645}
7646
7647type CreateBackupPlanInput struct {
7648	_ struct{} `type:"structure"`
7649
7650	// Specifies the body of a backup plan. Includes a BackupPlanName and one or
7651	// more sets of Rules.
7652	//
7653	// BackupPlan is a required field
7654	BackupPlan *PlanInput `type:"structure" required:"true"`
7655
7656	// To help organize your resources, you can assign your own metadata to the
7657	// resources that you create. Each tag is a key-value pair. The specified tags
7658	// are assigned to all backups created with this plan.
7659	//
7660	// BackupPlanTags is a sensitive parameter and its value will be
7661	// replaced with "sensitive" in string returned by CreateBackupPlanInput's
7662	// String and GoString methods.
7663	BackupPlanTags map[string]*string `type:"map" sensitive:"true"`
7664
7665	// Identifies the request and allows failed requests to be retried without the
7666	// risk of running the operation twice. If the request includes a CreatorRequestId
7667	// that matches an existing backup plan, that plan is returned. This parameter
7668	// is optional.
7669	CreatorRequestId *string `type:"string"`
7670}
7671
7672// String returns the string representation.
7673//
7674// API parameter values that are decorated as "sensitive" in the API will not
7675// be included in the string output. The member name will be present, but the
7676// value will be replaced with "sensitive".
7677func (s CreateBackupPlanInput) String() string {
7678	return awsutil.Prettify(s)
7679}
7680
7681// GoString returns the string representation.
7682//
7683// API parameter values that are decorated as "sensitive" in the API will not
7684// be included in the string output. The member name will be present, but the
7685// value will be replaced with "sensitive".
7686func (s CreateBackupPlanInput) GoString() string {
7687	return s.String()
7688}
7689
7690// Validate inspects the fields of the type to determine if they are valid.
7691func (s *CreateBackupPlanInput) Validate() error {
7692	invalidParams := request.ErrInvalidParams{Context: "CreateBackupPlanInput"}
7693	if s.BackupPlan == nil {
7694		invalidParams.Add(request.NewErrParamRequired("BackupPlan"))
7695	}
7696	if s.BackupPlan != nil {
7697		if err := s.BackupPlan.Validate(); err != nil {
7698			invalidParams.AddNested("BackupPlan", err.(request.ErrInvalidParams))
7699		}
7700	}
7701
7702	if invalidParams.Len() > 0 {
7703		return invalidParams
7704	}
7705	return nil
7706}
7707
7708// SetBackupPlan sets the BackupPlan field's value.
7709func (s *CreateBackupPlanInput) SetBackupPlan(v *PlanInput) *CreateBackupPlanInput {
7710	s.BackupPlan = v
7711	return s
7712}
7713
7714// SetBackupPlanTags sets the BackupPlanTags field's value.
7715func (s *CreateBackupPlanInput) SetBackupPlanTags(v map[string]*string) *CreateBackupPlanInput {
7716	s.BackupPlanTags = v
7717	return s
7718}
7719
7720// SetCreatorRequestId sets the CreatorRequestId field's value.
7721func (s *CreateBackupPlanInput) SetCreatorRequestId(v string) *CreateBackupPlanInput {
7722	s.CreatorRequestId = &v
7723	return s
7724}
7725
7726type CreateBackupPlanOutput struct {
7727	_ struct{} `type:"structure"`
7728
7729	// A list of BackupOptions settings for a resource type. This option is only
7730	// available for Windows Volume Shadow Copy Service (VSS) backup jobs.
7731	AdvancedBackupSettings []*AdvancedBackupSetting `type:"list"`
7732
7733	// An Amazon Resource Name (ARN) that uniquely identifies a backup plan; for
7734	// example, arn:aws:backup:us-east-1:123456789012:plan:8F81F553-3A74-4A3F-B93D-B3360DC80C50.
7735	BackupPlanArn *string `type:"string"`
7736
7737	// Uniquely identifies a backup plan.
7738	BackupPlanId *string `type:"string"`
7739
7740	// The date and time that a backup plan is created, in Unix format and Coordinated
7741	// Universal Time (UTC). The value of CreationDate is accurate to milliseconds.
7742	// For example, the value 1516925490.087 represents Friday, January 26, 2018
7743	// 12:11:30.087 AM.
7744	CreationDate *time.Time `type:"timestamp"`
7745
7746	// Unique, randomly generated, Unicode, UTF-8 encoded strings that are at most
7747	// 1,024 bytes long. They cannot be edited.
7748	VersionId *string `type:"string"`
7749}
7750
7751// String returns the string representation.
7752//
7753// API parameter values that are decorated as "sensitive" in the API will not
7754// be included in the string output. The member name will be present, but the
7755// value will be replaced with "sensitive".
7756func (s CreateBackupPlanOutput) String() string {
7757	return awsutil.Prettify(s)
7758}
7759
7760// GoString returns the string representation.
7761//
7762// API parameter values that are decorated as "sensitive" in the API will not
7763// be included in the string output. The member name will be present, but the
7764// value will be replaced with "sensitive".
7765func (s CreateBackupPlanOutput) GoString() string {
7766	return s.String()
7767}
7768
7769// SetAdvancedBackupSettings sets the AdvancedBackupSettings field's value.
7770func (s *CreateBackupPlanOutput) SetAdvancedBackupSettings(v []*AdvancedBackupSetting) *CreateBackupPlanOutput {
7771	s.AdvancedBackupSettings = v
7772	return s
7773}
7774
7775// SetBackupPlanArn sets the BackupPlanArn field's value.
7776func (s *CreateBackupPlanOutput) SetBackupPlanArn(v string) *CreateBackupPlanOutput {
7777	s.BackupPlanArn = &v
7778	return s
7779}
7780
7781// SetBackupPlanId sets the BackupPlanId field's value.
7782func (s *CreateBackupPlanOutput) SetBackupPlanId(v string) *CreateBackupPlanOutput {
7783	s.BackupPlanId = &v
7784	return s
7785}
7786
7787// SetCreationDate sets the CreationDate field's value.
7788func (s *CreateBackupPlanOutput) SetCreationDate(v time.Time) *CreateBackupPlanOutput {
7789	s.CreationDate = &v
7790	return s
7791}
7792
7793// SetVersionId sets the VersionId field's value.
7794func (s *CreateBackupPlanOutput) SetVersionId(v string) *CreateBackupPlanOutput {
7795	s.VersionId = &v
7796	return s
7797}
7798
7799type CreateBackupSelectionInput struct {
7800	_ struct{} `type:"structure"`
7801
7802	// Uniquely identifies the backup plan to be associated with the selection of
7803	// resources.
7804	//
7805	// BackupPlanId is a required field
7806	BackupPlanId *string `location:"uri" locationName:"backupPlanId" type:"string" required:"true"`
7807
7808	// Specifies the body of a request to assign a set of resources to a backup
7809	// plan.
7810	//
7811	// BackupSelection is a required field
7812	BackupSelection *Selection `type:"structure" required:"true"`
7813
7814	// A unique string that identifies the request and allows failed requests to
7815	// be retried without the risk of running the operation twice.
7816	CreatorRequestId *string `type:"string"`
7817}
7818
7819// String returns the string representation.
7820//
7821// API parameter values that are decorated as "sensitive" in the API will not
7822// be included in the string output. The member name will be present, but the
7823// value will be replaced with "sensitive".
7824func (s CreateBackupSelectionInput) String() string {
7825	return awsutil.Prettify(s)
7826}
7827
7828// GoString returns the string representation.
7829//
7830// API parameter values that are decorated as "sensitive" in the API will not
7831// be included in the string output. The member name will be present, but the
7832// value will be replaced with "sensitive".
7833func (s CreateBackupSelectionInput) GoString() string {
7834	return s.String()
7835}
7836
7837// Validate inspects the fields of the type to determine if they are valid.
7838func (s *CreateBackupSelectionInput) Validate() error {
7839	invalidParams := request.ErrInvalidParams{Context: "CreateBackupSelectionInput"}
7840	if s.BackupPlanId == nil {
7841		invalidParams.Add(request.NewErrParamRequired("BackupPlanId"))
7842	}
7843	if s.BackupPlanId != nil && len(*s.BackupPlanId) < 1 {
7844		invalidParams.Add(request.NewErrParamMinLen("BackupPlanId", 1))
7845	}
7846	if s.BackupSelection == nil {
7847		invalidParams.Add(request.NewErrParamRequired("BackupSelection"))
7848	}
7849	if s.BackupSelection != nil {
7850		if err := s.BackupSelection.Validate(); err != nil {
7851			invalidParams.AddNested("BackupSelection", err.(request.ErrInvalidParams))
7852		}
7853	}
7854
7855	if invalidParams.Len() > 0 {
7856		return invalidParams
7857	}
7858	return nil
7859}
7860
7861// SetBackupPlanId sets the BackupPlanId field's value.
7862func (s *CreateBackupSelectionInput) SetBackupPlanId(v string) *CreateBackupSelectionInput {
7863	s.BackupPlanId = &v
7864	return s
7865}
7866
7867// SetBackupSelection sets the BackupSelection field's value.
7868func (s *CreateBackupSelectionInput) SetBackupSelection(v *Selection) *CreateBackupSelectionInput {
7869	s.BackupSelection = v
7870	return s
7871}
7872
7873// SetCreatorRequestId sets the CreatorRequestId field's value.
7874func (s *CreateBackupSelectionInput) SetCreatorRequestId(v string) *CreateBackupSelectionInput {
7875	s.CreatorRequestId = &v
7876	return s
7877}
7878
7879type CreateBackupSelectionOutput struct {
7880	_ struct{} `type:"structure"`
7881
7882	// Uniquely identifies a backup plan.
7883	BackupPlanId *string `type:"string"`
7884
7885	// The date and time a backup selection is created, in Unix format and Coordinated
7886	// Universal Time (UTC). The value of CreationDate is accurate to milliseconds.
7887	// For example, the value 1516925490.087 represents Friday, January 26, 2018
7888	// 12:11:30.087 AM.
7889	CreationDate *time.Time `type:"timestamp"`
7890
7891	// Uniquely identifies the body of a request to assign a set of resources to
7892	// a backup plan.
7893	SelectionId *string `type:"string"`
7894}
7895
7896// String returns the string representation.
7897//
7898// API parameter values that are decorated as "sensitive" in the API will not
7899// be included in the string output. The member name will be present, but the
7900// value will be replaced with "sensitive".
7901func (s CreateBackupSelectionOutput) String() string {
7902	return awsutil.Prettify(s)
7903}
7904
7905// GoString returns the string representation.
7906//
7907// API parameter values that are decorated as "sensitive" in the API will not
7908// be included in the string output. The member name will be present, but the
7909// value will be replaced with "sensitive".
7910func (s CreateBackupSelectionOutput) GoString() string {
7911	return s.String()
7912}
7913
7914// SetBackupPlanId sets the BackupPlanId field's value.
7915func (s *CreateBackupSelectionOutput) SetBackupPlanId(v string) *CreateBackupSelectionOutput {
7916	s.BackupPlanId = &v
7917	return s
7918}
7919
7920// SetCreationDate sets the CreationDate field's value.
7921func (s *CreateBackupSelectionOutput) SetCreationDate(v time.Time) *CreateBackupSelectionOutput {
7922	s.CreationDate = &v
7923	return s
7924}
7925
7926// SetSelectionId sets the SelectionId field's value.
7927func (s *CreateBackupSelectionOutput) SetSelectionId(v string) *CreateBackupSelectionOutput {
7928	s.SelectionId = &v
7929	return s
7930}
7931
7932type CreateBackupVaultInput struct {
7933	_ struct{} `type:"structure"`
7934
7935	// The name of a logical container where backups are stored. Backup vaults are
7936	// identified by names that are unique to the account used to create them and
7937	// the Amazon Web Services Region where they are created. They consist of letters,
7938	// numbers, and hyphens.
7939	//
7940	// BackupVaultName is a required field
7941	BackupVaultName *string `location:"uri" locationName:"backupVaultName" type:"string" required:"true"`
7942
7943	// Metadata that you can assign to help organize the resources that you create.
7944	// Each tag is a key-value pair.
7945	//
7946	// BackupVaultTags is a sensitive parameter and its value will be
7947	// replaced with "sensitive" in string returned by CreateBackupVaultInput's
7948	// String and GoString methods.
7949	BackupVaultTags map[string]*string `type:"map" sensitive:"true"`
7950
7951	// A unique string that identifies the request and allows failed requests to
7952	// be retried without the risk of running the operation twice.
7953	CreatorRequestId *string `type:"string"`
7954
7955	// The server-side encryption key that is used to protect your backups; for
7956	// example, arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab.
7957	EncryptionKeyArn *string `type:"string"`
7958}
7959
7960// String returns the string representation.
7961//
7962// API parameter values that are decorated as "sensitive" in the API will not
7963// be included in the string output. The member name will be present, but the
7964// value will be replaced with "sensitive".
7965func (s CreateBackupVaultInput) String() string {
7966	return awsutil.Prettify(s)
7967}
7968
7969// GoString returns the string representation.
7970//
7971// API parameter values that are decorated as "sensitive" in the API will not
7972// be included in the string output. The member name will be present, but the
7973// value will be replaced with "sensitive".
7974func (s CreateBackupVaultInput) GoString() string {
7975	return s.String()
7976}
7977
7978// Validate inspects the fields of the type to determine if they are valid.
7979func (s *CreateBackupVaultInput) Validate() error {
7980	invalidParams := request.ErrInvalidParams{Context: "CreateBackupVaultInput"}
7981	if s.BackupVaultName == nil {
7982		invalidParams.Add(request.NewErrParamRequired("BackupVaultName"))
7983	}
7984	if s.BackupVaultName != nil && len(*s.BackupVaultName) < 1 {
7985		invalidParams.Add(request.NewErrParamMinLen("BackupVaultName", 1))
7986	}
7987
7988	if invalidParams.Len() > 0 {
7989		return invalidParams
7990	}
7991	return nil
7992}
7993
7994// SetBackupVaultName sets the BackupVaultName field's value.
7995func (s *CreateBackupVaultInput) SetBackupVaultName(v string) *CreateBackupVaultInput {
7996	s.BackupVaultName = &v
7997	return s
7998}
7999
8000// SetBackupVaultTags sets the BackupVaultTags field's value.
8001func (s *CreateBackupVaultInput) SetBackupVaultTags(v map[string]*string) *CreateBackupVaultInput {
8002	s.BackupVaultTags = v
8003	return s
8004}
8005
8006// SetCreatorRequestId sets the CreatorRequestId field's value.
8007func (s *CreateBackupVaultInput) SetCreatorRequestId(v string) *CreateBackupVaultInput {
8008	s.CreatorRequestId = &v
8009	return s
8010}
8011
8012// SetEncryptionKeyArn sets the EncryptionKeyArn field's value.
8013func (s *CreateBackupVaultInput) SetEncryptionKeyArn(v string) *CreateBackupVaultInput {
8014	s.EncryptionKeyArn = &v
8015	return s
8016}
8017
8018type CreateBackupVaultOutput struct {
8019	_ struct{} `type:"structure"`
8020
8021	// An Amazon Resource Name (ARN) that uniquely identifies a backup vault; for
8022	// example, arn:aws:backup:us-east-1:123456789012:vault:aBackupVault.
8023	BackupVaultArn *string `type:"string"`
8024
8025	// The name of a logical container where backups are stored. Backup vaults are
8026	// identified by names that are unique to the account used to create them and
8027	// the Region where they are created. They consist of lowercase letters, numbers,
8028	// and hyphens.
8029	BackupVaultName *string `type:"string"`
8030
8031	// The date and time a backup vault is created, in Unix format and Coordinated
8032	// Universal Time (UTC). The value of CreationDate is accurate to milliseconds.
8033	// For example, the value 1516925490.087 represents Friday, January 26, 2018
8034	// 12:11:30.087 AM.
8035	CreationDate *time.Time `type:"timestamp"`
8036}
8037
8038// String returns the string representation.
8039//
8040// API parameter values that are decorated as "sensitive" in the API will not
8041// be included in the string output. The member name will be present, but the
8042// value will be replaced with "sensitive".
8043func (s CreateBackupVaultOutput) String() string {
8044	return awsutil.Prettify(s)
8045}
8046
8047// GoString returns the string representation.
8048//
8049// API parameter values that are decorated as "sensitive" in the API will not
8050// be included in the string output. The member name will be present, but the
8051// value will be replaced with "sensitive".
8052func (s CreateBackupVaultOutput) GoString() string {
8053	return s.String()
8054}
8055
8056// SetBackupVaultArn sets the BackupVaultArn field's value.
8057func (s *CreateBackupVaultOutput) SetBackupVaultArn(v string) *CreateBackupVaultOutput {
8058	s.BackupVaultArn = &v
8059	return s
8060}
8061
8062// SetBackupVaultName sets the BackupVaultName field's value.
8063func (s *CreateBackupVaultOutput) SetBackupVaultName(v string) *CreateBackupVaultOutput {
8064	s.BackupVaultName = &v
8065	return s
8066}
8067
8068// SetCreationDate sets the CreationDate field's value.
8069func (s *CreateBackupVaultOutput) SetCreationDate(v time.Time) *CreateBackupVaultOutput {
8070	s.CreationDate = &v
8071	return s
8072}
8073
8074type CreateFrameworkInput struct {
8075	_ struct{} `type:"structure"`
8076
8077	// A list of the controls that make up the framework. Each control in the list
8078	// has a name, input parameters, and scope.
8079	//
8080	// FrameworkControls is a required field
8081	FrameworkControls []*FrameworkControl `type:"list" required:"true"`
8082
8083	// An optional description of the framework with a maximum of 1,024 characters.
8084	FrameworkDescription *string `type:"string"`
8085
8086	// The unique name of the framework. The name must be between 1 and 256 characters,
8087	// starting with a letter, and consisting of letters (a-z, A-Z), numbers (0-9),
8088	// and underscores (_).
8089	//
8090	// FrameworkName is a required field
8091	FrameworkName *string `min:"1" type:"string" required:"true"`
8092
8093	// Metadata that you can assign to help organize the frameworks that you create.
8094	// Each tag is a key-value pair.
8095	FrameworkTags map[string]*string `type:"map"`
8096
8097	// A customer-chosen string that you can use to distinguish between otherwise
8098	// identical calls to CreateFrameworkInput. Retrying a successful request with
8099	// the same idempotency token results in a success message with no action taken.
8100	IdempotencyToken *string `type:"string" idempotencyToken:"true"`
8101}
8102
8103// String returns the string representation.
8104//
8105// API parameter values that are decorated as "sensitive" in the API will not
8106// be included in the string output. The member name will be present, but the
8107// value will be replaced with "sensitive".
8108func (s CreateFrameworkInput) String() string {
8109	return awsutil.Prettify(s)
8110}
8111
8112// GoString returns the string representation.
8113//
8114// API parameter values that are decorated as "sensitive" in the API will not
8115// be included in the string output. The member name will be present, but the
8116// value will be replaced with "sensitive".
8117func (s CreateFrameworkInput) GoString() string {
8118	return s.String()
8119}
8120
8121// Validate inspects the fields of the type to determine if they are valid.
8122func (s *CreateFrameworkInput) Validate() error {
8123	invalidParams := request.ErrInvalidParams{Context: "CreateFrameworkInput"}
8124	if s.FrameworkControls == nil {
8125		invalidParams.Add(request.NewErrParamRequired("FrameworkControls"))
8126	}
8127	if s.FrameworkName == nil {
8128		invalidParams.Add(request.NewErrParamRequired("FrameworkName"))
8129	}
8130	if s.FrameworkName != nil && len(*s.FrameworkName) < 1 {
8131		invalidParams.Add(request.NewErrParamMinLen("FrameworkName", 1))
8132	}
8133	if s.FrameworkControls != nil {
8134		for i, v := range s.FrameworkControls {
8135			if v == nil {
8136				continue
8137			}
8138			if err := v.Validate(); err != nil {
8139				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "FrameworkControls", i), err.(request.ErrInvalidParams))
8140			}
8141		}
8142	}
8143
8144	if invalidParams.Len() > 0 {
8145		return invalidParams
8146	}
8147	return nil
8148}
8149
8150// SetFrameworkControls sets the FrameworkControls field's value.
8151func (s *CreateFrameworkInput) SetFrameworkControls(v []*FrameworkControl) *CreateFrameworkInput {
8152	s.FrameworkControls = v
8153	return s
8154}
8155
8156// SetFrameworkDescription sets the FrameworkDescription field's value.
8157func (s *CreateFrameworkInput) SetFrameworkDescription(v string) *CreateFrameworkInput {
8158	s.FrameworkDescription = &v
8159	return s
8160}
8161
8162// SetFrameworkName sets the FrameworkName field's value.
8163func (s *CreateFrameworkInput) SetFrameworkName(v string) *CreateFrameworkInput {
8164	s.FrameworkName = &v
8165	return s
8166}
8167
8168// SetFrameworkTags sets the FrameworkTags field's value.
8169func (s *CreateFrameworkInput) SetFrameworkTags(v map[string]*string) *CreateFrameworkInput {
8170	s.FrameworkTags = v
8171	return s
8172}
8173
8174// SetIdempotencyToken sets the IdempotencyToken field's value.
8175func (s *CreateFrameworkInput) SetIdempotencyToken(v string) *CreateFrameworkInput {
8176	s.IdempotencyToken = &v
8177	return s
8178}
8179
8180type CreateFrameworkOutput struct {
8181	_ struct{} `type:"structure"`
8182
8183	// An Amazon Resource Name (ARN) that uniquely identifies a resource. The format
8184	// of the ARN depends on the resource type.
8185	FrameworkArn *string `type:"string"`
8186
8187	// The unique name of the framework. The name must be between 1 and 256 characters,
8188	// starting with a letter, and consisting of letters (a-z, A-Z), numbers (0-9),
8189	// and underscores (_).
8190	FrameworkName *string `min:"1" type:"string"`
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 CreateFrameworkOutput) 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 CreateFrameworkOutput) GoString() string {
8208	return s.String()
8209}
8210
8211// SetFrameworkArn sets the FrameworkArn field's value.
8212func (s *CreateFrameworkOutput) SetFrameworkArn(v string) *CreateFrameworkOutput {
8213	s.FrameworkArn = &v
8214	return s
8215}
8216
8217// SetFrameworkName sets the FrameworkName field's value.
8218func (s *CreateFrameworkOutput) SetFrameworkName(v string) *CreateFrameworkOutput {
8219	s.FrameworkName = &v
8220	return s
8221}
8222
8223type CreateReportPlanInput struct {
8224	_ struct{} `type:"structure"`
8225
8226	// A customer-chosen string that you can use to distinguish between otherwise
8227	// identical calls to CreateReportPlanInput. Retrying a successful request with
8228	// the same idempotency token results in a success message with no action taken.
8229	IdempotencyToken *string `type:"string" idempotencyToken:"true"`
8230
8231	// A structure that contains information about where and how to deliver your
8232	// reports, specifically your Amazon S3 bucket name, S3 key prefix, and the
8233	// formats of your reports.
8234	//
8235	// ReportDeliveryChannel is a required field
8236	ReportDeliveryChannel *ReportDeliveryChannel `type:"structure" required:"true"`
8237
8238	// An optional description of the report plan with a maximum of 1,024 characters.
8239	ReportPlanDescription *string `type:"string"`
8240
8241	// The unique name of the report plan. The name must be between 1 and 256 characters,
8242	// starting with a letter, and consisting of letters (a-z, A-Z), numbers (0-9),
8243	// and underscores (_).
8244	//
8245	// ReportPlanName is a required field
8246	ReportPlanName *string `min:"1" type:"string" required:"true"`
8247
8248	// Metadata that you can assign to help organize the report plans that you create.
8249	// Each tag is a key-value pair.
8250	ReportPlanTags map[string]*string `type:"map"`
8251
8252	// Identifies the report template for the report. Reports are built using a
8253	// report template. The report templates are:
8254	//
8255	// RESOURCE_COMPLIANCE_REPORT | CONTROL_COMPLIANCE_REPORT | BACKUP_JOB_REPORT
8256	// | COPY_JOB_REPORT | RESTORE_JOB_REPORT
8257	//
8258	// If the report template is RESOURCE_COMPLIANCE_REPORT or CONTROL_COMPLIANCE_REPORT,
8259	// this API resource also describes the report coverage by Amazon Web Services
8260	// Regions and frameworks.
8261	//
8262	// ReportSetting is a required field
8263	ReportSetting *ReportSetting `type:"structure" required:"true"`
8264}
8265
8266// String returns the string representation.
8267//
8268// API parameter values that are decorated as "sensitive" in the API will not
8269// be included in the string output. The member name will be present, but the
8270// value will be replaced with "sensitive".
8271func (s CreateReportPlanInput) String() string {
8272	return awsutil.Prettify(s)
8273}
8274
8275// GoString returns the string representation.
8276//
8277// API parameter values that are decorated as "sensitive" in the API will not
8278// be included in the string output. The member name will be present, but the
8279// value will be replaced with "sensitive".
8280func (s CreateReportPlanInput) GoString() string {
8281	return s.String()
8282}
8283
8284// Validate inspects the fields of the type to determine if they are valid.
8285func (s *CreateReportPlanInput) Validate() error {
8286	invalidParams := request.ErrInvalidParams{Context: "CreateReportPlanInput"}
8287	if s.ReportDeliveryChannel == nil {
8288		invalidParams.Add(request.NewErrParamRequired("ReportDeliveryChannel"))
8289	}
8290	if s.ReportPlanName == nil {
8291		invalidParams.Add(request.NewErrParamRequired("ReportPlanName"))
8292	}
8293	if s.ReportPlanName != nil && len(*s.ReportPlanName) < 1 {
8294		invalidParams.Add(request.NewErrParamMinLen("ReportPlanName", 1))
8295	}
8296	if s.ReportSetting == nil {
8297		invalidParams.Add(request.NewErrParamRequired("ReportSetting"))
8298	}
8299	if s.ReportDeliveryChannel != nil {
8300		if err := s.ReportDeliveryChannel.Validate(); err != nil {
8301			invalidParams.AddNested("ReportDeliveryChannel", err.(request.ErrInvalidParams))
8302		}
8303	}
8304	if s.ReportSetting != nil {
8305		if err := s.ReportSetting.Validate(); err != nil {
8306			invalidParams.AddNested("ReportSetting", err.(request.ErrInvalidParams))
8307		}
8308	}
8309
8310	if invalidParams.Len() > 0 {
8311		return invalidParams
8312	}
8313	return nil
8314}
8315
8316// SetIdempotencyToken sets the IdempotencyToken field's value.
8317func (s *CreateReportPlanInput) SetIdempotencyToken(v string) *CreateReportPlanInput {
8318	s.IdempotencyToken = &v
8319	return s
8320}
8321
8322// SetReportDeliveryChannel sets the ReportDeliveryChannel field's value.
8323func (s *CreateReportPlanInput) SetReportDeliveryChannel(v *ReportDeliveryChannel) *CreateReportPlanInput {
8324	s.ReportDeliveryChannel = v
8325	return s
8326}
8327
8328// SetReportPlanDescription sets the ReportPlanDescription field's value.
8329func (s *CreateReportPlanInput) SetReportPlanDescription(v string) *CreateReportPlanInput {
8330	s.ReportPlanDescription = &v
8331	return s
8332}
8333
8334// SetReportPlanName sets the ReportPlanName field's value.
8335func (s *CreateReportPlanInput) SetReportPlanName(v string) *CreateReportPlanInput {
8336	s.ReportPlanName = &v
8337	return s
8338}
8339
8340// SetReportPlanTags sets the ReportPlanTags field's value.
8341func (s *CreateReportPlanInput) SetReportPlanTags(v map[string]*string) *CreateReportPlanInput {
8342	s.ReportPlanTags = v
8343	return s
8344}
8345
8346// SetReportSetting sets the ReportSetting field's value.
8347func (s *CreateReportPlanInput) SetReportSetting(v *ReportSetting) *CreateReportPlanInput {
8348	s.ReportSetting = v
8349	return s
8350}
8351
8352type CreateReportPlanOutput struct {
8353	_ struct{} `type:"structure"`
8354
8355	// The date and time a backup vault is created, in Unix format and Coordinated
8356	// Universal Time (UTC). The value of CreationTime is accurate to milliseconds.
8357	// For example, the value 1516925490.087 represents Friday, January 26, 2018
8358	// 12:11:30.087 AM.
8359	CreationTime *time.Time `type:"timestamp"`
8360
8361	// An Amazon Resource Name (ARN) that uniquely identifies a resource. The format
8362	// of the ARN depends on the resource type.
8363	ReportPlanArn *string `type:"string"`
8364
8365	// The unique name of the report plan.
8366	ReportPlanName *string `min:"1" type:"string"`
8367}
8368
8369// String returns the string representation.
8370//
8371// API parameter values that are decorated as "sensitive" in the API will not
8372// be included in the string output. The member name will be present, but the
8373// value will be replaced with "sensitive".
8374func (s CreateReportPlanOutput) String() string {
8375	return awsutil.Prettify(s)
8376}
8377
8378// GoString returns the string representation.
8379//
8380// API parameter values that are decorated as "sensitive" in the API will not
8381// be included in the string output. The member name will be present, but the
8382// value will be replaced with "sensitive".
8383func (s CreateReportPlanOutput) GoString() string {
8384	return s.String()
8385}
8386
8387// SetCreationTime sets the CreationTime field's value.
8388func (s *CreateReportPlanOutput) SetCreationTime(v time.Time) *CreateReportPlanOutput {
8389	s.CreationTime = &v
8390	return s
8391}
8392
8393// SetReportPlanArn sets the ReportPlanArn field's value.
8394func (s *CreateReportPlanOutput) SetReportPlanArn(v string) *CreateReportPlanOutput {
8395	s.ReportPlanArn = &v
8396	return s
8397}
8398
8399// SetReportPlanName sets the ReportPlanName field's value.
8400func (s *CreateReportPlanOutput) SetReportPlanName(v string) *CreateReportPlanOutput {
8401	s.ReportPlanName = &v
8402	return s
8403}
8404
8405type DeleteBackupPlanInput struct {
8406	_ struct{} `type:"structure" nopayload:"true"`
8407
8408	// Uniquely identifies a backup plan.
8409	//
8410	// BackupPlanId is a required field
8411	BackupPlanId *string `location:"uri" locationName:"backupPlanId" type:"string" required:"true"`
8412}
8413
8414// String returns the string representation.
8415//
8416// API parameter values that are decorated as "sensitive" in the API will not
8417// be included in the string output. The member name will be present, but the
8418// value will be replaced with "sensitive".
8419func (s DeleteBackupPlanInput) String() string {
8420	return awsutil.Prettify(s)
8421}
8422
8423// GoString returns the string representation.
8424//
8425// API parameter values that are decorated as "sensitive" in the API will not
8426// be included in the string output. The member name will be present, but the
8427// value will be replaced with "sensitive".
8428func (s DeleteBackupPlanInput) GoString() string {
8429	return s.String()
8430}
8431
8432// Validate inspects the fields of the type to determine if they are valid.
8433func (s *DeleteBackupPlanInput) Validate() error {
8434	invalidParams := request.ErrInvalidParams{Context: "DeleteBackupPlanInput"}
8435	if s.BackupPlanId == nil {
8436		invalidParams.Add(request.NewErrParamRequired("BackupPlanId"))
8437	}
8438	if s.BackupPlanId != nil && len(*s.BackupPlanId) < 1 {
8439		invalidParams.Add(request.NewErrParamMinLen("BackupPlanId", 1))
8440	}
8441
8442	if invalidParams.Len() > 0 {
8443		return invalidParams
8444	}
8445	return nil
8446}
8447
8448// SetBackupPlanId sets the BackupPlanId field's value.
8449func (s *DeleteBackupPlanInput) SetBackupPlanId(v string) *DeleteBackupPlanInput {
8450	s.BackupPlanId = &v
8451	return s
8452}
8453
8454type DeleteBackupPlanOutput struct {
8455	_ struct{} `type:"structure"`
8456
8457	// An Amazon Resource Name (ARN) that uniquely identifies a backup plan; for
8458	// example, arn:aws:backup:us-east-1:123456789012:plan:8F81F553-3A74-4A3F-B93D-B3360DC80C50.
8459	BackupPlanArn *string `type:"string"`
8460
8461	// Uniquely identifies a backup plan.
8462	BackupPlanId *string `type:"string"`
8463
8464	// The date and time a backup plan is deleted, in Unix format and Coordinated
8465	// Universal Time (UTC). The value of DeletionDate is accurate to milliseconds.
8466	// For example, the value 1516925490.087 represents Friday, January 26, 2018
8467	// 12:11:30.087 AM.
8468	DeletionDate *time.Time `type:"timestamp"`
8469
8470	// Unique, randomly generated, Unicode, UTF-8 encoded strings that are at most
8471	// 1,024 bytes long. Version IDs cannot be edited.
8472	VersionId *string `type:"string"`
8473}
8474
8475// String returns the string representation.
8476//
8477// API parameter values that are decorated as "sensitive" in the API will not
8478// be included in the string output. The member name will be present, but the
8479// value will be replaced with "sensitive".
8480func (s DeleteBackupPlanOutput) String() string {
8481	return awsutil.Prettify(s)
8482}
8483
8484// GoString returns the string representation.
8485//
8486// API parameter values that are decorated as "sensitive" in the API will not
8487// be included in the string output. The member name will be present, but the
8488// value will be replaced with "sensitive".
8489func (s DeleteBackupPlanOutput) GoString() string {
8490	return s.String()
8491}
8492
8493// SetBackupPlanArn sets the BackupPlanArn field's value.
8494func (s *DeleteBackupPlanOutput) SetBackupPlanArn(v string) *DeleteBackupPlanOutput {
8495	s.BackupPlanArn = &v
8496	return s
8497}
8498
8499// SetBackupPlanId sets the BackupPlanId field's value.
8500func (s *DeleteBackupPlanOutput) SetBackupPlanId(v string) *DeleteBackupPlanOutput {
8501	s.BackupPlanId = &v
8502	return s
8503}
8504
8505// SetDeletionDate sets the DeletionDate field's value.
8506func (s *DeleteBackupPlanOutput) SetDeletionDate(v time.Time) *DeleteBackupPlanOutput {
8507	s.DeletionDate = &v
8508	return s
8509}
8510
8511// SetVersionId sets the VersionId field's value.
8512func (s *DeleteBackupPlanOutput) SetVersionId(v string) *DeleteBackupPlanOutput {
8513	s.VersionId = &v
8514	return s
8515}
8516
8517type DeleteBackupSelectionInput struct {
8518	_ struct{} `type:"structure" nopayload:"true"`
8519
8520	// Uniquely identifies a backup plan.
8521	//
8522	// BackupPlanId is a required field
8523	BackupPlanId *string `location:"uri" locationName:"backupPlanId" type:"string" required:"true"`
8524
8525	// Uniquely identifies the body of a request to assign a set of resources to
8526	// a backup plan.
8527	//
8528	// SelectionId is a required field
8529	SelectionId *string `location:"uri" locationName:"selectionId" type:"string" required:"true"`
8530}
8531
8532// String returns the string representation.
8533//
8534// API parameter values that are decorated as "sensitive" in the API will not
8535// be included in the string output. The member name will be present, but the
8536// value will be replaced with "sensitive".
8537func (s DeleteBackupSelectionInput) String() string {
8538	return awsutil.Prettify(s)
8539}
8540
8541// GoString returns the string representation.
8542//
8543// API parameter values that are decorated as "sensitive" in the API will not
8544// be included in the string output. The member name will be present, but the
8545// value will be replaced with "sensitive".
8546func (s DeleteBackupSelectionInput) GoString() string {
8547	return s.String()
8548}
8549
8550// Validate inspects the fields of the type to determine if they are valid.
8551func (s *DeleteBackupSelectionInput) Validate() error {
8552	invalidParams := request.ErrInvalidParams{Context: "DeleteBackupSelectionInput"}
8553	if s.BackupPlanId == nil {
8554		invalidParams.Add(request.NewErrParamRequired("BackupPlanId"))
8555	}
8556	if s.BackupPlanId != nil && len(*s.BackupPlanId) < 1 {
8557		invalidParams.Add(request.NewErrParamMinLen("BackupPlanId", 1))
8558	}
8559	if s.SelectionId == nil {
8560		invalidParams.Add(request.NewErrParamRequired("SelectionId"))
8561	}
8562	if s.SelectionId != nil && len(*s.SelectionId) < 1 {
8563		invalidParams.Add(request.NewErrParamMinLen("SelectionId", 1))
8564	}
8565
8566	if invalidParams.Len() > 0 {
8567		return invalidParams
8568	}
8569	return nil
8570}
8571
8572// SetBackupPlanId sets the BackupPlanId field's value.
8573func (s *DeleteBackupSelectionInput) SetBackupPlanId(v string) *DeleteBackupSelectionInput {
8574	s.BackupPlanId = &v
8575	return s
8576}
8577
8578// SetSelectionId sets the SelectionId field's value.
8579func (s *DeleteBackupSelectionInput) SetSelectionId(v string) *DeleteBackupSelectionInput {
8580	s.SelectionId = &v
8581	return s
8582}
8583
8584type DeleteBackupSelectionOutput struct {
8585	_ struct{} `type:"structure"`
8586}
8587
8588// String returns the string representation.
8589//
8590// API parameter values that are decorated as "sensitive" in the API will not
8591// be included in the string output. The member name will be present, but the
8592// value will be replaced with "sensitive".
8593func (s DeleteBackupSelectionOutput) String() string {
8594	return awsutil.Prettify(s)
8595}
8596
8597// GoString returns the string representation.
8598//
8599// API parameter values that are decorated as "sensitive" in the API will not
8600// be included in the string output. The member name will be present, but the
8601// value will be replaced with "sensitive".
8602func (s DeleteBackupSelectionOutput) GoString() string {
8603	return s.String()
8604}
8605
8606type DeleteBackupVaultAccessPolicyInput struct {
8607	_ struct{} `type:"structure" nopayload:"true"`
8608
8609	// The name of a logical container where backups are stored. Backup vaults are
8610	// identified by names that are unique to the account used to create them and
8611	// the Amazon Web Services Region where they are created. They consist of lowercase
8612	// letters, numbers, and hyphens.
8613	//
8614	// BackupVaultName is a required field
8615	BackupVaultName *string `location:"uri" locationName:"backupVaultName" type:"string" required:"true"`
8616}
8617
8618// String returns the string representation.
8619//
8620// API parameter values that are decorated as "sensitive" in the API will not
8621// be included in the string output. The member name will be present, but the
8622// value will be replaced with "sensitive".
8623func (s DeleteBackupVaultAccessPolicyInput) String() string {
8624	return awsutil.Prettify(s)
8625}
8626
8627// GoString returns the string representation.
8628//
8629// API parameter values that are decorated as "sensitive" in the API will not
8630// be included in the string output. The member name will be present, but the
8631// value will be replaced with "sensitive".
8632func (s DeleteBackupVaultAccessPolicyInput) GoString() string {
8633	return s.String()
8634}
8635
8636// Validate inspects the fields of the type to determine if they are valid.
8637func (s *DeleteBackupVaultAccessPolicyInput) Validate() error {
8638	invalidParams := request.ErrInvalidParams{Context: "DeleteBackupVaultAccessPolicyInput"}
8639	if s.BackupVaultName == nil {
8640		invalidParams.Add(request.NewErrParamRequired("BackupVaultName"))
8641	}
8642	if s.BackupVaultName != nil && len(*s.BackupVaultName) < 1 {
8643		invalidParams.Add(request.NewErrParamMinLen("BackupVaultName", 1))
8644	}
8645
8646	if invalidParams.Len() > 0 {
8647		return invalidParams
8648	}
8649	return nil
8650}
8651
8652// SetBackupVaultName sets the BackupVaultName field's value.
8653func (s *DeleteBackupVaultAccessPolicyInput) SetBackupVaultName(v string) *DeleteBackupVaultAccessPolicyInput {
8654	s.BackupVaultName = &v
8655	return s
8656}
8657
8658type DeleteBackupVaultAccessPolicyOutput struct {
8659	_ struct{} `type:"structure"`
8660}
8661
8662// String returns the string representation.
8663//
8664// API parameter values that are decorated as "sensitive" in the API will not
8665// be included in the string output. The member name will be present, but the
8666// value will be replaced with "sensitive".
8667func (s DeleteBackupVaultAccessPolicyOutput) String() string {
8668	return awsutil.Prettify(s)
8669}
8670
8671// GoString returns the string representation.
8672//
8673// API parameter values that are decorated as "sensitive" in the API will not
8674// be included in the string output. The member name will be present, but the
8675// value will be replaced with "sensitive".
8676func (s DeleteBackupVaultAccessPolicyOutput) GoString() string {
8677	return s.String()
8678}
8679
8680type DeleteBackupVaultInput struct {
8681	_ struct{} `type:"structure" nopayload:"true"`
8682
8683	// The name of a logical container where backups are stored. Backup vaults are
8684	// identified by names that are unique to the account used to create them and
8685	// the Amazon Web Services Region where they are created. They consist of lowercase
8686	// letters, numbers, and hyphens.
8687	//
8688	// BackupVaultName is a required field
8689	BackupVaultName *string `location:"uri" locationName:"backupVaultName" type:"string" required:"true"`
8690}
8691
8692// String returns the string representation.
8693//
8694// API parameter values that are decorated as "sensitive" in the API will not
8695// be included in the string output. The member name will be present, but the
8696// value will be replaced with "sensitive".
8697func (s DeleteBackupVaultInput) String() string {
8698	return awsutil.Prettify(s)
8699}
8700
8701// GoString returns the string representation.
8702//
8703// API parameter values that are decorated as "sensitive" in the API will not
8704// be included in the string output. The member name will be present, but the
8705// value will be replaced with "sensitive".
8706func (s DeleteBackupVaultInput) GoString() string {
8707	return s.String()
8708}
8709
8710// Validate inspects the fields of the type to determine if they are valid.
8711func (s *DeleteBackupVaultInput) Validate() error {
8712	invalidParams := request.ErrInvalidParams{Context: "DeleteBackupVaultInput"}
8713	if s.BackupVaultName == nil {
8714		invalidParams.Add(request.NewErrParamRequired("BackupVaultName"))
8715	}
8716	if s.BackupVaultName != nil && len(*s.BackupVaultName) < 1 {
8717		invalidParams.Add(request.NewErrParamMinLen("BackupVaultName", 1))
8718	}
8719
8720	if invalidParams.Len() > 0 {
8721		return invalidParams
8722	}
8723	return nil
8724}
8725
8726// SetBackupVaultName sets the BackupVaultName field's value.
8727func (s *DeleteBackupVaultInput) SetBackupVaultName(v string) *DeleteBackupVaultInput {
8728	s.BackupVaultName = &v
8729	return s
8730}
8731
8732type DeleteBackupVaultLockConfigurationInput struct {
8733	_ struct{} `type:"structure" nopayload:"true"`
8734
8735	// The name of the backup vault from which to delete Backup Vault Lock.
8736	//
8737	// BackupVaultName is a required field
8738	BackupVaultName *string `location:"uri" locationName:"backupVaultName" type:"string" required:"true"`
8739}
8740
8741// String returns the string representation.
8742//
8743// API parameter values that are decorated as "sensitive" in the API will not
8744// be included in the string output. The member name will be present, but the
8745// value will be replaced with "sensitive".
8746func (s DeleteBackupVaultLockConfigurationInput) String() string {
8747	return awsutil.Prettify(s)
8748}
8749
8750// GoString returns the string representation.
8751//
8752// API parameter values that are decorated as "sensitive" in the API will not
8753// be included in the string output. The member name will be present, but the
8754// value will be replaced with "sensitive".
8755func (s DeleteBackupVaultLockConfigurationInput) GoString() string {
8756	return s.String()
8757}
8758
8759// Validate inspects the fields of the type to determine if they are valid.
8760func (s *DeleteBackupVaultLockConfigurationInput) Validate() error {
8761	invalidParams := request.ErrInvalidParams{Context: "DeleteBackupVaultLockConfigurationInput"}
8762	if s.BackupVaultName == nil {
8763		invalidParams.Add(request.NewErrParamRequired("BackupVaultName"))
8764	}
8765	if s.BackupVaultName != nil && len(*s.BackupVaultName) < 1 {
8766		invalidParams.Add(request.NewErrParamMinLen("BackupVaultName", 1))
8767	}
8768
8769	if invalidParams.Len() > 0 {
8770		return invalidParams
8771	}
8772	return nil
8773}
8774
8775// SetBackupVaultName sets the BackupVaultName field's value.
8776func (s *DeleteBackupVaultLockConfigurationInput) SetBackupVaultName(v string) *DeleteBackupVaultLockConfigurationInput {
8777	s.BackupVaultName = &v
8778	return s
8779}
8780
8781type DeleteBackupVaultLockConfigurationOutput struct {
8782	_ struct{} `type:"structure"`
8783}
8784
8785// String returns the string representation.
8786//
8787// API parameter values that are decorated as "sensitive" in the API will not
8788// be included in the string output. The member name will be present, but the
8789// value will be replaced with "sensitive".
8790func (s DeleteBackupVaultLockConfigurationOutput) String() string {
8791	return awsutil.Prettify(s)
8792}
8793
8794// GoString returns the string representation.
8795//
8796// API parameter values that are decorated as "sensitive" in the API will not
8797// be included in the string output. The member name will be present, but the
8798// value will be replaced with "sensitive".
8799func (s DeleteBackupVaultLockConfigurationOutput) GoString() string {
8800	return s.String()
8801}
8802
8803type DeleteBackupVaultNotificationsInput struct {
8804	_ struct{} `type:"structure" nopayload:"true"`
8805
8806	// The name of a logical container where backups are stored. Backup vaults are
8807	// identified by names that are unique to the account used to create them and
8808	// the Region where they are created. They consist of lowercase letters, numbers,
8809	// and hyphens.
8810	//
8811	// BackupVaultName is a required field
8812	BackupVaultName *string `location:"uri" locationName:"backupVaultName" type:"string" required:"true"`
8813}
8814
8815// String returns the string representation.
8816//
8817// API parameter values that are decorated as "sensitive" in the API will not
8818// be included in the string output. The member name will be present, but the
8819// value will be replaced with "sensitive".
8820func (s DeleteBackupVaultNotificationsInput) String() string {
8821	return awsutil.Prettify(s)
8822}
8823
8824// GoString returns the string representation.
8825//
8826// API parameter values that are decorated as "sensitive" in the API will not
8827// be included in the string output. The member name will be present, but the
8828// value will be replaced with "sensitive".
8829func (s DeleteBackupVaultNotificationsInput) GoString() string {
8830	return s.String()
8831}
8832
8833// Validate inspects the fields of the type to determine if they are valid.
8834func (s *DeleteBackupVaultNotificationsInput) Validate() error {
8835	invalidParams := request.ErrInvalidParams{Context: "DeleteBackupVaultNotificationsInput"}
8836	if s.BackupVaultName == nil {
8837		invalidParams.Add(request.NewErrParamRequired("BackupVaultName"))
8838	}
8839	if s.BackupVaultName != nil && len(*s.BackupVaultName) < 1 {
8840		invalidParams.Add(request.NewErrParamMinLen("BackupVaultName", 1))
8841	}
8842
8843	if invalidParams.Len() > 0 {
8844		return invalidParams
8845	}
8846	return nil
8847}
8848
8849// SetBackupVaultName sets the BackupVaultName field's value.
8850func (s *DeleteBackupVaultNotificationsInput) SetBackupVaultName(v string) *DeleteBackupVaultNotificationsInput {
8851	s.BackupVaultName = &v
8852	return s
8853}
8854
8855type DeleteBackupVaultNotificationsOutput struct {
8856	_ struct{} `type:"structure"`
8857}
8858
8859// String returns the string representation.
8860//
8861// API parameter values that are decorated as "sensitive" in the API will not
8862// be included in the string output. The member name will be present, but the
8863// value will be replaced with "sensitive".
8864func (s DeleteBackupVaultNotificationsOutput) String() string {
8865	return awsutil.Prettify(s)
8866}
8867
8868// GoString returns the string representation.
8869//
8870// API parameter values that are decorated as "sensitive" in the API will not
8871// be included in the string output. The member name will be present, but the
8872// value will be replaced with "sensitive".
8873func (s DeleteBackupVaultNotificationsOutput) GoString() string {
8874	return s.String()
8875}
8876
8877type DeleteBackupVaultOutput struct {
8878	_ struct{} `type:"structure"`
8879}
8880
8881// String returns the string representation.
8882//
8883// API parameter values that are decorated as "sensitive" in the API will not
8884// be included in the string output. The member name will be present, but the
8885// value will be replaced with "sensitive".
8886func (s DeleteBackupVaultOutput) String() string {
8887	return awsutil.Prettify(s)
8888}
8889
8890// GoString returns the string representation.
8891//
8892// API parameter values that are decorated as "sensitive" in the API will not
8893// be included in the string output. The member name will be present, but the
8894// value will be replaced with "sensitive".
8895func (s DeleteBackupVaultOutput) GoString() string {
8896	return s.String()
8897}
8898
8899type DeleteFrameworkInput struct {
8900	_ struct{} `type:"structure" nopayload:"true"`
8901
8902	// The unique name of a framework.
8903	//
8904	// FrameworkName is a required field
8905	FrameworkName *string `location:"uri" locationName:"frameworkName" min:"1" type:"string" required:"true"`
8906}
8907
8908// String returns the string representation.
8909//
8910// API parameter values that are decorated as "sensitive" in the API will not
8911// be included in the string output. The member name will be present, but the
8912// value will be replaced with "sensitive".
8913func (s DeleteFrameworkInput) String() string {
8914	return awsutil.Prettify(s)
8915}
8916
8917// GoString returns the string representation.
8918//
8919// API parameter values that are decorated as "sensitive" in the API will not
8920// be included in the string output. The member name will be present, but the
8921// value will be replaced with "sensitive".
8922func (s DeleteFrameworkInput) GoString() string {
8923	return s.String()
8924}
8925
8926// Validate inspects the fields of the type to determine if they are valid.
8927func (s *DeleteFrameworkInput) Validate() error {
8928	invalidParams := request.ErrInvalidParams{Context: "DeleteFrameworkInput"}
8929	if s.FrameworkName == nil {
8930		invalidParams.Add(request.NewErrParamRequired("FrameworkName"))
8931	}
8932	if s.FrameworkName != nil && len(*s.FrameworkName) < 1 {
8933		invalidParams.Add(request.NewErrParamMinLen("FrameworkName", 1))
8934	}
8935
8936	if invalidParams.Len() > 0 {
8937		return invalidParams
8938	}
8939	return nil
8940}
8941
8942// SetFrameworkName sets the FrameworkName field's value.
8943func (s *DeleteFrameworkInput) SetFrameworkName(v string) *DeleteFrameworkInput {
8944	s.FrameworkName = &v
8945	return s
8946}
8947
8948type DeleteFrameworkOutput struct {
8949	_ struct{} `type:"structure"`
8950}
8951
8952// String returns the string representation.
8953//
8954// API parameter values that are decorated as "sensitive" in the API will not
8955// be included in the string output. The member name will be present, but the
8956// value will be replaced with "sensitive".
8957func (s DeleteFrameworkOutput) String() string {
8958	return awsutil.Prettify(s)
8959}
8960
8961// GoString returns the string representation.
8962//
8963// API parameter values that are decorated as "sensitive" in the API will not
8964// be included in the string output. The member name will be present, but the
8965// value will be replaced with "sensitive".
8966func (s DeleteFrameworkOutput) GoString() string {
8967	return s.String()
8968}
8969
8970type DeleteRecoveryPointInput struct {
8971	_ struct{} `type:"structure" nopayload:"true"`
8972
8973	// The name of a logical container where backups are stored. Backup vaults are
8974	// identified by names that are unique to the account used to create them and
8975	// the Amazon Web Services Region where they are created. They consist of lowercase
8976	// letters, numbers, and hyphens.
8977	//
8978	// BackupVaultName is a required field
8979	BackupVaultName *string `location:"uri" locationName:"backupVaultName" type:"string" required:"true"`
8980
8981	// An Amazon Resource Name (ARN) that uniquely identifies a recovery point;
8982	// for example, arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45.
8983	//
8984	// RecoveryPointArn is a required field
8985	RecoveryPointArn *string `location:"uri" locationName:"recoveryPointArn" type:"string" required:"true"`
8986}
8987
8988// String returns the string representation.
8989//
8990// API parameter values that are decorated as "sensitive" in the API will not
8991// be included in the string output. The member name will be present, but the
8992// value will be replaced with "sensitive".
8993func (s DeleteRecoveryPointInput) String() string {
8994	return awsutil.Prettify(s)
8995}
8996
8997// GoString returns the string representation.
8998//
8999// API parameter values that are decorated as "sensitive" in the API will not
9000// be included in the string output. The member name will be present, but the
9001// value will be replaced with "sensitive".
9002func (s DeleteRecoveryPointInput) GoString() string {
9003	return s.String()
9004}
9005
9006// Validate inspects the fields of the type to determine if they are valid.
9007func (s *DeleteRecoveryPointInput) Validate() error {
9008	invalidParams := request.ErrInvalidParams{Context: "DeleteRecoveryPointInput"}
9009	if s.BackupVaultName == nil {
9010		invalidParams.Add(request.NewErrParamRequired("BackupVaultName"))
9011	}
9012	if s.BackupVaultName != nil && len(*s.BackupVaultName) < 1 {
9013		invalidParams.Add(request.NewErrParamMinLen("BackupVaultName", 1))
9014	}
9015	if s.RecoveryPointArn == nil {
9016		invalidParams.Add(request.NewErrParamRequired("RecoveryPointArn"))
9017	}
9018	if s.RecoveryPointArn != nil && len(*s.RecoveryPointArn) < 1 {
9019		invalidParams.Add(request.NewErrParamMinLen("RecoveryPointArn", 1))
9020	}
9021
9022	if invalidParams.Len() > 0 {
9023		return invalidParams
9024	}
9025	return nil
9026}
9027
9028// SetBackupVaultName sets the BackupVaultName field's value.
9029func (s *DeleteRecoveryPointInput) SetBackupVaultName(v string) *DeleteRecoveryPointInput {
9030	s.BackupVaultName = &v
9031	return s
9032}
9033
9034// SetRecoveryPointArn sets the RecoveryPointArn field's value.
9035func (s *DeleteRecoveryPointInput) SetRecoveryPointArn(v string) *DeleteRecoveryPointInput {
9036	s.RecoveryPointArn = &v
9037	return s
9038}
9039
9040type DeleteRecoveryPointOutput struct {
9041	_ struct{} `type:"structure"`
9042}
9043
9044// String returns the string representation.
9045//
9046// API parameter values that are decorated as "sensitive" in the API will not
9047// be included in the string output. The member name will be present, but the
9048// value will be replaced with "sensitive".
9049func (s DeleteRecoveryPointOutput) String() string {
9050	return awsutil.Prettify(s)
9051}
9052
9053// GoString returns the string representation.
9054//
9055// API parameter values that are decorated as "sensitive" in the API will not
9056// be included in the string output. The member name will be present, but the
9057// value will be replaced with "sensitive".
9058func (s DeleteRecoveryPointOutput) GoString() string {
9059	return s.String()
9060}
9061
9062type DeleteReportPlanInput struct {
9063	_ struct{} `type:"structure" nopayload:"true"`
9064
9065	// The unique name of a report plan.
9066	//
9067	// ReportPlanName is a required field
9068	ReportPlanName *string `location:"uri" locationName:"reportPlanName" min:"1" type:"string" required:"true"`
9069}
9070
9071// String returns the string representation.
9072//
9073// API parameter values that are decorated as "sensitive" in the API will not
9074// be included in the string output. The member name will be present, but the
9075// value will be replaced with "sensitive".
9076func (s DeleteReportPlanInput) String() string {
9077	return awsutil.Prettify(s)
9078}
9079
9080// GoString returns the string representation.
9081//
9082// API parameter values that are decorated as "sensitive" in the API will not
9083// be included in the string output. The member name will be present, but the
9084// value will be replaced with "sensitive".
9085func (s DeleteReportPlanInput) GoString() string {
9086	return s.String()
9087}
9088
9089// Validate inspects the fields of the type to determine if they are valid.
9090func (s *DeleteReportPlanInput) Validate() error {
9091	invalidParams := request.ErrInvalidParams{Context: "DeleteReportPlanInput"}
9092	if s.ReportPlanName == nil {
9093		invalidParams.Add(request.NewErrParamRequired("ReportPlanName"))
9094	}
9095	if s.ReportPlanName != nil && len(*s.ReportPlanName) < 1 {
9096		invalidParams.Add(request.NewErrParamMinLen("ReportPlanName", 1))
9097	}
9098
9099	if invalidParams.Len() > 0 {
9100		return invalidParams
9101	}
9102	return nil
9103}
9104
9105// SetReportPlanName sets the ReportPlanName field's value.
9106func (s *DeleteReportPlanInput) SetReportPlanName(v string) *DeleteReportPlanInput {
9107	s.ReportPlanName = &v
9108	return s
9109}
9110
9111type DeleteReportPlanOutput struct {
9112	_ struct{} `type:"structure"`
9113}
9114
9115// String returns the string representation.
9116//
9117// API parameter values that are decorated as "sensitive" in the API will not
9118// be included in the string output. The member name will be present, but the
9119// value will be replaced with "sensitive".
9120func (s DeleteReportPlanOutput) String() string {
9121	return awsutil.Prettify(s)
9122}
9123
9124// GoString returns the string representation.
9125//
9126// API parameter values that are decorated as "sensitive" in the API will not
9127// be included in the string output. The member name will be present, but the
9128// value will be replaced with "sensitive".
9129func (s DeleteReportPlanOutput) GoString() string {
9130	return s.String()
9131}
9132
9133// A dependent Amazon Web Services service or resource returned an error to
9134// the Backup service, and the action cannot be completed.
9135type DependencyFailureException struct {
9136	_            struct{}                  `type:"structure"`
9137	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9138
9139	Code_ *string `locationName:"Code" type:"string"`
9140
9141	Context *string `type:"string"`
9142
9143	Message_ *string `locationName:"Message" type:"string"`
9144
9145	Type *string `type:"string"`
9146}
9147
9148// String returns the string representation.
9149//
9150// API parameter values that are decorated as "sensitive" in the API will not
9151// be included in the string output. The member name will be present, but the
9152// value will be replaced with "sensitive".
9153func (s DependencyFailureException) String() string {
9154	return awsutil.Prettify(s)
9155}
9156
9157// GoString returns the string representation.
9158//
9159// API parameter values that are decorated as "sensitive" in the API will not
9160// be included in the string output. The member name will be present, but the
9161// value will be replaced with "sensitive".
9162func (s DependencyFailureException) GoString() string {
9163	return s.String()
9164}
9165
9166func newErrorDependencyFailureException(v protocol.ResponseMetadata) error {
9167	return &DependencyFailureException{
9168		RespMetadata: v,
9169	}
9170}
9171
9172// Code returns the exception type name.
9173func (s *DependencyFailureException) Code() string {
9174	return "DependencyFailureException"
9175}
9176
9177// Message returns the exception's message.
9178func (s *DependencyFailureException) Message() string {
9179	if s.Message_ != nil {
9180		return *s.Message_
9181	}
9182	return ""
9183}
9184
9185// OrigErr always returns nil, satisfies awserr.Error interface.
9186func (s *DependencyFailureException) OrigErr() error {
9187	return nil
9188}
9189
9190func (s *DependencyFailureException) Error() string {
9191	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
9192}
9193
9194// Status code returns the HTTP status code for the request's response error.
9195func (s *DependencyFailureException) StatusCode() int {
9196	return s.RespMetadata.StatusCode
9197}
9198
9199// RequestID returns the service's response RequestID for request.
9200func (s *DependencyFailureException) RequestID() string {
9201	return s.RespMetadata.RequestID
9202}
9203
9204type DescribeBackupJobInput struct {
9205	_ struct{} `type:"structure" nopayload:"true"`
9206
9207	// Uniquely identifies a request to Backup to back up a resource.
9208	//
9209	// BackupJobId is a required field
9210	BackupJobId *string `location:"uri" locationName:"backupJobId" type:"string" required:"true"`
9211}
9212
9213// String returns the string representation.
9214//
9215// API parameter values that are decorated as "sensitive" in the API will not
9216// be included in the string output. The member name will be present, but the
9217// value will be replaced with "sensitive".
9218func (s DescribeBackupJobInput) String() string {
9219	return awsutil.Prettify(s)
9220}
9221
9222// GoString returns the string representation.
9223//
9224// API parameter values that are decorated as "sensitive" in the API will not
9225// be included in the string output. The member name will be present, but the
9226// value will be replaced with "sensitive".
9227func (s DescribeBackupJobInput) GoString() string {
9228	return s.String()
9229}
9230
9231// Validate inspects the fields of the type to determine if they are valid.
9232func (s *DescribeBackupJobInput) Validate() error {
9233	invalidParams := request.ErrInvalidParams{Context: "DescribeBackupJobInput"}
9234	if s.BackupJobId == nil {
9235		invalidParams.Add(request.NewErrParamRequired("BackupJobId"))
9236	}
9237	if s.BackupJobId != nil && len(*s.BackupJobId) < 1 {
9238		invalidParams.Add(request.NewErrParamMinLen("BackupJobId", 1))
9239	}
9240
9241	if invalidParams.Len() > 0 {
9242		return invalidParams
9243	}
9244	return nil
9245}
9246
9247// SetBackupJobId sets the BackupJobId field's value.
9248func (s *DescribeBackupJobInput) SetBackupJobId(v string) *DescribeBackupJobInput {
9249	s.BackupJobId = &v
9250	return s
9251}
9252
9253type DescribeBackupJobOutput struct {
9254	_ struct{} `type:"structure"`
9255
9256	// Returns the account ID that owns the backup job.
9257	AccountId *string `type:"string"`
9258
9259	// Uniquely identifies a request to Backup to back up a resource.
9260	BackupJobId *string `type:"string"`
9261
9262	// Represents the options specified as part of backup plan or on-demand backup
9263	// job.
9264	BackupOptions map[string]*string `type:"map"`
9265
9266	// The size, in bytes, of a backup.
9267	BackupSizeInBytes *int64 `type:"long"`
9268
9269	// Represents the actual backup type selected for a backup job. For example,
9270	// if a successful Windows Volume Shadow Copy Service (VSS) backup was taken,
9271	// BackupType returns "WindowsVSS". If BackupType is empty, then the backup
9272	// type was a regular backup.
9273	BackupType *string `type:"string"`
9274
9275	// An Amazon Resource Name (ARN) that uniquely identifies a backup vault; for
9276	// example, arn:aws:backup:us-east-1:123456789012:vault:aBackupVault.
9277	BackupVaultArn *string `type:"string"`
9278
9279	// The name of a logical container where backups are stored. Backup vaults are
9280	// identified by names that are unique to the account used to create them and
9281	// the Amazon Web Services Region where they are created. They consist of lowercase
9282	// letters, numbers, and hyphens.
9283	BackupVaultName *string `type:"string"`
9284
9285	// The size in bytes transferred to a backup vault at the time that the job
9286	// status was queried.
9287	BytesTransferred *int64 `type:"long"`
9288
9289	// The date and time that a job to create a backup job is completed, in Unix
9290	// format and Coordinated Universal Time (UTC). The value of CompletionDate
9291	// is accurate to milliseconds. For example, the value 1516925490.087 represents
9292	// Friday, January 26, 2018 12:11:30.087 AM.
9293	CompletionDate *time.Time `type:"timestamp"`
9294
9295	// Contains identifying information about the creation of a backup job, including
9296	// the BackupPlanArn, BackupPlanId, BackupPlanVersion, and BackupRuleId of the
9297	// backup plan that is used to create it.
9298	CreatedBy *RecoveryPointCreator `type:"structure"`
9299
9300	// The date and time that a backup job is created, in Unix format and Coordinated
9301	// Universal Time (UTC). The value of CreationDate is accurate to milliseconds.
9302	// For example, the value 1516925490.087 represents Friday, January 26, 2018
9303	// 12:11:30.087 AM.
9304	CreationDate *time.Time `type:"timestamp"`
9305
9306	// The date and time that a job to back up resources is expected to be completed,
9307	// in Unix format and Coordinated Universal Time (UTC). The value of ExpectedCompletionDate
9308	// is accurate to milliseconds. For example, the value 1516925490.087 represents
9309	// Friday, January 26, 2018 12:11:30.087 AM.
9310	ExpectedCompletionDate *time.Time `type:"timestamp"`
9311
9312	// Specifies the IAM role ARN used to create the target recovery point; for
9313	// example, arn:aws:iam::123456789012:role/S3Access.
9314	IamRoleArn *string `type:"string"`
9315
9316	// Contains an estimated percentage that is complete of a job at the time the
9317	// job status was queried.
9318	PercentDone *string `type:"string"`
9319
9320	// An ARN that uniquely identifies a recovery point; for example, arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45.
9321	RecoveryPointArn *string `type:"string"`
9322
9323	// An ARN that uniquely identifies a saved resource. The format of the ARN depends
9324	// on the resource type.
9325	ResourceArn *string `type:"string"`
9326
9327	// The type of Amazon Web Services resource to be backed up; for example, an
9328	// Amazon Elastic Block Store (Amazon EBS) volume or an Amazon Relational Database
9329	// Service (Amazon RDS) database.
9330	ResourceType *string `type:"string"`
9331
9332	// Specifies the time in Unix format and Coordinated Universal Time (UTC) when
9333	// a backup job must be started before it is canceled. The value is calculated
9334	// by adding the start window to the scheduled time. So if the scheduled time
9335	// were 6:00 PM and the start window is 2 hours, the StartBy time would be 8:00
9336	// PM on the date specified. The value of StartBy is accurate to milliseconds.
9337	// For example, the value 1516925490.087 represents Friday, January 26, 2018
9338	// 12:11:30.087 AM.
9339	StartBy *time.Time `type:"timestamp"`
9340
9341	// The current state of a resource recovery point.
9342	State *string `type:"string" enum:"JobState"`
9343
9344	// A detailed message explaining the status of the job to back up a resource.
9345	StatusMessage *string `type:"string"`
9346}
9347
9348// String returns the string representation.
9349//
9350// API parameter values that are decorated as "sensitive" in the API will not
9351// be included in the string output. The member name will be present, but the
9352// value will be replaced with "sensitive".
9353func (s DescribeBackupJobOutput) String() string {
9354	return awsutil.Prettify(s)
9355}
9356
9357// GoString returns the string representation.
9358//
9359// API parameter values that are decorated as "sensitive" in the API will not
9360// be included in the string output. The member name will be present, but the
9361// value will be replaced with "sensitive".
9362func (s DescribeBackupJobOutput) GoString() string {
9363	return s.String()
9364}
9365
9366// SetAccountId sets the AccountId field's value.
9367func (s *DescribeBackupJobOutput) SetAccountId(v string) *DescribeBackupJobOutput {
9368	s.AccountId = &v
9369	return s
9370}
9371
9372// SetBackupJobId sets the BackupJobId field's value.
9373func (s *DescribeBackupJobOutput) SetBackupJobId(v string) *DescribeBackupJobOutput {
9374	s.BackupJobId = &v
9375	return s
9376}
9377
9378// SetBackupOptions sets the BackupOptions field's value.
9379func (s *DescribeBackupJobOutput) SetBackupOptions(v map[string]*string) *DescribeBackupJobOutput {
9380	s.BackupOptions = v
9381	return s
9382}
9383
9384// SetBackupSizeInBytes sets the BackupSizeInBytes field's value.
9385func (s *DescribeBackupJobOutput) SetBackupSizeInBytes(v int64) *DescribeBackupJobOutput {
9386	s.BackupSizeInBytes = &v
9387	return s
9388}
9389
9390// SetBackupType sets the BackupType field's value.
9391func (s *DescribeBackupJobOutput) SetBackupType(v string) *DescribeBackupJobOutput {
9392	s.BackupType = &v
9393	return s
9394}
9395
9396// SetBackupVaultArn sets the BackupVaultArn field's value.
9397func (s *DescribeBackupJobOutput) SetBackupVaultArn(v string) *DescribeBackupJobOutput {
9398	s.BackupVaultArn = &v
9399	return s
9400}
9401
9402// SetBackupVaultName sets the BackupVaultName field's value.
9403func (s *DescribeBackupJobOutput) SetBackupVaultName(v string) *DescribeBackupJobOutput {
9404	s.BackupVaultName = &v
9405	return s
9406}
9407
9408// SetBytesTransferred sets the BytesTransferred field's value.
9409func (s *DescribeBackupJobOutput) SetBytesTransferred(v int64) *DescribeBackupJobOutput {
9410	s.BytesTransferred = &v
9411	return s
9412}
9413
9414// SetCompletionDate sets the CompletionDate field's value.
9415func (s *DescribeBackupJobOutput) SetCompletionDate(v time.Time) *DescribeBackupJobOutput {
9416	s.CompletionDate = &v
9417	return s
9418}
9419
9420// SetCreatedBy sets the CreatedBy field's value.
9421func (s *DescribeBackupJobOutput) SetCreatedBy(v *RecoveryPointCreator) *DescribeBackupJobOutput {
9422	s.CreatedBy = v
9423	return s
9424}
9425
9426// SetCreationDate sets the CreationDate field's value.
9427func (s *DescribeBackupJobOutput) SetCreationDate(v time.Time) *DescribeBackupJobOutput {
9428	s.CreationDate = &v
9429	return s
9430}
9431
9432// SetExpectedCompletionDate sets the ExpectedCompletionDate field's value.
9433func (s *DescribeBackupJobOutput) SetExpectedCompletionDate(v time.Time) *DescribeBackupJobOutput {
9434	s.ExpectedCompletionDate = &v
9435	return s
9436}
9437
9438// SetIamRoleArn sets the IamRoleArn field's value.
9439func (s *DescribeBackupJobOutput) SetIamRoleArn(v string) *DescribeBackupJobOutput {
9440	s.IamRoleArn = &v
9441	return s
9442}
9443
9444// SetPercentDone sets the PercentDone field's value.
9445func (s *DescribeBackupJobOutput) SetPercentDone(v string) *DescribeBackupJobOutput {
9446	s.PercentDone = &v
9447	return s
9448}
9449
9450// SetRecoveryPointArn sets the RecoveryPointArn field's value.
9451func (s *DescribeBackupJobOutput) SetRecoveryPointArn(v string) *DescribeBackupJobOutput {
9452	s.RecoveryPointArn = &v
9453	return s
9454}
9455
9456// SetResourceArn sets the ResourceArn field's value.
9457func (s *DescribeBackupJobOutput) SetResourceArn(v string) *DescribeBackupJobOutput {
9458	s.ResourceArn = &v
9459	return s
9460}
9461
9462// SetResourceType sets the ResourceType field's value.
9463func (s *DescribeBackupJobOutput) SetResourceType(v string) *DescribeBackupJobOutput {
9464	s.ResourceType = &v
9465	return s
9466}
9467
9468// SetStartBy sets the StartBy field's value.
9469func (s *DescribeBackupJobOutput) SetStartBy(v time.Time) *DescribeBackupJobOutput {
9470	s.StartBy = &v
9471	return s
9472}
9473
9474// SetState sets the State field's value.
9475func (s *DescribeBackupJobOutput) SetState(v string) *DescribeBackupJobOutput {
9476	s.State = &v
9477	return s
9478}
9479
9480// SetStatusMessage sets the StatusMessage field's value.
9481func (s *DescribeBackupJobOutput) SetStatusMessage(v string) *DescribeBackupJobOutput {
9482	s.StatusMessage = &v
9483	return s
9484}
9485
9486type DescribeBackupVaultInput struct {
9487	_ struct{} `type:"structure" nopayload:"true"`
9488
9489	// The name of a logical container where backups are stored. Backup vaults are
9490	// identified by names that are unique to the account used to create them and
9491	// the Amazon Web Services Region where they are created. They consist of lowercase
9492	// letters, numbers, and hyphens.
9493	//
9494	// BackupVaultName is a required field
9495	BackupVaultName *string `location:"uri" locationName:"backupVaultName" type:"string" required:"true"`
9496}
9497
9498// String returns the string representation.
9499//
9500// API parameter values that are decorated as "sensitive" in the API will not
9501// be included in the string output. The member name will be present, but the
9502// value will be replaced with "sensitive".
9503func (s DescribeBackupVaultInput) String() string {
9504	return awsutil.Prettify(s)
9505}
9506
9507// GoString returns the string representation.
9508//
9509// API parameter values that are decorated as "sensitive" in the API will not
9510// be included in the string output. The member name will be present, but the
9511// value will be replaced with "sensitive".
9512func (s DescribeBackupVaultInput) GoString() string {
9513	return s.String()
9514}
9515
9516// Validate inspects the fields of the type to determine if they are valid.
9517func (s *DescribeBackupVaultInput) Validate() error {
9518	invalidParams := request.ErrInvalidParams{Context: "DescribeBackupVaultInput"}
9519	if s.BackupVaultName == nil {
9520		invalidParams.Add(request.NewErrParamRequired("BackupVaultName"))
9521	}
9522	if s.BackupVaultName != nil && len(*s.BackupVaultName) < 1 {
9523		invalidParams.Add(request.NewErrParamMinLen("BackupVaultName", 1))
9524	}
9525
9526	if invalidParams.Len() > 0 {
9527		return invalidParams
9528	}
9529	return nil
9530}
9531
9532// SetBackupVaultName sets the BackupVaultName field's value.
9533func (s *DescribeBackupVaultInput) SetBackupVaultName(v string) *DescribeBackupVaultInput {
9534	s.BackupVaultName = &v
9535	return s
9536}
9537
9538type DescribeBackupVaultOutput struct {
9539	_ struct{} `type:"structure"`
9540
9541	// An Amazon Resource Name (ARN) that uniquely identifies a backup vault; for
9542	// example, arn:aws:backup:us-east-1:123456789012:vault:aBackupVault.
9543	BackupVaultArn *string `type:"string"`
9544
9545	// The name of a logical container where backups are stored. Backup vaults are
9546	// identified by names that are unique to the account used to create them and
9547	// the Region where they are created. They consist of lowercase letters, numbers,
9548	// and hyphens.
9549	BackupVaultName *string `type:"string"`
9550
9551	// The date and time that a backup vault is created, in Unix format and Coordinated
9552	// Universal Time (UTC). The value of CreationDate is accurate to milliseconds.
9553	// For example, the value 1516925490.087 represents Friday, January 26, 2018
9554	// 12:11:30.087 AM.
9555	CreationDate *time.Time `type:"timestamp"`
9556
9557	// A unique string that identifies the request and allows failed requests to
9558	// be retried without the risk of running the operation twice.
9559	CreatorRequestId *string `type:"string"`
9560
9561	// The server-side encryption key that is used to protect your backups; for
9562	// example, arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab.
9563	EncryptionKeyArn *string `type:"string"`
9564
9565	// The date and time when Backup Vault Lock configuration cannot be changed
9566	// or deleted.
9567	//
9568	// If you applied Vault Lock to your vault without specifying a lock date, you
9569	// can change any of your Vault Lock settings, or delete Vault Lock from the
9570	// vault entirely, at any time.
9571	//
9572	// This value is in Unix format, Coordinated Universal Time (UTC), and accurate
9573	// to milliseconds. For example, the value 1516925490.087 represents Friday,
9574	// January 26, 2018 12:11:30.087 AM.
9575	LockDate *time.Time `type:"timestamp"`
9576
9577	// A Boolean that indicates whether Backup Vault Lock is currently protecting
9578	// the backup vault. True means that Vault Lock causes delete or update operations
9579	// on the recovery points stored in the vault to fail.
9580	Locked *bool `type:"boolean"`
9581
9582	// The Backup Vault Lock setting that specifies the maximum retention period
9583	// that the vault retains its recovery points. If this parameter is not specified,
9584	// Vault Lock does not enforce a maximum retention period on the recovery points
9585	// in the vault (allowing indefinite storage).
9586	//
9587	// If specified, any backup or copy job to the vault must have a lifecycle policy
9588	// with a retention period equal to or shorter than the maximum retention period.
9589	// If the job's retention period is longer than that maximum retention period,
9590	// then the vault fails the backup or copy job, and you should either modify
9591	// your lifecycle settings or use a different vault. Recovery points already
9592	// stored in the vault prior to Vault Lock are not affected.
9593	MaxRetentionDays *int64 `type:"long"`
9594
9595	// The Backup Vault Lock setting that specifies the minimum retention period
9596	// that the vault retains its recovery points. If this parameter is not specified,
9597	// Vault Lock does not enforce a minimum retention period.
9598	//
9599	// If specified, any backup or copy job to the vault must have a lifecycle policy
9600	// with a retention period equal to or longer than the minimum retention period.
9601	// If the job's retention period is shorter than that minimum retention period,
9602	// then the vault fails the backup or copy job, and you should either modify
9603	// your lifecycle settings or use a different vault. Recovery points already
9604	// stored in the vault prior to Vault Lock are not affected.
9605	MinRetentionDays *int64 `type:"long"`
9606
9607	// The number of recovery points that are stored in a backup vault.
9608	NumberOfRecoveryPoints *int64 `type:"long"`
9609}
9610
9611// String returns the string representation.
9612//
9613// API parameter values that are decorated as "sensitive" in the API will not
9614// be included in the string output. The member name will be present, but the
9615// value will be replaced with "sensitive".
9616func (s DescribeBackupVaultOutput) String() string {
9617	return awsutil.Prettify(s)
9618}
9619
9620// GoString returns the string representation.
9621//
9622// API parameter values that are decorated as "sensitive" in the API will not
9623// be included in the string output. The member name will be present, but the
9624// value will be replaced with "sensitive".
9625func (s DescribeBackupVaultOutput) GoString() string {
9626	return s.String()
9627}
9628
9629// SetBackupVaultArn sets the BackupVaultArn field's value.
9630func (s *DescribeBackupVaultOutput) SetBackupVaultArn(v string) *DescribeBackupVaultOutput {
9631	s.BackupVaultArn = &v
9632	return s
9633}
9634
9635// SetBackupVaultName sets the BackupVaultName field's value.
9636func (s *DescribeBackupVaultOutput) SetBackupVaultName(v string) *DescribeBackupVaultOutput {
9637	s.BackupVaultName = &v
9638	return s
9639}
9640
9641// SetCreationDate sets the CreationDate field's value.
9642func (s *DescribeBackupVaultOutput) SetCreationDate(v time.Time) *DescribeBackupVaultOutput {
9643	s.CreationDate = &v
9644	return s
9645}
9646
9647// SetCreatorRequestId sets the CreatorRequestId field's value.
9648func (s *DescribeBackupVaultOutput) SetCreatorRequestId(v string) *DescribeBackupVaultOutput {
9649	s.CreatorRequestId = &v
9650	return s
9651}
9652
9653// SetEncryptionKeyArn sets the EncryptionKeyArn field's value.
9654func (s *DescribeBackupVaultOutput) SetEncryptionKeyArn(v string) *DescribeBackupVaultOutput {
9655	s.EncryptionKeyArn = &v
9656	return s
9657}
9658
9659// SetLockDate sets the LockDate field's value.
9660func (s *DescribeBackupVaultOutput) SetLockDate(v time.Time) *DescribeBackupVaultOutput {
9661	s.LockDate = &v
9662	return s
9663}
9664
9665// SetLocked sets the Locked field's value.
9666func (s *DescribeBackupVaultOutput) SetLocked(v bool) *DescribeBackupVaultOutput {
9667	s.Locked = &v
9668	return s
9669}
9670
9671// SetMaxRetentionDays sets the MaxRetentionDays field's value.
9672func (s *DescribeBackupVaultOutput) SetMaxRetentionDays(v int64) *DescribeBackupVaultOutput {
9673	s.MaxRetentionDays = &v
9674	return s
9675}
9676
9677// SetMinRetentionDays sets the MinRetentionDays field's value.
9678func (s *DescribeBackupVaultOutput) SetMinRetentionDays(v int64) *DescribeBackupVaultOutput {
9679	s.MinRetentionDays = &v
9680	return s
9681}
9682
9683// SetNumberOfRecoveryPoints sets the NumberOfRecoveryPoints field's value.
9684func (s *DescribeBackupVaultOutput) SetNumberOfRecoveryPoints(v int64) *DescribeBackupVaultOutput {
9685	s.NumberOfRecoveryPoints = &v
9686	return s
9687}
9688
9689type DescribeCopyJobInput struct {
9690	_ struct{} `type:"structure" nopayload:"true"`
9691
9692	// Uniquely identifies a copy job.
9693	//
9694	// CopyJobId is a required field
9695	CopyJobId *string `location:"uri" locationName:"copyJobId" type:"string" required:"true"`
9696}
9697
9698// String returns the string representation.
9699//
9700// API parameter values that are decorated as "sensitive" in the API will not
9701// be included in the string output. The member name will be present, but the
9702// value will be replaced with "sensitive".
9703func (s DescribeCopyJobInput) String() string {
9704	return awsutil.Prettify(s)
9705}
9706
9707// GoString returns the string representation.
9708//
9709// API parameter values that are decorated as "sensitive" in the API will not
9710// be included in the string output. The member name will be present, but the
9711// value will be replaced with "sensitive".
9712func (s DescribeCopyJobInput) GoString() string {
9713	return s.String()
9714}
9715
9716// Validate inspects the fields of the type to determine if they are valid.
9717func (s *DescribeCopyJobInput) Validate() error {
9718	invalidParams := request.ErrInvalidParams{Context: "DescribeCopyJobInput"}
9719	if s.CopyJobId == nil {
9720		invalidParams.Add(request.NewErrParamRequired("CopyJobId"))
9721	}
9722	if s.CopyJobId != nil && len(*s.CopyJobId) < 1 {
9723		invalidParams.Add(request.NewErrParamMinLen("CopyJobId", 1))
9724	}
9725
9726	if invalidParams.Len() > 0 {
9727		return invalidParams
9728	}
9729	return nil
9730}
9731
9732// SetCopyJobId sets the CopyJobId field's value.
9733func (s *DescribeCopyJobInput) SetCopyJobId(v string) *DescribeCopyJobInput {
9734	s.CopyJobId = &v
9735	return s
9736}
9737
9738type DescribeCopyJobOutput struct {
9739	_ struct{} `type:"structure"`
9740
9741	// Contains detailed information about a copy job.
9742	CopyJob *CopyJob `type:"structure"`
9743}
9744
9745// String returns the string representation.
9746//
9747// API parameter values that are decorated as "sensitive" in the API will not
9748// be included in the string output. The member name will be present, but the
9749// value will be replaced with "sensitive".
9750func (s DescribeCopyJobOutput) String() string {
9751	return awsutil.Prettify(s)
9752}
9753
9754// GoString returns the string representation.
9755//
9756// API parameter values that are decorated as "sensitive" in the API will not
9757// be included in the string output. The member name will be present, but the
9758// value will be replaced with "sensitive".
9759func (s DescribeCopyJobOutput) GoString() string {
9760	return s.String()
9761}
9762
9763// SetCopyJob sets the CopyJob field's value.
9764func (s *DescribeCopyJobOutput) SetCopyJob(v *CopyJob) *DescribeCopyJobOutput {
9765	s.CopyJob = v
9766	return s
9767}
9768
9769type DescribeFrameworkInput struct {
9770	_ struct{} `type:"structure" nopayload:"true"`
9771
9772	// The unique name of a framework.
9773	//
9774	// FrameworkName is a required field
9775	FrameworkName *string `location:"uri" locationName:"frameworkName" min:"1" type:"string" required:"true"`
9776}
9777
9778// String returns the string representation.
9779//
9780// API parameter values that are decorated as "sensitive" in the API will not
9781// be included in the string output. The member name will be present, but the
9782// value will be replaced with "sensitive".
9783func (s DescribeFrameworkInput) String() string {
9784	return awsutil.Prettify(s)
9785}
9786
9787// GoString returns the string representation.
9788//
9789// API parameter values that are decorated as "sensitive" in the API will not
9790// be included in the string output. The member name will be present, but the
9791// value will be replaced with "sensitive".
9792func (s DescribeFrameworkInput) GoString() string {
9793	return s.String()
9794}
9795
9796// Validate inspects the fields of the type to determine if they are valid.
9797func (s *DescribeFrameworkInput) Validate() error {
9798	invalidParams := request.ErrInvalidParams{Context: "DescribeFrameworkInput"}
9799	if s.FrameworkName == nil {
9800		invalidParams.Add(request.NewErrParamRequired("FrameworkName"))
9801	}
9802	if s.FrameworkName != nil && len(*s.FrameworkName) < 1 {
9803		invalidParams.Add(request.NewErrParamMinLen("FrameworkName", 1))
9804	}
9805
9806	if invalidParams.Len() > 0 {
9807		return invalidParams
9808	}
9809	return nil
9810}
9811
9812// SetFrameworkName sets the FrameworkName field's value.
9813func (s *DescribeFrameworkInput) SetFrameworkName(v string) *DescribeFrameworkInput {
9814	s.FrameworkName = &v
9815	return s
9816}
9817
9818type DescribeFrameworkOutput struct {
9819	_ struct{} `type:"structure"`
9820
9821	// The date and time that a framework is created, in Unix format and Coordinated
9822	// Universal Time (UTC). The value of CreationTime is accurate to milliseconds.
9823	// For example, the value 1516925490.087 represents Friday, January 26, 2018
9824	// 12:11:30.087 AM.
9825	CreationTime *time.Time `type:"timestamp"`
9826
9827	// The deployment status of a framework. The statuses are:
9828	//
9829	// CREATE_IN_PROGRESS | UPDATE_IN_PROGRESS | DELETE_IN_PROGRESS | COMPLETED
9830	// | FAILED
9831	DeploymentStatus *string `type:"string"`
9832
9833	// An Amazon Resource Name (ARN) that uniquely identifies a resource. The format
9834	// of the ARN depends on the resource type.
9835	FrameworkArn *string `type:"string"`
9836
9837	// A list of the controls that make up the framework. Each control in the list
9838	// has a name, input parameters, and scope.
9839	FrameworkControls []*FrameworkControl `type:"list"`
9840
9841	// An optional description of the framework.
9842	FrameworkDescription *string `type:"string"`
9843
9844	// The unique name of a framework.
9845	FrameworkName *string `min:"1" type:"string"`
9846
9847	// A framework consists of one or more controls. Each control governs a resource,
9848	// such as backup plans, backup selections, backup vaults, or recovery points.
9849	// You can also turn Config recording on or off for each resource. The statuses
9850	// are:
9851	//
9852	//    * ACTIVE when recording is turned on for all resources governed by the
9853	//    framework.
9854	//
9855	//    * PARTIALLY_ACTIVE when recording is turned off for at least one resource
9856	//    governed by the framework.
9857	//
9858	//    * INACTIVE when recording is turned off for all resources governed by
9859	//    the framework.
9860	//
9861	//    * UNAVAILABLE when Backup is unable to validate recording status at this
9862	//    time.
9863	FrameworkStatus *string `type:"string"`
9864
9865	// A customer-chosen string that you can use to distinguish between otherwise
9866	// identical calls to DescribeFrameworkOutput. Retrying a successful request
9867	// with the same idempotency token results in a success message with no action
9868	// taken.
9869	IdempotencyToken *string `type:"string"`
9870}
9871
9872// String returns the string representation.
9873//
9874// API parameter values that are decorated as "sensitive" in the API will not
9875// be included in the string output. The member name will be present, but the
9876// value will be replaced with "sensitive".
9877func (s DescribeFrameworkOutput) String() string {
9878	return awsutil.Prettify(s)
9879}
9880
9881// GoString returns the string representation.
9882//
9883// API parameter values that are decorated as "sensitive" in the API will not
9884// be included in the string output. The member name will be present, but the
9885// value will be replaced with "sensitive".
9886func (s DescribeFrameworkOutput) GoString() string {
9887	return s.String()
9888}
9889
9890// SetCreationTime sets the CreationTime field's value.
9891func (s *DescribeFrameworkOutput) SetCreationTime(v time.Time) *DescribeFrameworkOutput {
9892	s.CreationTime = &v
9893	return s
9894}
9895
9896// SetDeploymentStatus sets the DeploymentStatus field's value.
9897func (s *DescribeFrameworkOutput) SetDeploymentStatus(v string) *DescribeFrameworkOutput {
9898	s.DeploymentStatus = &v
9899	return s
9900}
9901
9902// SetFrameworkArn sets the FrameworkArn field's value.
9903func (s *DescribeFrameworkOutput) SetFrameworkArn(v string) *DescribeFrameworkOutput {
9904	s.FrameworkArn = &v
9905	return s
9906}
9907
9908// SetFrameworkControls sets the FrameworkControls field's value.
9909func (s *DescribeFrameworkOutput) SetFrameworkControls(v []*FrameworkControl) *DescribeFrameworkOutput {
9910	s.FrameworkControls = v
9911	return s
9912}
9913
9914// SetFrameworkDescription sets the FrameworkDescription field's value.
9915func (s *DescribeFrameworkOutput) SetFrameworkDescription(v string) *DescribeFrameworkOutput {
9916	s.FrameworkDescription = &v
9917	return s
9918}
9919
9920// SetFrameworkName sets the FrameworkName field's value.
9921func (s *DescribeFrameworkOutput) SetFrameworkName(v string) *DescribeFrameworkOutput {
9922	s.FrameworkName = &v
9923	return s
9924}
9925
9926// SetFrameworkStatus sets the FrameworkStatus field's value.
9927func (s *DescribeFrameworkOutput) SetFrameworkStatus(v string) *DescribeFrameworkOutput {
9928	s.FrameworkStatus = &v
9929	return s
9930}
9931
9932// SetIdempotencyToken sets the IdempotencyToken field's value.
9933func (s *DescribeFrameworkOutput) SetIdempotencyToken(v string) *DescribeFrameworkOutput {
9934	s.IdempotencyToken = &v
9935	return s
9936}
9937
9938type DescribeGlobalSettingsInput struct {
9939	_ struct{} `type:"structure" nopayload:"true"`
9940}
9941
9942// String returns the string representation.
9943//
9944// API parameter values that are decorated as "sensitive" in the API will not
9945// be included in the string output. The member name will be present, but the
9946// value will be replaced with "sensitive".
9947func (s DescribeGlobalSettingsInput) String() string {
9948	return awsutil.Prettify(s)
9949}
9950
9951// GoString returns the string representation.
9952//
9953// API parameter values that are decorated as "sensitive" in the API will not
9954// be included in the string output. The member name will be present, but the
9955// value will be replaced with "sensitive".
9956func (s DescribeGlobalSettingsInput) GoString() string {
9957	return s.String()
9958}
9959
9960type DescribeGlobalSettingsOutput struct {
9961	_ struct{} `type:"structure"`
9962
9963	// The status of the flag isCrossAccountBackupEnabled.
9964	GlobalSettings map[string]*string `type:"map"`
9965
9966	// The date and time that the flag isCrossAccountBackupEnabled was last updated.
9967	// This update is in Unix format and Coordinated Universal Time (UTC). The value
9968	// of LastUpdateTime is accurate to milliseconds. For example, the value 1516925490.087
9969	// represents Friday, January 26, 2018 12:11:30.087 AM.
9970	LastUpdateTime *time.Time `type:"timestamp"`
9971}
9972
9973// String returns the string representation.
9974//
9975// API parameter values that are decorated as "sensitive" in the API will not
9976// be included in the string output. The member name will be present, but the
9977// value will be replaced with "sensitive".
9978func (s DescribeGlobalSettingsOutput) String() string {
9979	return awsutil.Prettify(s)
9980}
9981
9982// GoString returns the string representation.
9983//
9984// API parameter values that are decorated as "sensitive" in the API will not
9985// be included in the string output. The member name will be present, but the
9986// value will be replaced with "sensitive".
9987func (s DescribeGlobalSettingsOutput) GoString() string {
9988	return s.String()
9989}
9990
9991// SetGlobalSettings sets the GlobalSettings field's value.
9992func (s *DescribeGlobalSettingsOutput) SetGlobalSettings(v map[string]*string) *DescribeGlobalSettingsOutput {
9993	s.GlobalSettings = v
9994	return s
9995}
9996
9997// SetLastUpdateTime sets the LastUpdateTime field's value.
9998func (s *DescribeGlobalSettingsOutput) SetLastUpdateTime(v time.Time) *DescribeGlobalSettingsOutput {
9999	s.LastUpdateTime = &v
10000	return s
10001}
10002
10003type DescribeProtectedResourceInput struct {
10004	_ struct{} `type:"structure" nopayload:"true"`
10005
10006	// An Amazon Resource Name (ARN) that uniquely identifies a resource. The format
10007	// of the ARN depends on the resource type.
10008	//
10009	// ResourceArn is a required field
10010	ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"`
10011}
10012
10013// String returns the string representation.
10014//
10015// API parameter values that are decorated as "sensitive" in the API will not
10016// be included in the string output. The member name will be present, but the
10017// value will be replaced with "sensitive".
10018func (s DescribeProtectedResourceInput) String() string {
10019	return awsutil.Prettify(s)
10020}
10021
10022// GoString returns the string representation.
10023//
10024// API parameter values that are decorated as "sensitive" in the API will not
10025// be included in the string output. The member name will be present, but the
10026// value will be replaced with "sensitive".
10027func (s DescribeProtectedResourceInput) GoString() string {
10028	return s.String()
10029}
10030
10031// Validate inspects the fields of the type to determine if they are valid.
10032func (s *DescribeProtectedResourceInput) Validate() error {
10033	invalidParams := request.ErrInvalidParams{Context: "DescribeProtectedResourceInput"}
10034	if s.ResourceArn == nil {
10035		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
10036	}
10037	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
10038		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
10039	}
10040
10041	if invalidParams.Len() > 0 {
10042		return invalidParams
10043	}
10044	return nil
10045}
10046
10047// SetResourceArn sets the ResourceArn field's value.
10048func (s *DescribeProtectedResourceInput) SetResourceArn(v string) *DescribeProtectedResourceInput {
10049	s.ResourceArn = &v
10050	return s
10051}
10052
10053type DescribeProtectedResourceOutput struct {
10054	_ struct{} `type:"structure"`
10055
10056	// The date and time that a resource was last backed up, in Unix format and
10057	// Coordinated Universal Time (UTC). The value of LastBackupTime is accurate
10058	// to milliseconds. For example, the value 1516925490.087 represents Friday,
10059	// January 26, 2018 12:11:30.087 AM.
10060	LastBackupTime *time.Time `type:"timestamp"`
10061
10062	// An ARN that uniquely identifies a resource. The format of the ARN depends
10063	// on the resource type.
10064	ResourceArn *string `type:"string"`
10065
10066	// The type of Amazon Web Services resource saved as a recovery point; for example,
10067	// an Amazon EBS volume or an Amazon RDS database.
10068	ResourceType *string `type:"string"`
10069}
10070
10071// String returns the string representation.
10072//
10073// API parameter values that are decorated as "sensitive" in the API will not
10074// be included in the string output. The member name will be present, but the
10075// value will be replaced with "sensitive".
10076func (s DescribeProtectedResourceOutput) String() string {
10077	return awsutil.Prettify(s)
10078}
10079
10080// GoString returns the string representation.
10081//
10082// API parameter values that are decorated as "sensitive" in the API will not
10083// be included in the string output. The member name will be present, but the
10084// value will be replaced with "sensitive".
10085func (s DescribeProtectedResourceOutput) GoString() string {
10086	return s.String()
10087}
10088
10089// SetLastBackupTime sets the LastBackupTime field's value.
10090func (s *DescribeProtectedResourceOutput) SetLastBackupTime(v time.Time) *DescribeProtectedResourceOutput {
10091	s.LastBackupTime = &v
10092	return s
10093}
10094
10095// SetResourceArn sets the ResourceArn field's value.
10096func (s *DescribeProtectedResourceOutput) SetResourceArn(v string) *DescribeProtectedResourceOutput {
10097	s.ResourceArn = &v
10098	return s
10099}
10100
10101// SetResourceType sets the ResourceType field's value.
10102func (s *DescribeProtectedResourceOutput) SetResourceType(v string) *DescribeProtectedResourceOutput {
10103	s.ResourceType = &v
10104	return s
10105}
10106
10107type DescribeRecoveryPointInput struct {
10108	_ struct{} `type:"structure" nopayload:"true"`
10109
10110	// The name of a logical container where backups are stored. Backup vaults are
10111	// identified by names that are unique to the account used to create them and
10112	// the Amazon Web Services Region where they are created. They consist of lowercase
10113	// letters, numbers, and hyphens.
10114	//
10115	// BackupVaultName is a required field
10116	BackupVaultName *string `location:"uri" locationName:"backupVaultName" type:"string" required:"true"`
10117
10118	// An Amazon Resource Name (ARN) that uniquely identifies a recovery point;
10119	// for example, arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45.
10120	//
10121	// RecoveryPointArn is a required field
10122	RecoveryPointArn *string `location:"uri" locationName:"recoveryPointArn" type:"string" required:"true"`
10123}
10124
10125// String returns the string representation.
10126//
10127// API parameter values that are decorated as "sensitive" in the API will not
10128// be included in the string output. The member name will be present, but the
10129// value will be replaced with "sensitive".
10130func (s DescribeRecoveryPointInput) String() string {
10131	return awsutil.Prettify(s)
10132}
10133
10134// GoString returns the string representation.
10135//
10136// API parameter values that are decorated as "sensitive" in the API will not
10137// be included in the string output. The member name will be present, but the
10138// value will be replaced with "sensitive".
10139func (s DescribeRecoveryPointInput) GoString() string {
10140	return s.String()
10141}
10142
10143// Validate inspects the fields of the type to determine if they are valid.
10144func (s *DescribeRecoveryPointInput) Validate() error {
10145	invalidParams := request.ErrInvalidParams{Context: "DescribeRecoveryPointInput"}
10146	if s.BackupVaultName == nil {
10147		invalidParams.Add(request.NewErrParamRequired("BackupVaultName"))
10148	}
10149	if s.BackupVaultName != nil && len(*s.BackupVaultName) < 1 {
10150		invalidParams.Add(request.NewErrParamMinLen("BackupVaultName", 1))
10151	}
10152	if s.RecoveryPointArn == nil {
10153		invalidParams.Add(request.NewErrParamRequired("RecoveryPointArn"))
10154	}
10155	if s.RecoveryPointArn != nil && len(*s.RecoveryPointArn) < 1 {
10156		invalidParams.Add(request.NewErrParamMinLen("RecoveryPointArn", 1))
10157	}
10158
10159	if invalidParams.Len() > 0 {
10160		return invalidParams
10161	}
10162	return nil
10163}
10164
10165// SetBackupVaultName sets the BackupVaultName field's value.
10166func (s *DescribeRecoveryPointInput) SetBackupVaultName(v string) *DescribeRecoveryPointInput {
10167	s.BackupVaultName = &v
10168	return s
10169}
10170
10171// SetRecoveryPointArn sets the RecoveryPointArn field's value.
10172func (s *DescribeRecoveryPointInput) SetRecoveryPointArn(v string) *DescribeRecoveryPointInput {
10173	s.RecoveryPointArn = &v
10174	return s
10175}
10176
10177type DescribeRecoveryPointOutput struct {
10178	_ struct{} `type:"structure"`
10179
10180	// The size, in bytes, of a backup.
10181	BackupSizeInBytes *int64 `type:"long"`
10182
10183	// An ARN that uniquely identifies a backup vault; for example, arn:aws:backup:us-east-1:123456789012:vault:aBackupVault.
10184	BackupVaultArn *string `type:"string"`
10185
10186	// The name of a logical container where backups are stored. Backup vaults are
10187	// identified by names that are unique to the account used to create them and
10188	// the Region where they are created. They consist of lowercase letters, numbers,
10189	// and hyphens.
10190	BackupVaultName *string `type:"string"`
10191
10192	// A CalculatedLifecycle object containing DeleteAt and MoveToColdStorageAt
10193	// timestamps.
10194	CalculatedLifecycle *CalculatedLifecycle `type:"structure"`
10195
10196	// The date and time that a job to create a recovery point is completed, in
10197	// Unix format and Coordinated Universal Time (UTC). The value of CompletionDate
10198	// is accurate to milliseconds. For example, the value 1516925490.087 represents
10199	// Friday, January 26, 2018 12:11:30.087 AM.
10200	CompletionDate *time.Time `type:"timestamp"`
10201
10202	// Contains identifying information about the creation of a recovery point,
10203	// including the BackupPlanArn, BackupPlanId, BackupPlanVersion, and BackupRuleId
10204	// of the backup plan used to create it.
10205	CreatedBy *RecoveryPointCreator `type:"structure"`
10206
10207	// The date and time that a recovery point is created, in Unix format and Coordinated
10208	// Universal Time (UTC). The value of CreationDate is accurate to milliseconds.
10209	// For example, the value 1516925490.087 represents Friday, January 26, 2018
10210	// 12:11:30.087 AM.
10211	CreationDate *time.Time `type:"timestamp"`
10212
10213	// The server-side encryption key used to protect your backups; for example,
10214	// arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab.
10215	EncryptionKeyArn *string `type:"string"`
10216
10217	// Specifies the IAM role ARN used to create the target recovery point; for
10218	// example, arn:aws:iam::123456789012:role/S3Access.
10219	IamRoleArn *string `type:"string"`
10220
10221	// A Boolean value that is returned as TRUE if the specified recovery point
10222	// is encrypted, or FALSE if the recovery point is not encrypted.
10223	IsEncrypted *bool `type:"boolean"`
10224
10225	// The date and time that a recovery point was last restored, in Unix format
10226	// and Coordinated Universal Time (UTC). The value of LastRestoreTime is accurate
10227	// to milliseconds. For example, the value 1516925490.087 represents Friday,
10228	// January 26, 2018 12:11:30.087 AM.
10229	LastRestoreTime *time.Time `type:"timestamp"`
10230
10231	// The lifecycle defines when a protected resource is transitioned to cold storage
10232	// and when it expires. Backup transitions and expires backups automatically
10233	// according to the lifecycle that you define.
10234	//
10235	// Backups that are transitioned to cold storage must be stored in cold storage
10236	// for a minimum of 90 days. Therefore, the “expire after days” setting
10237	// must be 90 days greater than the “transition to cold after days” setting.
10238	// The “transition to cold after days” setting cannot be changed after a
10239	// backup has been transitioned to cold.
10240	//
10241	// Only Amazon EFS file system backups can be transitioned to cold storage.
10242	Lifecycle *Lifecycle `type:"structure"`
10243
10244	// An ARN that uniquely identifies a recovery point; for example, arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45.
10245	RecoveryPointArn *string `type:"string"`
10246
10247	// An ARN that uniquely identifies a saved resource. The format of the ARN depends
10248	// on the resource type.
10249	ResourceArn *string `type:"string"`
10250
10251	// The type of Amazon Web Services resource to save as a recovery point; for
10252	// example, an Amazon Elastic Block Store (Amazon EBS) volume or an Amazon Relational
10253	// Database Service (Amazon RDS) database.
10254	ResourceType *string `type:"string"`
10255
10256	// An Amazon Resource Name (ARN) that uniquely identifies the source vault where
10257	// the resource was originally backed up in; for example, arn:aws:backup:us-east-1:123456789012:vault:BackupVault.
10258	// If the recovery is restored to the same Amazon Web Services account or Region,
10259	// this value will be null.
10260	SourceBackupVaultArn *string `type:"string"`
10261
10262	// A status code specifying the state of the recovery point.
10263	//
10264	// PARTIAL status indicates Backup could not create the recovery point before
10265	// the backup window closed. To increase your backup plan window using the API,
10266	// see UpdateBackupPlan (https://docs.aws.amazon.com/aws-backup/latest/devguide/API_UpdateBackupPlan.html).
10267	// You can also increase your backup plan window using the Console by choosing
10268	// and editing your backup plan.
10269	//
10270	// EXPIRED status indicates that the recovery point has exceeded its retention
10271	// period, but Backup lacks permission or is otherwise unable to delete it.
10272	// To manually delete these recovery points, see Step 3: Delete the recovery
10273	// points (https://docs.aws.amazon.com/aws-backup/latest/devguide/gs-cleanup-resources.html#cleanup-backups)
10274	// in the Clean up resources section of Getting started.
10275	Status *string `type:"string" enum:"RecoveryPointStatus"`
10276
10277	// A status message explaining the reason for the recovery point deletion failure.
10278	StatusMessage *string `type:"string"`
10279
10280	// Specifies the storage class of the recovery point. Valid values are WARM
10281	// or COLD.
10282	StorageClass *string `type:"string" enum:"StorageClass"`
10283}
10284
10285// String returns the string representation.
10286//
10287// API parameter values that are decorated as "sensitive" in the API will not
10288// be included in the string output. The member name will be present, but the
10289// value will be replaced with "sensitive".
10290func (s DescribeRecoveryPointOutput) String() string {
10291	return awsutil.Prettify(s)
10292}
10293
10294// GoString returns the string representation.
10295//
10296// API parameter values that are decorated as "sensitive" in the API will not
10297// be included in the string output. The member name will be present, but the
10298// value will be replaced with "sensitive".
10299func (s DescribeRecoveryPointOutput) GoString() string {
10300	return s.String()
10301}
10302
10303// SetBackupSizeInBytes sets the BackupSizeInBytes field's value.
10304func (s *DescribeRecoveryPointOutput) SetBackupSizeInBytes(v int64) *DescribeRecoveryPointOutput {
10305	s.BackupSizeInBytes = &v
10306	return s
10307}
10308
10309// SetBackupVaultArn sets the BackupVaultArn field's value.
10310func (s *DescribeRecoveryPointOutput) SetBackupVaultArn(v string) *DescribeRecoveryPointOutput {
10311	s.BackupVaultArn = &v
10312	return s
10313}
10314
10315// SetBackupVaultName sets the BackupVaultName field's value.
10316func (s *DescribeRecoveryPointOutput) SetBackupVaultName(v string) *DescribeRecoveryPointOutput {
10317	s.BackupVaultName = &v
10318	return s
10319}
10320
10321// SetCalculatedLifecycle sets the CalculatedLifecycle field's value.
10322func (s *DescribeRecoveryPointOutput) SetCalculatedLifecycle(v *CalculatedLifecycle) *DescribeRecoveryPointOutput {
10323	s.CalculatedLifecycle = v
10324	return s
10325}
10326
10327// SetCompletionDate sets the CompletionDate field's value.
10328func (s *DescribeRecoveryPointOutput) SetCompletionDate(v time.Time) *DescribeRecoveryPointOutput {
10329	s.CompletionDate = &v
10330	return s
10331}
10332
10333// SetCreatedBy sets the CreatedBy field's value.
10334func (s *DescribeRecoveryPointOutput) SetCreatedBy(v *RecoveryPointCreator) *DescribeRecoveryPointOutput {
10335	s.CreatedBy = v
10336	return s
10337}
10338
10339// SetCreationDate sets the CreationDate field's value.
10340func (s *DescribeRecoveryPointOutput) SetCreationDate(v time.Time) *DescribeRecoveryPointOutput {
10341	s.CreationDate = &v
10342	return s
10343}
10344
10345// SetEncryptionKeyArn sets the EncryptionKeyArn field's value.
10346func (s *DescribeRecoveryPointOutput) SetEncryptionKeyArn(v string) *DescribeRecoveryPointOutput {
10347	s.EncryptionKeyArn = &v
10348	return s
10349}
10350
10351// SetIamRoleArn sets the IamRoleArn field's value.
10352func (s *DescribeRecoveryPointOutput) SetIamRoleArn(v string) *DescribeRecoveryPointOutput {
10353	s.IamRoleArn = &v
10354	return s
10355}
10356
10357// SetIsEncrypted sets the IsEncrypted field's value.
10358func (s *DescribeRecoveryPointOutput) SetIsEncrypted(v bool) *DescribeRecoveryPointOutput {
10359	s.IsEncrypted = &v
10360	return s
10361}
10362
10363// SetLastRestoreTime sets the LastRestoreTime field's value.
10364func (s *DescribeRecoveryPointOutput) SetLastRestoreTime(v time.Time) *DescribeRecoveryPointOutput {
10365	s.LastRestoreTime = &v
10366	return s
10367}
10368
10369// SetLifecycle sets the Lifecycle field's value.
10370func (s *DescribeRecoveryPointOutput) SetLifecycle(v *Lifecycle) *DescribeRecoveryPointOutput {
10371	s.Lifecycle = v
10372	return s
10373}
10374
10375// SetRecoveryPointArn sets the RecoveryPointArn field's value.
10376func (s *DescribeRecoveryPointOutput) SetRecoveryPointArn(v string) *DescribeRecoveryPointOutput {
10377	s.RecoveryPointArn = &v
10378	return s
10379}
10380
10381// SetResourceArn sets the ResourceArn field's value.
10382func (s *DescribeRecoveryPointOutput) SetResourceArn(v string) *DescribeRecoveryPointOutput {
10383	s.ResourceArn = &v
10384	return s
10385}
10386
10387// SetResourceType sets the ResourceType field's value.
10388func (s *DescribeRecoveryPointOutput) SetResourceType(v string) *DescribeRecoveryPointOutput {
10389	s.ResourceType = &v
10390	return s
10391}
10392
10393// SetSourceBackupVaultArn sets the SourceBackupVaultArn field's value.
10394func (s *DescribeRecoveryPointOutput) SetSourceBackupVaultArn(v string) *DescribeRecoveryPointOutput {
10395	s.SourceBackupVaultArn = &v
10396	return s
10397}
10398
10399// SetStatus sets the Status field's value.
10400func (s *DescribeRecoveryPointOutput) SetStatus(v string) *DescribeRecoveryPointOutput {
10401	s.Status = &v
10402	return s
10403}
10404
10405// SetStatusMessage sets the StatusMessage field's value.
10406func (s *DescribeRecoveryPointOutput) SetStatusMessage(v string) *DescribeRecoveryPointOutput {
10407	s.StatusMessage = &v
10408	return s
10409}
10410
10411// SetStorageClass sets the StorageClass field's value.
10412func (s *DescribeRecoveryPointOutput) SetStorageClass(v string) *DescribeRecoveryPointOutput {
10413	s.StorageClass = &v
10414	return s
10415}
10416
10417type DescribeRegionSettingsInput struct {
10418	_ struct{} `type:"structure" nopayload:"true"`
10419}
10420
10421// String returns the string representation.
10422//
10423// API parameter values that are decorated as "sensitive" in the API will not
10424// be included in the string output. The member name will be present, but the
10425// value will be replaced with "sensitive".
10426func (s DescribeRegionSettingsInput) String() string {
10427	return awsutil.Prettify(s)
10428}
10429
10430// GoString returns the string representation.
10431//
10432// API parameter values that are decorated as "sensitive" in the API will not
10433// be included in the string output. The member name will be present, but the
10434// value will be replaced with "sensitive".
10435func (s DescribeRegionSettingsInput) GoString() string {
10436	return s.String()
10437}
10438
10439type DescribeRegionSettingsOutput struct {
10440	_ struct{} `type:"structure"`
10441
10442	// Returns a list of all services along with the opt-in preferences in the Region.
10443	ResourceTypeOptInPreference map[string]*bool `type:"map"`
10444}
10445
10446// String returns the string representation.
10447//
10448// API parameter values that are decorated as "sensitive" in the API will not
10449// be included in the string output. The member name will be present, but the
10450// value will be replaced with "sensitive".
10451func (s DescribeRegionSettingsOutput) String() string {
10452	return awsutil.Prettify(s)
10453}
10454
10455// GoString returns the string representation.
10456//
10457// API parameter values that are decorated as "sensitive" in the API will not
10458// be included in the string output. The member name will be present, but the
10459// value will be replaced with "sensitive".
10460func (s DescribeRegionSettingsOutput) GoString() string {
10461	return s.String()
10462}
10463
10464// SetResourceTypeOptInPreference sets the ResourceTypeOptInPreference field's value.
10465func (s *DescribeRegionSettingsOutput) SetResourceTypeOptInPreference(v map[string]*bool) *DescribeRegionSettingsOutput {
10466	s.ResourceTypeOptInPreference = v
10467	return s
10468}
10469
10470type DescribeReportJobInput struct {
10471	_ struct{} `type:"structure" nopayload:"true"`
10472
10473	// The identifier of the report job. A unique, randomly generated, Unicode,
10474	// UTF-8 encoded string that is at most 1,024 bytes long. The report job ID
10475	// cannot be edited.
10476	//
10477	// ReportJobId is a required field
10478	ReportJobId *string `location:"uri" locationName:"reportJobId" type:"string" required:"true"`
10479}
10480
10481// String returns the string representation.
10482//
10483// API parameter values that are decorated as "sensitive" in the API will not
10484// be included in the string output. The member name will be present, but the
10485// value will be replaced with "sensitive".
10486func (s DescribeReportJobInput) String() string {
10487	return awsutil.Prettify(s)
10488}
10489
10490// GoString returns the string representation.
10491//
10492// API parameter values that are decorated as "sensitive" in the API will not
10493// be included in the string output. The member name will be present, but the
10494// value will be replaced with "sensitive".
10495func (s DescribeReportJobInput) GoString() string {
10496	return s.String()
10497}
10498
10499// Validate inspects the fields of the type to determine if they are valid.
10500func (s *DescribeReportJobInput) Validate() error {
10501	invalidParams := request.ErrInvalidParams{Context: "DescribeReportJobInput"}
10502	if s.ReportJobId == nil {
10503		invalidParams.Add(request.NewErrParamRequired("ReportJobId"))
10504	}
10505	if s.ReportJobId != nil && len(*s.ReportJobId) < 1 {
10506		invalidParams.Add(request.NewErrParamMinLen("ReportJobId", 1))
10507	}
10508
10509	if invalidParams.Len() > 0 {
10510		return invalidParams
10511	}
10512	return nil
10513}
10514
10515// SetReportJobId sets the ReportJobId field's value.
10516func (s *DescribeReportJobInput) SetReportJobId(v string) *DescribeReportJobInput {
10517	s.ReportJobId = &v
10518	return s
10519}
10520
10521type DescribeReportJobOutput struct {
10522	_ struct{} `type:"structure"`
10523
10524	// A list of information about a report job, including its completion and creation
10525	// times, report destination, unique report job ID, Amazon Resource Name (ARN),
10526	// report template, status, and status message.
10527	ReportJob *ReportJob `type:"structure"`
10528}
10529
10530// String returns the string representation.
10531//
10532// API parameter values that are decorated as "sensitive" in the API will not
10533// be included in the string output. The member name will be present, but the
10534// value will be replaced with "sensitive".
10535func (s DescribeReportJobOutput) String() string {
10536	return awsutil.Prettify(s)
10537}
10538
10539// GoString returns the string representation.
10540//
10541// API parameter values that are decorated as "sensitive" in the API will not
10542// be included in the string output. The member name will be present, but the
10543// value will be replaced with "sensitive".
10544func (s DescribeReportJobOutput) GoString() string {
10545	return s.String()
10546}
10547
10548// SetReportJob sets the ReportJob field's value.
10549func (s *DescribeReportJobOutput) SetReportJob(v *ReportJob) *DescribeReportJobOutput {
10550	s.ReportJob = v
10551	return s
10552}
10553
10554type DescribeReportPlanInput struct {
10555	_ struct{} `type:"structure" nopayload:"true"`
10556
10557	// The unique name of a report plan.
10558	//
10559	// ReportPlanName is a required field
10560	ReportPlanName *string `location:"uri" locationName:"reportPlanName" min:"1" type:"string" required:"true"`
10561}
10562
10563// String returns the string representation.
10564//
10565// API parameter values that are decorated as "sensitive" in the API will not
10566// be included in the string output. The member name will be present, but the
10567// value will be replaced with "sensitive".
10568func (s DescribeReportPlanInput) String() string {
10569	return awsutil.Prettify(s)
10570}
10571
10572// GoString returns the string representation.
10573//
10574// API parameter values that are decorated as "sensitive" in the API will not
10575// be included in the string output. The member name will be present, but the
10576// value will be replaced with "sensitive".
10577func (s DescribeReportPlanInput) GoString() string {
10578	return s.String()
10579}
10580
10581// Validate inspects the fields of the type to determine if they are valid.
10582func (s *DescribeReportPlanInput) Validate() error {
10583	invalidParams := request.ErrInvalidParams{Context: "DescribeReportPlanInput"}
10584	if s.ReportPlanName == nil {
10585		invalidParams.Add(request.NewErrParamRequired("ReportPlanName"))
10586	}
10587	if s.ReportPlanName != nil && len(*s.ReportPlanName) < 1 {
10588		invalidParams.Add(request.NewErrParamMinLen("ReportPlanName", 1))
10589	}
10590
10591	if invalidParams.Len() > 0 {
10592		return invalidParams
10593	}
10594	return nil
10595}
10596
10597// SetReportPlanName sets the ReportPlanName field's value.
10598func (s *DescribeReportPlanInput) SetReportPlanName(v string) *DescribeReportPlanInput {
10599	s.ReportPlanName = &v
10600	return s
10601}
10602
10603type DescribeReportPlanOutput struct {
10604	_ struct{} `type:"structure"`
10605
10606	// Returns details about the report plan that is specified by its name. These
10607	// details include the report plan's Amazon Resource Name (ARN), description,
10608	// settings, delivery channel, deployment status, creation time, and last attempted
10609	// and successful run times.
10610	ReportPlan *ReportPlan `type:"structure"`
10611}
10612
10613// String returns the string representation.
10614//
10615// API parameter values that are decorated as "sensitive" in the API will not
10616// be included in the string output. The member name will be present, but the
10617// value will be replaced with "sensitive".
10618func (s DescribeReportPlanOutput) String() string {
10619	return awsutil.Prettify(s)
10620}
10621
10622// GoString returns the string representation.
10623//
10624// API parameter values that are decorated as "sensitive" in the API will not
10625// be included in the string output. The member name will be present, but the
10626// value will be replaced with "sensitive".
10627func (s DescribeReportPlanOutput) GoString() string {
10628	return s.String()
10629}
10630
10631// SetReportPlan sets the ReportPlan field's value.
10632func (s *DescribeReportPlanOutput) SetReportPlan(v *ReportPlan) *DescribeReportPlanOutput {
10633	s.ReportPlan = v
10634	return s
10635}
10636
10637type DescribeRestoreJobInput struct {
10638	_ struct{} `type:"structure" nopayload:"true"`
10639
10640	// Uniquely identifies the job that restores a recovery point.
10641	//
10642	// RestoreJobId is a required field
10643	RestoreJobId *string `location:"uri" locationName:"restoreJobId" type:"string" required:"true"`
10644}
10645
10646// String returns the string representation.
10647//
10648// API parameter values that are decorated as "sensitive" in the API will not
10649// be included in the string output. The member name will be present, but the
10650// value will be replaced with "sensitive".
10651func (s DescribeRestoreJobInput) String() string {
10652	return awsutil.Prettify(s)
10653}
10654
10655// GoString returns the string representation.
10656//
10657// API parameter values that are decorated as "sensitive" in the API will not
10658// be included in the string output. The member name will be present, but the
10659// value will be replaced with "sensitive".
10660func (s DescribeRestoreJobInput) GoString() string {
10661	return s.String()
10662}
10663
10664// Validate inspects the fields of the type to determine if they are valid.
10665func (s *DescribeRestoreJobInput) Validate() error {
10666	invalidParams := request.ErrInvalidParams{Context: "DescribeRestoreJobInput"}
10667	if s.RestoreJobId == nil {
10668		invalidParams.Add(request.NewErrParamRequired("RestoreJobId"))
10669	}
10670	if s.RestoreJobId != nil && len(*s.RestoreJobId) < 1 {
10671		invalidParams.Add(request.NewErrParamMinLen("RestoreJobId", 1))
10672	}
10673
10674	if invalidParams.Len() > 0 {
10675		return invalidParams
10676	}
10677	return nil
10678}
10679
10680// SetRestoreJobId sets the RestoreJobId field's value.
10681func (s *DescribeRestoreJobInput) SetRestoreJobId(v string) *DescribeRestoreJobInput {
10682	s.RestoreJobId = &v
10683	return s
10684}
10685
10686type DescribeRestoreJobOutput struct {
10687	_ struct{} `type:"structure"`
10688
10689	// Returns the account ID that owns the restore job.
10690	AccountId *string `type:"string"`
10691
10692	// The size, in bytes, of the restored resource.
10693	BackupSizeInBytes *int64 `type:"long"`
10694
10695	// The date and time that a job to restore a recovery point is completed, in
10696	// Unix format and Coordinated Universal Time (UTC). The value of CompletionDate
10697	// is accurate to milliseconds. For example, the value 1516925490.087 represents
10698	// Friday, January 26, 2018 12:11:30.087 AM.
10699	CompletionDate *time.Time `type:"timestamp"`
10700
10701	// An Amazon Resource Name (ARN) that uniquely identifies a resource whose recovery
10702	// point is being restored. The format of the ARN depends on the resource type
10703	// of the backed-up resource.
10704	CreatedResourceArn *string `type:"string"`
10705
10706	// The date and time that a restore job is created, in Unix format and Coordinated
10707	// Universal Time (UTC). The value of CreationDate is accurate to milliseconds.
10708	// For example, the value 1516925490.087 represents Friday, January 26, 2018
10709	// 12:11:30.087 AM.
10710	CreationDate *time.Time `type:"timestamp"`
10711
10712	// The amount of time in minutes that a job restoring a recovery point is expected
10713	// to take.
10714	ExpectedCompletionTimeMinutes *int64 `type:"long"`
10715
10716	// Specifies the IAM role ARN used to create the target recovery point; for
10717	// example, arn:aws:iam::123456789012:role/S3Access.
10718	IamRoleArn *string `type:"string"`
10719
10720	// Contains an estimated percentage that is complete of a job at the time the
10721	// job status was queried.
10722	PercentDone *string `type:"string"`
10723
10724	// An ARN that uniquely identifies a recovery point; for example, arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45.
10725	RecoveryPointArn *string `type:"string"`
10726
10727	// Returns metadata associated with a restore job listed by resource type.
10728	ResourceType *string `type:"string"`
10729
10730	// Uniquely identifies the job that restores a recovery point.
10731	RestoreJobId *string `type:"string"`
10732
10733	// Status code specifying the state of the job that is initiated by Backup to
10734	// restore a recovery point.
10735	Status *string `type:"string" enum:"RestoreJobStatus"`
10736
10737	// A message showing the status of a job to restore a recovery point.
10738	StatusMessage *string `type:"string"`
10739}
10740
10741// String returns the string representation.
10742//
10743// API parameter values that are decorated as "sensitive" in the API will not
10744// be included in the string output. The member name will be present, but the
10745// value will be replaced with "sensitive".
10746func (s DescribeRestoreJobOutput) String() string {
10747	return awsutil.Prettify(s)
10748}
10749
10750// GoString returns the string representation.
10751//
10752// API parameter values that are decorated as "sensitive" in the API will not
10753// be included in the string output. The member name will be present, but the
10754// value will be replaced with "sensitive".
10755func (s DescribeRestoreJobOutput) GoString() string {
10756	return s.String()
10757}
10758
10759// SetAccountId sets the AccountId field's value.
10760func (s *DescribeRestoreJobOutput) SetAccountId(v string) *DescribeRestoreJobOutput {
10761	s.AccountId = &v
10762	return s
10763}
10764
10765// SetBackupSizeInBytes sets the BackupSizeInBytes field's value.
10766func (s *DescribeRestoreJobOutput) SetBackupSizeInBytes(v int64) *DescribeRestoreJobOutput {
10767	s.BackupSizeInBytes = &v
10768	return s
10769}
10770
10771// SetCompletionDate sets the CompletionDate field's value.
10772func (s *DescribeRestoreJobOutput) SetCompletionDate(v time.Time) *DescribeRestoreJobOutput {
10773	s.CompletionDate = &v
10774	return s
10775}
10776
10777// SetCreatedResourceArn sets the CreatedResourceArn field's value.
10778func (s *DescribeRestoreJobOutput) SetCreatedResourceArn(v string) *DescribeRestoreJobOutput {
10779	s.CreatedResourceArn = &v
10780	return s
10781}
10782
10783// SetCreationDate sets the CreationDate field's value.
10784func (s *DescribeRestoreJobOutput) SetCreationDate(v time.Time) *DescribeRestoreJobOutput {
10785	s.CreationDate = &v
10786	return s
10787}
10788
10789// SetExpectedCompletionTimeMinutes sets the ExpectedCompletionTimeMinutes field's value.
10790func (s *DescribeRestoreJobOutput) SetExpectedCompletionTimeMinutes(v int64) *DescribeRestoreJobOutput {
10791	s.ExpectedCompletionTimeMinutes = &v
10792	return s
10793}
10794
10795// SetIamRoleArn sets the IamRoleArn field's value.
10796func (s *DescribeRestoreJobOutput) SetIamRoleArn(v string) *DescribeRestoreJobOutput {
10797	s.IamRoleArn = &v
10798	return s
10799}
10800
10801// SetPercentDone sets the PercentDone field's value.
10802func (s *DescribeRestoreJobOutput) SetPercentDone(v string) *DescribeRestoreJobOutput {
10803	s.PercentDone = &v
10804	return s
10805}
10806
10807// SetRecoveryPointArn sets the RecoveryPointArn field's value.
10808func (s *DescribeRestoreJobOutput) SetRecoveryPointArn(v string) *DescribeRestoreJobOutput {
10809	s.RecoveryPointArn = &v
10810	return s
10811}
10812
10813// SetResourceType sets the ResourceType field's value.
10814func (s *DescribeRestoreJobOutput) SetResourceType(v string) *DescribeRestoreJobOutput {
10815	s.ResourceType = &v
10816	return s
10817}
10818
10819// SetRestoreJobId sets the RestoreJobId field's value.
10820func (s *DescribeRestoreJobOutput) SetRestoreJobId(v string) *DescribeRestoreJobOutput {
10821	s.RestoreJobId = &v
10822	return s
10823}
10824
10825// SetStatus sets the Status field's value.
10826func (s *DescribeRestoreJobOutput) SetStatus(v string) *DescribeRestoreJobOutput {
10827	s.Status = &v
10828	return s
10829}
10830
10831// SetStatusMessage sets the StatusMessage field's value.
10832func (s *DescribeRestoreJobOutput) SetStatusMessage(v string) *DescribeRestoreJobOutput {
10833	s.StatusMessage = &v
10834	return s
10835}
10836
10837type DisassociateRecoveryPointInput struct {
10838	_ struct{} `type:"structure" nopayload:"true"`
10839
10840	// The unique name of an Backup vault.
10841	//
10842	// BackupVaultName is a required field
10843	BackupVaultName *string `location:"uri" locationName:"backupVaultName" type:"string" required:"true"`
10844
10845	// An Amazon Resource Name (ARN) that uniquely identifies an Backup recovery
10846	// point.
10847	//
10848	// RecoveryPointArn is a required field
10849	RecoveryPointArn *string `location:"uri" locationName:"recoveryPointArn" type:"string" required:"true"`
10850}
10851
10852// String returns the string representation.
10853//
10854// API parameter values that are decorated as "sensitive" in the API will not
10855// be included in the string output. The member name will be present, but the
10856// value will be replaced with "sensitive".
10857func (s DisassociateRecoveryPointInput) String() string {
10858	return awsutil.Prettify(s)
10859}
10860
10861// GoString returns the string representation.
10862//
10863// API parameter values that are decorated as "sensitive" in the API will not
10864// be included in the string output. The member name will be present, but the
10865// value will be replaced with "sensitive".
10866func (s DisassociateRecoveryPointInput) GoString() string {
10867	return s.String()
10868}
10869
10870// Validate inspects the fields of the type to determine if they are valid.
10871func (s *DisassociateRecoveryPointInput) Validate() error {
10872	invalidParams := request.ErrInvalidParams{Context: "DisassociateRecoveryPointInput"}
10873	if s.BackupVaultName == nil {
10874		invalidParams.Add(request.NewErrParamRequired("BackupVaultName"))
10875	}
10876	if s.BackupVaultName != nil && len(*s.BackupVaultName) < 1 {
10877		invalidParams.Add(request.NewErrParamMinLen("BackupVaultName", 1))
10878	}
10879	if s.RecoveryPointArn == nil {
10880		invalidParams.Add(request.NewErrParamRequired("RecoveryPointArn"))
10881	}
10882	if s.RecoveryPointArn != nil && len(*s.RecoveryPointArn) < 1 {
10883		invalidParams.Add(request.NewErrParamMinLen("RecoveryPointArn", 1))
10884	}
10885
10886	if invalidParams.Len() > 0 {
10887		return invalidParams
10888	}
10889	return nil
10890}
10891
10892// SetBackupVaultName sets the BackupVaultName field's value.
10893func (s *DisassociateRecoveryPointInput) SetBackupVaultName(v string) *DisassociateRecoveryPointInput {
10894	s.BackupVaultName = &v
10895	return s
10896}
10897
10898// SetRecoveryPointArn sets the RecoveryPointArn field's value.
10899func (s *DisassociateRecoveryPointInput) SetRecoveryPointArn(v string) *DisassociateRecoveryPointInput {
10900	s.RecoveryPointArn = &v
10901	return s
10902}
10903
10904type DisassociateRecoveryPointOutput struct {
10905	_ struct{} `type:"structure"`
10906}
10907
10908// String returns the string representation.
10909//
10910// API parameter values that are decorated as "sensitive" in the API will not
10911// be included in the string output. The member name will be present, but the
10912// value will be replaced with "sensitive".
10913func (s DisassociateRecoveryPointOutput) String() string {
10914	return awsutil.Prettify(s)
10915}
10916
10917// GoString returns the string representation.
10918//
10919// API parameter values that are decorated as "sensitive" in the API will not
10920// be included in the string output. The member name will be present, but the
10921// value will be replaced with "sensitive".
10922func (s DisassociateRecoveryPointOutput) GoString() string {
10923	return s.String()
10924}
10925
10926type ExportBackupPlanTemplateInput struct {
10927	_ struct{} `type:"structure" nopayload:"true"`
10928
10929	// Uniquely identifies a backup plan.
10930	//
10931	// BackupPlanId is a required field
10932	BackupPlanId *string `location:"uri" locationName:"backupPlanId" type:"string" required:"true"`
10933}
10934
10935// String returns the string representation.
10936//
10937// API parameter values that are decorated as "sensitive" in the API will not
10938// be included in the string output. The member name will be present, but the
10939// value will be replaced with "sensitive".
10940func (s ExportBackupPlanTemplateInput) String() string {
10941	return awsutil.Prettify(s)
10942}
10943
10944// GoString returns the string representation.
10945//
10946// API parameter values that are decorated as "sensitive" in the API will not
10947// be included in the string output. The member name will be present, but the
10948// value will be replaced with "sensitive".
10949func (s ExportBackupPlanTemplateInput) GoString() string {
10950	return s.String()
10951}
10952
10953// Validate inspects the fields of the type to determine if they are valid.
10954func (s *ExportBackupPlanTemplateInput) Validate() error {
10955	invalidParams := request.ErrInvalidParams{Context: "ExportBackupPlanTemplateInput"}
10956	if s.BackupPlanId == nil {
10957		invalidParams.Add(request.NewErrParamRequired("BackupPlanId"))
10958	}
10959	if s.BackupPlanId != nil && len(*s.BackupPlanId) < 1 {
10960		invalidParams.Add(request.NewErrParamMinLen("BackupPlanId", 1))
10961	}
10962
10963	if invalidParams.Len() > 0 {
10964		return invalidParams
10965	}
10966	return nil
10967}
10968
10969// SetBackupPlanId sets the BackupPlanId field's value.
10970func (s *ExportBackupPlanTemplateInput) SetBackupPlanId(v string) *ExportBackupPlanTemplateInput {
10971	s.BackupPlanId = &v
10972	return s
10973}
10974
10975type ExportBackupPlanTemplateOutput struct {
10976	_ struct{} `type:"structure"`
10977
10978	// The body of a backup plan template in JSON format.
10979	//
10980	// This is a signed JSON document that cannot be modified before being passed
10981	// to GetBackupPlanFromJSON.
10982	BackupPlanTemplateJson *string `type:"string"`
10983}
10984
10985// String returns the string representation.
10986//
10987// API parameter values that are decorated as "sensitive" in the API will not
10988// be included in the string output. The member name will be present, but the
10989// value will be replaced with "sensitive".
10990func (s ExportBackupPlanTemplateOutput) String() string {
10991	return awsutil.Prettify(s)
10992}
10993
10994// GoString returns the string representation.
10995//
10996// API parameter values that are decorated as "sensitive" in the API will not
10997// be included in the string output. The member name will be present, but the
10998// value will be replaced with "sensitive".
10999func (s ExportBackupPlanTemplateOutput) GoString() string {
11000	return s.String()
11001}
11002
11003// SetBackupPlanTemplateJson sets the BackupPlanTemplateJson field's value.
11004func (s *ExportBackupPlanTemplateOutput) SetBackupPlanTemplateJson(v string) *ExportBackupPlanTemplateOutput {
11005	s.BackupPlanTemplateJson = &v
11006	return s
11007}
11008
11009// Contains detailed information about a framework. Frameworks contain controls,
11010// which evaluate and report on your backup events and resources. Frameworks
11011// generate daily compliance results.
11012type Framework struct {
11013	_ struct{} `type:"structure"`
11014
11015	// The date and time that a framework is created, in Unix format and Coordinated
11016	// Universal Time (UTC). The value of CreationTime is accurate to milliseconds.
11017	// For example, the value 1516925490.087 represents Friday, January 26, 2018
11018	// 12:11:30.087 AM.
11019	CreationTime *time.Time `type:"timestamp"`
11020
11021	// The deployment status of a framework. The statuses are:
11022	//
11023	// CREATE_IN_PROGRESS | UPDATE_IN_PROGRESS | DELETE_IN_PROGRESS | COMPLETED
11024	// | FAILED
11025	DeploymentStatus *string `type:"string"`
11026
11027	// An Amazon Resource Name (ARN) that uniquely identifies a resource. The format
11028	// of the ARN depends on the resource type.
11029	FrameworkArn *string `type:"string"`
11030
11031	// An optional description of the framework with a maximum 1,024 characters.
11032	FrameworkDescription *string `type:"string"`
11033
11034	// The unique name of a framework. This name is between 1 and 256 characters,
11035	// starting with a letter, and consisting of letters (a-z, A-Z), numbers (0-9),
11036	// and underscores (_).
11037	FrameworkName *string `min:"1" type:"string"`
11038
11039	// The number of controls contained by the framework.
11040	NumberOfControls *int64 `type:"integer"`
11041}
11042
11043// String returns the string representation.
11044//
11045// API parameter values that are decorated as "sensitive" in the API will not
11046// be included in the string output. The member name will be present, but the
11047// value will be replaced with "sensitive".
11048func (s Framework) String() string {
11049	return awsutil.Prettify(s)
11050}
11051
11052// GoString returns the string representation.
11053//
11054// API parameter values that are decorated as "sensitive" in the API will not
11055// be included in the string output. The member name will be present, but the
11056// value will be replaced with "sensitive".
11057func (s Framework) GoString() string {
11058	return s.String()
11059}
11060
11061// SetCreationTime sets the CreationTime field's value.
11062func (s *Framework) SetCreationTime(v time.Time) *Framework {
11063	s.CreationTime = &v
11064	return s
11065}
11066
11067// SetDeploymentStatus sets the DeploymentStatus field's value.
11068func (s *Framework) SetDeploymentStatus(v string) *Framework {
11069	s.DeploymentStatus = &v
11070	return s
11071}
11072
11073// SetFrameworkArn sets the FrameworkArn field's value.
11074func (s *Framework) SetFrameworkArn(v string) *Framework {
11075	s.FrameworkArn = &v
11076	return s
11077}
11078
11079// SetFrameworkDescription sets the FrameworkDescription field's value.
11080func (s *Framework) SetFrameworkDescription(v string) *Framework {
11081	s.FrameworkDescription = &v
11082	return s
11083}
11084
11085// SetFrameworkName sets the FrameworkName field's value.
11086func (s *Framework) SetFrameworkName(v string) *Framework {
11087	s.FrameworkName = &v
11088	return s
11089}
11090
11091// SetNumberOfControls sets the NumberOfControls field's value.
11092func (s *Framework) SetNumberOfControls(v int64) *Framework {
11093	s.NumberOfControls = &v
11094	return s
11095}
11096
11097// Contains detailed information about all of the controls of a framework. Each
11098// framework must contain at least one control.
11099type FrameworkControl struct {
11100	_ struct{} `type:"structure"`
11101
11102	// A list of ParameterName and ParameterValue pairs.
11103	ControlInputParameters []*ControlInputParameter `type:"list"`
11104
11105	// The name of a control. This name is between 1 and 256 characters.
11106	//
11107	// ControlName is a required field
11108	ControlName *string `type:"string" required:"true"`
11109
11110	// The scope of a control. The control scope defines what the control will evaluate.
11111	// Three examples of control scopes are: a specific backup plan, all backup
11112	// plans with a specific tag, or all backup plans. For more information, see
11113	// ControlScope.
11114	ControlScope *ControlScope `type:"structure"`
11115}
11116
11117// String returns the string representation.
11118//
11119// API parameter values that are decorated as "sensitive" in the API will not
11120// be included in the string output. The member name will be present, but the
11121// value will be replaced with "sensitive".
11122func (s FrameworkControl) String() string {
11123	return awsutil.Prettify(s)
11124}
11125
11126// GoString returns the string representation.
11127//
11128// API parameter values that are decorated as "sensitive" in the API will not
11129// be included in the string output. The member name will be present, but the
11130// value will be replaced with "sensitive".
11131func (s FrameworkControl) GoString() string {
11132	return s.String()
11133}
11134
11135// Validate inspects the fields of the type to determine if they are valid.
11136func (s *FrameworkControl) Validate() error {
11137	invalidParams := request.ErrInvalidParams{Context: "FrameworkControl"}
11138	if s.ControlName == nil {
11139		invalidParams.Add(request.NewErrParamRequired("ControlName"))
11140	}
11141	if s.ControlScope != nil {
11142		if err := s.ControlScope.Validate(); err != nil {
11143			invalidParams.AddNested("ControlScope", err.(request.ErrInvalidParams))
11144		}
11145	}
11146
11147	if invalidParams.Len() > 0 {
11148		return invalidParams
11149	}
11150	return nil
11151}
11152
11153// SetControlInputParameters sets the ControlInputParameters field's value.
11154func (s *FrameworkControl) SetControlInputParameters(v []*ControlInputParameter) *FrameworkControl {
11155	s.ControlInputParameters = v
11156	return s
11157}
11158
11159// SetControlName sets the ControlName field's value.
11160func (s *FrameworkControl) SetControlName(v string) *FrameworkControl {
11161	s.ControlName = &v
11162	return s
11163}
11164
11165// SetControlScope sets the ControlScope field's value.
11166func (s *FrameworkControl) SetControlScope(v *ControlScope) *FrameworkControl {
11167	s.ControlScope = v
11168	return s
11169}
11170
11171type GetBackupPlanFromJSONInput struct {
11172	_ struct{} `type:"structure"`
11173
11174	// A customer-supplied backup plan document in JSON format.
11175	//
11176	// BackupPlanTemplateJson is a required field
11177	BackupPlanTemplateJson *string `type:"string" required:"true"`
11178}
11179
11180// String returns the string representation.
11181//
11182// API parameter values that are decorated as "sensitive" in the API will not
11183// be included in the string output. The member name will be present, but the
11184// value will be replaced with "sensitive".
11185func (s GetBackupPlanFromJSONInput) String() string {
11186	return awsutil.Prettify(s)
11187}
11188
11189// GoString returns the string representation.
11190//
11191// API parameter values that are decorated as "sensitive" in the API will not
11192// be included in the string output. The member name will be present, but the
11193// value will be replaced with "sensitive".
11194func (s GetBackupPlanFromJSONInput) GoString() string {
11195	return s.String()
11196}
11197
11198// Validate inspects the fields of the type to determine if they are valid.
11199func (s *GetBackupPlanFromJSONInput) Validate() error {
11200	invalidParams := request.ErrInvalidParams{Context: "GetBackupPlanFromJSONInput"}
11201	if s.BackupPlanTemplateJson == nil {
11202		invalidParams.Add(request.NewErrParamRequired("BackupPlanTemplateJson"))
11203	}
11204
11205	if invalidParams.Len() > 0 {
11206		return invalidParams
11207	}
11208	return nil
11209}
11210
11211// SetBackupPlanTemplateJson sets the BackupPlanTemplateJson field's value.
11212func (s *GetBackupPlanFromJSONInput) SetBackupPlanTemplateJson(v string) *GetBackupPlanFromJSONInput {
11213	s.BackupPlanTemplateJson = &v
11214	return s
11215}
11216
11217type GetBackupPlanFromJSONOutput struct {
11218	_ struct{} `type:"structure"`
11219
11220	// Specifies the body of a backup plan. Includes a BackupPlanName and one or
11221	// more sets of Rules.
11222	BackupPlan *Plan `type:"structure"`
11223}
11224
11225// String returns the string representation.
11226//
11227// API parameter values that are decorated as "sensitive" in the API will not
11228// be included in the string output. The member name will be present, but the
11229// value will be replaced with "sensitive".
11230func (s GetBackupPlanFromJSONOutput) String() string {
11231	return awsutil.Prettify(s)
11232}
11233
11234// GoString returns the string representation.
11235//
11236// API parameter values that are decorated as "sensitive" in the API will not
11237// be included in the string output. The member name will be present, but the
11238// value will be replaced with "sensitive".
11239func (s GetBackupPlanFromJSONOutput) GoString() string {
11240	return s.String()
11241}
11242
11243// SetBackupPlan sets the BackupPlan field's value.
11244func (s *GetBackupPlanFromJSONOutput) SetBackupPlan(v *Plan) *GetBackupPlanFromJSONOutput {
11245	s.BackupPlan = v
11246	return s
11247}
11248
11249type GetBackupPlanFromTemplateInput struct {
11250	_ struct{} `type:"structure" nopayload:"true"`
11251
11252	// Uniquely identifies a stored backup plan template.
11253	//
11254	// BackupPlanTemplateId is a required field
11255	BackupPlanTemplateId *string `location:"uri" locationName:"templateId" type:"string" required:"true"`
11256}
11257
11258// String returns the string representation.
11259//
11260// API parameter values that are decorated as "sensitive" in the API will not
11261// be included in the string output. The member name will be present, but the
11262// value will be replaced with "sensitive".
11263func (s GetBackupPlanFromTemplateInput) String() string {
11264	return awsutil.Prettify(s)
11265}
11266
11267// GoString returns the string representation.
11268//
11269// API parameter values that are decorated as "sensitive" in the API will not
11270// be included in the string output. The member name will be present, but the
11271// value will be replaced with "sensitive".
11272func (s GetBackupPlanFromTemplateInput) GoString() string {
11273	return s.String()
11274}
11275
11276// Validate inspects the fields of the type to determine if they are valid.
11277func (s *GetBackupPlanFromTemplateInput) Validate() error {
11278	invalidParams := request.ErrInvalidParams{Context: "GetBackupPlanFromTemplateInput"}
11279	if s.BackupPlanTemplateId == nil {
11280		invalidParams.Add(request.NewErrParamRequired("BackupPlanTemplateId"))
11281	}
11282	if s.BackupPlanTemplateId != nil && len(*s.BackupPlanTemplateId) < 1 {
11283		invalidParams.Add(request.NewErrParamMinLen("BackupPlanTemplateId", 1))
11284	}
11285
11286	if invalidParams.Len() > 0 {
11287		return invalidParams
11288	}
11289	return nil
11290}
11291
11292// SetBackupPlanTemplateId sets the BackupPlanTemplateId field's value.
11293func (s *GetBackupPlanFromTemplateInput) SetBackupPlanTemplateId(v string) *GetBackupPlanFromTemplateInput {
11294	s.BackupPlanTemplateId = &v
11295	return s
11296}
11297
11298type GetBackupPlanFromTemplateOutput struct {
11299	_ struct{} `type:"structure"`
11300
11301	// Returns the body of a backup plan based on the target template, including
11302	// the name, rules, and backup vault of the plan.
11303	BackupPlanDocument *Plan `type:"structure"`
11304}
11305
11306// String returns the string representation.
11307//
11308// API parameter values that are decorated as "sensitive" in the API will not
11309// be included in the string output. The member name will be present, but the
11310// value will be replaced with "sensitive".
11311func (s GetBackupPlanFromTemplateOutput) String() string {
11312	return awsutil.Prettify(s)
11313}
11314
11315// GoString returns the string representation.
11316//
11317// API parameter values that are decorated as "sensitive" in the API will not
11318// be included in the string output. The member name will be present, but the
11319// value will be replaced with "sensitive".
11320func (s GetBackupPlanFromTemplateOutput) GoString() string {
11321	return s.String()
11322}
11323
11324// SetBackupPlanDocument sets the BackupPlanDocument field's value.
11325func (s *GetBackupPlanFromTemplateOutput) SetBackupPlanDocument(v *Plan) *GetBackupPlanFromTemplateOutput {
11326	s.BackupPlanDocument = v
11327	return s
11328}
11329
11330type GetBackupPlanInput struct {
11331	_ struct{} `type:"structure" nopayload:"true"`
11332
11333	// Uniquely identifies a backup plan.
11334	//
11335	// BackupPlanId is a required field
11336	BackupPlanId *string `location:"uri" locationName:"backupPlanId" type:"string" required:"true"`
11337
11338	// Unique, randomly generated, Unicode, UTF-8 encoded strings that are at most
11339	// 1,024 bytes long. Version IDs cannot be edited.
11340	VersionId *string `location:"querystring" locationName:"versionId" type:"string"`
11341}
11342
11343// String returns the string representation.
11344//
11345// API parameter values that are decorated as "sensitive" in the API will not
11346// be included in the string output. The member name will be present, but the
11347// value will be replaced with "sensitive".
11348func (s GetBackupPlanInput) String() string {
11349	return awsutil.Prettify(s)
11350}
11351
11352// GoString returns the string representation.
11353//
11354// API parameter values that are decorated as "sensitive" in the API will not
11355// be included in the string output. The member name will be present, but the
11356// value will be replaced with "sensitive".
11357func (s GetBackupPlanInput) GoString() string {
11358	return s.String()
11359}
11360
11361// Validate inspects the fields of the type to determine if they are valid.
11362func (s *GetBackupPlanInput) Validate() error {
11363	invalidParams := request.ErrInvalidParams{Context: "GetBackupPlanInput"}
11364	if s.BackupPlanId == nil {
11365		invalidParams.Add(request.NewErrParamRequired("BackupPlanId"))
11366	}
11367	if s.BackupPlanId != nil && len(*s.BackupPlanId) < 1 {
11368		invalidParams.Add(request.NewErrParamMinLen("BackupPlanId", 1))
11369	}
11370
11371	if invalidParams.Len() > 0 {
11372		return invalidParams
11373	}
11374	return nil
11375}
11376
11377// SetBackupPlanId sets the BackupPlanId field's value.
11378func (s *GetBackupPlanInput) SetBackupPlanId(v string) *GetBackupPlanInput {
11379	s.BackupPlanId = &v
11380	return s
11381}
11382
11383// SetVersionId sets the VersionId field's value.
11384func (s *GetBackupPlanInput) SetVersionId(v string) *GetBackupPlanInput {
11385	s.VersionId = &v
11386	return s
11387}
11388
11389type GetBackupPlanOutput struct {
11390	_ struct{} `type:"structure"`
11391
11392	// Contains a list of BackupOptions for each resource type. The list is populated
11393	// only if the advanced option is set for the backup plan.
11394	AdvancedBackupSettings []*AdvancedBackupSetting `type:"list"`
11395
11396	// Specifies the body of a backup plan. Includes a BackupPlanName and one or
11397	// more sets of Rules.
11398	BackupPlan *Plan `type:"structure"`
11399
11400	// An Amazon Resource Name (ARN) that uniquely identifies a backup plan; for
11401	// example, arn:aws:backup:us-east-1:123456789012:plan:8F81F553-3A74-4A3F-B93D-B3360DC80C50.
11402	BackupPlanArn *string `type:"string"`
11403
11404	// Uniquely identifies a backup plan.
11405	BackupPlanId *string `type:"string"`
11406
11407	// The date and time that a backup plan is created, in Unix format and Coordinated
11408	// Universal Time (UTC). The value of CreationDate is accurate to milliseconds.
11409	// For example, the value 1516925490.087 represents Friday, January 26, 2018
11410	// 12:11:30.087 AM.
11411	CreationDate *time.Time `type:"timestamp"`
11412
11413	// A unique string that identifies the request and allows failed requests to
11414	// be retried without the risk of running the operation twice.
11415	CreatorRequestId *string `type:"string"`
11416
11417	// The date and time that a backup plan is deleted, in Unix format and Coordinated
11418	// Universal Time (UTC). The value of DeletionDate is accurate to milliseconds.
11419	// For example, the value 1516925490.087 represents Friday, January 26, 2018
11420	// 12:11:30.087 AM.
11421	DeletionDate *time.Time `type:"timestamp"`
11422
11423	// The last time a job to back up resources was run with this backup plan. A
11424	// date and time, in Unix format and Coordinated Universal Time (UTC). The value
11425	// of LastExecutionDate is accurate to milliseconds. For example, the value
11426	// 1516925490.087 represents Friday, January 26, 2018 12:11:30.087 AM.
11427	LastExecutionDate *time.Time `type:"timestamp"`
11428
11429	// Unique, randomly generated, Unicode, UTF-8 encoded strings that are at most
11430	// 1,024 bytes long. Version IDs cannot be edited.
11431	VersionId *string `type:"string"`
11432}
11433
11434// String returns the string representation.
11435//
11436// API parameter values that are decorated as "sensitive" in the API will not
11437// be included in the string output. The member name will be present, but the
11438// value will be replaced with "sensitive".
11439func (s GetBackupPlanOutput) String() string {
11440	return awsutil.Prettify(s)
11441}
11442
11443// GoString returns the string representation.
11444//
11445// API parameter values that are decorated as "sensitive" in the API will not
11446// be included in the string output. The member name will be present, but the
11447// value will be replaced with "sensitive".
11448func (s GetBackupPlanOutput) GoString() string {
11449	return s.String()
11450}
11451
11452// SetAdvancedBackupSettings sets the AdvancedBackupSettings field's value.
11453func (s *GetBackupPlanOutput) SetAdvancedBackupSettings(v []*AdvancedBackupSetting) *GetBackupPlanOutput {
11454	s.AdvancedBackupSettings = v
11455	return s
11456}
11457
11458// SetBackupPlan sets the BackupPlan field's value.
11459func (s *GetBackupPlanOutput) SetBackupPlan(v *Plan) *GetBackupPlanOutput {
11460	s.BackupPlan = v
11461	return s
11462}
11463
11464// SetBackupPlanArn sets the BackupPlanArn field's value.
11465func (s *GetBackupPlanOutput) SetBackupPlanArn(v string) *GetBackupPlanOutput {
11466	s.BackupPlanArn = &v
11467	return s
11468}
11469
11470// SetBackupPlanId sets the BackupPlanId field's value.
11471func (s *GetBackupPlanOutput) SetBackupPlanId(v string) *GetBackupPlanOutput {
11472	s.BackupPlanId = &v
11473	return s
11474}
11475
11476// SetCreationDate sets the CreationDate field's value.
11477func (s *GetBackupPlanOutput) SetCreationDate(v time.Time) *GetBackupPlanOutput {
11478	s.CreationDate = &v
11479	return s
11480}
11481
11482// SetCreatorRequestId sets the CreatorRequestId field's value.
11483func (s *GetBackupPlanOutput) SetCreatorRequestId(v string) *GetBackupPlanOutput {
11484	s.CreatorRequestId = &v
11485	return s
11486}
11487
11488// SetDeletionDate sets the DeletionDate field's value.
11489func (s *GetBackupPlanOutput) SetDeletionDate(v time.Time) *GetBackupPlanOutput {
11490	s.DeletionDate = &v
11491	return s
11492}
11493
11494// SetLastExecutionDate sets the LastExecutionDate field's value.
11495func (s *GetBackupPlanOutput) SetLastExecutionDate(v time.Time) *GetBackupPlanOutput {
11496	s.LastExecutionDate = &v
11497	return s
11498}
11499
11500// SetVersionId sets the VersionId field's value.
11501func (s *GetBackupPlanOutput) SetVersionId(v string) *GetBackupPlanOutput {
11502	s.VersionId = &v
11503	return s
11504}
11505
11506type GetBackupSelectionInput struct {
11507	_ struct{} `type:"structure" nopayload:"true"`
11508
11509	// Uniquely identifies a backup plan.
11510	//
11511	// BackupPlanId is a required field
11512	BackupPlanId *string `location:"uri" locationName:"backupPlanId" type:"string" required:"true"`
11513
11514	// Uniquely identifies the body of a request to assign a set of resources to
11515	// a backup plan.
11516	//
11517	// SelectionId is a required field
11518	SelectionId *string `location:"uri" locationName:"selectionId" type:"string" required:"true"`
11519}
11520
11521// String returns the string representation.
11522//
11523// API parameter values that are decorated as "sensitive" in the API will not
11524// be included in the string output. The member name will be present, but the
11525// value will be replaced with "sensitive".
11526func (s GetBackupSelectionInput) String() string {
11527	return awsutil.Prettify(s)
11528}
11529
11530// GoString returns the string representation.
11531//
11532// API parameter values that are decorated as "sensitive" in the API will not
11533// be included in the string output. The member name will be present, but the
11534// value will be replaced with "sensitive".
11535func (s GetBackupSelectionInput) GoString() string {
11536	return s.String()
11537}
11538
11539// Validate inspects the fields of the type to determine if they are valid.
11540func (s *GetBackupSelectionInput) Validate() error {
11541	invalidParams := request.ErrInvalidParams{Context: "GetBackupSelectionInput"}
11542	if s.BackupPlanId == nil {
11543		invalidParams.Add(request.NewErrParamRequired("BackupPlanId"))
11544	}
11545	if s.BackupPlanId != nil && len(*s.BackupPlanId) < 1 {
11546		invalidParams.Add(request.NewErrParamMinLen("BackupPlanId", 1))
11547	}
11548	if s.SelectionId == nil {
11549		invalidParams.Add(request.NewErrParamRequired("SelectionId"))
11550	}
11551	if s.SelectionId != nil && len(*s.SelectionId) < 1 {
11552		invalidParams.Add(request.NewErrParamMinLen("SelectionId", 1))
11553	}
11554
11555	if invalidParams.Len() > 0 {
11556		return invalidParams
11557	}
11558	return nil
11559}
11560
11561// SetBackupPlanId sets the BackupPlanId field's value.
11562func (s *GetBackupSelectionInput) SetBackupPlanId(v string) *GetBackupSelectionInput {
11563	s.BackupPlanId = &v
11564	return s
11565}
11566
11567// SetSelectionId sets the SelectionId field's value.
11568func (s *GetBackupSelectionInput) SetSelectionId(v string) *GetBackupSelectionInput {
11569	s.SelectionId = &v
11570	return s
11571}
11572
11573type GetBackupSelectionOutput struct {
11574	_ struct{} `type:"structure"`
11575
11576	// Uniquely identifies a backup plan.
11577	BackupPlanId *string `type:"string"`
11578
11579	// Specifies the body of a request to assign a set of resources to a backup
11580	// plan.
11581	BackupSelection *Selection `type:"structure"`
11582
11583	// The date and time a backup selection is created, in Unix format and Coordinated
11584	// Universal Time (UTC). The value of CreationDate is accurate to milliseconds.
11585	// For example, the value 1516925490.087 represents Friday, January 26, 2018
11586	// 12:11:30.087 AM.
11587	CreationDate *time.Time `type:"timestamp"`
11588
11589	// A unique string that identifies the request and allows failed requests to
11590	// be retried without the risk of running the operation twice.
11591	CreatorRequestId *string `type:"string"`
11592
11593	// Uniquely identifies the body of a request to assign a set of resources to
11594	// a backup plan.
11595	SelectionId *string `type:"string"`
11596}
11597
11598// String returns the string representation.
11599//
11600// API parameter values that are decorated as "sensitive" in the API will not
11601// be included in the string output. The member name will be present, but the
11602// value will be replaced with "sensitive".
11603func (s GetBackupSelectionOutput) String() string {
11604	return awsutil.Prettify(s)
11605}
11606
11607// GoString returns the string representation.
11608//
11609// API parameter values that are decorated as "sensitive" in the API will not
11610// be included in the string output. The member name will be present, but the
11611// value will be replaced with "sensitive".
11612func (s GetBackupSelectionOutput) GoString() string {
11613	return s.String()
11614}
11615
11616// SetBackupPlanId sets the BackupPlanId field's value.
11617func (s *GetBackupSelectionOutput) SetBackupPlanId(v string) *GetBackupSelectionOutput {
11618	s.BackupPlanId = &v
11619	return s
11620}
11621
11622// SetBackupSelection sets the BackupSelection field's value.
11623func (s *GetBackupSelectionOutput) SetBackupSelection(v *Selection) *GetBackupSelectionOutput {
11624	s.BackupSelection = v
11625	return s
11626}
11627
11628// SetCreationDate sets the CreationDate field's value.
11629func (s *GetBackupSelectionOutput) SetCreationDate(v time.Time) *GetBackupSelectionOutput {
11630	s.CreationDate = &v
11631	return s
11632}
11633
11634// SetCreatorRequestId sets the CreatorRequestId field's value.
11635func (s *GetBackupSelectionOutput) SetCreatorRequestId(v string) *GetBackupSelectionOutput {
11636	s.CreatorRequestId = &v
11637	return s
11638}
11639
11640// SetSelectionId sets the SelectionId field's value.
11641func (s *GetBackupSelectionOutput) SetSelectionId(v string) *GetBackupSelectionOutput {
11642	s.SelectionId = &v
11643	return s
11644}
11645
11646type GetBackupVaultAccessPolicyInput struct {
11647	_ struct{} `type:"structure" nopayload:"true"`
11648
11649	// The name of a logical container where backups are stored. Backup vaults are
11650	// identified by names that are unique to the account used to create them and
11651	// the Amazon Web Services Region where they are created. They consist of lowercase
11652	// letters, numbers, and hyphens.
11653	//
11654	// BackupVaultName is a required field
11655	BackupVaultName *string `location:"uri" locationName:"backupVaultName" type:"string" required:"true"`
11656}
11657
11658// String returns the string representation.
11659//
11660// API parameter values that are decorated as "sensitive" in the API will not
11661// be included in the string output. The member name will be present, but the
11662// value will be replaced with "sensitive".
11663func (s GetBackupVaultAccessPolicyInput) String() string {
11664	return awsutil.Prettify(s)
11665}
11666
11667// GoString returns the string representation.
11668//
11669// API parameter values that are decorated as "sensitive" in the API will not
11670// be included in the string output. The member name will be present, but the
11671// value will be replaced with "sensitive".
11672func (s GetBackupVaultAccessPolicyInput) GoString() string {
11673	return s.String()
11674}
11675
11676// Validate inspects the fields of the type to determine if they are valid.
11677func (s *GetBackupVaultAccessPolicyInput) Validate() error {
11678	invalidParams := request.ErrInvalidParams{Context: "GetBackupVaultAccessPolicyInput"}
11679	if s.BackupVaultName == nil {
11680		invalidParams.Add(request.NewErrParamRequired("BackupVaultName"))
11681	}
11682	if s.BackupVaultName != nil && len(*s.BackupVaultName) < 1 {
11683		invalidParams.Add(request.NewErrParamMinLen("BackupVaultName", 1))
11684	}
11685
11686	if invalidParams.Len() > 0 {
11687		return invalidParams
11688	}
11689	return nil
11690}
11691
11692// SetBackupVaultName sets the BackupVaultName field's value.
11693func (s *GetBackupVaultAccessPolicyInput) SetBackupVaultName(v string) *GetBackupVaultAccessPolicyInput {
11694	s.BackupVaultName = &v
11695	return s
11696}
11697
11698type GetBackupVaultAccessPolicyOutput struct {
11699	_ struct{} `type:"structure"`
11700
11701	// An Amazon Resource Name (ARN) that uniquely identifies a backup vault; for
11702	// example, arn:aws:backup:us-east-1:123456789012:vault:aBackupVault.
11703	BackupVaultArn *string `type:"string"`
11704
11705	// The name of a logical container where backups are stored. Backup vaults are
11706	// identified by names that are unique to the account used to create them and
11707	// the Region where they are created. They consist of lowercase letters, numbers,
11708	// and hyphens.
11709	BackupVaultName *string `type:"string"`
11710
11711	// The backup vault access policy document in JSON format.
11712	Policy *string `type:"string"`
11713}
11714
11715// String returns the string representation.
11716//
11717// API parameter values that are decorated as "sensitive" in the API will not
11718// be included in the string output. The member name will be present, but the
11719// value will be replaced with "sensitive".
11720func (s GetBackupVaultAccessPolicyOutput) String() string {
11721	return awsutil.Prettify(s)
11722}
11723
11724// GoString returns the string representation.
11725//
11726// API parameter values that are decorated as "sensitive" in the API will not
11727// be included in the string output. The member name will be present, but the
11728// value will be replaced with "sensitive".
11729func (s GetBackupVaultAccessPolicyOutput) GoString() string {
11730	return s.String()
11731}
11732
11733// SetBackupVaultArn sets the BackupVaultArn field's value.
11734func (s *GetBackupVaultAccessPolicyOutput) SetBackupVaultArn(v string) *GetBackupVaultAccessPolicyOutput {
11735	s.BackupVaultArn = &v
11736	return s
11737}
11738
11739// SetBackupVaultName sets the BackupVaultName field's value.
11740func (s *GetBackupVaultAccessPolicyOutput) SetBackupVaultName(v string) *GetBackupVaultAccessPolicyOutput {
11741	s.BackupVaultName = &v
11742	return s
11743}
11744
11745// SetPolicy sets the Policy field's value.
11746func (s *GetBackupVaultAccessPolicyOutput) SetPolicy(v string) *GetBackupVaultAccessPolicyOutput {
11747	s.Policy = &v
11748	return s
11749}
11750
11751type GetBackupVaultNotificationsInput struct {
11752	_ struct{} `type:"structure" nopayload:"true"`
11753
11754	// The name of a logical container where backups are stored. Backup vaults are
11755	// identified by names that are unique to the account used to create them and
11756	// the Amazon Web Services Region where they are created. They consist of lowercase
11757	// letters, numbers, and hyphens.
11758	//
11759	// BackupVaultName is a required field
11760	BackupVaultName *string `location:"uri" locationName:"backupVaultName" type:"string" required:"true"`
11761}
11762
11763// String returns the string representation.
11764//
11765// API parameter values that are decorated as "sensitive" in the API will not
11766// be included in the string output. The member name will be present, but the
11767// value will be replaced with "sensitive".
11768func (s GetBackupVaultNotificationsInput) String() string {
11769	return awsutil.Prettify(s)
11770}
11771
11772// GoString returns the string representation.
11773//
11774// API parameter values that are decorated as "sensitive" in the API will not
11775// be included in the string output. The member name will be present, but the
11776// value will be replaced with "sensitive".
11777func (s GetBackupVaultNotificationsInput) GoString() string {
11778	return s.String()
11779}
11780
11781// Validate inspects the fields of the type to determine if they are valid.
11782func (s *GetBackupVaultNotificationsInput) Validate() error {
11783	invalidParams := request.ErrInvalidParams{Context: "GetBackupVaultNotificationsInput"}
11784	if s.BackupVaultName == nil {
11785		invalidParams.Add(request.NewErrParamRequired("BackupVaultName"))
11786	}
11787	if s.BackupVaultName != nil && len(*s.BackupVaultName) < 1 {
11788		invalidParams.Add(request.NewErrParamMinLen("BackupVaultName", 1))
11789	}
11790
11791	if invalidParams.Len() > 0 {
11792		return invalidParams
11793	}
11794	return nil
11795}
11796
11797// SetBackupVaultName sets the BackupVaultName field's value.
11798func (s *GetBackupVaultNotificationsInput) SetBackupVaultName(v string) *GetBackupVaultNotificationsInput {
11799	s.BackupVaultName = &v
11800	return s
11801}
11802
11803type GetBackupVaultNotificationsOutput struct {
11804	_ struct{} `type:"structure"`
11805
11806	// An Amazon Resource Name (ARN) that uniquely identifies a backup vault; for
11807	// example, arn:aws:backup:us-east-1:123456789012:vault:aBackupVault.
11808	BackupVaultArn *string `type:"string"`
11809
11810	// An array of events that indicate the status of jobs to back up resources
11811	// to the backup vault.
11812	BackupVaultEvents []*string `type:"list"`
11813
11814	// The name of a logical container where backups are stored. Backup vaults are
11815	// identified by names that are unique to the account used to create them and
11816	// the Region where they are created. They consist of lowercase letters, numbers,
11817	// and hyphens.
11818	BackupVaultName *string `type:"string"`
11819
11820	// An ARN that uniquely identifies an Amazon Simple Notification Service (Amazon
11821	// SNS) topic; for example, arn:aws:sns:us-west-2:111122223333:MyTopic.
11822	SNSTopicArn *string `type:"string"`
11823}
11824
11825// String returns the string representation.
11826//
11827// API parameter values that are decorated as "sensitive" in the API will not
11828// be included in the string output. The member name will be present, but the
11829// value will be replaced with "sensitive".
11830func (s GetBackupVaultNotificationsOutput) String() string {
11831	return awsutil.Prettify(s)
11832}
11833
11834// GoString returns the string representation.
11835//
11836// API parameter values that are decorated as "sensitive" in the API will not
11837// be included in the string output. The member name will be present, but the
11838// value will be replaced with "sensitive".
11839func (s GetBackupVaultNotificationsOutput) GoString() string {
11840	return s.String()
11841}
11842
11843// SetBackupVaultArn sets the BackupVaultArn field's value.
11844func (s *GetBackupVaultNotificationsOutput) SetBackupVaultArn(v string) *GetBackupVaultNotificationsOutput {
11845	s.BackupVaultArn = &v
11846	return s
11847}
11848
11849// SetBackupVaultEvents sets the BackupVaultEvents field's value.
11850func (s *GetBackupVaultNotificationsOutput) SetBackupVaultEvents(v []*string) *GetBackupVaultNotificationsOutput {
11851	s.BackupVaultEvents = v
11852	return s
11853}
11854
11855// SetBackupVaultName sets the BackupVaultName field's value.
11856func (s *GetBackupVaultNotificationsOutput) SetBackupVaultName(v string) *GetBackupVaultNotificationsOutput {
11857	s.BackupVaultName = &v
11858	return s
11859}
11860
11861// SetSNSTopicArn sets the SNSTopicArn field's value.
11862func (s *GetBackupVaultNotificationsOutput) SetSNSTopicArn(v string) *GetBackupVaultNotificationsOutput {
11863	s.SNSTopicArn = &v
11864	return s
11865}
11866
11867type GetRecoveryPointRestoreMetadataInput struct {
11868	_ struct{} `type:"structure" nopayload:"true"`
11869
11870	// The name of a logical container where backups are stored. Backup vaults are
11871	// identified by names that are unique to the account used to create them and
11872	// the Amazon Web Services Region where they are created. They consist of lowercase
11873	// letters, numbers, and hyphens.
11874	//
11875	// BackupVaultName is a required field
11876	BackupVaultName *string `location:"uri" locationName:"backupVaultName" type:"string" required:"true"`
11877
11878	// An Amazon Resource Name (ARN) that uniquely identifies a recovery point;
11879	// for example, arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45.
11880	//
11881	// RecoveryPointArn is a required field
11882	RecoveryPointArn *string `location:"uri" locationName:"recoveryPointArn" type:"string" required:"true"`
11883}
11884
11885// String returns the string representation.
11886//
11887// API parameter values that are decorated as "sensitive" in the API will not
11888// be included in the string output. The member name will be present, but the
11889// value will be replaced with "sensitive".
11890func (s GetRecoveryPointRestoreMetadataInput) String() string {
11891	return awsutil.Prettify(s)
11892}
11893
11894// GoString returns the string representation.
11895//
11896// API parameter values that are decorated as "sensitive" in the API will not
11897// be included in the string output. The member name will be present, but the
11898// value will be replaced with "sensitive".
11899func (s GetRecoveryPointRestoreMetadataInput) GoString() string {
11900	return s.String()
11901}
11902
11903// Validate inspects the fields of the type to determine if they are valid.
11904func (s *GetRecoveryPointRestoreMetadataInput) Validate() error {
11905	invalidParams := request.ErrInvalidParams{Context: "GetRecoveryPointRestoreMetadataInput"}
11906	if s.BackupVaultName == nil {
11907		invalidParams.Add(request.NewErrParamRequired("BackupVaultName"))
11908	}
11909	if s.BackupVaultName != nil && len(*s.BackupVaultName) < 1 {
11910		invalidParams.Add(request.NewErrParamMinLen("BackupVaultName", 1))
11911	}
11912	if s.RecoveryPointArn == nil {
11913		invalidParams.Add(request.NewErrParamRequired("RecoveryPointArn"))
11914	}
11915	if s.RecoveryPointArn != nil && len(*s.RecoveryPointArn) < 1 {
11916		invalidParams.Add(request.NewErrParamMinLen("RecoveryPointArn", 1))
11917	}
11918
11919	if invalidParams.Len() > 0 {
11920		return invalidParams
11921	}
11922	return nil
11923}
11924
11925// SetBackupVaultName sets the BackupVaultName field's value.
11926func (s *GetRecoveryPointRestoreMetadataInput) SetBackupVaultName(v string) *GetRecoveryPointRestoreMetadataInput {
11927	s.BackupVaultName = &v
11928	return s
11929}
11930
11931// SetRecoveryPointArn sets the RecoveryPointArn field's value.
11932func (s *GetRecoveryPointRestoreMetadataInput) SetRecoveryPointArn(v string) *GetRecoveryPointRestoreMetadataInput {
11933	s.RecoveryPointArn = &v
11934	return s
11935}
11936
11937type GetRecoveryPointRestoreMetadataOutput struct {
11938	_ struct{} `type:"structure"`
11939
11940	// An ARN that uniquely identifies a backup vault; for example, arn:aws:backup:us-east-1:123456789012:vault:aBackupVault.
11941	BackupVaultArn *string `type:"string"`
11942
11943	// An ARN that uniquely identifies a recovery point; for example, arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45.
11944	RecoveryPointArn *string `type:"string"`
11945
11946	// The set of metadata key-value pairs that describe the original configuration
11947	// of the backed-up resource. These values vary depending on the service that
11948	// is being restored.
11949	//
11950	// RestoreMetadata is a sensitive parameter and its value will be
11951	// replaced with "sensitive" in string returned by GetRecoveryPointRestoreMetadataOutput's
11952	// String and GoString methods.
11953	RestoreMetadata map[string]*string `type:"map" sensitive:"true"`
11954}
11955
11956// String returns the string representation.
11957//
11958// API parameter values that are decorated as "sensitive" in the API will not
11959// be included in the string output. The member name will be present, but the
11960// value will be replaced with "sensitive".
11961func (s GetRecoveryPointRestoreMetadataOutput) String() string {
11962	return awsutil.Prettify(s)
11963}
11964
11965// GoString returns the string representation.
11966//
11967// API parameter values that are decorated as "sensitive" in the API will not
11968// be included in the string output. The member name will be present, but the
11969// value will be replaced with "sensitive".
11970func (s GetRecoveryPointRestoreMetadataOutput) GoString() string {
11971	return s.String()
11972}
11973
11974// SetBackupVaultArn sets the BackupVaultArn field's value.
11975func (s *GetRecoveryPointRestoreMetadataOutput) SetBackupVaultArn(v string) *GetRecoveryPointRestoreMetadataOutput {
11976	s.BackupVaultArn = &v
11977	return s
11978}
11979
11980// SetRecoveryPointArn sets the RecoveryPointArn field's value.
11981func (s *GetRecoveryPointRestoreMetadataOutput) SetRecoveryPointArn(v string) *GetRecoveryPointRestoreMetadataOutput {
11982	s.RecoveryPointArn = &v
11983	return s
11984}
11985
11986// SetRestoreMetadata sets the RestoreMetadata field's value.
11987func (s *GetRecoveryPointRestoreMetadataOutput) SetRestoreMetadata(v map[string]*string) *GetRecoveryPointRestoreMetadataOutput {
11988	s.RestoreMetadata = v
11989	return s
11990}
11991
11992type GetSupportedResourceTypesInput struct {
11993	_ struct{} `type:"structure" nopayload:"true"`
11994}
11995
11996// String returns the string representation.
11997//
11998// API parameter values that are decorated as "sensitive" in the API will not
11999// be included in the string output. The member name will be present, but the
12000// value will be replaced with "sensitive".
12001func (s GetSupportedResourceTypesInput) String() string {
12002	return awsutil.Prettify(s)
12003}
12004
12005// GoString returns the string representation.
12006//
12007// API parameter values that are decorated as "sensitive" in the API will not
12008// be included in the string output. The member name will be present, but the
12009// value will be replaced with "sensitive".
12010func (s GetSupportedResourceTypesInput) GoString() string {
12011	return s.String()
12012}
12013
12014type GetSupportedResourceTypesOutput struct {
12015	_ struct{} `type:"structure"`
12016
12017	// Contains a string with the supported Amazon Web Services resource types:
12018	//
12019	//    * Aurora for Amazon Aurora
12020	//
12021	//    * DynamoDB for Amazon DynamoDB
12022	//
12023	//    * EBS for Amazon Elastic Block Store
12024	//
12025	//    * EC2 for Amazon Elastic Compute Cloud
12026	//
12027	//    * EFS for Amazon Elastic File System
12028	//
12029	//    * FSX for Amazon FSx
12030	//
12031	//    * RDS for Amazon Relational Database Service
12032	//
12033	//    * Storage Gateway for Storage Gateway
12034	ResourceTypes []*string `type:"list"`
12035}
12036
12037// String returns the string representation.
12038//
12039// API parameter values that are decorated as "sensitive" in the API will not
12040// be included in the string output. The member name will be present, but the
12041// value will be replaced with "sensitive".
12042func (s GetSupportedResourceTypesOutput) String() string {
12043	return awsutil.Prettify(s)
12044}
12045
12046// GoString returns the string representation.
12047//
12048// API parameter values that are decorated as "sensitive" in the API will not
12049// be included in the string output. The member name will be present, but the
12050// value will be replaced with "sensitive".
12051func (s GetSupportedResourceTypesOutput) GoString() string {
12052	return s.String()
12053}
12054
12055// SetResourceTypes sets the ResourceTypes field's value.
12056func (s *GetSupportedResourceTypesOutput) SetResourceTypes(v []*string) *GetSupportedResourceTypesOutput {
12057	s.ResourceTypes = v
12058	return s
12059}
12060
12061// Indicates that something is wrong with a parameter's value. For example,
12062// the value is out of range.
12063type InvalidParameterValueException struct {
12064	_            struct{}                  `type:"structure"`
12065	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
12066
12067	Code_ *string `locationName:"Code" type:"string"`
12068
12069	Context *string `type:"string"`
12070
12071	Message_ *string `locationName:"Message" type:"string"`
12072
12073	Type *string `type:"string"`
12074}
12075
12076// String returns the string representation.
12077//
12078// API parameter values that are decorated as "sensitive" in the API will not
12079// be included in the string output. The member name will be present, but the
12080// value will be replaced with "sensitive".
12081func (s InvalidParameterValueException) String() string {
12082	return awsutil.Prettify(s)
12083}
12084
12085// GoString returns the string representation.
12086//
12087// API parameter values that are decorated as "sensitive" in the API will not
12088// be included in the string output. The member name will be present, but the
12089// value will be replaced with "sensitive".
12090func (s InvalidParameterValueException) GoString() string {
12091	return s.String()
12092}
12093
12094func newErrorInvalidParameterValueException(v protocol.ResponseMetadata) error {
12095	return &InvalidParameterValueException{
12096		RespMetadata: v,
12097	}
12098}
12099
12100// Code returns the exception type name.
12101func (s *InvalidParameterValueException) Code() string {
12102	return "InvalidParameterValueException"
12103}
12104
12105// Message returns the exception's message.
12106func (s *InvalidParameterValueException) Message() string {
12107	if s.Message_ != nil {
12108		return *s.Message_
12109	}
12110	return ""
12111}
12112
12113// OrigErr always returns nil, satisfies awserr.Error interface.
12114func (s *InvalidParameterValueException) OrigErr() error {
12115	return nil
12116}
12117
12118func (s *InvalidParameterValueException) Error() string {
12119	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
12120}
12121
12122// Status code returns the HTTP status code for the request's response error.
12123func (s *InvalidParameterValueException) StatusCode() int {
12124	return s.RespMetadata.StatusCode
12125}
12126
12127// RequestID returns the service's response RequestID for request.
12128func (s *InvalidParameterValueException) RequestID() string {
12129	return s.RespMetadata.RequestID
12130}
12131
12132// Indicates that something is wrong with the input to the request. For example,
12133// a parameter is of the wrong type.
12134type InvalidRequestException struct {
12135	_            struct{}                  `type:"structure"`
12136	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
12137
12138	Code_ *string `locationName:"Code" type:"string"`
12139
12140	Context *string `type:"string"`
12141
12142	Message_ *string `locationName:"Message" type:"string"`
12143
12144	Type *string `type:"string"`
12145}
12146
12147// String returns the string representation.
12148//
12149// API parameter values that are decorated as "sensitive" in the API will not
12150// be included in the string output. The member name will be present, but the
12151// value will be replaced with "sensitive".
12152func (s InvalidRequestException) String() string {
12153	return awsutil.Prettify(s)
12154}
12155
12156// GoString returns the string representation.
12157//
12158// API parameter values that are decorated as "sensitive" in the API will not
12159// be included in the string output. The member name will be present, but the
12160// value will be replaced with "sensitive".
12161func (s InvalidRequestException) GoString() string {
12162	return s.String()
12163}
12164
12165func newErrorInvalidRequestException(v protocol.ResponseMetadata) error {
12166	return &InvalidRequestException{
12167		RespMetadata: v,
12168	}
12169}
12170
12171// Code returns the exception type name.
12172func (s *InvalidRequestException) Code() string {
12173	return "InvalidRequestException"
12174}
12175
12176// Message returns the exception's message.
12177func (s *InvalidRequestException) Message() string {
12178	if s.Message_ != nil {
12179		return *s.Message_
12180	}
12181	return ""
12182}
12183
12184// OrigErr always returns nil, satisfies awserr.Error interface.
12185func (s *InvalidRequestException) OrigErr() error {
12186	return nil
12187}
12188
12189func (s *InvalidRequestException) Error() string {
12190	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
12191}
12192
12193// Status code returns the HTTP status code for the request's response error.
12194func (s *InvalidRequestException) StatusCode() int {
12195	return s.RespMetadata.StatusCode
12196}
12197
12198// RequestID returns the service's response RequestID for request.
12199func (s *InvalidRequestException) RequestID() string {
12200	return s.RespMetadata.RequestID
12201}
12202
12203// Backup is already performing an action on this recovery point. It can't perform
12204// the action you requested until the first action finishes. Try again later.
12205type InvalidResourceStateException struct {
12206	_            struct{}                  `type:"structure"`
12207	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
12208
12209	Code_ *string `locationName:"Code" type:"string"`
12210
12211	Context *string `type:"string"`
12212
12213	Message_ *string `locationName:"Message" type:"string"`
12214
12215	Type *string `type:"string"`
12216}
12217
12218// String returns the string representation.
12219//
12220// API parameter values that are decorated as "sensitive" in the API will not
12221// be included in the string output. The member name will be present, but the
12222// value will be replaced with "sensitive".
12223func (s InvalidResourceStateException) String() string {
12224	return awsutil.Prettify(s)
12225}
12226
12227// GoString returns the string representation.
12228//
12229// API parameter values that are decorated as "sensitive" in the API will not
12230// be included in the string output. The member name will be present, but the
12231// value will be replaced with "sensitive".
12232func (s InvalidResourceStateException) GoString() string {
12233	return s.String()
12234}
12235
12236func newErrorInvalidResourceStateException(v protocol.ResponseMetadata) error {
12237	return &InvalidResourceStateException{
12238		RespMetadata: v,
12239	}
12240}
12241
12242// Code returns the exception type name.
12243func (s *InvalidResourceStateException) Code() string {
12244	return "InvalidResourceStateException"
12245}
12246
12247// Message returns the exception's message.
12248func (s *InvalidResourceStateException) Message() string {
12249	if s.Message_ != nil {
12250		return *s.Message_
12251	}
12252	return ""
12253}
12254
12255// OrigErr always returns nil, satisfies awserr.Error interface.
12256func (s *InvalidResourceStateException) OrigErr() error {
12257	return nil
12258}
12259
12260func (s *InvalidResourceStateException) Error() string {
12261	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
12262}
12263
12264// Status code returns the HTTP status code for the request's response error.
12265func (s *InvalidResourceStateException) StatusCode() int {
12266	return s.RespMetadata.StatusCode
12267}
12268
12269// RequestID returns the service's response RequestID for request.
12270func (s *InvalidResourceStateException) RequestID() string {
12271	return s.RespMetadata.RequestID
12272}
12273
12274// Contains detailed information about a backup job.
12275type Job struct {
12276	_ struct{} `type:"structure"`
12277
12278	// The account ID that owns the backup job.
12279	AccountId *string `type:"string"`
12280
12281	// Uniquely identifies a request to Backup to back up a resource.
12282	BackupJobId *string `type:"string"`
12283
12284	// Specifies the backup option for a selected resource. This option is only
12285	// available for Windows Volume Shadow Copy Service (VSS) backup jobs.
12286	//
12287	// Valid values: Set to "WindowsVSS":"enabled" to enable the WindowsVSS backup
12288	// option and create a Windows VSS backup. Set to "WindowsVSS":"disabled" to
12289	// create a regular backup. If you specify an invalid option, you get an InvalidParameterValueException
12290	// exception.
12291	BackupOptions map[string]*string `type:"map"`
12292
12293	// The size, in bytes, of a backup.
12294	BackupSizeInBytes *int64 `type:"long"`
12295
12296	// Represents the type of backup for a backup job.
12297	BackupType *string `type:"string"`
12298
12299	// An Amazon Resource Name (ARN) that uniquely identifies a backup vault; for
12300	// example, arn:aws:backup:us-east-1:123456789012:vault:aBackupVault.
12301	BackupVaultArn *string `type:"string"`
12302
12303	// The name of a logical container where backups are stored. Backup vaults are
12304	// identified by names that are unique to the account used to create them and
12305	// the Amazon Web Services Region where they are created. They consist of lowercase
12306	// letters, numbers, and hyphens.
12307	BackupVaultName *string `type:"string"`
12308
12309	// The size in bytes transferred to a backup vault at the time that the job
12310	// status was queried.
12311	BytesTransferred *int64 `type:"long"`
12312
12313	// The date and time a job to create a backup job is completed, in Unix format
12314	// and Coordinated Universal Time (UTC). The value of CompletionDate is accurate
12315	// to milliseconds. For example, the value 1516925490.087 represents Friday,
12316	// January 26, 2018 12:11:30.087 AM.
12317	CompletionDate *time.Time `type:"timestamp"`
12318
12319	// Contains identifying information about the creation of a backup job, including
12320	// the BackupPlanArn, BackupPlanId, BackupPlanVersion, and BackupRuleId of the
12321	// backup plan used to create it.
12322	CreatedBy *RecoveryPointCreator `type:"structure"`
12323
12324	// The date and time a backup job is created, in Unix format and Coordinated
12325	// Universal Time (UTC). The value of CreationDate is accurate to milliseconds.
12326	// For example, the value 1516925490.087 represents Friday, January 26, 2018
12327	// 12:11:30.087 AM.
12328	CreationDate *time.Time `type:"timestamp"`
12329
12330	// The date and time a job to back up resources is expected to be completed,
12331	// in Unix format and Coordinated Universal Time (UTC). The value of ExpectedCompletionDate
12332	// is accurate to milliseconds. For example, the value 1516925490.087 represents
12333	// Friday, January 26, 2018 12:11:30.087 AM.
12334	ExpectedCompletionDate *time.Time `type:"timestamp"`
12335
12336	// Specifies the IAM role ARN used to create the target recovery point. IAM
12337	// roles other than the default role must include either AWSBackup or AwsBackup
12338	// in the role name. For example, arn:aws:iam::123456789012:role/AWSBackupRDSAccess.
12339	// Role names without those strings lack permissions to perform backup jobs.
12340	IamRoleArn *string `type:"string"`
12341
12342	// Contains an estimated percentage complete of a job at the time the job status
12343	// was queried.
12344	PercentDone *string `type:"string"`
12345
12346	// An ARN that uniquely identifies a recovery point; for example, arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45.
12347	RecoveryPointArn *string `type:"string"`
12348
12349	// An ARN that uniquely identifies a resource. The format of the ARN depends
12350	// on the resource type.
12351	ResourceArn *string `type:"string"`
12352
12353	// The type of Amazon Web Services resource to be backed up; for example, an
12354	// Amazon Elastic Block Store (Amazon EBS) volume or an Amazon Relational Database
12355	// Service (Amazon RDS) database. For Windows Volume Shadow Copy Service (VSS)
12356	// backups, the only supported resource type is Amazon EC2.
12357	ResourceType *string `type:"string"`
12358
12359	// Specifies the time in Unix format and Coordinated Universal Time (UTC) when
12360	// a backup job must be started before it is canceled. The value is calculated
12361	// by adding the start window to the scheduled time. So if the scheduled time
12362	// were 6:00 PM and the start window is 2 hours, the StartBy time would be 8:00
12363	// PM on the date specified. The value of StartBy is accurate to milliseconds.
12364	// For example, the value 1516925490.087 represents Friday, January 26, 2018
12365	// 12:11:30.087 AM.
12366	StartBy *time.Time `type:"timestamp"`
12367
12368	// The current state of a resource recovery point.
12369	State *string `type:"string" enum:"JobState"`
12370
12371	// A detailed message explaining the status of the job to back up a resource.
12372	StatusMessage *string `type:"string"`
12373}
12374
12375// String returns the string representation.
12376//
12377// API parameter values that are decorated as "sensitive" in the API will not
12378// be included in the string output. The member name will be present, but the
12379// value will be replaced with "sensitive".
12380func (s Job) String() string {
12381	return awsutil.Prettify(s)
12382}
12383
12384// GoString returns the string representation.
12385//
12386// API parameter values that are decorated as "sensitive" in the API will not
12387// be included in the string output. The member name will be present, but the
12388// value will be replaced with "sensitive".
12389func (s Job) GoString() string {
12390	return s.String()
12391}
12392
12393// SetAccountId sets the AccountId field's value.
12394func (s *Job) SetAccountId(v string) *Job {
12395	s.AccountId = &v
12396	return s
12397}
12398
12399// SetBackupJobId sets the BackupJobId field's value.
12400func (s *Job) SetBackupJobId(v string) *Job {
12401	s.BackupJobId = &v
12402	return s
12403}
12404
12405// SetBackupOptions sets the BackupOptions field's value.
12406func (s *Job) SetBackupOptions(v map[string]*string) *Job {
12407	s.BackupOptions = v
12408	return s
12409}
12410
12411// SetBackupSizeInBytes sets the BackupSizeInBytes field's value.
12412func (s *Job) SetBackupSizeInBytes(v int64) *Job {
12413	s.BackupSizeInBytes = &v
12414	return s
12415}
12416
12417// SetBackupType sets the BackupType field's value.
12418func (s *Job) SetBackupType(v string) *Job {
12419	s.BackupType = &v
12420	return s
12421}
12422
12423// SetBackupVaultArn sets the BackupVaultArn field's value.
12424func (s *Job) SetBackupVaultArn(v string) *Job {
12425	s.BackupVaultArn = &v
12426	return s
12427}
12428
12429// SetBackupVaultName sets the BackupVaultName field's value.
12430func (s *Job) SetBackupVaultName(v string) *Job {
12431	s.BackupVaultName = &v
12432	return s
12433}
12434
12435// SetBytesTransferred sets the BytesTransferred field's value.
12436func (s *Job) SetBytesTransferred(v int64) *Job {
12437	s.BytesTransferred = &v
12438	return s
12439}
12440
12441// SetCompletionDate sets the CompletionDate field's value.
12442func (s *Job) SetCompletionDate(v time.Time) *Job {
12443	s.CompletionDate = &v
12444	return s
12445}
12446
12447// SetCreatedBy sets the CreatedBy field's value.
12448func (s *Job) SetCreatedBy(v *RecoveryPointCreator) *Job {
12449	s.CreatedBy = v
12450	return s
12451}
12452
12453// SetCreationDate sets the CreationDate field's value.
12454func (s *Job) SetCreationDate(v time.Time) *Job {
12455	s.CreationDate = &v
12456	return s
12457}
12458
12459// SetExpectedCompletionDate sets the ExpectedCompletionDate field's value.
12460func (s *Job) SetExpectedCompletionDate(v time.Time) *Job {
12461	s.ExpectedCompletionDate = &v
12462	return s
12463}
12464
12465// SetIamRoleArn sets the IamRoleArn field's value.
12466func (s *Job) SetIamRoleArn(v string) *Job {
12467	s.IamRoleArn = &v
12468	return s
12469}
12470
12471// SetPercentDone sets the PercentDone field's value.
12472func (s *Job) SetPercentDone(v string) *Job {
12473	s.PercentDone = &v
12474	return s
12475}
12476
12477// SetRecoveryPointArn sets the RecoveryPointArn field's value.
12478func (s *Job) SetRecoveryPointArn(v string) *Job {
12479	s.RecoveryPointArn = &v
12480	return s
12481}
12482
12483// SetResourceArn sets the ResourceArn field's value.
12484func (s *Job) SetResourceArn(v string) *Job {
12485	s.ResourceArn = &v
12486	return s
12487}
12488
12489// SetResourceType sets the ResourceType field's value.
12490func (s *Job) SetResourceType(v string) *Job {
12491	s.ResourceType = &v
12492	return s
12493}
12494
12495// SetStartBy sets the StartBy field's value.
12496func (s *Job) SetStartBy(v time.Time) *Job {
12497	s.StartBy = &v
12498	return s
12499}
12500
12501// SetState sets the State field's value.
12502func (s *Job) SetState(v string) *Job {
12503	s.State = &v
12504	return s
12505}
12506
12507// SetStatusMessage sets the StatusMessage field's value.
12508func (s *Job) SetStatusMessage(v string) *Job {
12509	s.StatusMessage = &v
12510	return s
12511}
12512
12513// Contains an array of Transition objects specifying how long in days before
12514// a recovery point transitions to cold storage or is deleted.
12515//
12516// Backups transitioned to cold storage must be stored in cold storage for a
12517// minimum of 90 days. Therefore, on the console, the “expire after days”
12518// setting must be 90 days greater than the “transition to cold after days”
12519// setting. The “transition to cold after days” setting cannot be changed
12520// after a backup has been transitioned to cold.
12521//
12522// Only Amazon EFS file system backups can be transitioned to cold storage.
12523type Lifecycle struct {
12524	_ struct{} `type:"structure"`
12525
12526	// Specifies the number of days after creation that a recovery point is deleted.
12527	// Must be greater than 90 days plus MoveToColdStorageAfterDays.
12528	DeleteAfterDays *int64 `type:"long"`
12529
12530	// Specifies the number of days after creation that a recovery point is moved
12531	// to cold storage.
12532	MoveToColdStorageAfterDays *int64 `type:"long"`
12533}
12534
12535// String returns the string representation.
12536//
12537// API parameter values that are decorated as "sensitive" in the API will not
12538// be included in the string output. The member name will be present, but the
12539// value will be replaced with "sensitive".
12540func (s Lifecycle) String() string {
12541	return awsutil.Prettify(s)
12542}
12543
12544// GoString returns the string representation.
12545//
12546// API parameter values that are decorated as "sensitive" in the API will not
12547// be included in the string output. The member name will be present, but the
12548// value will be replaced with "sensitive".
12549func (s Lifecycle) GoString() string {
12550	return s.String()
12551}
12552
12553// SetDeleteAfterDays sets the DeleteAfterDays field's value.
12554func (s *Lifecycle) SetDeleteAfterDays(v int64) *Lifecycle {
12555	s.DeleteAfterDays = &v
12556	return s
12557}
12558
12559// SetMoveToColdStorageAfterDays sets the MoveToColdStorageAfterDays field's value.
12560func (s *Lifecycle) SetMoveToColdStorageAfterDays(v int64) *Lifecycle {
12561	s.MoveToColdStorageAfterDays = &v
12562	return s
12563}
12564
12565// A limit in the request has been exceeded; for example, a maximum number of
12566// items allowed in a request.
12567type LimitExceededException struct {
12568	_            struct{}                  `type:"structure"`
12569	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
12570
12571	Code_ *string `locationName:"Code" type:"string"`
12572
12573	Context *string `type:"string"`
12574
12575	Message_ *string `locationName:"Message" type:"string"`
12576
12577	Type *string `type:"string"`
12578}
12579
12580// String returns the string representation.
12581//
12582// API parameter values that are decorated as "sensitive" in the API will not
12583// be included in the string output. The member name will be present, but the
12584// value will be replaced with "sensitive".
12585func (s LimitExceededException) String() string {
12586	return awsutil.Prettify(s)
12587}
12588
12589// GoString returns the string representation.
12590//
12591// API parameter values that are decorated as "sensitive" in the API will not
12592// be included in the string output. The member name will be present, but the
12593// value will be replaced with "sensitive".
12594func (s LimitExceededException) GoString() string {
12595	return s.String()
12596}
12597
12598func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
12599	return &LimitExceededException{
12600		RespMetadata: v,
12601	}
12602}
12603
12604// Code returns the exception type name.
12605func (s *LimitExceededException) Code() string {
12606	return "LimitExceededException"
12607}
12608
12609// Message returns the exception's message.
12610func (s *LimitExceededException) Message() string {
12611	if s.Message_ != nil {
12612		return *s.Message_
12613	}
12614	return ""
12615}
12616
12617// OrigErr always returns nil, satisfies awserr.Error interface.
12618func (s *LimitExceededException) OrigErr() error {
12619	return nil
12620}
12621
12622func (s *LimitExceededException) Error() string {
12623	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
12624}
12625
12626// Status code returns the HTTP status code for the request's response error.
12627func (s *LimitExceededException) StatusCode() int {
12628	return s.RespMetadata.StatusCode
12629}
12630
12631// RequestID returns the service's response RequestID for request.
12632func (s *LimitExceededException) RequestID() string {
12633	return s.RespMetadata.RequestID
12634}
12635
12636type ListBackupJobsInput struct {
12637	_ struct{} `type:"structure" nopayload:"true"`
12638
12639	// The account ID to list the jobs from. Returns only backup jobs associated
12640	// with the specified account ID.
12641	//
12642	// If used from an Organizations management account, passing * returns all jobs
12643	// across the organization.
12644	ByAccountId *string `location:"querystring" locationName:"accountId" type:"string"`
12645
12646	// Returns only backup jobs that will be stored in the specified backup vault.
12647	// Backup vaults are identified by names that are unique to the account used
12648	// to create them and the Amazon Web Services Region where they are created.
12649	// They consist of lowercase letters, numbers, and hyphens.
12650	ByBackupVaultName *string `location:"querystring" locationName:"backupVaultName" type:"string"`
12651
12652	// Returns only backup jobs that were created after the specified date.
12653	ByCreatedAfter *time.Time `location:"querystring" locationName:"createdAfter" type:"timestamp"`
12654
12655	// Returns only backup jobs that were created before the specified date.
12656	ByCreatedBefore *time.Time `location:"querystring" locationName:"createdBefore" type:"timestamp"`
12657
12658	// Returns only backup jobs that match the specified resource Amazon Resource
12659	// Name (ARN).
12660	ByResourceArn *string `location:"querystring" locationName:"resourceArn" type:"string"`
12661
12662	// Returns only backup jobs for the specified resources:
12663	//
12664	//    * DynamoDB for Amazon DynamoDB
12665	//
12666	//    * EBS for Amazon Elastic Block Store
12667	//
12668	//    * EC2 for Amazon Elastic Compute Cloud
12669	//
12670	//    * EFS for Amazon Elastic File System
12671	//
12672	//    * RDS for Amazon Relational Database Service
12673	//
12674	//    * Aurora for Amazon Aurora
12675	//
12676	//    * Storage Gateway for Storage Gateway
12677	ByResourceType *string `location:"querystring" locationName:"resourceType" type:"string"`
12678
12679	// Returns only backup jobs that are in the specified state.
12680	ByState *string `location:"querystring" locationName:"state" type:"string" enum:"JobState"`
12681
12682	// The maximum number of items to be returned.
12683	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
12684
12685	// The next item following a partial list of returned items. For example, if
12686	// a request is made to return maxResults number of items, NextToken allows
12687	// you to return more items in your list starting at the location pointed to
12688	// by the next token.
12689	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
12690}
12691
12692// String returns the string representation.
12693//
12694// API parameter values that are decorated as "sensitive" in the API will not
12695// be included in the string output. The member name will be present, but the
12696// value will be replaced with "sensitive".
12697func (s ListBackupJobsInput) String() string {
12698	return awsutil.Prettify(s)
12699}
12700
12701// GoString returns the string representation.
12702//
12703// API parameter values that are decorated as "sensitive" in the API will not
12704// be included in the string output. The member name will be present, but the
12705// value will be replaced with "sensitive".
12706func (s ListBackupJobsInput) GoString() string {
12707	return s.String()
12708}
12709
12710// Validate inspects the fields of the type to determine if they are valid.
12711func (s *ListBackupJobsInput) Validate() error {
12712	invalidParams := request.ErrInvalidParams{Context: "ListBackupJobsInput"}
12713	if s.MaxResults != nil && *s.MaxResults < 1 {
12714		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
12715	}
12716
12717	if invalidParams.Len() > 0 {
12718		return invalidParams
12719	}
12720	return nil
12721}
12722
12723// SetByAccountId sets the ByAccountId field's value.
12724func (s *ListBackupJobsInput) SetByAccountId(v string) *ListBackupJobsInput {
12725	s.ByAccountId = &v
12726	return s
12727}
12728
12729// SetByBackupVaultName sets the ByBackupVaultName field's value.
12730func (s *ListBackupJobsInput) SetByBackupVaultName(v string) *ListBackupJobsInput {
12731	s.ByBackupVaultName = &v
12732	return s
12733}
12734
12735// SetByCreatedAfter sets the ByCreatedAfter field's value.
12736func (s *ListBackupJobsInput) SetByCreatedAfter(v time.Time) *ListBackupJobsInput {
12737	s.ByCreatedAfter = &v
12738	return s
12739}
12740
12741// SetByCreatedBefore sets the ByCreatedBefore field's value.
12742func (s *ListBackupJobsInput) SetByCreatedBefore(v time.Time) *ListBackupJobsInput {
12743	s.ByCreatedBefore = &v
12744	return s
12745}
12746
12747// SetByResourceArn sets the ByResourceArn field's value.
12748func (s *ListBackupJobsInput) SetByResourceArn(v string) *ListBackupJobsInput {
12749	s.ByResourceArn = &v
12750	return s
12751}
12752
12753// SetByResourceType sets the ByResourceType field's value.
12754func (s *ListBackupJobsInput) SetByResourceType(v string) *ListBackupJobsInput {
12755	s.ByResourceType = &v
12756	return s
12757}
12758
12759// SetByState sets the ByState field's value.
12760func (s *ListBackupJobsInput) SetByState(v string) *ListBackupJobsInput {
12761	s.ByState = &v
12762	return s
12763}
12764
12765// SetMaxResults sets the MaxResults field's value.
12766func (s *ListBackupJobsInput) SetMaxResults(v int64) *ListBackupJobsInput {
12767	s.MaxResults = &v
12768	return s
12769}
12770
12771// SetNextToken sets the NextToken field's value.
12772func (s *ListBackupJobsInput) SetNextToken(v string) *ListBackupJobsInput {
12773	s.NextToken = &v
12774	return s
12775}
12776
12777type ListBackupJobsOutput struct {
12778	_ struct{} `type:"structure"`
12779
12780	// An array of structures containing metadata about your backup jobs returned
12781	// in JSON format.
12782	BackupJobs []*Job `type:"list"`
12783
12784	// The next item following a partial list of returned items. For example, if
12785	// a request is made to return maxResults number of items, NextToken allows
12786	// you to return more items in your list starting at the location pointed to
12787	// by the next token.
12788	NextToken *string `type:"string"`
12789}
12790
12791// String returns the string representation.
12792//
12793// API parameter values that are decorated as "sensitive" in the API will not
12794// be included in the string output. The member name will be present, but the
12795// value will be replaced with "sensitive".
12796func (s ListBackupJobsOutput) String() string {
12797	return awsutil.Prettify(s)
12798}
12799
12800// GoString returns the string representation.
12801//
12802// API parameter values that are decorated as "sensitive" in the API will not
12803// be included in the string output. The member name will be present, but the
12804// value will be replaced with "sensitive".
12805func (s ListBackupJobsOutput) GoString() string {
12806	return s.String()
12807}
12808
12809// SetBackupJobs sets the BackupJobs field's value.
12810func (s *ListBackupJobsOutput) SetBackupJobs(v []*Job) *ListBackupJobsOutput {
12811	s.BackupJobs = v
12812	return s
12813}
12814
12815// SetNextToken sets the NextToken field's value.
12816func (s *ListBackupJobsOutput) SetNextToken(v string) *ListBackupJobsOutput {
12817	s.NextToken = &v
12818	return s
12819}
12820
12821type ListBackupPlanTemplatesInput struct {
12822	_ struct{} `type:"structure" nopayload:"true"`
12823
12824	// The maximum number of items to be returned.
12825	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
12826
12827	// The next item following a partial list of returned items. For example, if
12828	// a request is made to return maxResults number of items, NextToken allows
12829	// you to return more items in your list starting at the location pointed to
12830	// by the next token.
12831	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
12832}
12833
12834// String returns the string representation.
12835//
12836// API parameter values that are decorated as "sensitive" in the API will not
12837// be included in the string output. The member name will be present, but the
12838// value will be replaced with "sensitive".
12839func (s ListBackupPlanTemplatesInput) String() string {
12840	return awsutil.Prettify(s)
12841}
12842
12843// GoString returns the string representation.
12844//
12845// API parameter values that are decorated as "sensitive" in the API will not
12846// be included in the string output. The member name will be present, but the
12847// value will be replaced with "sensitive".
12848func (s ListBackupPlanTemplatesInput) GoString() string {
12849	return s.String()
12850}
12851
12852// Validate inspects the fields of the type to determine if they are valid.
12853func (s *ListBackupPlanTemplatesInput) Validate() error {
12854	invalidParams := request.ErrInvalidParams{Context: "ListBackupPlanTemplatesInput"}
12855	if s.MaxResults != nil && *s.MaxResults < 1 {
12856		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
12857	}
12858
12859	if invalidParams.Len() > 0 {
12860		return invalidParams
12861	}
12862	return nil
12863}
12864
12865// SetMaxResults sets the MaxResults field's value.
12866func (s *ListBackupPlanTemplatesInput) SetMaxResults(v int64) *ListBackupPlanTemplatesInput {
12867	s.MaxResults = &v
12868	return s
12869}
12870
12871// SetNextToken sets the NextToken field's value.
12872func (s *ListBackupPlanTemplatesInput) SetNextToken(v string) *ListBackupPlanTemplatesInput {
12873	s.NextToken = &v
12874	return s
12875}
12876
12877type ListBackupPlanTemplatesOutput struct {
12878	_ struct{} `type:"structure"`
12879
12880	// An array of template list items containing metadata about your saved templates.
12881	BackupPlanTemplatesList []*PlanTemplatesListMember `type:"list"`
12882
12883	// The next item following a partial list of returned items. For example, if
12884	// a request is made to return maxResults number of items, NextToken allows
12885	// you to return more items in your list starting at the location pointed to
12886	// by the next token.
12887	NextToken *string `type:"string"`
12888}
12889
12890// String returns the string representation.
12891//
12892// API parameter values that are decorated as "sensitive" in the API will not
12893// be included in the string output. The member name will be present, but the
12894// value will be replaced with "sensitive".
12895func (s ListBackupPlanTemplatesOutput) String() string {
12896	return awsutil.Prettify(s)
12897}
12898
12899// GoString returns the string representation.
12900//
12901// API parameter values that are decorated as "sensitive" in the API will not
12902// be included in the string output. The member name will be present, but the
12903// value will be replaced with "sensitive".
12904func (s ListBackupPlanTemplatesOutput) GoString() string {
12905	return s.String()
12906}
12907
12908// SetBackupPlanTemplatesList sets the BackupPlanTemplatesList field's value.
12909func (s *ListBackupPlanTemplatesOutput) SetBackupPlanTemplatesList(v []*PlanTemplatesListMember) *ListBackupPlanTemplatesOutput {
12910	s.BackupPlanTemplatesList = v
12911	return s
12912}
12913
12914// SetNextToken sets the NextToken field's value.
12915func (s *ListBackupPlanTemplatesOutput) SetNextToken(v string) *ListBackupPlanTemplatesOutput {
12916	s.NextToken = &v
12917	return s
12918}
12919
12920type ListBackupPlanVersionsInput struct {
12921	_ struct{} `type:"structure" nopayload:"true"`
12922
12923	// Uniquely identifies a backup plan.
12924	//
12925	// BackupPlanId is a required field
12926	BackupPlanId *string `location:"uri" locationName:"backupPlanId" type:"string" required:"true"`
12927
12928	// The maximum number of items to be returned.
12929	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
12930
12931	// The next item following a partial list of returned items. For example, if
12932	// a request is made to return maxResults number of items, NextToken allows
12933	// you to return more items in your list starting at the location pointed to
12934	// by the next token.
12935	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
12936}
12937
12938// String returns the string representation.
12939//
12940// API parameter values that are decorated as "sensitive" in the API will not
12941// be included in the string output. The member name will be present, but the
12942// value will be replaced with "sensitive".
12943func (s ListBackupPlanVersionsInput) String() string {
12944	return awsutil.Prettify(s)
12945}
12946
12947// GoString returns the string representation.
12948//
12949// API parameter values that are decorated as "sensitive" in the API will not
12950// be included in the string output. The member name will be present, but the
12951// value will be replaced with "sensitive".
12952func (s ListBackupPlanVersionsInput) GoString() string {
12953	return s.String()
12954}
12955
12956// Validate inspects the fields of the type to determine if they are valid.
12957func (s *ListBackupPlanVersionsInput) Validate() error {
12958	invalidParams := request.ErrInvalidParams{Context: "ListBackupPlanVersionsInput"}
12959	if s.BackupPlanId == nil {
12960		invalidParams.Add(request.NewErrParamRequired("BackupPlanId"))
12961	}
12962	if s.BackupPlanId != nil && len(*s.BackupPlanId) < 1 {
12963		invalidParams.Add(request.NewErrParamMinLen("BackupPlanId", 1))
12964	}
12965	if s.MaxResults != nil && *s.MaxResults < 1 {
12966		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
12967	}
12968
12969	if invalidParams.Len() > 0 {
12970		return invalidParams
12971	}
12972	return nil
12973}
12974
12975// SetBackupPlanId sets the BackupPlanId field's value.
12976func (s *ListBackupPlanVersionsInput) SetBackupPlanId(v string) *ListBackupPlanVersionsInput {
12977	s.BackupPlanId = &v
12978	return s
12979}
12980
12981// SetMaxResults sets the MaxResults field's value.
12982func (s *ListBackupPlanVersionsInput) SetMaxResults(v int64) *ListBackupPlanVersionsInput {
12983	s.MaxResults = &v
12984	return s
12985}
12986
12987// SetNextToken sets the NextToken field's value.
12988func (s *ListBackupPlanVersionsInput) SetNextToken(v string) *ListBackupPlanVersionsInput {
12989	s.NextToken = &v
12990	return s
12991}
12992
12993type ListBackupPlanVersionsOutput struct {
12994	_ struct{} `type:"structure"`
12995
12996	// An array of version list items containing metadata about your backup plans.
12997	BackupPlanVersionsList []*PlansListMember `type:"list"`
12998
12999	// The next item following a partial list of returned items. For example, if
13000	// a request is made to return maxResults number of items, NextToken allows
13001	// you to return more items in your list starting at the location pointed to
13002	// by the next token.
13003	NextToken *string `type:"string"`
13004}
13005
13006// String returns the string representation.
13007//
13008// API parameter values that are decorated as "sensitive" in the API will not
13009// be included in the string output. The member name will be present, but the
13010// value will be replaced with "sensitive".
13011func (s ListBackupPlanVersionsOutput) String() string {
13012	return awsutil.Prettify(s)
13013}
13014
13015// GoString returns the string representation.
13016//
13017// API parameter values that are decorated as "sensitive" in the API will not
13018// be included in the string output. The member name will be present, but the
13019// value will be replaced with "sensitive".
13020func (s ListBackupPlanVersionsOutput) GoString() string {
13021	return s.String()
13022}
13023
13024// SetBackupPlanVersionsList sets the BackupPlanVersionsList field's value.
13025func (s *ListBackupPlanVersionsOutput) SetBackupPlanVersionsList(v []*PlansListMember) *ListBackupPlanVersionsOutput {
13026	s.BackupPlanVersionsList = v
13027	return s
13028}
13029
13030// SetNextToken sets the NextToken field's value.
13031func (s *ListBackupPlanVersionsOutput) SetNextToken(v string) *ListBackupPlanVersionsOutput {
13032	s.NextToken = &v
13033	return s
13034}
13035
13036type ListBackupPlansInput struct {
13037	_ struct{} `type:"structure" nopayload:"true"`
13038
13039	// A Boolean value with a default value of FALSE that returns deleted backup
13040	// plans when set to TRUE.
13041	IncludeDeleted *bool `location:"querystring" locationName:"includeDeleted" type:"boolean"`
13042
13043	// The maximum number of items to be returned.
13044	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
13045
13046	// The next item following a partial list of returned items. For example, if
13047	// a request is made to return maxResults number of items, NextToken allows
13048	// you to return more items in your list starting at the location pointed to
13049	// by the next token.
13050	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
13051}
13052
13053// String returns the string representation.
13054//
13055// API parameter values that are decorated as "sensitive" in the API will not
13056// be included in the string output. The member name will be present, but the
13057// value will be replaced with "sensitive".
13058func (s ListBackupPlansInput) String() string {
13059	return awsutil.Prettify(s)
13060}
13061
13062// GoString returns the string representation.
13063//
13064// API parameter values that are decorated as "sensitive" in the API will not
13065// be included in the string output. The member name will be present, but the
13066// value will be replaced with "sensitive".
13067func (s ListBackupPlansInput) GoString() string {
13068	return s.String()
13069}
13070
13071// Validate inspects the fields of the type to determine if they are valid.
13072func (s *ListBackupPlansInput) Validate() error {
13073	invalidParams := request.ErrInvalidParams{Context: "ListBackupPlansInput"}
13074	if s.MaxResults != nil && *s.MaxResults < 1 {
13075		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
13076	}
13077
13078	if invalidParams.Len() > 0 {
13079		return invalidParams
13080	}
13081	return nil
13082}
13083
13084// SetIncludeDeleted sets the IncludeDeleted field's value.
13085func (s *ListBackupPlansInput) SetIncludeDeleted(v bool) *ListBackupPlansInput {
13086	s.IncludeDeleted = &v
13087	return s
13088}
13089
13090// SetMaxResults sets the MaxResults field's value.
13091func (s *ListBackupPlansInput) SetMaxResults(v int64) *ListBackupPlansInput {
13092	s.MaxResults = &v
13093	return s
13094}
13095
13096// SetNextToken sets the NextToken field's value.
13097func (s *ListBackupPlansInput) SetNextToken(v string) *ListBackupPlansInput {
13098	s.NextToken = &v
13099	return s
13100}
13101
13102type ListBackupPlansOutput struct {
13103	_ struct{} `type:"structure"`
13104
13105	// An array of backup plan list items containing metadata about your saved backup
13106	// plans.
13107	BackupPlansList []*PlansListMember `type:"list"`
13108
13109	// The next item following a partial list of returned items. For example, if
13110	// a request is made to return maxResults number of items, NextToken allows
13111	// you to return more items in your list starting at the location pointed to
13112	// by the next token.
13113	NextToken *string `type:"string"`
13114}
13115
13116// String returns the string representation.
13117//
13118// API parameter values that are decorated as "sensitive" in the API will not
13119// be included in the string output. The member name will be present, but the
13120// value will be replaced with "sensitive".
13121func (s ListBackupPlansOutput) String() string {
13122	return awsutil.Prettify(s)
13123}
13124
13125// GoString returns the string representation.
13126//
13127// API parameter values that are decorated as "sensitive" in the API will not
13128// be included in the string output. The member name will be present, but the
13129// value will be replaced with "sensitive".
13130func (s ListBackupPlansOutput) GoString() string {
13131	return s.String()
13132}
13133
13134// SetBackupPlansList sets the BackupPlansList field's value.
13135func (s *ListBackupPlansOutput) SetBackupPlansList(v []*PlansListMember) *ListBackupPlansOutput {
13136	s.BackupPlansList = v
13137	return s
13138}
13139
13140// SetNextToken sets the NextToken field's value.
13141func (s *ListBackupPlansOutput) SetNextToken(v string) *ListBackupPlansOutput {
13142	s.NextToken = &v
13143	return s
13144}
13145
13146type ListBackupSelectionsInput struct {
13147	_ struct{} `type:"structure" nopayload:"true"`
13148
13149	// Uniquely identifies a backup plan.
13150	//
13151	// BackupPlanId is a required field
13152	BackupPlanId *string `location:"uri" locationName:"backupPlanId" type:"string" required:"true"`
13153
13154	// The maximum number of items to be returned.
13155	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
13156
13157	// The next item following a partial list of returned items. For example, if
13158	// a request is made to return maxResults number of items, NextToken allows
13159	// you to return more items in your list starting at the location pointed to
13160	// by the next token.
13161	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
13162}
13163
13164// String returns the string representation.
13165//
13166// API parameter values that are decorated as "sensitive" in the API will not
13167// be included in the string output. The member name will be present, but the
13168// value will be replaced with "sensitive".
13169func (s ListBackupSelectionsInput) String() string {
13170	return awsutil.Prettify(s)
13171}
13172
13173// GoString returns the string representation.
13174//
13175// API parameter values that are decorated as "sensitive" in the API will not
13176// be included in the string output. The member name will be present, but the
13177// value will be replaced with "sensitive".
13178func (s ListBackupSelectionsInput) GoString() string {
13179	return s.String()
13180}
13181
13182// Validate inspects the fields of the type to determine if they are valid.
13183func (s *ListBackupSelectionsInput) Validate() error {
13184	invalidParams := request.ErrInvalidParams{Context: "ListBackupSelectionsInput"}
13185	if s.BackupPlanId == nil {
13186		invalidParams.Add(request.NewErrParamRequired("BackupPlanId"))
13187	}
13188	if s.BackupPlanId != nil && len(*s.BackupPlanId) < 1 {
13189		invalidParams.Add(request.NewErrParamMinLen("BackupPlanId", 1))
13190	}
13191	if s.MaxResults != nil && *s.MaxResults < 1 {
13192		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
13193	}
13194
13195	if invalidParams.Len() > 0 {
13196		return invalidParams
13197	}
13198	return nil
13199}
13200
13201// SetBackupPlanId sets the BackupPlanId field's value.
13202func (s *ListBackupSelectionsInput) SetBackupPlanId(v string) *ListBackupSelectionsInput {
13203	s.BackupPlanId = &v
13204	return s
13205}
13206
13207// SetMaxResults sets the MaxResults field's value.
13208func (s *ListBackupSelectionsInput) SetMaxResults(v int64) *ListBackupSelectionsInput {
13209	s.MaxResults = &v
13210	return s
13211}
13212
13213// SetNextToken sets the NextToken field's value.
13214func (s *ListBackupSelectionsInput) SetNextToken(v string) *ListBackupSelectionsInput {
13215	s.NextToken = &v
13216	return s
13217}
13218
13219type ListBackupSelectionsOutput struct {
13220	_ struct{} `type:"structure"`
13221
13222	// An array of backup selection list items containing metadata about each resource
13223	// in the list.
13224	BackupSelectionsList []*SelectionsListMember `type:"list"`
13225
13226	// The next item following a partial list of returned items. For example, if
13227	// a request is made to return maxResults number of items, NextToken allows
13228	// you to return more items in your list starting at the location pointed to
13229	// by the next token.
13230	NextToken *string `type:"string"`
13231}
13232
13233// String returns the string representation.
13234//
13235// API parameter values that are decorated as "sensitive" in the API will not
13236// be included in the string output. The member name will be present, but the
13237// value will be replaced with "sensitive".
13238func (s ListBackupSelectionsOutput) String() string {
13239	return awsutil.Prettify(s)
13240}
13241
13242// GoString returns the string representation.
13243//
13244// API parameter values that are decorated as "sensitive" in the API will not
13245// be included in the string output. The member name will be present, but the
13246// value will be replaced with "sensitive".
13247func (s ListBackupSelectionsOutput) GoString() string {
13248	return s.String()
13249}
13250
13251// SetBackupSelectionsList sets the BackupSelectionsList field's value.
13252func (s *ListBackupSelectionsOutput) SetBackupSelectionsList(v []*SelectionsListMember) *ListBackupSelectionsOutput {
13253	s.BackupSelectionsList = v
13254	return s
13255}
13256
13257// SetNextToken sets the NextToken field's value.
13258func (s *ListBackupSelectionsOutput) SetNextToken(v string) *ListBackupSelectionsOutput {
13259	s.NextToken = &v
13260	return s
13261}
13262
13263type ListBackupVaultsInput struct {
13264	_ struct{} `type:"structure" nopayload:"true"`
13265
13266	// The maximum number of items to be returned.
13267	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
13268
13269	// The next item following a partial list of returned items. For example, if
13270	// a request is made to return maxResults number of items, NextToken allows
13271	// you to return more items in your list starting at the location pointed to
13272	// by the next token.
13273	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
13274}
13275
13276// String returns the string representation.
13277//
13278// API parameter values that are decorated as "sensitive" in the API will not
13279// be included in the string output. The member name will be present, but the
13280// value will be replaced with "sensitive".
13281func (s ListBackupVaultsInput) String() string {
13282	return awsutil.Prettify(s)
13283}
13284
13285// GoString returns the string representation.
13286//
13287// API parameter values that are decorated as "sensitive" in the API will not
13288// be included in the string output. The member name will be present, but the
13289// value will be replaced with "sensitive".
13290func (s ListBackupVaultsInput) GoString() string {
13291	return s.String()
13292}
13293
13294// Validate inspects the fields of the type to determine if they are valid.
13295func (s *ListBackupVaultsInput) Validate() error {
13296	invalidParams := request.ErrInvalidParams{Context: "ListBackupVaultsInput"}
13297	if s.MaxResults != nil && *s.MaxResults < 1 {
13298		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
13299	}
13300
13301	if invalidParams.Len() > 0 {
13302		return invalidParams
13303	}
13304	return nil
13305}
13306
13307// SetMaxResults sets the MaxResults field's value.
13308func (s *ListBackupVaultsInput) SetMaxResults(v int64) *ListBackupVaultsInput {
13309	s.MaxResults = &v
13310	return s
13311}
13312
13313// SetNextToken sets the NextToken field's value.
13314func (s *ListBackupVaultsInput) SetNextToken(v string) *ListBackupVaultsInput {
13315	s.NextToken = &v
13316	return s
13317}
13318
13319type ListBackupVaultsOutput struct {
13320	_ struct{} `type:"structure"`
13321
13322	// An array of backup vault list members containing vault metadata, including
13323	// Amazon Resource Name (ARN), display name, creation date, number of saved
13324	// recovery points, and encryption information if the resources saved in the
13325	// backup vault are encrypted.
13326	BackupVaultList []*VaultListMember `type:"list"`
13327
13328	// The next item following a partial list of returned items. For example, if
13329	// a request is made to return maxResults number of items, NextToken allows
13330	// you to return more items in your list starting at the location pointed to
13331	// by the next token.
13332	NextToken *string `type:"string"`
13333}
13334
13335// String returns the string representation.
13336//
13337// API parameter values that are decorated as "sensitive" in the API will not
13338// be included in the string output. The member name will be present, but the
13339// value will be replaced with "sensitive".
13340func (s ListBackupVaultsOutput) String() string {
13341	return awsutil.Prettify(s)
13342}
13343
13344// GoString returns the string representation.
13345//
13346// API parameter values that are decorated as "sensitive" in the API will not
13347// be included in the string output. The member name will be present, but the
13348// value will be replaced with "sensitive".
13349func (s ListBackupVaultsOutput) GoString() string {
13350	return s.String()
13351}
13352
13353// SetBackupVaultList sets the BackupVaultList field's value.
13354func (s *ListBackupVaultsOutput) SetBackupVaultList(v []*VaultListMember) *ListBackupVaultsOutput {
13355	s.BackupVaultList = v
13356	return s
13357}
13358
13359// SetNextToken sets the NextToken field's value.
13360func (s *ListBackupVaultsOutput) SetNextToken(v string) *ListBackupVaultsOutput {
13361	s.NextToken = &v
13362	return s
13363}
13364
13365type ListCopyJobsInput struct {
13366	_ struct{} `type:"structure" nopayload:"true"`
13367
13368	// The account ID to list the jobs from. Returns only copy jobs associated with
13369	// the specified account ID.
13370	ByAccountId *string `location:"querystring" locationName:"accountId" type:"string"`
13371
13372	// Returns only copy jobs that were created after the specified date.
13373	ByCreatedAfter *time.Time `location:"querystring" locationName:"createdAfter" type:"timestamp"`
13374
13375	// Returns only copy jobs that were created before the specified date.
13376	ByCreatedBefore *time.Time `location:"querystring" locationName:"createdBefore" type:"timestamp"`
13377
13378	// An Amazon Resource Name (ARN) that uniquely identifies a source backup vault
13379	// to copy from; for example, arn:aws:backup:us-east-1:123456789012:vault:aBackupVault.
13380	ByDestinationVaultArn *string `location:"querystring" locationName:"destinationVaultArn" type:"string"`
13381
13382	// Returns only copy jobs that match the specified resource Amazon Resource
13383	// Name (ARN).
13384	ByResourceArn *string `location:"querystring" locationName:"resourceArn" type:"string"`
13385
13386	// Returns only backup jobs for the specified resources:
13387	//
13388	//    * DynamoDB for Amazon DynamoDB
13389	//
13390	//    * EBS for Amazon Elastic Block Store
13391	//
13392	//    * EC2 for Amazon Elastic Compute Cloud
13393	//
13394	//    * EFS for Amazon Elastic File System
13395	//
13396	//    * RDS for Amazon Relational Database Service
13397	//
13398	//    * Aurora for Amazon Aurora
13399	//
13400	//    * Storage Gateway for Storage Gateway
13401	ByResourceType *string `location:"querystring" locationName:"resourceType" type:"string"`
13402
13403	// Returns only copy jobs that are in the specified state.
13404	ByState *string `location:"querystring" locationName:"state" type:"string" enum:"CopyJobState"`
13405
13406	// The maximum number of items to be returned.
13407	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
13408
13409	// The next item following a partial list of returned items. For example, if
13410	// a request is made to return maxResults number of items, NextToken allows
13411	// you to return more items in your list starting at the location pointed to
13412	// by the next token.
13413	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
13414}
13415
13416// String returns the string representation.
13417//
13418// API parameter values that are decorated as "sensitive" in the API will not
13419// be included in the string output. The member name will be present, but the
13420// value will be replaced with "sensitive".
13421func (s ListCopyJobsInput) String() string {
13422	return awsutil.Prettify(s)
13423}
13424
13425// GoString returns the string representation.
13426//
13427// API parameter values that are decorated as "sensitive" in the API will not
13428// be included in the string output. The member name will be present, but the
13429// value will be replaced with "sensitive".
13430func (s ListCopyJobsInput) GoString() string {
13431	return s.String()
13432}
13433
13434// Validate inspects the fields of the type to determine if they are valid.
13435func (s *ListCopyJobsInput) Validate() error {
13436	invalidParams := request.ErrInvalidParams{Context: "ListCopyJobsInput"}
13437	if s.MaxResults != nil && *s.MaxResults < 1 {
13438		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
13439	}
13440
13441	if invalidParams.Len() > 0 {
13442		return invalidParams
13443	}
13444	return nil
13445}
13446
13447// SetByAccountId sets the ByAccountId field's value.
13448func (s *ListCopyJobsInput) SetByAccountId(v string) *ListCopyJobsInput {
13449	s.ByAccountId = &v
13450	return s
13451}
13452
13453// SetByCreatedAfter sets the ByCreatedAfter field's value.
13454func (s *ListCopyJobsInput) SetByCreatedAfter(v time.Time) *ListCopyJobsInput {
13455	s.ByCreatedAfter = &v
13456	return s
13457}
13458
13459// SetByCreatedBefore sets the ByCreatedBefore field's value.
13460func (s *ListCopyJobsInput) SetByCreatedBefore(v time.Time) *ListCopyJobsInput {
13461	s.ByCreatedBefore = &v
13462	return s
13463}
13464
13465// SetByDestinationVaultArn sets the ByDestinationVaultArn field's value.
13466func (s *ListCopyJobsInput) SetByDestinationVaultArn(v string) *ListCopyJobsInput {
13467	s.ByDestinationVaultArn = &v
13468	return s
13469}
13470
13471// SetByResourceArn sets the ByResourceArn field's value.
13472func (s *ListCopyJobsInput) SetByResourceArn(v string) *ListCopyJobsInput {
13473	s.ByResourceArn = &v
13474	return s
13475}
13476
13477// SetByResourceType sets the ByResourceType field's value.
13478func (s *ListCopyJobsInput) SetByResourceType(v string) *ListCopyJobsInput {
13479	s.ByResourceType = &v
13480	return s
13481}
13482
13483// SetByState sets the ByState field's value.
13484func (s *ListCopyJobsInput) SetByState(v string) *ListCopyJobsInput {
13485	s.ByState = &v
13486	return s
13487}
13488
13489// SetMaxResults sets the MaxResults field's value.
13490func (s *ListCopyJobsInput) SetMaxResults(v int64) *ListCopyJobsInput {
13491	s.MaxResults = &v
13492	return s
13493}
13494
13495// SetNextToken sets the NextToken field's value.
13496func (s *ListCopyJobsInput) SetNextToken(v string) *ListCopyJobsInput {
13497	s.NextToken = &v
13498	return s
13499}
13500
13501type ListCopyJobsOutput struct {
13502	_ struct{} `type:"structure"`
13503
13504	// An array of structures containing metadata about your copy jobs returned
13505	// in JSON format.
13506	CopyJobs []*CopyJob `type:"list"`
13507
13508	// The next item following a partial list of returned items. For example, if
13509	// a request is made to return maxResults number of items, NextToken allows
13510	// you to return more items in your list starting at the location pointed to
13511	// by the next token.
13512	NextToken *string `type:"string"`
13513}
13514
13515// String returns the string representation.
13516//
13517// API parameter values that are decorated as "sensitive" in the API will not
13518// be included in the string output. The member name will be present, but the
13519// value will be replaced with "sensitive".
13520func (s ListCopyJobsOutput) String() string {
13521	return awsutil.Prettify(s)
13522}
13523
13524// GoString returns the string representation.
13525//
13526// API parameter values that are decorated as "sensitive" in the API will not
13527// be included in the string output. The member name will be present, but the
13528// value will be replaced with "sensitive".
13529func (s ListCopyJobsOutput) GoString() string {
13530	return s.String()
13531}
13532
13533// SetCopyJobs sets the CopyJobs field's value.
13534func (s *ListCopyJobsOutput) SetCopyJobs(v []*CopyJob) *ListCopyJobsOutput {
13535	s.CopyJobs = v
13536	return s
13537}
13538
13539// SetNextToken sets the NextToken field's value.
13540func (s *ListCopyJobsOutput) SetNextToken(v string) *ListCopyJobsOutput {
13541	s.NextToken = &v
13542	return s
13543}
13544
13545type ListFrameworksInput struct {
13546	_ struct{} `type:"structure" nopayload:"true"`
13547
13548	// The number of desired results from 1 to 1000. Optional. If unspecified, the
13549	// query will return 1 MB of data.
13550	MaxResults *int64 `location:"querystring" locationName:"MaxResults" min:"1" type:"integer"`
13551
13552	// An identifier that was returned from the previous call to this operation,
13553	// which can be used to return the next set of items in the list.
13554	NextToken *string `location:"querystring" locationName:"NextToken" type:"string"`
13555}
13556
13557// String returns the string representation.
13558//
13559// API parameter values that are decorated as "sensitive" in the API will not
13560// be included in the string output. The member name will be present, but the
13561// value will be replaced with "sensitive".
13562func (s ListFrameworksInput) String() string {
13563	return awsutil.Prettify(s)
13564}
13565
13566// GoString returns the string representation.
13567//
13568// API parameter values that are decorated as "sensitive" in the API will not
13569// be included in the string output. The member name will be present, but the
13570// value will be replaced with "sensitive".
13571func (s ListFrameworksInput) GoString() string {
13572	return s.String()
13573}
13574
13575// Validate inspects the fields of the type to determine if they are valid.
13576func (s *ListFrameworksInput) Validate() error {
13577	invalidParams := request.ErrInvalidParams{Context: "ListFrameworksInput"}
13578	if s.MaxResults != nil && *s.MaxResults < 1 {
13579		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
13580	}
13581
13582	if invalidParams.Len() > 0 {
13583		return invalidParams
13584	}
13585	return nil
13586}
13587
13588// SetMaxResults sets the MaxResults field's value.
13589func (s *ListFrameworksInput) SetMaxResults(v int64) *ListFrameworksInput {
13590	s.MaxResults = &v
13591	return s
13592}
13593
13594// SetNextToken sets the NextToken field's value.
13595func (s *ListFrameworksInput) SetNextToken(v string) *ListFrameworksInput {
13596	s.NextToken = &v
13597	return s
13598}
13599
13600type ListFrameworksOutput struct {
13601	_ struct{} `type:"structure"`
13602
13603	// A list of frameworks with details for each framework, including the framework
13604	// name, Amazon Resource Name (ARN), description, number of controls, creation
13605	// time, and deployment status.
13606	Frameworks []*Framework `type:"list"`
13607
13608	// An identifier that was returned from the previous call to this operation,
13609	// which can be used to return the next set of items in the list.
13610	NextToken *string `type:"string"`
13611}
13612
13613// String returns the string representation.
13614//
13615// API parameter values that are decorated as "sensitive" in the API will not
13616// be included in the string output. The member name will be present, but the
13617// value will be replaced with "sensitive".
13618func (s ListFrameworksOutput) String() string {
13619	return awsutil.Prettify(s)
13620}
13621
13622// GoString returns the string representation.
13623//
13624// API parameter values that are decorated as "sensitive" in the API will not
13625// be included in the string output. The member name will be present, but the
13626// value will be replaced with "sensitive".
13627func (s ListFrameworksOutput) GoString() string {
13628	return s.String()
13629}
13630
13631// SetFrameworks sets the Frameworks field's value.
13632func (s *ListFrameworksOutput) SetFrameworks(v []*Framework) *ListFrameworksOutput {
13633	s.Frameworks = v
13634	return s
13635}
13636
13637// SetNextToken sets the NextToken field's value.
13638func (s *ListFrameworksOutput) SetNextToken(v string) *ListFrameworksOutput {
13639	s.NextToken = &v
13640	return s
13641}
13642
13643type ListProtectedResourcesInput struct {
13644	_ struct{} `type:"structure" nopayload:"true"`
13645
13646	// The maximum number of items to be returned.
13647	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
13648
13649	// The next item following a partial list of returned items. For example, if
13650	// a request is made to return maxResults number of items, NextToken allows
13651	// you to return more items in your list starting at the location pointed to
13652	// by the next token.
13653	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
13654}
13655
13656// String returns the string representation.
13657//
13658// API parameter values that are decorated as "sensitive" in the API will not
13659// be included in the string output. The member name will be present, but the
13660// value will be replaced with "sensitive".
13661func (s ListProtectedResourcesInput) String() string {
13662	return awsutil.Prettify(s)
13663}
13664
13665// GoString returns the string representation.
13666//
13667// API parameter values that are decorated as "sensitive" in the API will not
13668// be included in the string output. The member name will be present, but the
13669// value will be replaced with "sensitive".
13670func (s ListProtectedResourcesInput) GoString() string {
13671	return s.String()
13672}
13673
13674// Validate inspects the fields of the type to determine if they are valid.
13675func (s *ListProtectedResourcesInput) Validate() error {
13676	invalidParams := request.ErrInvalidParams{Context: "ListProtectedResourcesInput"}
13677	if s.MaxResults != nil && *s.MaxResults < 1 {
13678		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
13679	}
13680
13681	if invalidParams.Len() > 0 {
13682		return invalidParams
13683	}
13684	return nil
13685}
13686
13687// SetMaxResults sets the MaxResults field's value.
13688func (s *ListProtectedResourcesInput) SetMaxResults(v int64) *ListProtectedResourcesInput {
13689	s.MaxResults = &v
13690	return s
13691}
13692
13693// SetNextToken sets the NextToken field's value.
13694func (s *ListProtectedResourcesInput) SetNextToken(v string) *ListProtectedResourcesInput {
13695	s.NextToken = &v
13696	return s
13697}
13698
13699type ListProtectedResourcesOutput struct {
13700	_ struct{} `type:"structure"`
13701
13702	// The next item following a partial list of returned items. For example, if
13703	// a request is made to return maxResults number of items, NextToken allows
13704	// you to return more items in your list starting at the location pointed to
13705	// by the next token.
13706	NextToken *string `type:"string"`
13707
13708	// An array of resources successfully backed up by Backup including the time
13709	// the resource was saved, an Amazon Resource Name (ARN) of the resource, and
13710	// a resource type.
13711	Results []*ProtectedResource `type:"list"`
13712}
13713
13714// String returns the string representation.
13715//
13716// API parameter values that are decorated as "sensitive" in the API will not
13717// be included in the string output. The member name will be present, but the
13718// value will be replaced with "sensitive".
13719func (s ListProtectedResourcesOutput) String() string {
13720	return awsutil.Prettify(s)
13721}
13722
13723// GoString returns the string representation.
13724//
13725// API parameter values that are decorated as "sensitive" in the API will not
13726// be included in the string output. The member name will be present, but the
13727// value will be replaced with "sensitive".
13728func (s ListProtectedResourcesOutput) GoString() string {
13729	return s.String()
13730}
13731
13732// SetNextToken sets the NextToken field's value.
13733func (s *ListProtectedResourcesOutput) SetNextToken(v string) *ListProtectedResourcesOutput {
13734	s.NextToken = &v
13735	return s
13736}
13737
13738// SetResults sets the Results field's value.
13739func (s *ListProtectedResourcesOutput) SetResults(v []*ProtectedResource) *ListProtectedResourcesOutput {
13740	s.Results = v
13741	return s
13742}
13743
13744type ListRecoveryPointsByBackupVaultInput struct {
13745	_ struct{} `type:"structure" nopayload:"true"`
13746
13747	// The name of a logical container where backups are stored. Backup vaults are
13748	// identified by names that are unique to the account used to create them and
13749	// the Amazon Web Services Region where they are created. They consist of lowercase
13750	// letters, numbers, and hyphens.
13751	//
13752	// Backup vault name might not be available when a supported service creates
13753	// the backup.
13754	//
13755	// BackupVaultName is a required field
13756	BackupVaultName *string `location:"uri" locationName:"backupVaultName" type:"string" required:"true"`
13757
13758	// Returns only recovery points that match the specified backup plan ID.
13759	ByBackupPlanId *string `location:"querystring" locationName:"backupPlanId" type:"string"`
13760
13761	// Returns only recovery points that were created after the specified timestamp.
13762	ByCreatedAfter *time.Time `location:"querystring" locationName:"createdAfter" type:"timestamp"`
13763
13764	// Returns only recovery points that were created before the specified timestamp.
13765	ByCreatedBefore *time.Time `location:"querystring" locationName:"createdBefore" type:"timestamp"`
13766
13767	// Returns only recovery points that match the specified resource Amazon Resource
13768	// Name (ARN).
13769	ByResourceArn *string `location:"querystring" locationName:"resourceArn" type:"string"`
13770
13771	// Returns only recovery points that match the specified resource type.
13772	ByResourceType *string `location:"querystring" locationName:"resourceType" type:"string"`
13773
13774	// The maximum number of items to be returned.
13775	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
13776
13777	// The next item following a partial list of returned items. For example, if
13778	// a request is made to return maxResults number of items, NextToken allows
13779	// you to return more items in your list starting at the location pointed to
13780	// by the next token.
13781	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
13782}
13783
13784// String returns the string representation.
13785//
13786// API parameter values that are decorated as "sensitive" in the API will not
13787// be included in the string output. The member name will be present, but the
13788// value will be replaced with "sensitive".
13789func (s ListRecoveryPointsByBackupVaultInput) String() string {
13790	return awsutil.Prettify(s)
13791}
13792
13793// GoString returns the string representation.
13794//
13795// API parameter values that are decorated as "sensitive" in the API will not
13796// be included in the string output. The member name will be present, but the
13797// value will be replaced with "sensitive".
13798func (s ListRecoveryPointsByBackupVaultInput) GoString() string {
13799	return s.String()
13800}
13801
13802// Validate inspects the fields of the type to determine if they are valid.
13803func (s *ListRecoveryPointsByBackupVaultInput) Validate() error {
13804	invalidParams := request.ErrInvalidParams{Context: "ListRecoveryPointsByBackupVaultInput"}
13805	if s.BackupVaultName == nil {
13806		invalidParams.Add(request.NewErrParamRequired("BackupVaultName"))
13807	}
13808	if s.BackupVaultName != nil && len(*s.BackupVaultName) < 1 {
13809		invalidParams.Add(request.NewErrParamMinLen("BackupVaultName", 1))
13810	}
13811	if s.MaxResults != nil && *s.MaxResults < 1 {
13812		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
13813	}
13814
13815	if invalidParams.Len() > 0 {
13816		return invalidParams
13817	}
13818	return nil
13819}
13820
13821// SetBackupVaultName sets the BackupVaultName field's value.
13822func (s *ListRecoveryPointsByBackupVaultInput) SetBackupVaultName(v string) *ListRecoveryPointsByBackupVaultInput {
13823	s.BackupVaultName = &v
13824	return s
13825}
13826
13827// SetByBackupPlanId sets the ByBackupPlanId field's value.
13828func (s *ListRecoveryPointsByBackupVaultInput) SetByBackupPlanId(v string) *ListRecoveryPointsByBackupVaultInput {
13829	s.ByBackupPlanId = &v
13830	return s
13831}
13832
13833// SetByCreatedAfter sets the ByCreatedAfter field's value.
13834func (s *ListRecoveryPointsByBackupVaultInput) SetByCreatedAfter(v time.Time) *ListRecoveryPointsByBackupVaultInput {
13835	s.ByCreatedAfter = &v
13836	return s
13837}
13838
13839// SetByCreatedBefore sets the ByCreatedBefore field's value.
13840func (s *ListRecoveryPointsByBackupVaultInput) SetByCreatedBefore(v time.Time) *ListRecoveryPointsByBackupVaultInput {
13841	s.ByCreatedBefore = &v
13842	return s
13843}
13844
13845// SetByResourceArn sets the ByResourceArn field's value.
13846func (s *ListRecoveryPointsByBackupVaultInput) SetByResourceArn(v string) *ListRecoveryPointsByBackupVaultInput {
13847	s.ByResourceArn = &v
13848	return s
13849}
13850
13851// SetByResourceType sets the ByResourceType field's value.
13852func (s *ListRecoveryPointsByBackupVaultInput) SetByResourceType(v string) *ListRecoveryPointsByBackupVaultInput {
13853	s.ByResourceType = &v
13854	return s
13855}
13856
13857// SetMaxResults sets the MaxResults field's value.
13858func (s *ListRecoveryPointsByBackupVaultInput) SetMaxResults(v int64) *ListRecoveryPointsByBackupVaultInput {
13859	s.MaxResults = &v
13860	return s
13861}
13862
13863// SetNextToken sets the NextToken field's value.
13864func (s *ListRecoveryPointsByBackupVaultInput) SetNextToken(v string) *ListRecoveryPointsByBackupVaultInput {
13865	s.NextToken = &v
13866	return s
13867}
13868
13869type ListRecoveryPointsByBackupVaultOutput struct {
13870	_ struct{} `type:"structure"`
13871
13872	// The next item following a partial list of returned items. For example, if
13873	// a request is made to return maxResults number of items, NextToken allows
13874	// you to return more items in your list starting at the location pointed to
13875	// by the next token.
13876	NextToken *string `type:"string"`
13877
13878	// An array of objects that contain detailed information about recovery points
13879	// saved in a backup vault.
13880	RecoveryPoints []*RecoveryPointByBackupVault `type:"list"`
13881}
13882
13883// String returns the string representation.
13884//
13885// API parameter values that are decorated as "sensitive" in the API will not
13886// be included in the string output. The member name will be present, but the
13887// value will be replaced with "sensitive".
13888func (s ListRecoveryPointsByBackupVaultOutput) String() string {
13889	return awsutil.Prettify(s)
13890}
13891
13892// GoString returns the string representation.
13893//
13894// API parameter values that are decorated as "sensitive" in the API will not
13895// be included in the string output. The member name will be present, but the
13896// value will be replaced with "sensitive".
13897func (s ListRecoveryPointsByBackupVaultOutput) GoString() string {
13898	return s.String()
13899}
13900
13901// SetNextToken sets the NextToken field's value.
13902func (s *ListRecoveryPointsByBackupVaultOutput) SetNextToken(v string) *ListRecoveryPointsByBackupVaultOutput {
13903	s.NextToken = &v
13904	return s
13905}
13906
13907// SetRecoveryPoints sets the RecoveryPoints field's value.
13908func (s *ListRecoveryPointsByBackupVaultOutput) SetRecoveryPoints(v []*RecoveryPointByBackupVault) *ListRecoveryPointsByBackupVaultOutput {
13909	s.RecoveryPoints = v
13910	return s
13911}
13912
13913type ListRecoveryPointsByResourceInput struct {
13914	_ struct{} `type:"structure" nopayload:"true"`
13915
13916	// The maximum number of items to be returned.
13917	//
13918	// Amazon RDS requires a value of at least 20.
13919	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
13920
13921	// The next item following a partial list of returned items. For example, if
13922	// a request is made to return maxResults number of items, NextToken allows
13923	// you to return more items in your list starting at the location pointed to
13924	// by the next token.
13925	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
13926
13927	// An ARN that uniquely identifies a resource. The format of the ARN depends
13928	// on the resource type.
13929	//
13930	// ResourceArn is a required field
13931	ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"`
13932}
13933
13934// String returns the string representation.
13935//
13936// API parameter values that are decorated as "sensitive" in the API will not
13937// be included in the string output. The member name will be present, but the
13938// value will be replaced with "sensitive".
13939func (s ListRecoveryPointsByResourceInput) String() string {
13940	return awsutil.Prettify(s)
13941}
13942
13943// GoString returns the string representation.
13944//
13945// API parameter values that are decorated as "sensitive" in the API will not
13946// be included in the string output. The member name will be present, but the
13947// value will be replaced with "sensitive".
13948func (s ListRecoveryPointsByResourceInput) GoString() string {
13949	return s.String()
13950}
13951
13952// Validate inspects the fields of the type to determine if they are valid.
13953func (s *ListRecoveryPointsByResourceInput) Validate() error {
13954	invalidParams := request.ErrInvalidParams{Context: "ListRecoveryPointsByResourceInput"}
13955	if s.MaxResults != nil && *s.MaxResults < 1 {
13956		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
13957	}
13958	if s.ResourceArn == nil {
13959		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
13960	}
13961	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
13962		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
13963	}
13964
13965	if invalidParams.Len() > 0 {
13966		return invalidParams
13967	}
13968	return nil
13969}
13970
13971// SetMaxResults sets the MaxResults field's value.
13972func (s *ListRecoveryPointsByResourceInput) SetMaxResults(v int64) *ListRecoveryPointsByResourceInput {
13973	s.MaxResults = &v
13974	return s
13975}
13976
13977// SetNextToken sets the NextToken field's value.
13978func (s *ListRecoveryPointsByResourceInput) SetNextToken(v string) *ListRecoveryPointsByResourceInput {
13979	s.NextToken = &v
13980	return s
13981}
13982
13983// SetResourceArn sets the ResourceArn field's value.
13984func (s *ListRecoveryPointsByResourceInput) SetResourceArn(v string) *ListRecoveryPointsByResourceInput {
13985	s.ResourceArn = &v
13986	return s
13987}
13988
13989type ListRecoveryPointsByResourceOutput struct {
13990	_ struct{} `type:"structure"`
13991
13992	// The next item following a partial list of returned items. For example, if
13993	// a request is made to return maxResults number of items, NextToken allows
13994	// you to return more items in your list starting at the location pointed to
13995	// by the next token.
13996	NextToken *string `type:"string"`
13997
13998	// An array of objects that contain detailed information about recovery points
13999	// of the specified resource type.
14000	//
14001	// Only Amazon EFS and Amazon EC2 recovery points return BackupVaultName.
14002	RecoveryPoints []*RecoveryPointByResource `type:"list"`
14003}
14004
14005// String returns the string representation.
14006//
14007// API parameter values that are decorated as "sensitive" in the API will not
14008// be included in the string output. The member name will be present, but the
14009// value will be replaced with "sensitive".
14010func (s ListRecoveryPointsByResourceOutput) String() string {
14011	return awsutil.Prettify(s)
14012}
14013
14014// GoString returns the string representation.
14015//
14016// API parameter values that are decorated as "sensitive" in the API will not
14017// be included in the string output. The member name will be present, but the
14018// value will be replaced with "sensitive".
14019func (s ListRecoveryPointsByResourceOutput) GoString() string {
14020	return s.String()
14021}
14022
14023// SetNextToken sets the NextToken field's value.
14024func (s *ListRecoveryPointsByResourceOutput) SetNextToken(v string) *ListRecoveryPointsByResourceOutput {
14025	s.NextToken = &v
14026	return s
14027}
14028
14029// SetRecoveryPoints sets the RecoveryPoints field's value.
14030func (s *ListRecoveryPointsByResourceOutput) SetRecoveryPoints(v []*RecoveryPointByResource) *ListRecoveryPointsByResourceOutput {
14031	s.RecoveryPoints = v
14032	return s
14033}
14034
14035type ListReportJobsInput struct {
14036	_ struct{} `type:"structure" nopayload:"true"`
14037
14038	// Returns only report jobs that were created after the date and time specified
14039	// in Unix format and Coordinated Universal Time (UTC). For example, the value
14040	// 1516925490 represents Friday, January 26, 2018 12:11:30 AM.
14041	ByCreationAfter *time.Time `location:"querystring" locationName:"CreationAfter" type:"timestamp"`
14042
14043	// Returns only report jobs that were created before the date and time specified
14044	// in Unix format and Coordinated Universal Time (UTC). For example, the value
14045	// 1516925490 represents Friday, January 26, 2018 12:11:30 AM.
14046	ByCreationBefore *time.Time `location:"querystring" locationName:"CreationBefore" type:"timestamp"`
14047
14048	// Returns only report jobs with the specified report plan name.
14049	ByReportPlanName *string `location:"querystring" locationName:"ReportPlanName" min:"1" type:"string"`
14050
14051	// Returns only report jobs that are in the specified status. The statuses are:
14052	//
14053	// CREATED | RUNNING | COMPLETED | FAILED
14054	ByStatus *string `location:"querystring" locationName:"Status" type:"string"`
14055
14056	// The number of desired results from 1 to 1000. Optional. If unspecified, the
14057	// query will return 1 MB of data.
14058	MaxResults *int64 `location:"querystring" locationName:"MaxResults" min:"1" type:"integer"`
14059
14060	// An identifier that was returned from the previous call to this operation,
14061	// which can be used to return the next set of items in the list.
14062	NextToken *string `location:"querystring" locationName:"NextToken" type:"string"`
14063}
14064
14065// String returns the string representation.
14066//
14067// API parameter values that are decorated as "sensitive" in the API will not
14068// be included in the string output. The member name will be present, but the
14069// value will be replaced with "sensitive".
14070func (s ListReportJobsInput) String() string {
14071	return awsutil.Prettify(s)
14072}
14073
14074// GoString returns the string representation.
14075//
14076// API parameter values that are decorated as "sensitive" in the API will not
14077// be included in the string output. The member name will be present, but the
14078// value will be replaced with "sensitive".
14079func (s ListReportJobsInput) GoString() string {
14080	return s.String()
14081}
14082
14083// Validate inspects the fields of the type to determine if they are valid.
14084func (s *ListReportJobsInput) Validate() error {
14085	invalidParams := request.ErrInvalidParams{Context: "ListReportJobsInput"}
14086	if s.ByReportPlanName != nil && len(*s.ByReportPlanName) < 1 {
14087		invalidParams.Add(request.NewErrParamMinLen("ByReportPlanName", 1))
14088	}
14089	if s.MaxResults != nil && *s.MaxResults < 1 {
14090		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
14091	}
14092
14093	if invalidParams.Len() > 0 {
14094		return invalidParams
14095	}
14096	return nil
14097}
14098
14099// SetByCreationAfter sets the ByCreationAfter field's value.
14100func (s *ListReportJobsInput) SetByCreationAfter(v time.Time) *ListReportJobsInput {
14101	s.ByCreationAfter = &v
14102	return s
14103}
14104
14105// SetByCreationBefore sets the ByCreationBefore field's value.
14106func (s *ListReportJobsInput) SetByCreationBefore(v time.Time) *ListReportJobsInput {
14107	s.ByCreationBefore = &v
14108	return s
14109}
14110
14111// SetByReportPlanName sets the ByReportPlanName field's value.
14112func (s *ListReportJobsInput) SetByReportPlanName(v string) *ListReportJobsInput {
14113	s.ByReportPlanName = &v
14114	return s
14115}
14116
14117// SetByStatus sets the ByStatus field's value.
14118func (s *ListReportJobsInput) SetByStatus(v string) *ListReportJobsInput {
14119	s.ByStatus = &v
14120	return s
14121}
14122
14123// SetMaxResults sets the MaxResults field's value.
14124func (s *ListReportJobsInput) SetMaxResults(v int64) *ListReportJobsInput {
14125	s.MaxResults = &v
14126	return s
14127}
14128
14129// SetNextToken sets the NextToken field's value.
14130func (s *ListReportJobsInput) SetNextToken(v string) *ListReportJobsInput {
14131	s.NextToken = &v
14132	return s
14133}
14134
14135type ListReportJobsOutput struct {
14136	_ struct{} `type:"structure"`
14137
14138	// An identifier that was returned from the previous call to this operation,
14139	// which can be used to return the next set of items in the list.
14140	NextToken *string `type:"string"`
14141
14142	// Details about your report jobs in JSON format.
14143	ReportJobs []*ReportJob `type:"list"`
14144}
14145
14146// String returns the string representation.
14147//
14148// API parameter values that are decorated as "sensitive" in the API will not
14149// be included in the string output. The member name will be present, but the
14150// value will be replaced with "sensitive".
14151func (s ListReportJobsOutput) String() string {
14152	return awsutil.Prettify(s)
14153}
14154
14155// GoString returns the string representation.
14156//
14157// API parameter values that are decorated as "sensitive" in the API will not
14158// be included in the string output. The member name will be present, but the
14159// value will be replaced with "sensitive".
14160func (s ListReportJobsOutput) GoString() string {
14161	return s.String()
14162}
14163
14164// SetNextToken sets the NextToken field's value.
14165func (s *ListReportJobsOutput) SetNextToken(v string) *ListReportJobsOutput {
14166	s.NextToken = &v
14167	return s
14168}
14169
14170// SetReportJobs sets the ReportJobs field's value.
14171func (s *ListReportJobsOutput) SetReportJobs(v []*ReportJob) *ListReportJobsOutput {
14172	s.ReportJobs = v
14173	return s
14174}
14175
14176type ListReportPlansInput struct {
14177	_ struct{} `type:"structure" nopayload:"true"`
14178
14179	// The number of desired results from 1 to 1000. Optional. If unspecified, the
14180	// query will return 1 MB of data.
14181	MaxResults *int64 `location:"querystring" locationName:"MaxResults" min:"1" type:"integer"`
14182
14183	// An identifier that was returned from the previous call to this operation,
14184	// which can be used to return the next set of items in the list.
14185	NextToken *string `location:"querystring" locationName:"NextToken" type:"string"`
14186}
14187
14188// String returns the string representation.
14189//
14190// API parameter values that are decorated as "sensitive" in the API will not
14191// be included in the string output. The member name will be present, but the
14192// value will be replaced with "sensitive".
14193func (s ListReportPlansInput) String() string {
14194	return awsutil.Prettify(s)
14195}
14196
14197// GoString returns the string representation.
14198//
14199// API parameter values that are decorated as "sensitive" in the API will not
14200// be included in the string output. The member name will be present, but the
14201// value will be replaced with "sensitive".
14202func (s ListReportPlansInput) GoString() string {
14203	return s.String()
14204}
14205
14206// Validate inspects the fields of the type to determine if they are valid.
14207func (s *ListReportPlansInput) Validate() error {
14208	invalidParams := request.ErrInvalidParams{Context: "ListReportPlansInput"}
14209	if s.MaxResults != nil && *s.MaxResults < 1 {
14210		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
14211	}
14212
14213	if invalidParams.Len() > 0 {
14214		return invalidParams
14215	}
14216	return nil
14217}
14218
14219// SetMaxResults sets the MaxResults field's value.
14220func (s *ListReportPlansInput) SetMaxResults(v int64) *ListReportPlansInput {
14221	s.MaxResults = &v
14222	return s
14223}
14224
14225// SetNextToken sets the NextToken field's value.
14226func (s *ListReportPlansInput) SetNextToken(v string) *ListReportPlansInput {
14227	s.NextToken = &v
14228	return s
14229}
14230
14231type ListReportPlansOutput struct {
14232	_ struct{} `type:"structure"`
14233
14234	// An identifier that was returned from the previous call to this operation,
14235	// which can be used to return the next set of items in the list.
14236	NextToken *string `type:"string"`
14237
14238	// A list of your report plans with detailed information for each plan. This
14239	// information includes the Amazon Resource Name (ARN), report plan name, description,
14240	// settings, delivery channel, deployment status, creation time, and last times
14241	// the report plan attempted to and successfully ran.
14242	ReportPlans []*ReportPlan `type:"list"`
14243}
14244
14245// String returns the string representation.
14246//
14247// API parameter values that are decorated as "sensitive" in the API will not
14248// be included in the string output. The member name will be present, but the
14249// value will be replaced with "sensitive".
14250func (s ListReportPlansOutput) String() string {
14251	return awsutil.Prettify(s)
14252}
14253
14254// GoString returns the string representation.
14255//
14256// API parameter values that are decorated as "sensitive" in the API will not
14257// be included in the string output. The member name will be present, but the
14258// value will be replaced with "sensitive".
14259func (s ListReportPlansOutput) GoString() string {
14260	return s.String()
14261}
14262
14263// SetNextToken sets the NextToken field's value.
14264func (s *ListReportPlansOutput) SetNextToken(v string) *ListReportPlansOutput {
14265	s.NextToken = &v
14266	return s
14267}
14268
14269// SetReportPlans sets the ReportPlans field's value.
14270func (s *ListReportPlansOutput) SetReportPlans(v []*ReportPlan) *ListReportPlansOutput {
14271	s.ReportPlans = v
14272	return s
14273}
14274
14275type ListRestoreJobsInput struct {
14276	_ struct{} `type:"structure" nopayload:"true"`
14277
14278	// The account ID to list the jobs from. Returns only restore jobs associated
14279	// with the specified account ID.
14280	ByAccountId *string `location:"querystring" locationName:"accountId" type:"string"`
14281
14282	// Returns only restore jobs that were created after the specified date.
14283	ByCreatedAfter *time.Time `location:"querystring" locationName:"createdAfter" type:"timestamp"`
14284
14285	// Returns only restore jobs that were created before the specified date.
14286	ByCreatedBefore *time.Time `location:"querystring" locationName:"createdBefore" type:"timestamp"`
14287
14288	// Returns only restore jobs associated with the specified job status.
14289	ByStatus *string `location:"querystring" locationName:"status" type:"string" enum:"RestoreJobStatus"`
14290
14291	// The maximum number of items to be returned.
14292	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
14293
14294	// The next item following a partial list of returned items. For example, if
14295	// a request is made to return maxResults number of items, NextToken allows
14296	// you to return more items in your list starting at the location pointed to
14297	// by the next token.
14298	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
14299}
14300
14301// String returns the string representation.
14302//
14303// API parameter values that are decorated as "sensitive" in the API will not
14304// be included in the string output. The member name will be present, but the
14305// value will be replaced with "sensitive".
14306func (s ListRestoreJobsInput) String() string {
14307	return awsutil.Prettify(s)
14308}
14309
14310// GoString returns the string representation.
14311//
14312// API parameter values that are decorated as "sensitive" in the API will not
14313// be included in the string output. The member name will be present, but the
14314// value will be replaced with "sensitive".
14315func (s ListRestoreJobsInput) GoString() string {
14316	return s.String()
14317}
14318
14319// Validate inspects the fields of the type to determine if they are valid.
14320func (s *ListRestoreJobsInput) Validate() error {
14321	invalidParams := request.ErrInvalidParams{Context: "ListRestoreJobsInput"}
14322	if s.MaxResults != nil && *s.MaxResults < 1 {
14323		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
14324	}
14325
14326	if invalidParams.Len() > 0 {
14327		return invalidParams
14328	}
14329	return nil
14330}
14331
14332// SetByAccountId sets the ByAccountId field's value.
14333func (s *ListRestoreJobsInput) SetByAccountId(v string) *ListRestoreJobsInput {
14334	s.ByAccountId = &v
14335	return s
14336}
14337
14338// SetByCreatedAfter sets the ByCreatedAfter field's value.
14339func (s *ListRestoreJobsInput) SetByCreatedAfter(v time.Time) *ListRestoreJobsInput {
14340	s.ByCreatedAfter = &v
14341	return s
14342}
14343
14344// SetByCreatedBefore sets the ByCreatedBefore field's value.
14345func (s *ListRestoreJobsInput) SetByCreatedBefore(v time.Time) *ListRestoreJobsInput {
14346	s.ByCreatedBefore = &v
14347	return s
14348}
14349
14350// SetByStatus sets the ByStatus field's value.
14351func (s *ListRestoreJobsInput) SetByStatus(v string) *ListRestoreJobsInput {
14352	s.ByStatus = &v
14353	return s
14354}
14355
14356// SetMaxResults sets the MaxResults field's value.
14357func (s *ListRestoreJobsInput) SetMaxResults(v int64) *ListRestoreJobsInput {
14358	s.MaxResults = &v
14359	return s
14360}
14361
14362// SetNextToken sets the NextToken field's value.
14363func (s *ListRestoreJobsInput) SetNextToken(v string) *ListRestoreJobsInput {
14364	s.NextToken = &v
14365	return s
14366}
14367
14368type ListRestoreJobsOutput struct {
14369	_ struct{} `type:"structure"`
14370
14371	// The next item following a partial list of returned items. For example, if
14372	// a request is made to return maxResults number of items, NextToken allows
14373	// you to return more items in your list starting at the location pointed to
14374	// by the next token.
14375	NextToken *string `type:"string"`
14376
14377	// An array of objects that contain detailed information about jobs to restore
14378	// saved resources.
14379	RestoreJobs []*RestoreJobsListMember `type:"list"`
14380}
14381
14382// String returns the string representation.
14383//
14384// API parameter values that are decorated as "sensitive" in the API will not
14385// be included in the string output. The member name will be present, but the
14386// value will be replaced with "sensitive".
14387func (s ListRestoreJobsOutput) String() string {
14388	return awsutil.Prettify(s)
14389}
14390
14391// GoString returns the string representation.
14392//
14393// API parameter values that are decorated as "sensitive" in the API will not
14394// be included in the string output. The member name will be present, but the
14395// value will be replaced with "sensitive".
14396func (s ListRestoreJobsOutput) GoString() string {
14397	return s.String()
14398}
14399
14400// SetNextToken sets the NextToken field's value.
14401func (s *ListRestoreJobsOutput) SetNextToken(v string) *ListRestoreJobsOutput {
14402	s.NextToken = &v
14403	return s
14404}
14405
14406// SetRestoreJobs sets the RestoreJobs field's value.
14407func (s *ListRestoreJobsOutput) SetRestoreJobs(v []*RestoreJobsListMember) *ListRestoreJobsOutput {
14408	s.RestoreJobs = v
14409	return s
14410}
14411
14412type ListTagsInput struct {
14413	_ struct{} `type:"structure" nopayload:"true"`
14414
14415	// The maximum number of items to be returned.
14416	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
14417
14418	// The next item following a partial list of returned items. For example, if
14419	// a request is made to return maxResults number of items, NextToken allows
14420	// you to return more items in your list starting at the location pointed to
14421	// by the next token.
14422	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
14423
14424	// An Amazon Resource Name (ARN) that uniquely identifies a resource. The format
14425	// of the ARN depends on the type of resource. Valid targets for ListTags are
14426	// recovery points, backup plans, and backup vaults.
14427	//
14428	// ResourceArn is a required field
14429	ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"`
14430}
14431
14432// String returns the string representation.
14433//
14434// API parameter values that are decorated as "sensitive" in the API will not
14435// be included in the string output. The member name will be present, but the
14436// value will be replaced with "sensitive".
14437func (s ListTagsInput) String() string {
14438	return awsutil.Prettify(s)
14439}
14440
14441// GoString returns the string representation.
14442//
14443// API parameter values that are decorated as "sensitive" in the API will not
14444// be included in the string output. The member name will be present, but the
14445// value will be replaced with "sensitive".
14446func (s ListTagsInput) GoString() string {
14447	return s.String()
14448}
14449
14450// Validate inspects the fields of the type to determine if they are valid.
14451func (s *ListTagsInput) Validate() error {
14452	invalidParams := request.ErrInvalidParams{Context: "ListTagsInput"}
14453	if s.MaxResults != nil && *s.MaxResults < 1 {
14454		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
14455	}
14456	if s.ResourceArn == nil {
14457		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
14458	}
14459	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
14460		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
14461	}
14462
14463	if invalidParams.Len() > 0 {
14464		return invalidParams
14465	}
14466	return nil
14467}
14468
14469// SetMaxResults sets the MaxResults field's value.
14470func (s *ListTagsInput) SetMaxResults(v int64) *ListTagsInput {
14471	s.MaxResults = &v
14472	return s
14473}
14474
14475// SetNextToken sets the NextToken field's value.
14476func (s *ListTagsInput) SetNextToken(v string) *ListTagsInput {
14477	s.NextToken = &v
14478	return s
14479}
14480
14481// SetResourceArn sets the ResourceArn field's value.
14482func (s *ListTagsInput) SetResourceArn(v string) *ListTagsInput {
14483	s.ResourceArn = &v
14484	return s
14485}
14486
14487type ListTagsOutput struct {
14488	_ struct{} `type:"structure"`
14489
14490	// The next item following a partial list of returned items. For example, if
14491	// a request is made to return maxResults number of items, NextToken allows
14492	// you to return more items in your list starting at the location pointed to
14493	// by the next token.
14494	NextToken *string `type:"string"`
14495
14496	// To help organize your resources, you can assign your own metadata to the
14497	// resources you create. Each tag is a key-value pair.
14498	//
14499	// Tags is a sensitive parameter and its value will be
14500	// replaced with "sensitive" in string returned by ListTagsOutput's
14501	// String and GoString methods.
14502	Tags map[string]*string `type:"map" sensitive:"true"`
14503}
14504
14505// String returns the string representation.
14506//
14507// API parameter values that are decorated as "sensitive" in the API will not
14508// be included in the string output. The member name will be present, but the
14509// value will be replaced with "sensitive".
14510func (s ListTagsOutput) String() string {
14511	return awsutil.Prettify(s)
14512}
14513
14514// GoString returns the string representation.
14515//
14516// API parameter values that are decorated as "sensitive" in the API will not
14517// be included in the string output. The member name will be present, but the
14518// value will be replaced with "sensitive".
14519func (s ListTagsOutput) GoString() string {
14520	return s.String()
14521}
14522
14523// SetNextToken sets the NextToken field's value.
14524func (s *ListTagsOutput) SetNextToken(v string) *ListTagsOutput {
14525	s.NextToken = &v
14526	return s
14527}
14528
14529// SetTags sets the Tags field's value.
14530func (s *ListTagsOutput) SetTags(v map[string]*string) *ListTagsOutput {
14531	s.Tags = v
14532	return s
14533}
14534
14535// Indicates that a required parameter is missing.
14536type MissingParameterValueException struct {
14537	_            struct{}                  `type:"structure"`
14538	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
14539
14540	Code_ *string `locationName:"Code" type:"string"`
14541
14542	Context *string `type:"string"`
14543
14544	Message_ *string `locationName:"Message" type:"string"`
14545
14546	Type *string `type:"string"`
14547}
14548
14549// String returns the string representation.
14550//
14551// API parameter values that are decorated as "sensitive" in the API will not
14552// be included in the string output. The member name will be present, but the
14553// value will be replaced with "sensitive".
14554func (s MissingParameterValueException) String() string {
14555	return awsutil.Prettify(s)
14556}
14557
14558// GoString returns the string representation.
14559//
14560// API parameter values that are decorated as "sensitive" in the API will not
14561// be included in the string output. The member name will be present, but the
14562// value will be replaced with "sensitive".
14563func (s MissingParameterValueException) GoString() string {
14564	return s.String()
14565}
14566
14567func newErrorMissingParameterValueException(v protocol.ResponseMetadata) error {
14568	return &MissingParameterValueException{
14569		RespMetadata: v,
14570	}
14571}
14572
14573// Code returns the exception type name.
14574func (s *MissingParameterValueException) Code() string {
14575	return "MissingParameterValueException"
14576}
14577
14578// Message returns the exception's message.
14579func (s *MissingParameterValueException) Message() string {
14580	if s.Message_ != nil {
14581		return *s.Message_
14582	}
14583	return ""
14584}
14585
14586// OrigErr always returns nil, satisfies awserr.Error interface.
14587func (s *MissingParameterValueException) OrigErr() error {
14588	return nil
14589}
14590
14591func (s *MissingParameterValueException) Error() string {
14592	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
14593}
14594
14595// Status code returns the HTTP status code for the request's response error.
14596func (s *MissingParameterValueException) StatusCode() int {
14597	return s.RespMetadata.StatusCode
14598}
14599
14600// RequestID returns the service's response RequestID for request.
14601func (s *MissingParameterValueException) RequestID() string {
14602	return s.RespMetadata.RequestID
14603}
14604
14605// Contains an optional backup plan display name and an array of BackupRule
14606// objects, each of which specifies a backup rule. Each rule in a backup plan
14607// is a separate scheduled task and can back up a different selection of Amazon
14608// Web Services resources.
14609type Plan struct {
14610	_ struct{} `type:"structure"`
14611
14612	// Contains a list of BackupOptions for each resource type.
14613	AdvancedBackupSettings []*AdvancedBackupSetting `type:"list"`
14614
14615	// The display name of a backup plan.
14616	//
14617	// BackupPlanName is a required field
14618	BackupPlanName *string `type:"string" required:"true"`
14619
14620	// An array of BackupRule objects, each of which specifies a scheduled task
14621	// that is used to back up a selection of resources.
14622	//
14623	// Rules is a required field
14624	Rules []*Rule `type:"list" required:"true"`
14625}
14626
14627// String returns the string representation.
14628//
14629// API parameter values that are decorated as "sensitive" in the API will not
14630// be included in the string output. The member name will be present, but the
14631// value will be replaced with "sensitive".
14632func (s Plan) String() string {
14633	return awsutil.Prettify(s)
14634}
14635
14636// GoString returns the string representation.
14637//
14638// API parameter values that are decorated as "sensitive" in the API will not
14639// be included in the string output. The member name will be present, but the
14640// value will be replaced with "sensitive".
14641func (s Plan) GoString() string {
14642	return s.String()
14643}
14644
14645// SetAdvancedBackupSettings sets the AdvancedBackupSettings field's value.
14646func (s *Plan) SetAdvancedBackupSettings(v []*AdvancedBackupSetting) *Plan {
14647	s.AdvancedBackupSettings = v
14648	return s
14649}
14650
14651// SetBackupPlanName sets the BackupPlanName field's value.
14652func (s *Plan) SetBackupPlanName(v string) *Plan {
14653	s.BackupPlanName = &v
14654	return s
14655}
14656
14657// SetRules sets the Rules field's value.
14658func (s *Plan) SetRules(v []*Rule) *Plan {
14659	s.Rules = v
14660	return s
14661}
14662
14663// Contains an optional backup plan display name and an array of BackupRule
14664// objects, each of which specifies a backup rule. Each rule in a backup plan
14665// is a separate scheduled task.
14666type PlanInput struct {
14667	_ struct{} `type:"structure"`
14668
14669	// Specifies a list of BackupOptions for each resource type. These settings
14670	// are only available for Windows Volume Shadow Copy Service (VSS) backup jobs.
14671	AdvancedBackupSettings []*AdvancedBackupSetting `type:"list"`
14672
14673	// The optional display name of a backup plan.
14674	//
14675	// BackupPlanName is a required field
14676	BackupPlanName *string `type:"string" required:"true"`
14677
14678	// An array of BackupRule objects, each of which specifies a scheduled task
14679	// that is used to back up a selection of resources.
14680	//
14681	// Rules is a required field
14682	Rules []*RuleInput `type:"list" required:"true"`
14683}
14684
14685// String returns the string representation.
14686//
14687// API parameter values that are decorated as "sensitive" in the API will not
14688// be included in the string output. The member name will be present, but the
14689// value will be replaced with "sensitive".
14690func (s PlanInput) String() string {
14691	return awsutil.Prettify(s)
14692}
14693
14694// GoString returns the string representation.
14695//
14696// API parameter values that are decorated as "sensitive" in the API will not
14697// be included in the string output. The member name will be present, but the
14698// value will be replaced with "sensitive".
14699func (s PlanInput) GoString() string {
14700	return s.String()
14701}
14702
14703// Validate inspects the fields of the type to determine if they are valid.
14704func (s *PlanInput) Validate() error {
14705	invalidParams := request.ErrInvalidParams{Context: "PlanInput"}
14706	if s.BackupPlanName == nil {
14707		invalidParams.Add(request.NewErrParamRequired("BackupPlanName"))
14708	}
14709	if s.Rules == nil {
14710		invalidParams.Add(request.NewErrParamRequired("Rules"))
14711	}
14712	if s.Rules != nil {
14713		for i, v := range s.Rules {
14714			if v == nil {
14715				continue
14716			}
14717			if err := v.Validate(); err != nil {
14718				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Rules", i), err.(request.ErrInvalidParams))
14719			}
14720		}
14721	}
14722
14723	if invalidParams.Len() > 0 {
14724		return invalidParams
14725	}
14726	return nil
14727}
14728
14729// SetAdvancedBackupSettings sets the AdvancedBackupSettings field's value.
14730func (s *PlanInput) SetAdvancedBackupSettings(v []*AdvancedBackupSetting) *PlanInput {
14731	s.AdvancedBackupSettings = v
14732	return s
14733}
14734
14735// SetBackupPlanName sets the BackupPlanName field's value.
14736func (s *PlanInput) SetBackupPlanName(v string) *PlanInput {
14737	s.BackupPlanName = &v
14738	return s
14739}
14740
14741// SetRules sets the Rules field's value.
14742func (s *PlanInput) SetRules(v []*RuleInput) *PlanInput {
14743	s.Rules = v
14744	return s
14745}
14746
14747// An object specifying metadata associated with a backup plan template.
14748type PlanTemplatesListMember struct {
14749	_ struct{} `type:"structure"`
14750
14751	// Uniquely identifies a stored backup plan template.
14752	BackupPlanTemplateId *string `type:"string"`
14753
14754	// The optional display name of a backup plan template.
14755	BackupPlanTemplateName *string `type:"string"`
14756}
14757
14758// String returns the string representation.
14759//
14760// API parameter values that are decorated as "sensitive" in the API will not
14761// be included in the string output. The member name will be present, but the
14762// value will be replaced with "sensitive".
14763func (s PlanTemplatesListMember) String() string {
14764	return awsutil.Prettify(s)
14765}
14766
14767// GoString returns the string representation.
14768//
14769// API parameter values that are decorated as "sensitive" in the API will not
14770// be included in the string output. The member name will be present, but the
14771// value will be replaced with "sensitive".
14772func (s PlanTemplatesListMember) GoString() string {
14773	return s.String()
14774}
14775
14776// SetBackupPlanTemplateId sets the BackupPlanTemplateId field's value.
14777func (s *PlanTemplatesListMember) SetBackupPlanTemplateId(v string) *PlanTemplatesListMember {
14778	s.BackupPlanTemplateId = &v
14779	return s
14780}
14781
14782// SetBackupPlanTemplateName sets the BackupPlanTemplateName field's value.
14783func (s *PlanTemplatesListMember) SetBackupPlanTemplateName(v string) *PlanTemplatesListMember {
14784	s.BackupPlanTemplateName = &v
14785	return s
14786}
14787
14788// Contains metadata about a backup plan.
14789type PlansListMember struct {
14790	_ struct{} `type:"structure"`
14791
14792	// Contains a list of BackupOptions for a resource type.
14793	AdvancedBackupSettings []*AdvancedBackupSetting `type:"list"`
14794
14795	// An Amazon Resource Name (ARN) that uniquely identifies a backup plan; for
14796	// example, arn:aws:backup:us-east-1:123456789012:plan:8F81F553-3A74-4A3F-B93D-B3360DC80C50.
14797	BackupPlanArn *string `type:"string"`
14798
14799	// Uniquely identifies a backup plan.
14800	BackupPlanId *string `type:"string"`
14801
14802	// The display name of a saved backup plan.
14803	BackupPlanName *string `type:"string"`
14804
14805	// The date and time a resource backup plan is created, in Unix format and Coordinated
14806	// Universal Time (UTC). The value of CreationDate is accurate to milliseconds.
14807	// For example, the value 1516925490.087 represents Friday, January 26, 2018
14808	// 12:11:30.087 AM.
14809	CreationDate *time.Time `type:"timestamp"`
14810
14811	// A unique string that identifies the request and allows failed requests to
14812	// be retried without the risk of running the operation twice.
14813	CreatorRequestId *string `type:"string"`
14814
14815	// The date and time a backup plan is deleted, in Unix format and Coordinated
14816	// Universal Time (UTC). The value of DeletionDate is accurate to milliseconds.
14817	// For example, the value 1516925490.087 represents Friday, January 26, 2018
14818	// 12:11:30.087 AM.
14819	DeletionDate *time.Time `type:"timestamp"`
14820
14821	// The last time a job to back up resources was run with this rule. A date and
14822	// time, in Unix format and Coordinated Universal Time (UTC). The value of LastExecutionDate
14823	// is accurate to milliseconds. For example, the value 1516925490.087 represents
14824	// Friday, January 26, 2018 12:11:30.087 AM.
14825	LastExecutionDate *time.Time `type:"timestamp"`
14826
14827	// Unique, randomly generated, Unicode, UTF-8 encoded strings that are at most
14828	// 1,024 bytes long. Version IDs cannot be edited.
14829	VersionId *string `type:"string"`
14830}
14831
14832// String returns the string representation.
14833//
14834// API parameter values that are decorated as "sensitive" in the API will not
14835// be included in the string output. The member name will be present, but the
14836// value will be replaced with "sensitive".
14837func (s PlansListMember) String() string {
14838	return awsutil.Prettify(s)
14839}
14840
14841// GoString returns the string representation.
14842//
14843// API parameter values that are decorated as "sensitive" in the API will not
14844// be included in the string output. The member name will be present, but the
14845// value will be replaced with "sensitive".
14846func (s PlansListMember) GoString() string {
14847	return s.String()
14848}
14849
14850// SetAdvancedBackupSettings sets the AdvancedBackupSettings field's value.
14851func (s *PlansListMember) SetAdvancedBackupSettings(v []*AdvancedBackupSetting) *PlansListMember {
14852	s.AdvancedBackupSettings = v
14853	return s
14854}
14855
14856// SetBackupPlanArn sets the BackupPlanArn field's value.
14857func (s *PlansListMember) SetBackupPlanArn(v string) *PlansListMember {
14858	s.BackupPlanArn = &v
14859	return s
14860}
14861
14862// SetBackupPlanId sets the BackupPlanId field's value.
14863func (s *PlansListMember) SetBackupPlanId(v string) *PlansListMember {
14864	s.BackupPlanId = &v
14865	return s
14866}
14867
14868// SetBackupPlanName sets the BackupPlanName field's value.
14869func (s *PlansListMember) SetBackupPlanName(v string) *PlansListMember {
14870	s.BackupPlanName = &v
14871	return s
14872}
14873
14874// SetCreationDate sets the CreationDate field's value.
14875func (s *PlansListMember) SetCreationDate(v time.Time) *PlansListMember {
14876	s.CreationDate = &v
14877	return s
14878}
14879
14880// SetCreatorRequestId sets the CreatorRequestId field's value.
14881func (s *PlansListMember) SetCreatorRequestId(v string) *PlansListMember {
14882	s.CreatorRequestId = &v
14883	return s
14884}
14885
14886// SetDeletionDate sets the DeletionDate field's value.
14887func (s *PlansListMember) SetDeletionDate(v time.Time) *PlansListMember {
14888	s.DeletionDate = &v
14889	return s
14890}
14891
14892// SetLastExecutionDate sets the LastExecutionDate field's value.
14893func (s *PlansListMember) SetLastExecutionDate(v time.Time) *PlansListMember {
14894	s.LastExecutionDate = &v
14895	return s
14896}
14897
14898// SetVersionId sets the VersionId field's value.
14899func (s *PlansListMember) SetVersionId(v string) *PlansListMember {
14900	s.VersionId = &v
14901	return s
14902}
14903
14904// A structure that contains information about a backed-up resource.
14905type ProtectedResource struct {
14906	_ struct{} `type:"structure"`
14907
14908	// The date and time a resource was last backed up, in Unix format and Coordinated
14909	// Universal Time (UTC). The value of LastBackupTime is accurate to milliseconds.
14910	// For example, the value 1516925490.087 represents Friday, January 26, 2018
14911	// 12:11:30.087 AM.
14912	LastBackupTime *time.Time `type:"timestamp"`
14913
14914	// An Amazon Resource Name (ARN) that uniquely identifies a resource. The format
14915	// of the ARN depends on the resource type.
14916	ResourceArn *string `type:"string"`
14917
14918	// The type of Amazon Web Services resource; for example, an Amazon Elastic
14919	// Block Store (Amazon EBS) volume or an Amazon Relational Database Service
14920	// (Amazon RDS) database. For Windows Volume Shadow Copy Service (VSS) backups,
14921	// the only supported resource type is Amazon EC2.
14922	ResourceType *string `type:"string"`
14923}
14924
14925// String returns the string representation.
14926//
14927// API parameter values that are decorated as "sensitive" in the API will not
14928// be included in the string output. The member name will be present, but the
14929// value will be replaced with "sensitive".
14930func (s ProtectedResource) String() string {
14931	return awsutil.Prettify(s)
14932}
14933
14934// GoString returns the string representation.
14935//
14936// API parameter values that are decorated as "sensitive" in the API will not
14937// be included in the string output. The member name will be present, but the
14938// value will be replaced with "sensitive".
14939func (s ProtectedResource) GoString() string {
14940	return s.String()
14941}
14942
14943// SetLastBackupTime sets the LastBackupTime field's value.
14944func (s *ProtectedResource) SetLastBackupTime(v time.Time) *ProtectedResource {
14945	s.LastBackupTime = &v
14946	return s
14947}
14948
14949// SetResourceArn sets the ResourceArn field's value.
14950func (s *ProtectedResource) SetResourceArn(v string) *ProtectedResource {
14951	s.ResourceArn = &v
14952	return s
14953}
14954
14955// SetResourceType sets the ResourceType field's value.
14956func (s *ProtectedResource) SetResourceType(v string) *ProtectedResource {
14957	s.ResourceType = &v
14958	return s
14959}
14960
14961type PutBackupVaultAccessPolicyInput struct {
14962	_ struct{} `type:"structure"`
14963
14964	// The name of a logical container where backups are stored. Backup vaults are
14965	// identified by names that are unique to the account used to create them and
14966	// the Amazon Web Services Region where they are created. They consist of lowercase
14967	// letters, numbers, and hyphens.
14968	//
14969	// BackupVaultName is a required field
14970	BackupVaultName *string `location:"uri" locationName:"backupVaultName" type:"string" required:"true"`
14971
14972	// The backup vault access policy document in JSON format.
14973	Policy *string `type:"string"`
14974}
14975
14976// String returns the string representation.
14977//
14978// API parameter values that are decorated as "sensitive" in the API will not
14979// be included in the string output. The member name will be present, but the
14980// value will be replaced with "sensitive".
14981func (s PutBackupVaultAccessPolicyInput) String() string {
14982	return awsutil.Prettify(s)
14983}
14984
14985// GoString returns the string representation.
14986//
14987// API parameter values that are decorated as "sensitive" in the API will not
14988// be included in the string output. The member name will be present, but the
14989// value will be replaced with "sensitive".
14990func (s PutBackupVaultAccessPolicyInput) GoString() string {
14991	return s.String()
14992}
14993
14994// Validate inspects the fields of the type to determine if they are valid.
14995func (s *PutBackupVaultAccessPolicyInput) Validate() error {
14996	invalidParams := request.ErrInvalidParams{Context: "PutBackupVaultAccessPolicyInput"}
14997	if s.BackupVaultName == nil {
14998		invalidParams.Add(request.NewErrParamRequired("BackupVaultName"))
14999	}
15000	if s.BackupVaultName != nil && len(*s.BackupVaultName) < 1 {
15001		invalidParams.Add(request.NewErrParamMinLen("BackupVaultName", 1))
15002	}
15003
15004	if invalidParams.Len() > 0 {
15005		return invalidParams
15006	}
15007	return nil
15008}
15009
15010// SetBackupVaultName sets the BackupVaultName field's value.
15011func (s *PutBackupVaultAccessPolicyInput) SetBackupVaultName(v string) *PutBackupVaultAccessPolicyInput {
15012	s.BackupVaultName = &v
15013	return s
15014}
15015
15016// SetPolicy sets the Policy field's value.
15017func (s *PutBackupVaultAccessPolicyInput) SetPolicy(v string) *PutBackupVaultAccessPolicyInput {
15018	s.Policy = &v
15019	return s
15020}
15021
15022type PutBackupVaultAccessPolicyOutput struct {
15023	_ struct{} `type:"structure"`
15024}
15025
15026// String returns the string representation.
15027//
15028// API parameter values that are decorated as "sensitive" in the API will not
15029// be included in the string output. The member name will be present, but the
15030// value will be replaced with "sensitive".
15031func (s PutBackupVaultAccessPolicyOutput) String() string {
15032	return awsutil.Prettify(s)
15033}
15034
15035// GoString returns the string representation.
15036//
15037// API parameter values that are decorated as "sensitive" in the API will not
15038// be included in the string output. The member name will be present, but the
15039// value will be replaced with "sensitive".
15040func (s PutBackupVaultAccessPolicyOutput) GoString() string {
15041	return s.String()
15042}
15043
15044type PutBackupVaultLockConfigurationInput struct {
15045	_ struct{} `type:"structure"`
15046
15047	// The Backup Vault Lock configuration that specifies the name of the backup
15048	// vault it protects.
15049	//
15050	// BackupVaultName is a required field
15051	BackupVaultName *string `location:"uri" locationName:"backupVaultName" type:"string" required:"true"`
15052
15053	// The Backup Vault Lock configuration that specifies the number of days before
15054	// the lock date. For example, setting ChangeableForDays to 30 on Jan. 1, 2022
15055	// at 8pm UTC will set the lock date to Jan. 31, 2022 at 8pm UTC.
15056	//
15057	// Backup enforces a 72-hour cooling-off period before Vault Lock takes effect
15058	// and becomes immutable. Therefore, you must set ChangeableForDays to 3 or
15059	// greater.
15060	//
15061	// Before the lock date, you can delete Vault Lock from the vault using DeleteBackupVaultLockConfiguration
15062	// or change the Vault Lock configuration using PutBackupVaultLockConfiguration.
15063	// On and after the lock date, the Vault Lock becomes immutable and cannot be
15064	// changed or deleted.
15065	//
15066	// If this parameter is not specified, you can delete Vault Lock from the vault
15067	// using DeleteBackupVaultLockConfiguration or change the Vault Lock configuration
15068	// using PutBackupVaultLockConfiguration at any time.
15069	ChangeableForDays *int64 `type:"long"`
15070
15071	// The Backup Vault Lock configuration that specifies the maximum retention
15072	// period that the vault retains its recovery points. This setting can be useful
15073	// if, for example, your organization's policies require you to destroy certain
15074	// data after retaining it for four years (1460 days).
15075	//
15076	// If this parameter is not included, Vault Lock does not enforce a maximum
15077	// retention period on the recovery points in the vault. If this parameter is
15078	// included without a value, Vault Lock will not enforce a maximum retention
15079	// period.
15080	//
15081	// If this parameter is specified, any backup or copy job to the vault must
15082	// have a lifecycle policy with a retention period equal to or shorter than
15083	// the maximum retention period. If the job's retention period is longer than
15084	// that maximum retention period, then the vault fails the backup or copy job,
15085	// and you should either modify your lifecycle settings or use a different vault.
15086	// Recovery points already saved in the vault prior to Vault Lock are not affected.
15087	MaxRetentionDays *int64 `type:"long"`
15088
15089	// The Backup Vault Lock configuration that specifies the minimum retention
15090	// period that the vault retains its recovery points. This setting can be useful
15091	// if, for example, your organization's policies require you to retain certain
15092	// data for at least seven years (2555 days).
15093	//
15094	// If this parameter is not specified, Vault Lock will not enforce a minimum
15095	// retention period.
15096	//
15097	// If this parameter is specified, any backup or copy job to the vault must
15098	// have a lifecycle policy with a retention period equal to or longer than the
15099	// minimum retention period. If the job's retention period is shorter than that
15100	// minimum retention period, then the vault fails that backup or copy job, and
15101	// you should either modify your lifecycle settings or use a different vault.
15102	// Recovery points already saved in the vault prior to Vault Lock are not affected.
15103	MinRetentionDays *int64 `type:"long"`
15104}
15105
15106// String returns the string representation.
15107//
15108// API parameter values that are decorated as "sensitive" in the API will not
15109// be included in the string output. The member name will be present, but the
15110// value will be replaced with "sensitive".
15111func (s PutBackupVaultLockConfigurationInput) String() string {
15112	return awsutil.Prettify(s)
15113}
15114
15115// GoString returns the string representation.
15116//
15117// API parameter values that are decorated as "sensitive" in the API will not
15118// be included in the string output. The member name will be present, but the
15119// value will be replaced with "sensitive".
15120func (s PutBackupVaultLockConfigurationInput) GoString() string {
15121	return s.String()
15122}
15123
15124// Validate inspects the fields of the type to determine if they are valid.
15125func (s *PutBackupVaultLockConfigurationInput) Validate() error {
15126	invalidParams := request.ErrInvalidParams{Context: "PutBackupVaultLockConfigurationInput"}
15127	if s.BackupVaultName == nil {
15128		invalidParams.Add(request.NewErrParamRequired("BackupVaultName"))
15129	}
15130	if s.BackupVaultName != nil && len(*s.BackupVaultName) < 1 {
15131		invalidParams.Add(request.NewErrParamMinLen("BackupVaultName", 1))
15132	}
15133
15134	if invalidParams.Len() > 0 {
15135		return invalidParams
15136	}
15137	return nil
15138}
15139
15140// SetBackupVaultName sets the BackupVaultName field's value.
15141func (s *PutBackupVaultLockConfigurationInput) SetBackupVaultName(v string) *PutBackupVaultLockConfigurationInput {
15142	s.BackupVaultName = &v
15143	return s
15144}
15145
15146// SetChangeableForDays sets the ChangeableForDays field's value.
15147func (s *PutBackupVaultLockConfigurationInput) SetChangeableForDays(v int64) *PutBackupVaultLockConfigurationInput {
15148	s.ChangeableForDays = &v
15149	return s
15150}
15151
15152// SetMaxRetentionDays sets the MaxRetentionDays field's value.
15153func (s *PutBackupVaultLockConfigurationInput) SetMaxRetentionDays(v int64) *PutBackupVaultLockConfigurationInput {
15154	s.MaxRetentionDays = &v
15155	return s
15156}
15157
15158// SetMinRetentionDays sets the MinRetentionDays field's value.
15159func (s *PutBackupVaultLockConfigurationInput) SetMinRetentionDays(v int64) *PutBackupVaultLockConfigurationInput {
15160	s.MinRetentionDays = &v
15161	return s
15162}
15163
15164type PutBackupVaultLockConfigurationOutput struct {
15165	_ struct{} `type:"structure"`
15166}
15167
15168// String returns the string representation.
15169//
15170// API parameter values that are decorated as "sensitive" in the API will not
15171// be included in the string output. The member name will be present, but the
15172// value will be replaced with "sensitive".
15173func (s PutBackupVaultLockConfigurationOutput) String() string {
15174	return awsutil.Prettify(s)
15175}
15176
15177// GoString returns the string representation.
15178//
15179// API parameter values that are decorated as "sensitive" in the API will not
15180// be included in the string output. The member name will be present, but the
15181// value will be replaced with "sensitive".
15182func (s PutBackupVaultLockConfigurationOutput) GoString() string {
15183	return s.String()
15184}
15185
15186type PutBackupVaultNotificationsInput struct {
15187	_ struct{} `type:"structure"`
15188
15189	// An array of events that indicate the status of jobs to back up resources
15190	// to the backup vault.
15191	//
15192	// The following events are supported:
15193	//
15194	// BACKUP_JOB_STARTED, BACKUP_JOB_COMPLETED,
15195	//
15196	// COPY_JOB_STARTED, COPY_JOB_SUCCESSFUL, COPY_JOB_FAILED,
15197	//
15198	// RESTORE_JOB_STARTED, RESTORE_JOB_COMPLETED, and RECOVERY_POINT_MODIFIED.
15199	//
15200	// To find failed backup jobs, use BACKUP_JOB_COMPLETED and filter using event
15201	// metadata.
15202	//
15203	// Other events in the following list are deprecated.
15204	//
15205	// BackupVaultEvents is a required field
15206	BackupVaultEvents []*string `type:"list" required:"true"`
15207
15208	// The name of a logical container where backups are stored. Backup vaults are
15209	// identified by names that are unique to the account used to create them and
15210	// the Amazon Web Services Region where they are created. They consist of lowercase
15211	// letters, numbers, and hyphens.
15212	//
15213	// BackupVaultName is a required field
15214	BackupVaultName *string `location:"uri" locationName:"backupVaultName" type:"string" required:"true"`
15215
15216	// The Amazon Resource Name (ARN) that specifies the topic for a backup vault’s
15217	// events; for example, arn:aws:sns:us-west-2:111122223333:MyVaultTopic.
15218	//
15219	// SNSTopicArn is a required field
15220	SNSTopicArn *string `type:"string" required:"true"`
15221}
15222
15223// String returns the string representation.
15224//
15225// API parameter values that are decorated as "sensitive" in the API will not
15226// be included in the string output. The member name will be present, but the
15227// value will be replaced with "sensitive".
15228func (s PutBackupVaultNotificationsInput) String() string {
15229	return awsutil.Prettify(s)
15230}
15231
15232// GoString returns the string representation.
15233//
15234// API parameter values that are decorated as "sensitive" in the API will not
15235// be included in the string output. The member name will be present, but the
15236// value will be replaced with "sensitive".
15237func (s PutBackupVaultNotificationsInput) GoString() string {
15238	return s.String()
15239}
15240
15241// Validate inspects the fields of the type to determine if they are valid.
15242func (s *PutBackupVaultNotificationsInput) Validate() error {
15243	invalidParams := request.ErrInvalidParams{Context: "PutBackupVaultNotificationsInput"}
15244	if s.BackupVaultEvents == nil {
15245		invalidParams.Add(request.NewErrParamRequired("BackupVaultEvents"))
15246	}
15247	if s.BackupVaultName == nil {
15248		invalidParams.Add(request.NewErrParamRequired("BackupVaultName"))
15249	}
15250	if s.BackupVaultName != nil && len(*s.BackupVaultName) < 1 {
15251		invalidParams.Add(request.NewErrParamMinLen("BackupVaultName", 1))
15252	}
15253	if s.SNSTopicArn == nil {
15254		invalidParams.Add(request.NewErrParamRequired("SNSTopicArn"))
15255	}
15256
15257	if invalidParams.Len() > 0 {
15258		return invalidParams
15259	}
15260	return nil
15261}
15262
15263// SetBackupVaultEvents sets the BackupVaultEvents field's value.
15264func (s *PutBackupVaultNotificationsInput) SetBackupVaultEvents(v []*string) *PutBackupVaultNotificationsInput {
15265	s.BackupVaultEvents = v
15266	return s
15267}
15268
15269// SetBackupVaultName sets the BackupVaultName field's value.
15270func (s *PutBackupVaultNotificationsInput) SetBackupVaultName(v string) *PutBackupVaultNotificationsInput {
15271	s.BackupVaultName = &v
15272	return s
15273}
15274
15275// SetSNSTopicArn sets the SNSTopicArn field's value.
15276func (s *PutBackupVaultNotificationsInput) SetSNSTopicArn(v string) *PutBackupVaultNotificationsInput {
15277	s.SNSTopicArn = &v
15278	return s
15279}
15280
15281type PutBackupVaultNotificationsOutput struct {
15282	_ struct{} `type:"structure"`
15283}
15284
15285// String returns the string representation.
15286//
15287// API parameter values that are decorated as "sensitive" in the API will not
15288// be included in the string output. The member name will be present, but the
15289// value will be replaced with "sensitive".
15290func (s PutBackupVaultNotificationsOutput) String() string {
15291	return awsutil.Prettify(s)
15292}
15293
15294// GoString returns the string representation.
15295//
15296// API parameter values that are decorated as "sensitive" in the API will not
15297// be included in the string output. The member name will be present, but the
15298// value will be replaced with "sensitive".
15299func (s PutBackupVaultNotificationsOutput) GoString() string {
15300	return s.String()
15301}
15302
15303// Contains detailed information about the recovery points stored in a backup
15304// vault.
15305type RecoveryPointByBackupVault struct {
15306	_ struct{} `type:"structure"`
15307
15308	// The size, in bytes, of a backup.
15309	BackupSizeInBytes *int64 `type:"long"`
15310
15311	// An ARN that uniquely identifies a backup vault; for example, arn:aws:backup:us-east-1:123456789012:vault:aBackupVault.
15312	BackupVaultArn *string `type:"string"`
15313
15314	// The name of a logical container where backups are stored. Backup vaults are
15315	// identified by names that are unique to the account used to create them and
15316	// the Amazon Web Services Region where they are created. They consist of lowercase
15317	// letters, numbers, and hyphens.
15318	BackupVaultName *string `type:"string"`
15319
15320	// A CalculatedLifecycle object containing DeleteAt and MoveToColdStorageAt
15321	// timestamps.
15322	CalculatedLifecycle *CalculatedLifecycle `type:"structure"`
15323
15324	// The date and time a job to restore a recovery point is completed, in Unix
15325	// format and Coordinated Universal Time (UTC). The value of CompletionDate
15326	// is accurate to milliseconds. For example, the value 1516925490.087 represents
15327	// Friday, January 26, 2018 12:11:30.087 AM.
15328	CompletionDate *time.Time `type:"timestamp"`
15329
15330	// Contains identifying information about the creation of a recovery point,
15331	// including the BackupPlanArn, BackupPlanId, BackupPlanVersion, and BackupRuleId
15332	// of the backup plan that is used to create it.
15333	CreatedBy *RecoveryPointCreator `type:"structure"`
15334
15335	// The date and time a recovery point is created, in Unix format and Coordinated
15336	// Universal Time (UTC). The value of CreationDate is accurate to milliseconds.
15337	// For example, the value 1516925490.087 represents Friday, January 26, 2018
15338	// 12:11:30.087 AM.
15339	CreationDate *time.Time `type:"timestamp"`
15340
15341	// The server-side encryption key that is used to protect your backups; for
15342	// example, arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab.
15343	EncryptionKeyArn *string `type:"string"`
15344
15345	// Specifies the IAM role ARN used to create the target recovery point; for
15346	// example, arn:aws:iam::123456789012:role/S3Access.
15347	IamRoleArn *string `type:"string"`
15348
15349	// A Boolean value that is returned as TRUE if the specified recovery point
15350	// is encrypted, or FALSE if the recovery point is not encrypted.
15351	IsEncrypted *bool `type:"boolean"`
15352
15353	// The date and time a recovery point was last restored, in Unix format and
15354	// Coordinated Universal Time (UTC). The value of LastRestoreTime is accurate
15355	// to milliseconds. For example, the value 1516925490.087 represents Friday,
15356	// January 26, 2018 12:11:30.087 AM.
15357	LastRestoreTime *time.Time `type:"timestamp"`
15358
15359	// The lifecycle defines when a protected resource is transitioned to cold storage
15360	// and when it expires. Backup transitions and expires backups automatically
15361	// according to the lifecycle that you define.
15362	//
15363	// Backups transitioned to cold storage must be stored in cold storage for a
15364	// minimum of 90 days. Therefore, the “expire after days” setting must be
15365	// 90 days greater than the “transition to cold after days” setting. The
15366	// “transition to cold after days” setting cannot be changed after a backup
15367	// has been transitioned to cold.
15368	//
15369	// Only Amazon EFS file system backups can be transitioned to cold storage.
15370	Lifecycle *Lifecycle `type:"structure"`
15371
15372	// An Amazon Resource Name (ARN) that uniquely identifies a recovery point;
15373	// for example, arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45.
15374	RecoveryPointArn *string `type:"string"`
15375
15376	// An ARN that uniquely identifies a resource. The format of the ARN depends
15377	// on the resource type.
15378	ResourceArn *string `type:"string"`
15379
15380	// The type of Amazon Web Services resource saved as a recovery point; for example,
15381	// an Amazon Elastic Block Store (Amazon EBS) volume or an Amazon Relational
15382	// Database Service (Amazon RDS) database. For Windows Volume Shadow Copy Service
15383	// (VSS) backups, the only supported resource type is Amazon EC2.
15384	ResourceType *string `type:"string"`
15385
15386	// The backup vault where the recovery point was originally copied from. If
15387	// the recovery point is restored to the same account this value will be null.
15388	SourceBackupVaultArn *string `type:"string"`
15389
15390	// A status code specifying the state of the recovery point.
15391	Status *string `type:"string" enum:"RecoveryPointStatus"`
15392
15393	// A message explaining the reason of the recovery point deletion failure.
15394	StatusMessage *string `type:"string"`
15395}
15396
15397// String returns the string representation.
15398//
15399// API parameter values that are decorated as "sensitive" in the API will not
15400// be included in the string output. The member name will be present, but the
15401// value will be replaced with "sensitive".
15402func (s RecoveryPointByBackupVault) String() string {
15403	return awsutil.Prettify(s)
15404}
15405
15406// GoString returns the string representation.
15407//
15408// API parameter values that are decorated as "sensitive" in the API will not
15409// be included in the string output. The member name will be present, but the
15410// value will be replaced with "sensitive".
15411func (s RecoveryPointByBackupVault) GoString() string {
15412	return s.String()
15413}
15414
15415// SetBackupSizeInBytes sets the BackupSizeInBytes field's value.
15416func (s *RecoveryPointByBackupVault) SetBackupSizeInBytes(v int64) *RecoveryPointByBackupVault {
15417	s.BackupSizeInBytes = &v
15418	return s
15419}
15420
15421// SetBackupVaultArn sets the BackupVaultArn field's value.
15422func (s *RecoveryPointByBackupVault) SetBackupVaultArn(v string) *RecoveryPointByBackupVault {
15423	s.BackupVaultArn = &v
15424	return s
15425}
15426
15427// SetBackupVaultName sets the BackupVaultName field's value.
15428func (s *RecoveryPointByBackupVault) SetBackupVaultName(v string) *RecoveryPointByBackupVault {
15429	s.BackupVaultName = &v
15430	return s
15431}
15432
15433// SetCalculatedLifecycle sets the CalculatedLifecycle field's value.
15434func (s *RecoveryPointByBackupVault) SetCalculatedLifecycle(v *CalculatedLifecycle) *RecoveryPointByBackupVault {
15435	s.CalculatedLifecycle = v
15436	return s
15437}
15438
15439// SetCompletionDate sets the CompletionDate field's value.
15440func (s *RecoveryPointByBackupVault) SetCompletionDate(v time.Time) *RecoveryPointByBackupVault {
15441	s.CompletionDate = &v
15442	return s
15443}
15444
15445// SetCreatedBy sets the CreatedBy field's value.
15446func (s *RecoveryPointByBackupVault) SetCreatedBy(v *RecoveryPointCreator) *RecoveryPointByBackupVault {
15447	s.CreatedBy = v
15448	return s
15449}
15450
15451// SetCreationDate sets the CreationDate field's value.
15452func (s *RecoveryPointByBackupVault) SetCreationDate(v time.Time) *RecoveryPointByBackupVault {
15453	s.CreationDate = &v
15454	return s
15455}
15456
15457// SetEncryptionKeyArn sets the EncryptionKeyArn field's value.
15458func (s *RecoveryPointByBackupVault) SetEncryptionKeyArn(v string) *RecoveryPointByBackupVault {
15459	s.EncryptionKeyArn = &v
15460	return s
15461}
15462
15463// SetIamRoleArn sets the IamRoleArn field's value.
15464func (s *RecoveryPointByBackupVault) SetIamRoleArn(v string) *RecoveryPointByBackupVault {
15465	s.IamRoleArn = &v
15466	return s
15467}
15468
15469// SetIsEncrypted sets the IsEncrypted field's value.
15470func (s *RecoveryPointByBackupVault) SetIsEncrypted(v bool) *RecoveryPointByBackupVault {
15471	s.IsEncrypted = &v
15472	return s
15473}
15474
15475// SetLastRestoreTime sets the LastRestoreTime field's value.
15476func (s *RecoveryPointByBackupVault) SetLastRestoreTime(v time.Time) *RecoveryPointByBackupVault {
15477	s.LastRestoreTime = &v
15478	return s
15479}
15480
15481// SetLifecycle sets the Lifecycle field's value.
15482func (s *RecoveryPointByBackupVault) SetLifecycle(v *Lifecycle) *RecoveryPointByBackupVault {
15483	s.Lifecycle = v
15484	return s
15485}
15486
15487// SetRecoveryPointArn sets the RecoveryPointArn field's value.
15488func (s *RecoveryPointByBackupVault) SetRecoveryPointArn(v string) *RecoveryPointByBackupVault {
15489	s.RecoveryPointArn = &v
15490	return s
15491}
15492
15493// SetResourceArn sets the ResourceArn field's value.
15494func (s *RecoveryPointByBackupVault) SetResourceArn(v string) *RecoveryPointByBackupVault {
15495	s.ResourceArn = &v
15496	return s
15497}
15498
15499// SetResourceType sets the ResourceType field's value.
15500func (s *RecoveryPointByBackupVault) SetResourceType(v string) *RecoveryPointByBackupVault {
15501	s.ResourceType = &v
15502	return s
15503}
15504
15505// SetSourceBackupVaultArn sets the SourceBackupVaultArn field's value.
15506func (s *RecoveryPointByBackupVault) SetSourceBackupVaultArn(v string) *RecoveryPointByBackupVault {
15507	s.SourceBackupVaultArn = &v
15508	return s
15509}
15510
15511// SetStatus sets the Status field's value.
15512func (s *RecoveryPointByBackupVault) SetStatus(v string) *RecoveryPointByBackupVault {
15513	s.Status = &v
15514	return s
15515}
15516
15517// SetStatusMessage sets the StatusMessage field's value.
15518func (s *RecoveryPointByBackupVault) SetStatusMessage(v string) *RecoveryPointByBackupVault {
15519	s.StatusMessage = &v
15520	return s
15521}
15522
15523// Contains detailed information about a saved recovery point.
15524type RecoveryPointByResource struct {
15525	_ struct{} `type:"structure"`
15526
15527	// The size, in bytes, of a backup.
15528	BackupSizeBytes *int64 `type:"long"`
15529
15530	// The name of a logical container where backups are stored. Backup vaults are
15531	// identified by names that are unique to the account used to create them and
15532	// the Amazon Web Services Region where they are created. They consist of lowercase
15533	// letters, numbers, and hyphens.
15534	BackupVaultName *string `type:"string"`
15535
15536	// The date and time a recovery point is created, in Unix format and Coordinated
15537	// Universal Time (UTC). The value of CreationDate is accurate to milliseconds.
15538	// For example, the value 1516925490.087 represents Friday, January 26, 2018
15539	// 12:11:30.087 AM.
15540	CreationDate *time.Time `type:"timestamp"`
15541
15542	// The server-side encryption key that is used to protect your backups; for
15543	// example, arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab.
15544	EncryptionKeyArn *string `type:"string"`
15545
15546	// An Amazon Resource Name (ARN) that uniquely identifies a recovery point;
15547	// for example, arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45.
15548	RecoveryPointArn *string `type:"string"`
15549
15550	// A status code specifying the state of the recovery point.
15551	Status *string `type:"string" enum:"RecoveryPointStatus"`
15552
15553	// A message explaining the reason of the recovery point deletion failure.
15554	StatusMessage *string `type:"string"`
15555}
15556
15557// String returns the string representation.
15558//
15559// API parameter values that are decorated as "sensitive" in the API will not
15560// be included in the string output. The member name will be present, but the
15561// value will be replaced with "sensitive".
15562func (s RecoveryPointByResource) String() string {
15563	return awsutil.Prettify(s)
15564}
15565
15566// GoString returns the string representation.
15567//
15568// API parameter values that are decorated as "sensitive" in the API will not
15569// be included in the string output. The member name will be present, but the
15570// value will be replaced with "sensitive".
15571func (s RecoveryPointByResource) GoString() string {
15572	return s.String()
15573}
15574
15575// SetBackupSizeBytes sets the BackupSizeBytes field's value.
15576func (s *RecoveryPointByResource) SetBackupSizeBytes(v int64) *RecoveryPointByResource {
15577	s.BackupSizeBytes = &v
15578	return s
15579}
15580
15581// SetBackupVaultName sets the BackupVaultName field's value.
15582func (s *RecoveryPointByResource) SetBackupVaultName(v string) *RecoveryPointByResource {
15583	s.BackupVaultName = &v
15584	return s
15585}
15586
15587// SetCreationDate sets the CreationDate field's value.
15588func (s *RecoveryPointByResource) SetCreationDate(v time.Time) *RecoveryPointByResource {
15589	s.CreationDate = &v
15590	return s
15591}
15592
15593// SetEncryptionKeyArn sets the EncryptionKeyArn field's value.
15594func (s *RecoveryPointByResource) SetEncryptionKeyArn(v string) *RecoveryPointByResource {
15595	s.EncryptionKeyArn = &v
15596	return s
15597}
15598
15599// SetRecoveryPointArn sets the RecoveryPointArn field's value.
15600func (s *RecoveryPointByResource) SetRecoveryPointArn(v string) *RecoveryPointByResource {
15601	s.RecoveryPointArn = &v
15602	return s
15603}
15604
15605// SetStatus sets the Status field's value.
15606func (s *RecoveryPointByResource) SetStatus(v string) *RecoveryPointByResource {
15607	s.Status = &v
15608	return s
15609}
15610
15611// SetStatusMessage sets the StatusMessage field's value.
15612func (s *RecoveryPointByResource) SetStatusMessage(v string) *RecoveryPointByResource {
15613	s.StatusMessage = &v
15614	return s
15615}
15616
15617// Contains information about the backup plan and rule that Backup used to initiate
15618// the recovery point backup.
15619type RecoveryPointCreator struct {
15620	_ struct{} `type:"structure"`
15621
15622	// An Amazon Resource Name (ARN) that uniquely identifies a backup plan; for
15623	// example, arn:aws:backup:us-east-1:123456789012:plan:8F81F553-3A74-4A3F-B93D-B3360DC80C50.
15624	BackupPlanArn *string `type:"string"`
15625
15626	// Uniquely identifies a backup plan.
15627	BackupPlanId *string `type:"string"`
15628
15629	// Version IDs are unique, randomly generated, Unicode, UTF-8 encoded strings
15630	// that are at most 1,024 bytes long. They cannot be edited.
15631	BackupPlanVersion *string `type:"string"`
15632
15633	// Uniquely identifies a rule used to schedule the backup of a selection of
15634	// resources.
15635	BackupRuleId *string `type:"string"`
15636}
15637
15638// String returns the string representation.
15639//
15640// API parameter values that are decorated as "sensitive" in the API will not
15641// be included in the string output. The member name will be present, but the
15642// value will be replaced with "sensitive".
15643func (s RecoveryPointCreator) String() string {
15644	return awsutil.Prettify(s)
15645}
15646
15647// GoString returns the string representation.
15648//
15649// API parameter values that are decorated as "sensitive" in the API will not
15650// be included in the string output. The member name will be present, but the
15651// value will be replaced with "sensitive".
15652func (s RecoveryPointCreator) GoString() string {
15653	return s.String()
15654}
15655
15656// SetBackupPlanArn sets the BackupPlanArn field's value.
15657func (s *RecoveryPointCreator) SetBackupPlanArn(v string) *RecoveryPointCreator {
15658	s.BackupPlanArn = &v
15659	return s
15660}
15661
15662// SetBackupPlanId sets the BackupPlanId field's value.
15663func (s *RecoveryPointCreator) SetBackupPlanId(v string) *RecoveryPointCreator {
15664	s.BackupPlanId = &v
15665	return s
15666}
15667
15668// SetBackupPlanVersion sets the BackupPlanVersion field's value.
15669func (s *RecoveryPointCreator) SetBackupPlanVersion(v string) *RecoveryPointCreator {
15670	s.BackupPlanVersion = &v
15671	return s
15672}
15673
15674// SetBackupRuleId sets the BackupRuleId field's value.
15675func (s *RecoveryPointCreator) SetBackupRuleId(v string) *RecoveryPointCreator {
15676	s.BackupRuleId = &v
15677	return s
15678}
15679
15680// Contains information from your report plan about where to deliver your reports,
15681// specifically your Amazon S3 bucket name, S3 key prefix, and the formats of
15682// your reports.
15683type ReportDeliveryChannel struct {
15684	_ struct{} `type:"structure"`
15685
15686	// A list of the format of your reports: CSV, JSON, or both. If not specified,
15687	// the default format is CSV.
15688	Formats []*string `type:"list"`
15689
15690	// The unique name of the S3 bucket that receives your reports.
15691	//
15692	// S3BucketName is a required field
15693	S3BucketName *string `type:"string" required:"true"`
15694
15695	// The prefix for where Backup Audit Manager delivers your reports to Amazon
15696	// S3. The prefix is this part of the following path: s3://your-bucket-name/prefix/Backup/us-west-2/year/month/day/report-name.
15697	// If not specified, there is no prefix.
15698	S3KeyPrefix *string `type:"string"`
15699}
15700
15701// String returns the string representation.
15702//
15703// API parameter values that are decorated as "sensitive" in the API will not
15704// be included in the string output. The member name will be present, but the
15705// value will be replaced with "sensitive".
15706func (s ReportDeliveryChannel) String() string {
15707	return awsutil.Prettify(s)
15708}
15709
15710// GoString returns the string representation.
15711//
15712// API parameter values that are decorated as "sensitive" in the API will not
15713// be included in the string output. The member name will be present, but the
15714// value will be replaced with "sensitive".
15715func (s ReportDeliveryChannel) GoString() string {
15716	return s.String()
15717}
15718
15719// Validate inspects the fields of the type to determine if they are valid.
15720func (s *ReportDeliveryChannel) Validate() error {
15721	invalidParams := request.ErrInvalidParams{Context: "ReportDeliveryChannel"}
15722	if s.S3BucketName == nil {
15723		invalidParams.Add(request.NewErrParamRequired("S3BucketName"))
15724	}
15725
15726	if invalidParams.Len() > 0 {
15727		return invalidParams
15728	}
15729	return nil
15730}
15731
15732// SetFormats sets the Formats field's value.
15733func (s *ReportDeliveryChannel) SetFormats(v []*string) *ReportDeliveryChannel {
15734	s.Formats = v
15735	return s
15736}
15737
15738// SetS3BucketName sets the S3BucketName field's value.
15739func (s *ReportDeliveryChannel) SetS3BucketName(v string) *ReportDeliveryChannel {
15740	s.S3BucketName = &v
15741	return s
15742}
15743
15744// SetS3KeyPrefix sets the S3KeyPrefix field's value.
15745func (s *ReportDeliveryChannel) SetS3KeyPrefix(v string) *ReportDeliveryChannel {
15746	s.S3KeyPrefix = &v
15747	return s
15748}
15749
15750// Contains information from your report job about your report destination.
15751type ReportDestination struct {
15752	_ struct{} `type:"structure"`
15753
15754	// The unique name of the Amazon S3 bucket that receives your reports.
15755	S3BucketName *string `type:"string"`
15756
15757	// The object key that uniquely identifies your reports in your S3 bucket.
15758	S3Keys []*string `type:"list"`
15759}
15760
15761// String returns the string representation.
15762//
15763// API parameter values that are decorated as "sensitive" in the API will not
15764// be included in the string output. The member name will be present, but the
15765// value will be replaced with "sensitive".
15766func (s ReportDestination) String() string {
15767	return awsutil.Prettify(s)
15768}
15769
15770// GoString returns the string representation.
15771//
15772// API parameter values that are decorated as "sensitive" in the API will not
15773// be included in the string output. The member name will be present, but the
15774// value will be replaced with "sensitive".
15775func (s ReportDestination) GoString() string {
15776	return s.String()
15777}
15778
15779// SetS3BucketName sets the S3BucketName field's value.
15780func (s *ReportDestination) SetS3BucketName(v string) *ReportDestination {
15781	s.S3BucketName = &v
15782	return s
15783}
15784
15785// SetS3Keys sets the S3Keys field's value.
15786func (s *ReportDestination) SetS3Keys(v []*string) *ReportDestination {
15787	s.S3Keys = v
15788	return s
15789}
15790
15791// Contains detailed information about a report job. A report job compiles a
15792// report based on a report plan and publishes it to Amazon S3.
15793type ReportJob struct {
15794	_ struct{} `type:"structure"`
15795
15796	// The date and time that a report job is completed, in Unix format and Coordinated
15797	// Universal Time (UTC). The value of CompletionTime is accurate to milliseconds.
15798	// For example, the value 1516925490.087 represents Friday, January 26, 2018
15799	// 12:11:30.087 AM.
15800	CompletionTime *time.Time `type:"timestamp"`
15801
15802	// The date and time that a report job is created, in Unix format and Coordinated
15803	// Universal Time (UTC). The value of CreationTime is accurate to milliseconds.
15804	// For example, the value 1516925490.087 represents Friday, January 26, 2018
15805	// 12:11:30.087 AM.
15806	CreationTime *time.Time `type:"timestamp"`
15807
15808	// The S3 bucket name and S3 keys for the destination where the report job publishes
15809	// the report.
15810	ReportDestination *ReportDestination `type:"structure"`
15811
15812	// The identifier for a report job. A unique, randomly generated, Unicode, UTF-8
15813	// encoded string that is at most 1,024 bytes long. Report job IDs cannot be
15814	// edited.
15815	ReportJobId *string `type:"string"`
15816
15817	// An Amazon Resource Name (ARN) that uniquely identifies a resource. The format
15818	// of the ARN depends on the resource type.
15819	ReportPlanArn *string `type:"string"`
15820
15821	// Identifies the report template for the report. Reports are built using a
15822	// report template. The report templates are:
15823	//
15824	// RESOURCE_COMPLIANCE_REPORT | CONTROL_COMPLIANCE_REPORT | BACKUP_JOB_REPORT
15825	// | COPY_JOB_REPORT | RESTORE_JOB_REPORT
15826	ReportTemplate *string `type:"string"`
15827
15828	// The status of a report job. The statuses are:
15829	//
15830	// CREATED | RUNNING | COMPLETED | FAILED
15831	//
15832	// COMPLETED means that the report is available for your review at your designated
15833	// destination. If the status is FAILED, review the StatusMessage for the reason.
15834	Status *string `type:"string"`
15835
15836	// A message explaining the status of the report job.
15837	StatusMessage *string `type:"string"`
15838}
15839
15840// String returns the string representation.
15841//
15842// API parameter values that are decorated as "sensitive" in the API will not
15843// be included in the string output. The member name will be present, but the
15844// value will be replaced with "sensitive".
15845func (s ReportJob) String() string {
15846	return awsutil.Prettify(s)
15847}
15848
15849// GoString returns the string representation.
15850//
15851// API parameter values that are decorated as "sensitive" in the API will not
15852// be included in the string output. The member name will be present, but the
15853// value will be replaced with "sensitive".
15854func (s ReportJob) GoString() string {
15855	return s.String()
15856}
15857
15858// SetCompletionTime sets the CompletionTime field's value.
15859func (s *ReportJob) SetCompletionTime(v time.Time) *ReportJob {
15860	s.CompletionTime = &v
15861	return s
15862}
15863
15864// SetCreationTime sets the CreationTime field's value.
15865func (s *ReportJob) SetCreationTime(v time.Time) *ReportJob {
15866	s.CreationTime = &v
15867	return s
15868}
15869
15870// SetReportDestination sets the ReportDestination field's value.
15871func (s *ReportJob) SetReportDestination(v *ReportDestination) *ReportJob {
15872	s.ReportDestination = v
15873	return s
15874}
15875
15876// SetReportJobId sets the ReportJobId field's value.
15877func (s *ReportJob) SetReportJobId(v string) *ReportJob {
15878	s.ReportJobId = &v
15879	return s
15880}
15881
15882// SetReportPlanArn sets the ReportPlanArn field's value.
15883func (s *ReportJob) SetReportPlanArn(v string) *ReportJob {
15884	s.ReportPlanArn = &v
15885	return s
15886}
15887
15888// SetReportTemplate sets the ReportTemplate field's value.
15889func (s *ReportJob) SetReportTemplate(v string) *ReportJob {
15890	s.ReportTemplate = &v
15891	return s
15892}
15893
15894// SetStatus sets the Status field's value.
15895func (s *ReportJob) SetStatus(v string) *ReportJob {
15896	s.Status = &v
15897	return s
15898}
15899
15900// SetStatusMessage sets the StatusMessage field's value.
15901func (s *ReportJob) SetStatusMessage(v string) *ReportJob {
15902	s.StatusMessage = &v
15903	return s
15904}
15905
15906// Contains detailed information about a report plan.
15907type ReportPlan struct {
15908	_ struct{} `type:"structure"`
15909
15910	// The date and time that a report plan is created, in Unix format and Coordinated
15911	// Universal Time (UTC). The value of CreationTime is accurate to milliseconds.
15912	// For example, the value 1516925490.087 represents Friday, January 26, 2018
15913	// 12:11:30.087 AM.
15914	CreationTime *time.Time `type:"timestamp"`
15915
15916	// The deployment status of a report plan. The statuses are:
15917	//
15918	// CREATE_IN_PROGRESS | UPDATE_IN_PROGRESS | DELETE_IN_PROGRESS | COMPLETED
15919	DeploymentStatus *string `type:"string"`
15920
15921	// The date and time that a report job associated with this report plan last
15922	// attempted to run, in Unix format and Coordinated Universal Time (UTC). The
15923	// value of LastAttemptedExecutionTime is accurate to milliseconds. For example,
15924	// the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087
15925	// AM.
15926	LastAttemptedExecutionTime *time.Time `type:"timestamp"`
15927
15928	// The date and time that a report job associated with this report plan last
15929	// successfully ran, in Unix format and Coordinated Universal Time (UTC). The
15930	// value of LastSuccessfulExecutionTime is accurate to milliseconds. For example,
15931	// the value 1516925490.087 represents Friday, January 26, 2018 12:11:30.087
15932	// AM.
15933	LastSuccessfulExecutionTime *time.Time `type:"timestamp"`
15934
15935	// Contains information about where and how to deliver your reports, specifically
15936	// your Amazon S3 bucket name, S3 key prefix, and the formats of your reports.
15937	ReportDeliveryChannel *ReportDeliveryChannel `type:"structure"`
15938
15939	// An Amazon Resource Name (ARN) that uniquely identifies a resource. The format
15940	// of the ARN depends on the resource type.
15941	ReportPlanArn *string `type:"string"`
15942
15943	// An optional description of the report plan with a maximum 1,024 characters.
15944	ReportPlanDescription *string `type:"string"`
15945
15946	// The unique name of the report plan. This name is between 1 and 256 characters
15947	// starting with a letter, and consisting of letters (a-z, A-Z), numbers (0-9),
15948	// and underscores (_).
15949	ReportPlanName *string `min:"1" type:"string"`
15950
15951	// Identifies the report template for the report. Reports are built using a
15952	// report template. The report templates are:
15953	//
15954	// RESOURCE_COMPLIANCE_REPORT | CONTROL_COMPLIANCE_REPORT | BACKUP_JOB_REPORT
15955	// | COPY_JOB_REPORT | RESTORE_JOB_REPORT
15956	//
15957	// If the report template is RESOURCE_COMPLIANCE_REPORT or CONTROL_COMPLIANCE_REPORT,
15958	// this API resource also describes the report coverage by Amazon Web Services
15959	// Regions and frameworks.
15960	ReportSetting *ReportSetting `type:"structure"`
15961}
15962
15963// String returns the string representation.
15964//
15965// API parameter values that are decorated as "sensitive" in the API will not
15966// be included in the string output. The member name will be present, but the
15967// value will be replaced with "sensitive".
15968func (s ReportPlan) String() string {
15969	return awsutil.Prettify(s)
15970}
15971
15972// GoString returns the string representation.
15973//
15974// API parameter values that are decorated as "sensitive" in the API will not
15975// be included in the string output. The member name will be present, but the
15976// value will be replaced with "sensitive".
15977func (s ReportPlan) GoString() string {
15978	return s.String()
15979}
15980
15981// SetCreationTime sets the CreationTime field's value.
15982func (s *ReportPlan) SetCreationTime(v time.Time) *ReportPlan {
15983	s.CreationTime = &v
15984	return s
15985}
15986
15987// SetDeploymentStatus sets the DeploymentStatus field's value.
15988func (s *ReportPlan) SetDeploymentStatus(v string) *ReportPlan {
15989	s.DeploymentStatus = &v
15990	return s
15991}
15992
15993// SetLastAttemptedExecutionTime sets the LastAttemptedExecutionTime field's value.
15994func (s *ReportPlan) SetLastAttemptedExecutionTime(v time.Time) *ReportPlan {
15995	s.LastAttemptedExecutionTime = &v
15996	return s
15997}
15998
15999// SetLastSuccessfulExecutionTime sets the LastSuccessfulExecutionTime field's value.
16000func (s *ReportPlan) SetLastSuccessfulExecutionTime(v time.Time) *ReportPlan {
16001	s.LastSuccessfulExecutionTime = &v
16002	return s
16003}
16004
16005// SetReportDeliveryChannel sets the ReportDeliveryChannel field's value.
16006func (s *ReportPlan) SetReportDeliveryChannel(v *ReportDeliveryChannel) *ReportPlan {
16007	s.ReportDeliveryChannel = v
16008	return s
16009}
16010
16011// SetReportPlanArn sets the ReportPlanArn field's value.
16012func (s *ReportPlan) SetReportPlanArn(v string) *ReportPlan {
16013	s.ReportPlanArn = &v
16014	return s
16015}
16016
16017// SetReportPlanDescription sets the ReportPlanDescription field's value.
16018func (s *ReportPlan) SetReportPlanDescription(v string) *ReportPlan {
16019	s.ReportPlanDescription = &v
16020	return s
16021}
16022
16023// SetReportPlanName sets the ReportPlanName field's value.
16024func (s *ReportPlan) SetReportPlanName(v string) *ReportPlan {
16025	s.ReportPlanName = &v
16026	return s
16027}
16028
16029// SetReportSetting sets the ReportSetting field's value.
16030func (s *ReportPlan) SetReportSetting(v *ReportSetting) *ReportPlan {
16031	s.ReportSetting = v
16032	return s
16033}
16034
16035// Contains detailed information about a report setting.
16036type ReportSetting struct {
16037	_ struct{} `type:"structure"`
16038
16039	// The Amazon Resource Names (ARNs) of the frameworks a report covers.
16040	FrameworkArns []*string `type:"list"`
16041
16042	// The number of frameworks a report covers.
16043	NumberOfFrameworks *int64 `type:"integer"`
16044
16045	// Identifies the report template for the report. Reports are built using a
16046	// report template. The report templates are:
16047	//
16048	// RESOURCE_COMPLIANCE_REPORT | CONTROL_COMPLIANCE_REPORT | BACKUP_JOB_REPORT
16049	// | COPY_JOB_REPORT | RESTORE_JOB_REPORT
16050	//
16051	// ReportTemplate is a required field
16052	ReportTemplate *string `type:"string" required:"true"`
16053}
16054
16055// String returns the string representation.
16056//
16057// API parameter values that are decorated as "sensitive" in the API will not
16058// be included in the string output. The member name will be present, but the
16059// value will be replaced with "sensitive".
16060func (s ReportSetting) String() string {
16061	return awsutil.Prettify(s)
16062}
16063
16064// GoString returns the string representation.
16065//
16066// API parameter values that are decorated as "sensitive" in the API will not
16067// be included in the string output. The member name will be present, but the
16068// value will be replaced with "sensitive".
16069func (s ReportSetting) GoString() string {
16070	return s.String()
16071}
16072
16073// Validate inspects the fields of the type to determine if they are valid.
16074func (s *ReportSetting) Validate() error {
16075	invalidParams := request.ErrInvalidParams{Context: "ReportSetting"}
16076	if s.ReportTemplate == nil {
16077		invalidParams.Add(request.NewErrParamRequired("ReportTemplate"))
16078	}
16079
16080	if invalidParams.Len() > 0 {
16081		return invalidParams
16082	}
16083	return nil
16084}
16085
16086// SetFrameworkArns sets the FrameworkArns field's value.
16087func (s *ReportSetting) SetFrameworkArns(v []*string) *ReportSetting {
16088	s.FrameworkArns = v
16089	return s
16090}
16091
16092// SetNumberOfFrameworks sets the NumberOfFrameworks field's value.
16093func (s *ReportSetting) SetNumberOfFrameworks(v int64) *ReportSetting {
16094	s.NumberOfFrameworks = &v
16095	return s
16096}
16097
16098// SetReportTemplate sets the ReportTemplate field's value.
16099func (s *ReportSetting) SetReportTemplate(v string) *ReportSetting {
16100	s.ReportTemplate = &v
16101	return s
16102}
16103
16104// A resource that is required for the action doesn't exist.
16105type ResourceNotFoundException struct {
16106	_            struct{}                  `type:"structure"`
16107	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16108
16109	Code_ *string `locationName:"Code" type:"string"`
16110
16111	Context *string `type:"string"`
16112
16113	Message_ *string `locationName:"Message" type:"string"`
16114
16115	Type *string `type:"string"`
16116}
16117
16118// String returns the string representation.
16119//
16120// API parameter values that are decorated as "sensitive" in the API will not
16121// be included in the string output. The member name will be present, but the
16122// value will be replaced with "sensitive".
16123func (s ResourceNotFoundException) String() string {
16124	return awsutil.Prettify(s)
16125}
16126
16127// GoString returns the string representation.
16128//
16129// API parameter values that are decorated as "sensitive" in the API will not
16130// be included in the string output. The member name will be present, but the
16131// value will be replaced with "sensitive".
16132func (s ResourceNotFoundException) GoString() string {
16133	return s.String()
16134}
16135
16136func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
16137	return &ResourceNotFoundException{
16138		RespMetadata: v,
16139	}
16140}
16141
16142// Code returns the exception type name.
16143func (s *ResourceNotFoundException) Code() string {
16144	return "ResourceNotFoundException"
16145}
16146
16147// Message returns the exception's message.
16148func (s *ResourceNotFoundException) Message() string {
16149	if s.Message_ != nil {
16150		return *s.Message_
16151	}
16152	return ""
16153}
16154
16155// OrigErr always returns nil, satisfies awserr.Error interface.
16156func (s *ResourceNotFoundException) OrigErr() error {
16157	return nil
16158}
16159
16160func (s *ResourceNotFoundException) Error() string {
16161	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
16162}
16163
16164// Status code returns the HTTP status code for the request's response error.
16165func (s *ResourceNotFoundException) StatusCode() int {
16166	return s.RespMetadata.StatusCode
16167}
16168
16169// RequestID returns the service's response RequestID for request.
16170func (s *ResourceNotFoundException) RequestID() string {
16171	return s.RespMetadata.RequestID
16172}
16173
16174// Contains metadata about a restore job.
16175type RestoreJobsListMember struct {
16176	_ struct{} `type:"structure"`
16177
16178	// The account ID that owns the restore job.
16179	AccountId *string `type:"string"`
16180
16181	// The size, in bytes, of the restored resource.
16182	BackupSizeInBytes *int64 `type:"long"`
16183
16184	// The date and time a job to restore a recovery point is completed, in Unix
16185	// format and Coordinated Universal Time (UTC). The value of CompletionDate
16186	// is accurate to milliseconds. For example, the value 1516925490.087 represents
16187	// Friday, January 26, 2018 12:11:30.087 AM.
16188	CompletionDate *time.Time `type:"timestamp"`
16189
16190	// An Amazon Resource Name (ARN) that uniquely identifies a resource. The format
16191	// of the ARN depends on the resource type.
16192	CreatedResourceArn *string `type:"string"`
16193
16194	// The date and time a restore job is created, in Unix format and Coordinated
16195	// Universal Time (UTC). The value of CreationDate is accurate to milliseconds.
16196	// For example, the value 1516925490.087 represents Friday, January 26, 2018
16197	// 12:11:30.087 AM.
16198	CreationDate *time.Time `type:"timestamp"`
16199
16200	// The amount of time in minutes that a job restoring a recovery point is expected
16201	// to take.
16202	ExpectedCompletionTimeMinutes *int64 `type:"long"`
16203
16204	// Specifies the IAM role ARN used to create the target recovery point; for
16205	// example, arn:aws:iam::123456789012:role/S3Access.
16206	IamRoleArn *string `type:"string"`
16207
16208	// Contains an estimated percentage complete of a job at the time the job status
16209	// was queried.
16210	PercentDone *string `type:"string"`
16211
16212	// An ARN that uniquely identifies a recovery point; for example, arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45.
16213	RecoveryPointArn *string `type:"string"`
16214
16215	// The resource type of the listed restore jobs; for example, an Amazon Elastic
16216	// Block Store (Amazon EBS) volume or an Amazon Relational Database Service
16217	// (Amazon RDS) database. For Windows Volume Shadow Copy Service (VSS) backups,
16218	// the only supported resource type is Amazon EC2.
16219	ResourceType *string `type:"string"`
16220
16221	// Uniquely identifies the job that restores a recovery point.
16222	RestoreJobId *string `type:"string"`
16223
16224	// A status code specifying the state of the job initiated by Backup to restore
16225	// a recovery point.
16226	Status *string `type:"string" enum:"RestoreJobStatus"`
16227
16228	// A detailed message explaining the status of the job to restore a recovery
16229	// point.
16230	StatusMessage *string `type:"string"`
16231}
16232
16233// String returns the string representation.
16234//
16235// API parameter values that are decorated as "sensitive" in the API will not
16236// be included in the string output. The member name will be present, but the
16237// value will be replaced with "sensitive".
16238func (s RestoreJobsListMember) String() string {
16239	return awsutil.Prettify(s)
16240}
16241
16242// GoString returns the string representation.
16243//
16244// API parameter values that are decorated as "sensitive" in the API will not
16245// be included in the string output. The member name will be present, but the
16246// value will be replaced with "sensitive".
16247func (s RestoreJobsListMember) GoString() string {
16248	return s.String()
16249}
16250
16251// SetAccountId sets the AccountId field's value.
16252func (s *RestoreJobsListMember) SetAccountId(v string) *RestoreJobsListMember {
16253	s.AccountId = &v
16254	return s
16255}
16256
16257// SetBackupSizeInBytes sets the BackupSizeInBytes field's value.
16258func (s *RestoreJobsListMember) SetBackupSizeInBytes(v int64) *RestoreJobsListMember {
16259	s.BackupSizeInBytes = &v
16260	return s
16261}
16262
16263// SetCompletionDate sets the CompletionDate field's value.
16264func (s *RestoreJobsListMember) SetCompletionDate(v time.Time) *RestoreJobsListMember {
16265	s.CompletionDate = &v
16266	return s
16267}
16268
16269// SetCreatedResourceArn sets the CreatedResourceArn field's value.
16270func (s *RestoreJobsListMember) SetCreatedResourceArn(v string) *RestoreJobsListMember {
16271	s.CreatedResourceArn = &v
16272	return s
16273}
16274
16275// SetCreationDate sets the CreationDate field's value.
16276func (s *RestoreJobsListMember) SetCreationDate(v time.Time) *RestoreJobsListMember {
16277	s.CreationDate = &v
16278	return s
16279}
16280
16281// SetExpectedCompletionTimeMinutes sets the ExpectedCompletionTimeMinutes field's value.
16282func (s *RestoreJobsListMember) SetExpectedCompletionTimeMinutes(v int64) *RestoreJobsListMember {
16283	s.ExpectedCompletionTimeMinutes = &v
16284	return s
16285}
16286
16287// SetIamRoleArn sets the IamRoleArn field's value.
16288func (s *RestoreJobsListMember) SetIamRoleArn(v string) *RestoreJobsListMember {
16289	s.IamRoleArn = &v
16290	return s
16291}
16292
16293// SetPercentDone sets the PercentDone field's value.
16294func (s *RestoreJobsListMember) SetPercentDone(v string) *RestoreJobsListMember {
16295	s.PercentDone = &v
16296	return s
16297}
16298
16299// SetRecoveryPointArn sets the RecoveryPointArn field's value.
16300func (s *RestoreJobsListMember) SetRecoveryPointArn(v string) *RestoreJobsListMember {
16301	s.RecoveryPointArn = &v
16302	return s
16303}
16304
16305// SetResourceType sets the ResourceType field's value.
16306func (s *RestoreJobsListMember) SetResourceType(v string) *RestoreJobsListMember {
16307	s.ResourceType = &v
16308	return s
16309}
16310
16311// SetRestoreJobId sets the RestoreJobId field's value.
16312func (s *RestoreJobsListMember) SetRestoreJobId(v string) *RestoreJobsListMember {
16313	s.RestoreJobId = &v
16314	return s
16315}
16316
16317// SetStatus sets the Status field's value.
16318func (s *RestoreJobsListMember) SetStatus(v string) *RestoreJobsListMember {
16319	s.Status = &v
16320	return s
16321}
16322
16323// SetStatusMessage sets the StatusMessage field's value.
16324func (s *RestoreJobsListMember) SetStatusMessage(v string) *RestoreJobsListMember {
16325	s.StatusMessage = &v
16326	return s
16327}
16328
16329// Specifies a scheduled task used to back up a selection of resources.
16330type Rule struct {
16331	_ struct{} `type:"structure"`
16332
16333	// A value in minutes after a backup job is successfully started before it must
16334	// be completed or it will be canceled by Backup. This value is optional.
16335	CompletionWindowMinutes *int64 `type:"long"`
16336
16337	// An array of CopyAction objects, which contains the details of the copy operation.
16338	CopyActions []*CopyAction `type:"list"`
16339
16340	// Specifies whether Backup creates continuous backups. True causes Backup to
16341	// create continuous backups capable of point-in-time restore (PITR). False
16342	// (or not specified) causes Backup to create snapshot backups.
16343	EnableContinuousBackup *bool `type:"boolean"`
16344
16345	// The lifecycle defines when a protected resource is transitioned to cold storage
16346	// and when it expires. Backup transitions and expires backups automatically
16347	// according to the lifecycle that you define.
16348	//
16349	// Backups transitioned to cold storage must be stored in cold storage for a
16350	// minimum of 90 days. Therefore, the “expire after days” setting must be
16351	// 90 days greater than the “transition to cold after days” setting. The
16352	// “transition to cold after days” setting cannot be changed after a backup
16353	// has been transitioned to cold.
16354	//
16355	// Only Amazon EFS file system backups can be transitioned to cold storage.
16356	Lifecycle *Lifecycle `type:"structure"`
16357
16358	// An array of key-value pair strings that are assigned to resources that are
16359	// associated with this rule when restored from backup.
16360	//
16361	// RecoveryPointTags is a sensitive parameter and its value will be
16362	// replaced with "sensitive" in string returned by Rule's
16363	// String and GoString methods.
16364	RecoveryPointTags map[string]*string `type:"map" sensitive:"true"`
16365
16366	// Uniquely identifies a rule that is used to schedule the backup of a selection
16367	// of resources.
16368	RuleId *string `type:"string"`
16369
16370	// An optional display name for a backup rule.
16371	//
16372	// RuleName is a required field
16373	RuleName *string `type:"string" required:"true"`
16374
16375	// A cron expression in UTC specifying when Backup initiates a backup job. For
16376	// more information about cron expressions, see Schedule Expressions for Rules
16377	// (https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html)
16378	// in the Amazon CloudWatch Events User Guide.. Prior to specifying a value
16379	// for this parameter, we recommend testing your cron expression using one of
16380	// the many available cron generator and testing tools.
16381	ScheduleExpression *string `type:"string"`
16382
16383	// A value in minutes after a backup is scheduled before a job will be canceled
16384	// if it doesn't start successfully. This value is optional.
16385	StartWindowMinutes *int64 `type:"long"`
16386
16387	// The name of a logical container where backups are stored. Backup vaults are
16388	// identified by names that are unique to the account used to create them and
16389	// the Amazon Web Services Region where they are created. They consist of lowercase
16390	// letters, numbers, and hyphens.
16391	//
16392	// TargetBackupVaultName is a required field
16393	TargetBackupVaultName *string `type:"string" required:"true"`
16394}
16395
16396// String returns the string representation.
16397//
16398// API parameter values that are decorated as "sensitive" in the API will not
16399// be included in the string output. The member name will be present, but the
16400// value will be replaced with "sensitive".
16401func (s Rule) String() string {
16402	return awsutil.Prettify(s)
16403}
16404
16405// GoString returns the string representation.
16406//
16407// API parameter values that are decorated as "sensitive" in the API will not
16408// be included in the string output. The member name will be present, but the
16409// value will be replaced with "sensitive".
16410func (s Rule) GoString() string {
16411	return s.String()
16412}
16413
16414// SetCompletionWindowMinutes sets the CompletionWindowMinutes field's value.
16415func (s *Rule) SetCompletionWindowMinutes(v int64) *Rule {
16416	s.CompletionWindowMinutes = &v
16417	return s
16418}
16419
16420// SetCopyActions sets the CopyActions field's value.
16421func (s *Rule) SetCopyActions(v []*CopyAction) *Rule {
16422	s.CopyActions = v
16423	return s
16424}
16425
16426// SetEnableContinuousBackup sets the EnableContinuousBackup field's value.
16427func (s *Rule) SetEnableContinuousBackup(v bool) *Rule {
16428	s.EnableContinuousBackup = &v
16429	return s
16430}
16431
16432// SetLifecycle sets the Lifecycle field's value.
16433func (s *Rule) SetLifecycle(v *Lifecycle) *Rule {
16434	s.Lifecycle = v
16435	return s
16436}
16437
16438// SetRecoveryPointTags sets the RecoveryPointTags field's value.
16439func (s *Rule) SetRecoveryPointTags(v map[string]*string) *Rule {
16440	s.RecoveryPointTags = v
16441	return s
16442}
16443
16444// SetRuleId sets the RuleId field's value.
16445func (s *Rule) SetRuleId(v string) *Rule {
16446	s.RuleId = &v
16447	return s
16448}
16449
16450// SetRuleName sets the RuleName field's value.
16451func (s *Rule) SetRuleName(v string) *Rule {
16452	s.RuleName = &v
16453	return s
16454}
16455
16456// SetScheduleExpression sets the ScheduleExpression field's value.
16457func (s *Rule) SetScheduleExpression(v string) *Rule {
16458	s.ScheduleExpression = &v
16459	return s
16460}
16461
16462// SetStartWindowMinutes sets the StartWindowMinutes field's value.
16463func (s *Rule) SetStartWindowMinutes(v int64) *Rule {
16464	s.StartWindowMinutes = &v
16465	return s
16466}
16467
16468// SetTargetBackupVaultName sets the TargetBackupVaultName field's value.
16469func (s *Rule) SetTargetBackupVaultName(v string) *Rule {
16470	s.TargetBackupVaultName = &v
16471	return s
16472}
16473
16474// Specifies a scheduled task used to back up a selection of resources.
16475type RuleInput struct {
16476	_ struct{} `type:"structure"`
16477
16478	// A value in minutes after a backup job is successfully started before it must
16479	// be completed or it will be canceled by Backup. This value is optional.
16480	CompletionWindowMinutes *int64 `type:"long"`
16481
16482	// An array of CopyAction objects, which contains the details of the copy operation.
16483	CopyActions []*CopyAction `type:"list"`
16484
16485	// Specifies whether Backup creates continuous backups. True causes Backup to
16486	// create continuous backups capable of point-in-time restore (PITR). False
16487	// (or not specified) causes Backup to create snapshot backups.
16488	EnableContinuousBackup *bool `type:"boolean"`
16489
16490	// The lifecycle defines when a protected resource is transitioned to cold storage
16491	// and when it expires. Backup will transition and expire backups automatically
16492	// according to the lifecycle that you define.
16493	//
16494	// Backups transitioned to cold storage must be stored in cold storage for a
16495	// minimum of 90 days. Therefore, the “expire after days” setting must be
16496	// 90 days greater than the “transition to cold after days” setting. The
16497	// “transition to cold after days” setting cannot be changed after a backup
16498	// has been transitioned to cold.
16499	//
16500	// Only Amazon EFS file system backups can be transitioned to cold storage.
16501	Lifecycle *Lifecycle `type:"structure"`
16502
16503	// To help organize your resources, you can assign your own metadata to the
16504	// resources that you create. Each tag is a key-value pair.
16505	//
16506	// RecoveryPointTags is a sensitive parameter and its value will be
16507	// replaced with "sensitive" in string returned by RuleInput's
16508	// String and GoString methods.
16509	RecoveryPointTags map[string]*string `type:"map" sensitive:"true"`
16510
16511	// An optional display name for a backup rule.
16512	//
16513	// RuleName is a required field
16514	RuleName *string `type:"string" required:"true"`
16515
16516	// A CRON expression in UTC specifying when Backup initiates a backup job.
16517	ScheduleExpression *string `type:"string"`
16518
16519	// A value in minutes after a backup is scheduled before a job will be canceled
16520	// if it doesn't start successfully. This value is optional.
16521	StartWindowMinutes *int64 `type:"long"`
16522
16523	// The name of a logical container where backups are stored. Backup vaults are
16524	// identified by names that are unique to the account used to create them and
16525	// the Amazon Web Services Region where they are created. They consist of lowercase
16526	// letters, numbers, and hyphens.
16527	//
16528	// TargetBackupVaultName is a required field
16529	TargetBackupVaultName *string `type:"string" required:"true"`
16530}
16531
16532// String returns the string representation.
16533//
16534// API parameter values that are decorated as "sensitive" in the API will not
16535// be included in the string output. The member name will be present, but the
16536// value will be replaced with "sensitive".
16537func (s RuleInput) String() string {
16538	return awsutil.Prettify(s)
16539}
16540
16541// GoString returns the string representation.
16542//
16543// API parameter values that are decorated as "sensitive" in the API will not
16544// be included in the string output. The member name will be present, but the
16545// value will be replaced with "sensitive".
16546func (s RuleInput) GoString() string {
16547	return s.String()
16548}
16549
16550// Validate inspects the fields of the type to determine if they are valid.
16551func (s *RuleInput) Validate() error {
16552	invalidParams := request.ErrInvalidParams{Context: "RuleInput"}
16553	if s.RuleName == nil {
16554		invalidParams.Add(request.NewErrParamRequired("RuleName"))
16555	}
16556	if s.TargetBackupVaultName == nil {
16557		invalidParams.Add(request.NewErrParamRequired("TargetBackupVaultName"))
16558	}
16559	if s.CopyActions != nil {
16560		for i, v := range s.CopyActions {
16561			if v == nil {
16562				continue
16563			}
16564			if err := v.Validate(); err != nil {
16565				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CopyActions", i), err.(request.ErrInvalidParams))
16566			}
16567		}
16568	}
16569
16570	if invalidParams.Len() > 0 {
16571		return invalidParams
16572	}
16573	return nil
16574}
16575
16576// SetCompletionWindowMinutes sets the CompletionWindowMinutes field's value.
16577func (s *RuleInput) SetCompletionWindowMinutes(v int64) *RuleInput {
16578	s.CompletionWindowMinutes = &v
16579	return s
16580}
16581
16582// SetCopyActions sets the CopyActions field's value.
16583func (s *RuleInput) SetCopyActions(v []*CopyAction) *RuleInput {
16584	s.CopyActions = v
16585	return s
16586}
16587
16588// SetEnableContinuousBackup sets the EnableContinuousBackup field's value.
16589func (s *RuleInput) SetEnableContinuousBackup(v bool) *RuleInput {
16590	s.EnableContinuousBackup = &v
16591	return s
16592}
16593
16594// SetLifecycle sets the Lifecycle field's value.
16595func (s *RuleInput) SetLifecycle(v *Lifecycle) *RuleInput {
16596	s.Lifecycle = v
16597	return s
16598}
16599
16600// SetRecoveryPointTags sets the RecoveryPointTags field's value.
16601func (s *RuleInput) SetRecoveryPointTags(v map[string]*string) *RuleInput {
16602	s.RecoveryPointTags = v
16603	return s
16604}
16605
16606// SetRuleName sets the RuleName field's value.
16607func (s *RuleInput) SetRuleName(v string) *RuleInput {
16608	s.RuleName = &v
16609	return s
16610}
16611
16612// SetScheduleExpression sets the ScheduleExpression field's value.
16613func (s *RuleInput) SetScheduleExpression(v string) *RuleInput {
16614	s.ScheduleExpression = &v
16615	return s
16616}
16617
16618// SetStartWindowMinutes sets the StartWindowMinutes field's value.
16619func (s *RuleInput) SetStartWindowMinutes(v int64) *RuleInput {
16620	s.StartWindowMinutes = &v
16621	return s
16622}
16623
16624// SetTargetBackupVaultName sets the TargetBackupVaultName field's value.
16625func (s *RuleInput) SetTargetBackupVaultName(v string) *RuleInput {
16626	s.TargetBackupVaultName = &v
16627	return s
16628}
16629
16630// Used to specify a set of resources to a backup plan.
16631type Selection struct {
16632	_ struct{} `type:"structure"`
16633
16634	// The ARN of the IAM role that Backup uses to authenticate when backing up
16635	// the target resource; for example, arn:aws:iam::123456789012:role/S3Access.
16636	//
16637	// IamRoleArn is a required field
16638	IamRoleArn *string `type:"string" required:"true"`
16639
16640	// An array of conditions used to specify a set of resources to assign to a
16641	// backup plan; for example, "StringEquals": {"ec2:ResourceTag/Department":
16642	// "accounting". Assigns the backup plan to every resource with at least one
16643	// matching tag.
16644	ListOfTags []*Condition `type:"list"`
16645
16646	// An array of strings that contain Amazon Resource Names (ARNs) of resources
16647	// to assign to a backup plan.
16648	Resources []*string `type:"list"`
16649
16650	// The display name of a resource selection document.
16651	//
16652	// SelectionName is a required field
16653	SelectionName *string `type:"string" required:"true"`
16654}
16655
16656// String returns the string representation.
16657//
16658// API parameter values that are decorated as "sensitive" in the API will not
16659// be included in the string output. The member name will be present, but the
16660// value will be replaced with "sensitive".
16661func (s Selection) String() string {
16662	return awsutil.Prettify(s)
16663}
16664
16665// GoString returns the string representation.
16666//
16667// API parameter values that are decorated as "sensitive" in the API will not
16668// be included in the string output. The member name will be present, but the
16669// value will be replaced with "sensitive".
16670func (s Selection) GoString() string {
16671	return s.String()
16672}
16673
16674// Validate inspects the fields of the type to determine if they are valid.
16675func (s *Selection) Validate() error {
16676	invalidParams := request.ErrInvalidParams{Context: "Selection"}
16677	if s.IamRoleArn == nil {
16678		invalidParams.Add(request.NewErrParamRequired("IamRoleArn"))
16679	}
16680	if s.SelectionName == nil {
16681		invalidParams.Add(request.NewErrParamRequired("SelectionName"))
16682	}
16683	if s.ListOfTags != nil {
16684		for i, v := range s.ListOfTags {
16685			if v == nil {
16686				continue
16687			}
16688			if err := v.Validate(); err != nil {
16689				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ListOfTags", i), err.(request.ErrInvalidParams))
16690			}
16691		}
16692	}
16693
16694	if invalidParams.Len() > 0 {
16695		return invalidParams
16696	}
16697	return nil
16698}
16699
16700// SetIamRoleArn sets the IamRoleArn field's value.
16701func (s *Selection) SetIamRoleArn(v string) *Selection {
16702	s.IamRoleArn = &v
16703	return s
16704}
16705
16706// SetListOfTags sets the ListOfTags field's value.
16707func (s *Selection) SetListOfTags(v []*Condition) *Selection {
16708	s.ListOfTags = v
16709	return s
16710}
16711
16712// SetResources sets the Resources field's value.
16713func (s *Selection) SetResources(v []*string) *Selection {
16714	s.Resources = v
16715	return s
16716}
16717
16718// SetSelectionName sets the SelectionName field's value.
16719func (s *Selection) SetSelectionName(v string) *Selection {
16720	s.SelectionName = &v
16721	return s
16722}
16723
16724// Contains metadata about a BackupSelection object.
16725type SelectionsListMember struct {
16726	_ struct{} `type:"structure"`
16727
16728	// Uniquely identifies a backup plan.
16729	BackupPlanId *string `type:"string"`
16730
16731	// The date and time a backup plan is created, in Unix format and Coordinated
16732	// Universal Time (UTC). The value of CreationDate is accurate to milliseconds.
16733	// For example, the value 1516925490.087 represents Friday, January 26, 2018
16734	// 12:11:30.087 AM.
16735	CreationDate *time.Time `type:"timestamp"`
16736
16737	// A unique string that identifies the request and allows failed requests to
16738	// be retried without the risk of running the operation twice.
16739	CreatorRequestId *string `type:"string"`
16740
16741	// Specifies the IAM role Amazon Resource Name (ARN) to create the target recovery
16742	// point; for example, arn:aws:iam::123456789012:role/S3Access.
16743	IamRoleArn *string `type:"string"`
16744
16745	// Uniquely identifies a request to assign a set of resources to a backup plan.
16746	SelectionId *string `type:"string"`
16747
16748	// The display name of a resource selection document.
16749	SelectionName *string `type:"string"`
16750}
16751
16752// String returns the string representation.
16753//
16754// API parameter values that are decorated as "sensitive" in the API will not
16755// be included in the string output. The member name will be present, but the
16756// value will be replaced with "sensitive".
16757func (s SelectionsListMember) String() string {
16758	return awsutil.Prettify(s)
16759}
16760
16761// GoString returns the string representation.
16762//
16763// API parameter values that are decorated as "sensitive" in the API will not
16764// be included in the string output. The member name will be present, but the
16765// value will be replaced with "sensitive".
16766func (s SelectionsListMember) GoString() string {
16767	return s.String()
16768}
16769
16770// SetBackupPlanId sets the BackupPlanId field's value.
16771func (s *SelectionsListMember) SetBackupPlanId(v string) *SelectionsListMember {
16772	s.BackupPlanId = &v
16773	return s
16774}
16775
16776// SetCreationDate sets the CreationDate field's value.
16777func (s *SelectionsListMember) SetCreationDate(v time.Time) *SelectionsListMember {
16778	s.CreationDate = &v
16779	return s
16780}
16781
16782// SetCreatorRequestId sets the CreatorRequestId field's value.
16783func (s *SelectionsListMember) SetCreatorRequestId(v string) *SelectionsListMember {
16784	s.CreatorRequestId = &v
16785	return s
16786}
16787
16788// SetIamRoleArn sets the IamRoleArn field's value.
16789func (s *SelectionsListMember) SetIamRoleArn(v string) *SelectionsListMember {
16790	s.IamRoleArn = &v
16791	return s
16792}
16793
16794// SetSelectionId sets the SelectionId field's value.
16795func (s *SelectionsListMember) SetSelectionId(v string) *SelectionsListMember {
16796	s.SelectionId = &v
16797	return s
16798}
16799
16800// SetSelectionName sets the SelectionName field's value.
16801func (s *SelectionsListMember) SetSelectionName(v string) *SelectionsListMember {
16802	s.SelectionName = &v
16803	return s
16804}
16805
16806// The request failed due to a temporary failure of the server.
16807type ServiceUnavailableException struct {
16808	_            struct{}                  `type:"structure"`
16809	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16810
16811	Code_ *string `locationName:"Code" type:"string"`
16812
16813	Context *string `type:"string"`
16814
16815	Message_ *string `locationName:"Message" type:"string"`
16816
16817	Type *string `type:"string"`
16818}
16819
16820// String returns the string representation.
16821//
16822// API parameter values that are decorated as "sensitive" in the API will not
16823// be included in the string output. The member name will be present, but the
16824// value will be replaced with "sensitive".
16825func (s ServiceUnavailableException) String() string {
16826	return awsutil.Prettify(s)
16827}
16828
16829// GoString returns the string representation.
16830//
16831// API parameter values that are decorated as "sensitive" in the API will not
16832// be included in the string output. The member name will be present, but the
16833// value will be replaced with "sensitive".
16834func (s ServiceUnavailableException) GoString() string {
16835	return s.String()
16836}
16837
16838func newErrorServiceUnavailableException(v protocol.ResponseMetadata) error {
16839	return &ServiceUnavailableException{
16840		RespMetadata: v,
16841	}
16842}
16843
16844// Code returns the exception type name.
16845func (s *ServiceUnavailableException) Code() string {
16846	return "ServiceUnavailableException"
16847}
16848
16849// Message returns the exception's message.
16850func (s *ServiceUnavailableException) Message() string {
16851	if s.Message_ != nil {
16852		return *s.Message_
16853	}
16854	return ""
16855}
16856
16857// OrigErr always returns nil, satisfies awserr.Error interface.
16858func (s *ServiceUnavailableException) OrigErr() error {
16859	return nil
16860}
16861
16862func (s *ServiceUnavailableException) Error() string {
16863	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
16864}
16865
16866// Status code returns the HTTP status code for the request's response error.
16867func (s *ServiceUnavailableException) StatusCode() int {
16868	return s.RespMetadata.StatusCode
16869}
16870
16871// RequestID returns the service's response RequestID for request.
16872func (s *ServiceUnavailableException) RequestID() string {
16873	return s.RespMetadata.RequestID
16874}
16875
16876type StartBackupJobInput struct {
16877	_ struct{} `type:"structure"`
16878
16879	// Specifies the backup option for a selected resource. This option is only
16880	// available for Windows Volume Shadow Copy Service (VSS) backup jobs.
16881	//
16882	// Valid values: Set to "WindowsVSS":"enabled" to enable the WindowsVSS backup
16883	// option and create a Windows VSS backup. Set to "WindowsVSS""disabled" to
16884	// create a regular backup. The WindowsVSS option is not enabled by default.
16885	BackupOptions map[string]*string `type:"map"`
16886
16887	// The name of a logical container where backups are stored. Backup vaults are
16888	// identified by names that are unique to the account used to create them and
16889	// the Amazon Web Services Region where they are created. They consist of lowercase
16890	// letters, numbers, and hyphens.
16891	//
16892	// BackupVaultName is a required field
16893	BackupVaultName *string `type:"string" required:"true"`
16894
16895	// A value in minutes during which a successfully started backup must complete,
16896	// or else AWS Backup will cancel the job. This value is optional. This value
16897	// begins counting down from when the backup was scheduled. It does not add
16898	// additional time for StartWindowMinutes, or if the backup started later than
16899	// scheduled.
16900	CompleteWindowMinutes *int64 `type:"long"`
16901
16902	// Specifies the IAM role ARN used to create the target recovery point; for
16903	// example, arn:aws:iam::123456789012:role/S3Access.
16904	//
16905	// IamRoleArn is a required field
16906	IamRoleArn *string `type:"string" required:"true"`
16907
16908	// A customer-chosen string that you can use to distinguish between otherwise
16909	// identical calls to StartBackupJob. Retrying a successful request with the
16910	// same idempotency token results in a success message with no action taken.
16911	IdempotencyToken *string `type:"string"`
16912
16913	// The lifecycle defines when a protected resource is transitioned to cold storage
16914	// and when it expires. Backup will transition and expire backups automatically
16915	// according to the lifecycle that you define.
16916	//
16917	// Backups transitioned to cold storage must be stored in cold storage for a
16918	// minimum of 90 days. Therefore, the “expire after days” setting must be
16919	// 90 days greater than the “transition to cold after days” setting. The
16920	// “transition to cold after days” setting cannot be changed after a backup
16921	// has been transitioned to cold.
16922	//
16923	// Only Amazon EFS file system backups can be transitioned to cold storage.
16924	Lifecycle *Lifecycle `type:"structure"`
16925
16926	// To help organize your resources, you can assign your own metadata to the
16927	// resources that you create. Each tag is a key-value pair.
16928	//
16929	// RecoveryPointTags is a sensitive parameter and its value will be
16930	// replaced with "sensitive" in string returned by StartBackupJobInput's
16931	// String and GoString methods.
16932	RecoveryPointTags map[string]*string `type:"map" sensitive:"true"`
16933
16934	// An Amazon Resource Name (ARN) that uniquely identifies a resource. The format
16935	// of the ARN depends on the resource type.
16936	//
16937	// ResourceArn is a required field
16938	ResourceArn *string `type:"string" required:"true"`
16939
16940	// A value in minutes after a backup is scheduled before a job will be canceled
16941	// if it doesn't start successfully. This value is optional, and the default
16942	// is 8 hours.
16943	StartWindowMinutes *int64 `type:"long"`
16944}
16945
16946// String returns the string representation.
16947//
16948// API parameter values that are decorated as "sensitive" in the API will not
16949// be included in the string output. The member name will be present, but the
16950// value will be replaced with "sensitive".
16951func (s StartBackupJobInput) String() string {
16952	return awsutil.Prettify(s)
16953}
16954
16955// GoString returns the string representation.
16956//
16957// API parameter values that are decorated as "sensitive" in the API will not
16958// be included in the string output. The member name will be present, but the
16959// value will be replaced with "sensitive".
16960func (s StartBackupJobInput) GoString() string {
16961	return s.String()
16962}
16963
16964// Validate inspects the fields of the type to determine if they are valid.
16965func (s *StartBackupJobInput) Validate() error {
16966	invalidParams := request.ErrInvalidParams{Context: "StartBackupJobInput"}
16967	if s.BackupVaultName == nil {
16968		invalidParams.Add(request.NewErrParamRequired("BackupVaultName"))
16969	}
16970	if s.IamRoleArn == nil {
16971		invalidParams.Add(request.NewErrParamRequired("IamRoleArn"))
16972	}
16973	if s.ResourceArn == nil {
16974		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
16975	}
16976
16977	if invalidParams.Len() > 0 {
16978		return invalidParams
16979	}
16980	return nil
16981}
16982
16983// SetBackupOptions sets the BackupOptions field's value.
16984func (s *StartBackupJobInput) SetBackupOptions(v map[string]*string) *StartBackupJobInput {
16985	s.BackupOptions = v
16986	return s
16987}
16988
16989// SetBackupVaultName sets the BackupVaultName field's value.
16990func (s *StartBackupJobInput) SetBackupVaultName(v string) *StartBackupJobInput {
16991	s.BackupVaultName = &v
16992	return s
16993}
16994
16995// SetCompleteWindowMinutes sets the CompleteWindowMinutes field's value.
16996func (s *StartBackupJobInput) SetCompleteWindowMinutes(v int64) *StartBackupJobInput {
16997	s.CompleteWindowMinutes = &v
16998	return s
16999}
17000
17001// SetIamRoleArn sets the IamRoleArn field's value.
17002func (s *StartBackupJobInput) SetIamRoleArn(v string) *StartBackupJobInput {
17003	s.IamRoleArn = &v
17004	return s
17005}
17006
17007// SetIdempotencyToken sets the IdempotencyToken field's value.
17008func (s *StartBackupJobInput) SetIdempotencyToken(v string) *StartBackupJobInput {
17009	s.IdempotencyToken = &v
17010	return s
17011}
17012
17013// SetLifecycle sets the Lifecycle field's value.
17014func (s *StartBackupJobInput) SetLifecycle(v *Lifecycle) *StartBackupJobInput {
17015	s.Lifecycle = v
17016	return s
17017}
17018
17019// SetRecoveryPointTags sets the RecoveryPointTags field's value.
17020func (s *StartBackupJobInput) SetRecoveryPointTags(v map[string]*string) *StartBackupJobInput {
17021	s.RecoveryPointTags = v
17022	return s
17023}
17024
17025// SetResourceArn sets the ResourceArn field's value.
17026func (s *StartBackupJobInput) SetResourceArn(v string) *StartBackupJobInput {
17027	s.ResourceArn = &v
17028	return s
17029}
17030
17031// SetStartWindowMinutes sets the StartWindowMinutes field's value.
17032func (s *StartBackupJobInput) SetStartWindowMinutes(v int64) *StartBackupJobInput {
17033	s.StartWindowMinutes = &v
17034	return s
17035}
17036
17037type StartBackupJobOutput struct {
17038	_ struct{} `type:"structure"`
17039
17040	// Uniquely identifies a request to Backup to back up a resource.
17041	BackupJobId *string `type:"string"`
17042
17043	// The date and time that a backup job is created, in Unix format and Coordinated
17044	// Universal Time (UTC). The value of CreationDate is accurate to milliseconds.
17045	// For example, the value 1516925490.087 represents Friday, January 26, 2018
17046	// 12:11:30.087 AM.
17047	CreationDate *time.Time `type:"timestamp"`
17048
17049	// An ARN that uniquely identifies a recovery point; for example, arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45.
17050	RecoveryPointArn *string `type:"string"`
17051}
17052
17053// String returns the string representation.
17054//
17055// API parameter values that are decorated as "sensitive" in the API will not
17056// be included in the string output. The member name will be present, but the
17057// value will be replaced with "sensitive".
17058func (s StartBackupJobOutput) String() string {
17059	return awsutil.Prettify(s)
17060}
17061
17062// GoString returns the string representation.
17063//
17064// API parameter values that are decorated as "sensitive" in the API will not
17065// be included in the string output. The member name will be present, but the
17066// value will be replaced with "sensitive".
17067func (s StartBackupJobOutput) GoString() string {
17068	return s.String()
17069}
17070
17071// SetBackupJobId sets the BackupJobId field's value.
17072func (s *StartBackupJobOutput) SetBackupJobId(v string) *StartBackupJobOutput {
17073	s.BackupJobId = &v
17074	return s
17075}
17076
17077// SetCreationDate sets the CreationDate field's value.
17078func (s *StartBackupJobOutput) SetCreationDate(v time.Time) *StartBackupJobOutput {
17079	s.CreationDate = &v
17080	return s
17081}
17082
17083// SetRecoveryPointArn sets the RecoveryPointArn field's value.
17084func (s *StartBackupJobOutput) SetRecoveryPointArn(v string) *StartBackupJobOutput {
17085	s.RecoveryPointArn = &v
17086	return s
17087}
17088
17089type StartCopyJobInput struct {
17090	_ struct{} `type:"structure"`
17091
17092	// An Amazon Resource Name (ARN) that uniquely identifies a destination backup
17093	// vault to copy to; for example, arn:aws:backup:us-east-1:123456789012:vault:aBackupVault.
17094	//
17095	// DestinationBackupVaultArn is a required field
17096	DestinationBackupVaultArn *string `type:"string" required:"true"`
17097
17098	// Specifies the IAM role ARN used to copy the target recovery point; for example,
17099	// arn:aws:iam::123456789012:role/S3Access.
17100	//
17101	// IamRoleArn is a required field
17102	IamRoleArn *string `type:"string" required:"true"`
17103
17104	// A customer-chosen string that you can use to distinguish between otherwise
17105	// identical calls to StartCopyJob. Retrying a successful request with the same
17106	// idempotency token results in a success message with no action taken.
17107	IdempotencyToken *string `type:"string"`
17108
17109	// Contains an array of Transition objects specifying how long in days before
17110	// a recovery point transitions to cold storage or is deleted.
17111	//
17112	// Backups transitioned to cold storage must be stored in cold storage for a
17113	// minimum of 90 days. Therefore, on the console, the “expire after days”
17114	// setting must be 90 days greater than the “transition to cold after days”
17115	// setting. The “transition to cold after days” setting cannot be changed
17116	// after a backup has been transitioned to cold.
17117	//
17118	// Only Amazon EFS file system backups can be transitioned to cold storage.
17119	Lifecycle *Lifecycle `type:"structure"`
17120
17121	// An ARN that uniquely identifies a recovery point to use for the copy job;
17122	// for example, arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45.
17123	//
17124	// RecoveryPointArn is a required field
17125	RecoveryPointArn *string `type:"string" required:"true"`
17126
17127	// The name of a logical source container where backups are stored. Backup vaults
17128	// are identified by names that are unique to the account used to create them
17129	// and the Amazon Web Services Region where they are created. They consist of
17130	// lowercase letters, numbers, and hyphens.
17131	//
17132	// SourceBackupVaultName is a required field
17133	SourceBackupVaultName *string `type:"string" required:"true"`
17134}
17135
17136// String returns the string representation.
17137//
17138// API parameter values that are decorated as "sensitive" in the API will not
17139// be included in the string output. The member name will be present, but the
17140// value will be replaced with "sensitive".
17141func (s StartCopyJobInput) String() string {
17142	return awsutil.Prettify(s)
17143}
17144
17145// GoString returns the string representation.
17146//
17147// API parameter values that are decorated as "sensitive" in the API will not
17148// be included in the string output. The member name will be present, but the
17149// value will be replaced with "sensitive".
17150func (s StartCopyJobInput) GoString() string {
17151	return s.String()
17152}
17153
17154// Validate inspects the fields of the type to determine if they are valid.
17155func (s *StartCopyJobInput) Validate() error {
17156	invalidParams := request.ErrInvalidParams{Context: "StartCopyJobInput"}
17157	if s.DestinationBackupVaultArn == nil {
17158		invalidParams.Add(request.NewErrParamRequired("DestinationBackupVaultArn"))
17159	}
17160	if s.IamRoleArn == nil {
17161		invalidParams.Add(request.NewErrParamRequired("IamRoleArn"))
17162	}
17163	if s.RecoveryPointArn == nil {
17164		invalidParams.Add(request.NewErrParamRequired("RecoveryPointArn"))
17165	}
17166	if s.SourceBackupVaultName == nil {
17167		invalidParams.Add(request.NewErrParamRequired("SourceBackupVaultName"))
17168	}
17169
17170	if invalidParams.Len() > 0 {
17171		return invalidParams
17172	}
17173	return nil
17174}
17175
17176// SetDestinationBackupVaultArn sets the DestinationBackupVaultArn field's value.
17177func (s *StartCopyJobInput) SetDestinationBackupVaultArn(v string) *StartCopyJobInput {
17178	s.DestinationBackupVaultArn = &v
17179	return s
17180}
17181
17182// SetIamRoleArn sets the IamRoleArn field's value.
17183func (s *StartCopyJobInput) SetIamRoleArn(v string) *StartCopyJobInput {
17184	s.IamRoleArn = &v
17185	return s
17186}
17187
17188// SetIdempotencyToken sets the IdempotencyToken field's value.
17189func (s *StartCopyJobInput) SetIdempotencyToken(v string) *StartCopyJobInput {
17190	s.IdempotencyToken = &v
17191	return s
17192}
17193
17194// SetLifecycle sets the Lifecycle field's value.
17195func (s *StartCopyJobInput) SetLifecycle(v *Lifecycle) *StartCopyJobInput {
17196	s.Lifecycle = v
17197	return s
17198}
17199
17200// SetRecoveryPointArn sets the RecoveryPointArn field's value.
17201func (s *StartCopyJobInput) SetRecoveryPointArn(v string) *StartCopyJobInput {
17202	s.RecoveryPointArn = &v
17203	return s
17204}
17205
17206// SetSourceBackupVaultName sets the SourceBackupVaultName field's value.
17207func (s *StartCopyJobInput) SetSourceBackupVaultName(v string) *StartCopyJobInput {
17208	s.SourceBackupVaultName = &v
17209	return s
17210}
17211
17212type StartCopyJobOutput struct {
17213	_ struct{} `type:"structure"`
17214
17215	// Uniquely identifies a copy job.
17216	CopyJobId *string `type:"string"`
17217
17218	// The date and time that a copy job is created, in Unix format and Coordinated
17219	// Universal Time (UTC). The value of CreationDate is accurate to milliseconds.
17220	// For example, the value 1516925490.087 represents Friday, January 26, 2018
17221	// 12:11:30.087 AM.
17222	CreationDate *time.Time `type:"timestamp"`
17223}
17224
17225// String returns the string representation.
17226//
17227// API parameter values that are decorated as "sensitive" in the API will not
17228// be included in the string output. The member name will be present, but the
17229// value will be replaced with "sensitive".
17230func (s StartCopyJobOutput) String() string {
17231	return awsutil.Prettify(s)
17232}
17233
17234// GoString returns the string representation.
17235//
17236// API parameter values that are decorated as "sensitive" in the API will not
17237// be included in the string output. The member name will be present, but the
17238// value will be replaced with "sensitive".
17239func (s StartCopyJobOutput) GoString() string {
17240	return s.String()
17241}
17242
17243// SetCopyJobId sets the CopyJobId field's value.
17244func (s *StartCopyJobOutput) SetCopyJobId(v string) *StartCopyJobOutput {
17245	s.CopyJobId = &v
17246	return s
17247}
17248
17249// SetCreationDate sets the CreationDate field's value.
17250func (s *StartCopyJobOutput) SetCreationDate(v time.Time) *StartCopyJobOutput {
17251	s.CreationDate = &v
17252	return s
17253}
17254
17255type StartReportJobInput struct {
17256	_ struct{} `type:"structure"`
17257
17258	// A customer-chosen string that you can use to distinguish between otherwise
17259	// identical calls to StartReportJobInput. Retrying a successful request with
17260	// the same idempotency token results in a success message with no action taken.
17261	IdempotencyToken *string `type:"string" idempotencyToken:"true"`
17262
17263	// The unique name of a report plan.
17264	//
17265	// ReportPlanName is a required field
17266	ReportPlanName *string `location:"uri" locationName:"reportPlanName" min:"1" type:"string" required:"true"`
17267}
17268
17269// String returns the string representation.
17270//
17271// API parameter values that are decorated as "sensitive" in the API will not
17272// be included in the string output. The member name will be present, but the
17273// value will be replaced with "sensitive".
17274func (s StartReportJobInput) String() string {
17275	return awsutil.Prettify(s)
17276}
17277
17278// GoString returns the string representation.
17279//
17280// API parameter values that are decorated as "sensitive" in the API will not
17281// be included in the string output. The member name will be present, but the
17282// value will be replaced with "sensitive".
17283func (s StartReportJobInput) GoString() string {
17284	return s.String()
17285}
17286
17287// Validate inspects the fields of the type to determine if they are valid.
17288func (s *StartReportJobInput) Validate() error {
17289	invalidParams := request.ErrInvalidParams{Context: "StartReportJobInput"}
17290	if s.ReportPlanName == nil {
17291		invalidParams.Add(request.NewErrParamRequired("ReportPlanName"))
17292	}
17293	if s.ReportPlanName != nil && len(*s.ReportPlanName) < 1 {
17294		invalidParams.Add(request.NewErrParamMinLen("ReportPlanName", 1))
17295	}
17296
17297	if invalidParams.Len() > 0 {
17298		return invalidParams
17299	}
17300	return nil
17301}
17302
17303// SetIdempotencyToken sets the IdempotencyToken field's value.
17304func (s *StartReportJobInput) SetIdempotencyToken(v string) *StartReportJobInput {
17305	s.IdempotencyToken = &v
17306	return s
17307}
17308
17309// SetReportPlanName sets the ReportPlanName field's value.
17310func (s *StartReportJobInput) SetReportPlanName(v string) *StartReportJobInput {
17311	s.ReportPlanName = &v
17312	return s
17313}
17314
17315type StartReportJobOutput struct {
17316	_ struct{} `type:"structure"`
17317
17318	// The identifier of the report job. A unique, randomly generated, Unicode,
17319	// UTF-8 encoded string that is at most 1,024 bytes long. The report job ID
17320	// cannot be edited.
17321	ReportJobId *string `type:"string"`
17322}
17323
17324// String returns the string representation.
17325//
17326// API parameter values that are decorated as "sensitive" in the API will not
17327// be included in the string output. The member name will be present, but the
17328// value will be replaced with "sensitive".
17329func (s StartReportJobOutput) String() string {
17330	return awsutil.Prettify(s)
17331}
17332
17333// GoString returns the string representation.
17334//
17335// API parameter values that are decorated as "sensitive" in the API will not
17336// be included in the string output. The member name will be present, but the
17337// value will be replaced with "sensitive".
17338func (s StartReportJobOutput) GoString() string {
17339	return s.String()
17340}
17341
17342// SetReportJobId sets the ReportJobId field's value.
17343func (s *StartReportJobOutput) SetReportJobId(v string) *StartReportJobOutput {
17344	s.ReportJobId = &v
17345	return s
17346}
17347
17348type StartRestoreJobInput struct {
17349	_ struct{} `type:"structure"`
17350
17351	// The Amazon Resource Name (ARN) of the IAM role that Backup uses to create
17352	// the target recovery point; for example, arn:aws:iam::123456789012:role/S3Access.
17353	//
17354	// IamRoleArn is a required field
17355	IamRoleArn *string `type:"string" required:"true"`
17356
17357	// A customer-chosen string that you can use to distinguish between otherwise
17358	// identical calls to StartRestoreJob. Retrying a successful request with the
17359	// same idempotency token results in a success message with no action taken.
17360	IdempotencyToken *string `type:"string"`
17361
17362	// A set of metadata key-value pairs. Contains information, such as a resource
17363	// name, required to restore a recovery point.
17364	//
17365	// You can get configuration metadata about a resource at the time it was backed
17366	// up by calling GetRecoveryPointRestoreMetadata. However, values in addition
17367	// to those provided by GetRecoveryPointRestoreMetadata might be required to
17368	// restore a resource. For example, you might need to provide a new resource
17369	// name if the original already exists.
17370	//
17371	// You need to specify specific metadata to restore an Amazon Elastic File System
17372	// (Amazon EFS) instance:
17373	//
17374	//    * file-system-id: The ID of the Amazon EFS file system that is backed
17375	//    up by Backup. Returned in GetRecoveryPointRestoreMetadata.
17376	//
17377	//    * Encrypted: A Boolean value that, if true, specifies that the file system
17378	//    is encrypted. If KmsKeyId is specified, Encrypted must be set to true.
17379	//
17380	//    * KmsKeyId: Specifies the Amazon Web Services KMS key that is used to
17381	//    encrypt the restored file system. You can specify a key from another Amazon
17382	//    Web Services account provided that key it is properly shared with your
17383	//    account via Amazon Web Services KMS.
17384	//
17385	//    * PerformanceMode: Specifies the throughput mode of the file system.
17386	//
17387	//    * CreationToken: A user-supplied value that ensures the uniqueness (idempotency)
17388	//    of the request.
17389	//
17390	//    * newFileSystem: A Boolean value that, if true, specifies that the recovery
17391	//    point is restored to a new Amazon EFS file system.
17392	//
17393	//    * ItemsToRestore: An array of one to five strings where each string is
17394	//    a file path. Use ItemsToRestore to restore specific files or directories
17395	//    rather than the entire file system. This parameter is optional. For example,
17396	//    "itemsToRestore":"[\"/my.test\"]".
17397	//
17398	// Metadata is a sensitive parameter and its value will be
17399	// replaced with "sensitive" in string returned by StartRestoreJobInput's
17400	// String and GoString methods.
17401	//
17402	// Metadata is a required field
17403	Metadata map[string]*string `type:"map" required:"true" sensitive:"true"`
17404
17405	// An ARN that uniquely identifies a recovery point; for example, arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45.
17406	//
17407	// RecoveryPointArn is a required field
17408	RecoveryPointArn *string `type:"string" required:"true"`
17409
17410	// Starts a job to restore a recovery point for one of the following resources:
17411	//
17412	//    * DynamoDB for Amazon DynamoDB
17413	//
17414	//    * EBS for Amazon Elastic Block Store
17415	//
17416	//    * EC2 for Amazon Elastic Compute Cloud
17417	//
17418	//    * EFS for Amazon Elastic File System
17419	//
17420	//    * RDS for Amazon Relational Database Service
17421	//
17422	//    * Aurora for Amazon Aurora
17423	//
17424	//    * Storage Gateway for Storage Gateway
17425	ResourceType *string `type:"string"`
17426}
17427
17428// String returns the string representation.
17429//
17430// API parameter values that are decorated as "sensitive" in the API will not
17431// be included in the string output. The member name will be present, but the
17432// value will be replaced with "sensitive".
17433func (s StartRestoreJobInput) String() string {
17434	return awsutil.Prettify(s)
17435}
17436
17437// GoString returns the string representation.
17438//
17439// API parameter values that are decorated as "sensitive" in the API will not
17440// be included in the string output. The member name will be present, but the
17441// value will be replaced with "sensitive".
17442func (s StartRestoreJobInput) GoString() string {
17443	return s.String()
17444}
17445
17446// Validate inspects the fields of the type to determine if they are valid.
17447func (s *StartRestoreJobInput) Validate() error {
17448	invalidParams := request.ErrInvalidParams{Context: "StartRestoreJobInput"}
17449	if s.IamRoleArn == nil {
17450		invalidParams.Add(request.NewErrParamRequired("IamRoleArn"))
17451	}
17452	if s.Metadata == nil {
17453		invalidParams.Add(request.NewErrParamRequired("Metadata"))
17454	}
17455	if s.RecoveryPointArn == nil {
17456		invalidParams.Add(request.NewErrParamRequired("RecoveryPointArn"))
17457	}
17458
17459	if invalidParams.Len() > 0 {
17460		return invalidParams
17461	}
17462	return nil
17463}
17464
17465// SetIamRoleArn sets the IamRoleArn field's value.
17466func (s *StartRestoreJobInput) SetIamRoleArn(v string) *StartRestoreJobInput {
17467	s.IamRoleArn = &v
17468	return s
17469}
17470
17471// SetIdempotencyToken sets the IdempotencyToken field's value.
17472func (s *StartRestoreJobInput) SetIdempotencyToken(v string) *StartRestoreJobInput {
17473	s.IdempotencyToken = &v
17474	return s
17475}
17476
17477// SetMetadata sets the Metadata field's value.
17478func (s *StartRestoreJobInput) SetMetadata(v map[string]*string) *StartRestoreJobInput {
17479	s.Metadata = v
17480	return s
17481}
17482
17483// SetRecoveryPointArn sets the RecoveryPointArn field's value.
17484func (s *StartRestoreJobInput) SetRecoveryPointArn(v string) *StartRestoreJobInput {
17485	s.RecoveryPointArn = &v
17486	return s
17487}
17488
17489// SetResourceType sets the ResourceType field's value.
17490func (s *StartRestoreJobInput) SetResourceType(v string) *StartRestoreJobInput {
17491	s.ResourceType = &v
17492	return s
17493}
17494
17495type StartRestoreJobOutput struct {
17496	_ struct{} `type:"structure"`
17497
17498	// Uniquely identifies the job that restores a recovery point.
17499	RestoreJobId *string `type:"string"`
17500}
17501
17502// String returns the string representation.
17503//
17504// API parameter values that are decorated as "sensitive" in the API will not
17505// be included in the string output. The member name will be present, but the
17506// value will be replaced with "sensitive".
17507func (s StartRestoreJobOutput) String() string {
17508	return awsutil.Prettify(s)
17509}
17510
17511// GoString returns the string representation.
17512//
17513// API parameter values that are decorated as "sensitive" in the API will not
17514// be included in the string output. The member name will be present, but the
17515// value will be replaced with "sensitive".
17516func (s StartRestoreJobOutput) GoString() string {
17517	return s.String()
17518}
17519
17520// SetRestoreJobId sets the RestoreJobId field's value.
17521func (s *StartRestoreJobOutput) SetRestoreJobId(v string) *StartRestoreJobOutput {
17522	s.RestoreJobId = &v
17523	return s
17524}
17525
17526type StopBackupJobInput struct {
17527	_ struct{} `type:"structure" nopayload:"true"`
17528
17529	// Uniquely identifies a request to Backup to back up a resource.
17530	//
17531	// BackupJobId is a required field
17532	BackupJobId *string `location:"uri" locationName:"backupJobId" type:"string" required:"true"`
17533}
17534
17535// String returns the string representation.
17536//
17537// API parameter values that are decorated as "sensitive" in the API will not
17538// be included in the string output. The member name will be present, but the
17539// value will be replaced with "sensitive".
17540func (s StopBackupJobInput) String() string {
17541	return awsutil.Prettify(s)
17542}
17543
17544// GoString returns the string representation.
17545//
17546// API parameter values that are decorated as "sensitive" in the API will not
17547// be included in the string output. The member name will be present, but the
17548// value will be replaced with "sensitive".
17549func (s StopBackupJobInput) GoString() string {
17550	return s.String()
17551}
17552
17553// Validate inspects the fields of the type to determine if they are valid.
17554func (s *StopBackupJobInput) Validate() error {
17555	invalidParams := request.ErrInvalidParams{Context: "StopBackupJobInput"}
17556	if s.BackupJobId == nil {
17557		invalidParams.Add(request.NewErrParamRequired("BackupJobId"))
17558	}
17559	if s.BackupJobId != nil && len(*s.BackupJobId) < 1 {
17560		invalidParams.Add(request.NewErrParamMinLen("BackupJobId", 1))
17561	}
17562
17563	if invalidParams.Len() > 0 {
17564		return invalidParams
17565	}
17566	return nil
17567}
17568
17569// SetBackupJobId sets the BackupJobId field's value.
17570func (s *StopBackupJobInput) SetBackupJobId(v string) *StopBackupJobInput {
17571	s.BackupJobId = &v
17572	return s
17573}
17574
17575type StopBackupJobOutput struct {
17576	_ struct{} `type:"structure"`
17577}
17578
17579// String returns the string representation.
17580//
17581// API parameter values that are decorated as "sensitive" in the API will not
17582// be included in the string output. The member name will be present, but the
17583// value will be replaced with "sensitive".
17584func (s StopBackupJobOutput) String() string {
17585	return awsutil.Prettify(s)
17586}
17587
17588// GoString returns the string representation.
17589//
17590// API parameter values that are decorated as "sensitive" in the API will not
17591// be included in the string output. The member name will be present, but the
17592// value will be replaced with "sensitive".
17593func (s StopBackupJobOutput) GoString() string {
17594	return s.String()
17595}
17596
17597type TagResourceInput struct {
17598	_ struct{} `type:"structure"`
17599
17600	// An ARN that uniquely identifies a resource. The format of the ARN depends
17601	// on the type of the tagged resource.
17602	//
17603	// ResourceArn is a required field
17604	ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"`
17605
17606	// Key-value pairs that are used to help organize your resources. You can assign
17607	// your own metadata to the resources you create.
17608	//
17609	// Tags is a sensitive parameter and its value will be
17610	// replaced with "sensitive" in string returned by TagResourceInput's
17611	// String and GoString methods.
17612	//
17613	// Tags is a required field
17614	Tags map[string]*string `type:"map" required:"true" sensitive:"true"`
17615}
17616
17617// String returns the string representation.
17618//
17619// API parameter values that are decorated as "sensitive" in the API will not
17620// be included in the string output. The member name will be present, but the
17621// value will be replaced with "sensitive".
17622func (s TagResourceInput) String() string {
17623	return awsutil.Prettify(s)
17624}
17625
17626// GoString returns the string representation.
17627//
17628// API parameter values that are decorated as "sensitive" in the API will not
17629// be included in the string output. The member name will be present, but the
17630// value will be replaced with "sensitive".
17631func (s TagResourceInput) GoString() string {
17632	return s.String()
17633}
17634
17635// Validate inspects the fields of the type to determine if they are valid.
17636func (s *TagResourceInput) Validate() error {
17637	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
17638	if s.ResourceArn == nil {
17639		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
17640	}
17641	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
17642		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
17643	}
17644	if s.Tags == nil {
17645		invalidParams.Add(request.NewErrParamRequired("Tags"))
17646	}
17647
17648	if invalidParams.Len() > 0 {
17649		return invalidParams
17650	}
17651	return nil
17652}
17653
17654// SetResourceArn sets the ResourceArn field's value.
17655func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
17656	s.ResourceArn = &v
17657	return s
17658}
17659
17660// SetTags sets the Tags field's value.
17661func (s *TagResourceInput) SetTags(v map[string]*string) *TagResourceInput {
17662	s.Tags = v
17663	return s
17664}
17665
17666type TagResourceOutput struct {
17667	_ struct{} `type:"structure"`
17668}
17669
17670// String returns the string representation.
17671//
17672// API parameter values that are decorated as "sensitive" in the API will not
17673// be included in the string output. The member name will be present, but the
17674// value will be replaced with "sensitive".
17675func (s TagResourceOutput) String() string {
17676	return awsutil.Prettify(s)
17677}
17678
17679// GoString returns the string representation.
17680//
17681// API parameter values that are decorated as "sensitive" in the API will not
17682// be included in the string output. The member name will be present, but the
17683// value will be replaced with "sensitive".
17684func (s TagResourceOutput) GoString() string {
17685	return s.String()
17686}
17687
17688type UntagResourceInput struct {
17689	_ struct{} `type:"structure"`
17690
17691	// An ARN that uniquely identifies a resource. The format of the ARN depends
17692	// on the type of the tagged resource.
17693	//
17694	// ResourceArn is a required field
17695	ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"`
17696
17697	// A list of keys to identify which key-value tags to remove from a resource.
17698	//
17699	// TagKeyList is a sensitive parameter and its value will be
17700	// replaced with "sensitive" in string returned by UntagResourceInput's
17701	// String and GoString methods.
17702	//
17703	// TagKeyList is a required field
17704	TagKeyList []*string `type:"list" required:"true" sensitive:"true"`
17705}
17706
17707// String returns the string representation.
17708//
17709// API parameter values that are decorated as "sensitive" in the API will not
17710// be included in the string output. The member name will be present, but the
17711// value will be replaced with "sensitive".
17712func (s UntagResourceInput) String() string {
17713	return awsutil.Prettify(s)
17714}
17715
17716// GoString returns the string representation.
17717//
17718// API parameter values that are decorated as "sensitive" in the API will not
17719// be included in the string output. The member name will be present, but the
17720// value will be replaced with "sensitive".
17721func (s UntagResourceInput) GoString() string {
17722	return s.String()
17723}
17724
17725// Validate inspects the fields of the type to determine if they are valid.
17726func (s *UntagResourceInput) Validate() error {
17727	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
17728	if s.ResourceArn == nil {
17729		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
17730	}
17731	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
17732		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
17733	}
17734	if s.TagKeyList == nil {
17735		invalidParams.Add(request.NewErrParamRequired("TagKeyList"))
17736	}
17737
17738	if invalidParams.Len() > 0 {
17739		return invalidParams
17740	}
17741	return nil
17742}
17743
17744// SetResourceArn sets the ResourceArn field's value.
17745func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
17746	s.ResourceArn = &v
17747	return s
17748}
17749
17750// SetTagKeyList sets the TagKeyList field's value.
17751func (s *UntagResourceInput) SetTagKeyList(v []*string) *UntagResourceInput {
17752	s.TagKeyList = v
17753	return s
17754}
17755
17756type UntagResourceOutput struct {
17757	_ struct{} `type:"structure"`
17758}
17759
17760// String returns the string representation.
17761//
17762// API parameter values that are decorated as "sensitive" in the API will not
17763// be included in the string output. The member name will be present, but the
17764// value will be replaced with "sensitive".
17765func (s UntagResourceOutput) String() string {
17766	return awsutil.Prettify(s)
17767}
17768
17769// GoString returns the string representation.
17770//
17771// API parameter values that are decorated as "sensitive" in the API will not
17772// be included in the string output. The member name will be present, but the
17773// value will be replaced with "sensitive".
17774func (s UntagResourceOutput) GoString() string {
17775	return s.String()
17776}
17777
17778type UpdateBackupPlanInput struct {
17779	_ struct{} `type:"structure"`
17780
17781	// Specifies the body of a backup plan. Includes a BackupPlanName and one or
17782	// more sets of Rules.
17783	//
17784	// BackupPlan is a required field
17785	BackupPlan *PlanInput `type:"structure" required:"true"`
17786
17787	// Uniquely identifies a backup plan.
17788	//
17789	// BackupPlanId is a required field
17790	BackupPlanId *string `location:"uri" locationName:"backupPlanId" type:"string" required:"true"`
17791}
17792
17793// String returns the string representation.
17794//
17795// API parameter values that are decorated as "sensitive" in the API will not
17796// be included in the string output. The member name will be present, but the
17797// value will be replaced with "sensitive".
17798func (s UpdateBackupPlanInput) String() string {
17799	return awsutil.Prettify(s)
17800}
17801
17802// GoString returns the string representation.
17803//
17804// API parameter values that are decorated as "sensitive" in the API will not
17805// be included in the string output. The member name will be present, but the
17806// value will be replaced with "sensitive".
17807func (s UpdateBackupPlanInput) GoString() string {
17808	return s.String()
17809}
17810
17811// Validate inspects the fields of the type to determine if they are valid.
17812func (s *UpdateBackupPlanInput) Validate() error {
17813	invalidParams := request.ErrInvalidParams{Context: "UpdateBackupPlanInput"}
17814	if s.BackupPlan == nil {
17815		invalidParams.Add(request.NewErrParamRequired("BackupPlan"))
17816	}
17817	if s.BackupPlanId == nil {
17818		invalidParams.Add(request.NewErrParamRequired("BackupPlanId"))
17819	}
17820	if s.BackupPlanId != nil && len(*s.BackupPlanId) < 1 {
17821		invalidParams.Add(request.NewErrParamMinLen("BackupPlanId", 1))
17822	}
17823	if s.BackupPlan != nil {
17824		if err := s.BackupPlan.Validate(); err != nil {
17825			invalidParams.AddNested("BackupPlan", err.(request.ErrInvalidParams))
17826		}
17827	}
17828
17829	if invalidParams.Len() > 0 {
17830		return invalidParams
17831	}
17832	return nil
17833}
17834
17835// SetBackupPlan sets the BackupPlan field's value.
17836func (s *UpdateBackupPlanInput) SetBackupPlan(v *PlanInput) *UpdateBackupPlanInput {
17837	s.BackupPlan = v
17838	return s
17839}
17840
17841// SetBackupPlanId sets the BackupPlanId field's value.
17842func (s *UpdateBackupPlanInput) SetBackupPlanId(v string) *UpdateBackupPlanInput {
17843	s.BackupPlanId = &v
17844	return s
17845}
17846
17847type UpdateBackupPlanOutput struct {
17848	_ struct{} `type:"structure"`
17849
17850	// Contains a list of BackupOptions for each resource type.
17851	AdvancedBackupSettings []*AdvancedBackupSetting `type:"list"`
17852
17853	// An Amazon Resource Name (ARN) that uniquely identifies a backup plan; for
17854	// example, arn:aws:backup:us-east-1:123456789012:plan:8F81F553-3A74-4A3F-B93D-B3360DC80C50.
17855	BackupPlanArn *string `type:"string"`
17856
17857	// Uniquely identifies a backup plan.
17858	BackupPlanId *string `type:"string"`
17859
17860	// The date and time a backup plan is created, in Unix format and Coordinated
17861	// Universal Time (UTC). The value of CreationDate is accurate to milliseconds.
17862	// For example, the value 1516925490.087 represents Friday, January 26, 2018
17863	// 12:11:30.087 AM.
17864	CreationDate *time.Time `type:"timestamp"`
17865
17866	// Unique, randomly generated, Unicode, UTF-8 encoded strings that are at most
17867	// 1,024 bytes long. Version Ids cannot be edited.
17868	VersionId *string `type:"string"`
17869}
17870
17871// String returns the string representation.
17872//
17873// API parameter values that are decorated as "sensitive" in the API will not
17874// be included in the string output. The member name will be present, but the
17875// value will be replaced with "sensitive".
17876func (s UpdateBackupPlanOutput) String() string {
17877	return awsutil.Prettify(s)
17878}
17879
17880// GoString returns the string representation.
17881//
17882// API parameter values that are decorated as "sensitive" in the API will not
17883// be included in the string output. The member name will be present, but the
17884// value will be replaced with "sensitive".
17885func (s UpdateBackupPlanOutput) GoString() string {
17886	return s.String()
17887}
17888
17889// SetAdvancedBackupSettings sets the AdvancedBackupSettings field's value.
17890func (s *UpdateBackupPlanOutput) SetAdvancedBackupSettings(v []*AdvancedBackupSetting) *UpdateBackupPlanOutput {
17891	s.AdvancedBackupSettings = v
17892	return s
17893}
17894
17895// SetBackupPlanArn sets the BackupPlanArn field's value.
17896func (s *UpdateBackupPlanOutput) SetBackupPlanArn(v string) *UpdateBackupPlanOutput {
17897	s.BackupPlanArn = &v
17898	return s
17899}
17900
17901// SetBackupPlanId sets the BackupPlanId field's value.
17902func (s *UpdateBackupPlanOutput) SetBackupPlanId(v string) *UpdateBackupPlanOutput {
17903	s.BackupPlanId = &v
17904	return s
17905}
17906
17907// SetCreationDate sets the CreationDate field's value.
17908func (s *UpdateBackupPlanOutput) SetCreationDate(v time.Time) *UpdateBackupPlanOutput {
17909	s.CreationDate = &v
17910	return s
17911}
17912
17913// SetVersionId sets the VersionId field's value.
17914func (s *UpdateBackupPlanOutput) SetVersionId(v string) *UpdateBackupPlanOutput {
17915	s.VersionId = &v
17916	return s
17917}
17918
17919type UpdateFrameworkInput struct {
17920	_ struct{} `type:"structure"`
17921
17922	// A list of the controls that make up the framework. Each control in the list
17923	// has a name, input parameters, and scope.
17924	FrameworkControls []*FrameworkControl `type:"list"`
17925
17926	// An optional description of the framework with a maximum 1,024 characters.
17927	FrameworkDescription *string `type:"string"`
17928
17929	// The unique name of a framework. This name is between 1 and 256 characters,
17930	// starting with a letter, and consisting of letters (a-z, A-Z), numbers (0-9),
17931	// and underscores (_).
17932	//
17933	// FrameworkName is a required field
17934	FrameworkName *string `location:"uri" locationName:"frameworkName" min:"1" type:"string" required:"true"`
17935
17936	// A customer-chosen string that you can use to distinguish between otherwise
17937	// identical calls to UpdateFrameworkInput. Retrying a successful request with
17938	// the same idempotency token results in a success message with no action taken.
17939	IdempotencyToken *string `type:"string" idempotencyToken:"true"`
17940}
17941
17942// String returns the string representation.
17943//
17944// API parameter values that are decorated as "sensitive" in the API will not
17945// be included in the string output. The member name will be present, but the
17946// value will be replaced with "sensitive".
17947func (s UpdateFrameworkInput) String() string {
17948	return awsutil.Prettify(s)
17949}
17950
17951// GoString returns the string representation.
17952//
17953// API parameter values that are decorated as "sensitive" in the API will not
17954// be included in the string output. The member name will be present, but the
17955// value will be replaced with "sensitive".
17956func (s UpdateFrameworkInput) GoString() string {
17957	return s.String()
17958}
17959
17960// Validate inspects the fields of the type to determine if they are valid.
17961func (s *UpdateFrameworkInput) Validate() error {
17962	invalidParams := request.ErrInvalidParams{Context: "UpdateFrameworkInput"}
17963	if s.FrameworkName == nil {
17964		invalidParams.Add(request.NewErrParamRequired("FrameworkName"))
17965	}
17966	if s.FrameworkName != nil && len(*s.FrameworkName) < 1 {
17967		invalidParams.Add(request.NewErrParamMinLen("FrameworkName", 1))
17968	}
17969	if s.FrameworkControls != nil {
17970		for i, v := range s.FrameworkControls {
17971			if v == nil {
17972				continue
17973			}
17974			if err := v.Validate(); err != nil {
17975				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "FrameworkControls", i), err.(request.ErrInvalidParams))
17976			}
17977		}
17978	}
17979
17980	if invalidParams.Len() > 0 {
17981		return invalidParams
17982	}
17983	return nil
17984}
17985
17986// SetFrameworkControls sets the FrameworkControls field's value.
17987func (s *UpdateFrameworkInput) SetFrameworkControls(v []*FrameworkControl) *UpdateFrameworkInput {
17988	s.FrameworkControls = v
17989	return s
17990}
17991
17992// SetFrameworkDescription sets the FrameworkDescription field's value.
17993func (s *UpdateFrameworkInput) SetFrameworkDescription(v string) *UpdateFrameworkInput {
17994	s.FrameworkDescription = &v
17995	return s
17996}
17997
17998// SetFrameworkName sets the FrameworkName field's value.
17999func (s *UpdateFrameworkInput) SetFrameworkName(v string) *UpdateFrameworkInput {
18000	s.FrameworkName = &v
18001	return s
18002}
18003
18004// SetIdempotencyToken sets the IdempotencyToken field's value.
18005func (s *UpdateFrameworkInput) SetIdempotencyToken(v string) *UpdateFrameworkInput {
18006	s.IdempotencyToken = &v
18007	return s
18008}
18009
18010type UpdateFrameworkOutput struct {
18011	_ struct{} `type:"structure"`
18012
18013	// The date and time that a framework is created, in Unix format and Coordinated
18014	// Universal Time (UTC). The value of CreationTime is accurate to milliseconds.
18015	// For example, the value 1516925490.087 represents Friday, January 26, 2018
18016	// 12:11:30.087 AM.
18017	CreationTime *time.Time `type:"timestamp"`
18018
18019	// An Amazon Resource Name (ARN) that uniquely identifies a resource. The format
18020	// of the ARN depends on the resource type.
18021	FrameworkArn *string `type:"string"`
18022
18023	// The unique name of a framework. This name is between 1 and 256 characters,
18024	// starting with a letter, and consisting of letters (a-z, A-Z), numbers (0-9),
18025	// and underscores (_).
18026	FrameworkName *string `min:"1" type:"string"`
18027}
18028
18029// String returns the string representation.
18030//
18031// API parameter values that are decorated as "sensitive" in the API will not
18032// be included in the string output. The member name will be present, but the
18033// value will be replaced with "sensitive".
18034func (s UpdateFrameworkOutput) String() string {
18035	return awsutil.Prettify(s)
18036}
18037
18038// GoString returns the string representation.
18039//
18040// API parameter values that are decorated as "sensitive" in the API will not
18041// be included in the string output. The member name will be present, but the
18042// value will be replaced with "sensitive".
18043func (s UpdateFrameworkOutput) GoString() string {
18044	return s.String()
18045}
18046
18047// SetCreationTime sets the CreationTime field's value.
18048func (s *UpdateFrameworkOutput) SetCreationTime(v time.Time) *UpdateFrameworkOutput {
18049	s.CreationTime = &v
18050	return s
18051}
18052
18053// SetFrameworkArn sets the FrameworkArn field's value.
18054func (s *UpdateFrameworkOutput) SetFrameworkArn(v string) *UpdateFrameworkOutput {
18055	s.FrameworkArn = &v
18056	return s
18057}
18058
18059// SetFrameworkName sets the FrameworkName field's value.
18060func (s *UpdateFrameworkOutput) SetFrameworkName(v string) *UpdateFrameworkOutput {
18061	s.FrameworkName = &v
18062	return s
18063}
18064
18065type UpdateGlobalSettingsInput struct {
18066	_ struct{} `type:"structure"`
18067
18068	// A value for isCrossAccountBackupEnabled and a Region. Example: update-global-settings
18069	// --global-settings isCrossAccountBackupEnabled=false --region us-west-2.
18070	GlobalSettings map[string]*string `type:"map"`
18071}
18072
18073// String returns the string representation.
18074//
18075// API parameter values that are decorated as "sensitive" in the API will not
18076// be included in the string output. The member name will be present, but the
18077// value will be replaced with "sensitive".
18078func (s UpdateGlobalSettingsInput) String() string {
18079	return awsutil.Prettify(s)
18080}
18081
18082// GoString returns the string representation.
18083//
18084// API parameter values that are decorated as "sensitive" in the API will not
18085// be included in the string output. The member name will be present, but the
18086// value will be replaced with "sensitive".
18087func (s UpdateGlobalSettingsInput) GoString() string {
18088	return s.String()
18089}
18090
18091// SetGlobalSettings sets the GlobalSettings field's value.
18092func (s *UpdateGlobalSettingsInput) SetGlobalSettings(v map[string]*string) *UpdateGlobalSettingsInput {
18093	s.GlobalSettings = v
18094	return s
18095}
18096
18097type UpdateGlobalSettingsOutput struct {
18098	_ struct{} `type:"structure"`
18099}
18100
18101// String returns the string representation.
18102//
18103// API parameter values that are decorated as "sensitive" in the API will not
18104// be included in the string output. The member name will be present, but the
18105// value will be replaced with "sensitive".
18106func (s UpdateGlobalSettingsOutput) String() string {
18107	return awsutil.Prettify(s)
18108}
18109
18110// GoString returns the string representation.
18111//
18112// API parameter values that are decorated as "sensitive" in the API will not
18113// be included in the string output. The member name will be present, but the
18114// value will be replaced with "sensitive".
18115func (s UpdateGlobalSettingsOutput) GoString() string {
18116	return s.String()
18117}
18118
18119type UpdateRecoveryPointLifecycleInput struct {
18120	_ struct{} `type:"structure"`
18121
18122	// The name of a logical container where backups are stored. Backup vaults are
18123	// identified by names that are unique to the account used to create them and
18124	// the Amazon Web Services Region where they are created. They consist of lowercase
18125	// letters, numbers, and hyphens.
18126	//
18127	// BackupVaultName is a required field
18128	BackupVaultName *string `location:"uri" locationName:"backupVaultName" type:"string" required:"true"`
18129
18130	// The lifecycle defines when a protected resource is transitioned to cold storage
18131	// and when it expires. Backup transitions and expires backups automatically
18132	// according to the lifecycle that you define.
18133	//
18134	// Backups transitioned to cold storage must be stored in cold storage for a
18135	// minimum of 90 days. Therefore, the “expire after days” setting must be
18136	// 90 days greater than the “transition to cold after days” setting. The
18137	// “transition to cold after days” setting cannot be changed after a backup
18138	// has been transitioned to cold.
18139	Lifecycle *Lifecycle `type:"structure"`
18140
18141	// An Amazon Resource Name (ARN) that uniquely identifies a recovery point;
18142	// for example, arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45.
18143	//
18144	// RecoveryPointArn is a required field
18145	RecoveryPointArn *string `location:"uri" locationName:"recoveryPointArn" type:"string" required:"true"`
18146}
18147
18148// String returns the string representation.
18149//
18150// API parameter values that are decorated as "sensitive" in the API will not
18151// be included in the string output. The member name will be present, but the
18152// value will be replaced with "sensitive".
18153func (s UpdateRecoveryPointLifecycleInput) String() string {
18154	return awsutil.Prettify(s)
18155}
18156
18157// GoString returns the string representation.
18158//
18159// API parameter values that are decorated as "sensitive" in the API will not
18160// be included in the string output. The member name will be present, but the
18161// value will be replaced with "sensitive".
18162func (s UpdateRecoveryPointLifecycleInput) GoString() string {
18163	return s.String()
18164}
18165
18166// Validate inspects the fields of the type to determine if they are valid.
18167func (s *UpdateRecoveryPointLifecycleInput) Validate() error {
18168	invalidParams := request.ErrInvalidParams{Context: "UpdateRecoveryPointLifecycleInput"}
18169	if s.BackupVaultName == nil {
18170		invalidParams.Add(request.NewErrParamRequired("BackupVaultName"))
18171	}
18172	if s.BackupVaultName != nil && len(*s.BackupVaultName) < 1 {
18173		invalidParams.Add(request.NewErrParamMinLen("BackupVaultName", 1))
18174	}
18175	if s.RecoveryPointArn == nil {
18176		invalidParams.Add(request.NewErrParamRequired("RecoveryPointArn"))
18177	}
18178	if s.RecoveryPointArn != nil && len(*s.RecoveryPointArn) < 1 {
18179		invalidParams.Add(request.NewErrParamMinLen("RecoveryPointArn", 1))
18180	}
18181
18182	if invalidParams.Len() > 0 {
18183		return invalidParams
18184	}
18185	return nil
18186}
18187
18188// SetBackupVaultName sets the BackupVaultName field's value.
18189func (s *UpdateRecoveryPointLifecycleInput) SetBackupVaultName(v string) *UpdateRecoveryPointLifecycleInput {
18190	s.BackupVaultName = &v
18191	return s
18192}
18193
18194// SetLifecycle sets the Lifecycle field's value.
18195func (s *UpdateRecoveryPointLifecycleInput) SetLifecycle(v *Lifecycle) *UpdateRecoveryPointLifecycleInput {
18196	s.Lifecycle = v
18197	return s
18198}
18199
18200// SetRecoveryPointArn sets the RecoveryPointArn field's value.
18201func (s *UpdateRecoveryPointLifecycleInput) SetRecoveryPointArn(v string) *UpdateRecoveryPointLifecycleInput {
18202	s.RecoveryPointArn = &v
18203	return s
18204}
18205
18206type UpdateRecoveryPointLifecycleOutput struct {
18207	_ struct{} `type:"structure"`
18208
18209	// An ARN that uniquely identifies a backup vault; for example, arn:aws:backup:us-east-1:123456789012:vault:aBackupVault.
18210	BackupVaultArn *string `type:"string"`
18211
18212	// A CalculatedLifecycle object containing DeleteAt and MoveToColdStorageAt
18213	// timestamps.
18214	CalculatedLifecycle *CalculatedLifecycle `type:"structure"`
18215
18216	// The lifecycle defines when a protected resource is transitioned to cold storage
18217	// and when it expires. Backup transitions and expires backups automatically
18218	// according to the lifecycle that you define.
18219	//
18220	// Backups transitioned to cold storage must be stored in cold storage for a
18221	// minimum of 90 days. Therefore, the “expire after days” setting must be
18222	// 90 days greater than the “transition to cold after days” setting. The
18223	// “transition to cold after days” setting cannot be changed after a backup
18224	// has been transitioned to cold.
18225	//
18226	// Only Amazon EFS file system backups can be transitioned to cold storage.
18227	Lifecycle *Lifecycle `type:"structure"`
18228
18229	// An Amazon Resource Name (ARN) that uniquely identifies a recovery point;
18230	// for example, arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45.
18231	RecoveryPointArn *string `type:"string"`
18232}
18233
18234// String returns the string representation.
18235//
18236// API parameter values that are decorated as "sensitive" in the API will not
18237// be included in the string output. The member name will be present, but the
18238// value will be replaced with "sensitive".
18239func (s UpdateRecoveryPointLifecycleOutput) String() string {
18240	return awsutil.Prettify(s)
18241}
18242
18243// GoString returns the string representation.
18244//
18245// API parameter values that are decorated as "sensitive" in the API will not
18246// be included in the string output. The member name will be present, but the
18247// value will be replaced with "sensitive".
18248func (s UpdateRecoveryPointLifecycleOutput) GoString() string {
18249	return s.String()
18250}
18251
18252// SetBackupVaultArn sets the BackupVaultArn field's value.
18253func (s *UpdateRecoveryPointLifecycleOutput) SetBackupVaultArn(v string) *UpdateRecoveryPointLifecycleOutput {
18254	s.BackupVaultArn = &v
18255	return s
18256}
18257
18258// SetCalculatedLifecycle sets the CalculatedLifecycle field's value.
18259func (s *UpdateRecoveryPointLifecycleOutput) SetCalculatedLifecycle(v *CalculatedLifecycle) *UpdateRecoveryPointLifecycleOutput {
18260	s.CalculatedLifecycle = v
18261	return s
18262}
18263
18264// SetLifecycle sets the Lifecycle field's value.
18265func (s *UpdateRecoveryPointLifecycleOutput) SetLifecycle(v *Lifecycle) *UpdateRecoveryPointLifecycleOutput {
18266	s.Lifecycle = v
18267	return s
18268}
18269
18270// SetRecoveryPointArn sets the RecoveryPointArn field's value.
18271func (s *UpdateRecoveryPointLifecycleOutput) SetRecoveryPointArn(v string) *UpdateRecoveryPointLifecycleOutput {
18272	s.RecoveryPointArn = &v
18273	return s
18274}
18275
18276type UpdateRegionSettingsInput struct {
18277	_ struct{} `type:"structure"`
18278
18279	// Updates the list of services along with the opt-in preferences for the Region.
18280	ResourceTypeOptInPreference map[string]*bool `type:"map"`
18281}
18282
18283// String returns the string representation.
18284//
18285// API parameter values that are decorated as "sensitive" in the API will not
18286// be included in the string output. The member name will be present, but the
18287// value will be replaced with "sensitive".
18288func (s UpdateRegionSettingsInput) String() string {
18289	return awsutil.Prettify(s)
18290}
18291
18292// GoString returns the string representation.
18293//
18294// API parameter values that are decorated as "sensitive" in the API will not
18295// be included in the string output. The member name will be present, but the
18296// value will be replaced with "sensitive".
18297func (s UpdateRegionSettingsInput) GoString() string {
18298	return s.String()
18299}
18300
18301// SetResourceTypeOptInPreference sets the ResourceTypeOptInPreference field's value.
18302func (s *UpdateRegionSettingsInput) SetResourceTypeOptInPreference(v map[string]*bool) *UpdateRegionSettingsInput {
18303	s.ResourceTypeOptInPreference = v
18304	return s
18305}
18306
18307type UpdateRegionSettingsOutput struct {
18308	_ struct{} `type:"structure"`
18309}
18310
18311// String returns the string representation.
18312//
18313// API parameter values that are decorated as "sensitive" in the API will not
18314// be included in the string output. The member name will be present, but the
18315// value will be replaced with "sensitive".
18316func (s UpdateRegionSettingsOutput) String() string {
18317	return awsutil.Prettify(s)
18318}
18319
18320// GoString returns the string representation.
18321//
18322// API parameter values that are decorated as "sensitive" in the API will not
18323// be included in the string output. The member name will be present, but the
18324// value will be replaced with "sensitive".
18325func (s UpdateRegionSettingsOutput) GoString() string {
18326	return s.String()
18327}
18328
18329type UpdateReportPlanInput struct {
18330	_ struct{} `type:"structure"`
18331
18332	// A customer-chosen string that you can use to distinguish between otherwise
18333	// identical calls to UpdateReportPlanInput. Retrying a successful request with
18334	// the same idempotency token results in a success message with no action taken.
18335	IdempotencyToken *string `type:"string" idempotencyToken:"true"`
18336
18337	// A structure that contains information about where to deliver your reports,
18338	// specifically your Amazon S3 bucket name, S3 key prefix, and the formats of
18339	// your reports.
18340	ReportDeliveryChannel *ReportDeliveryChannel `type:"structure"`
18341
18342	// An optional description of the report plan with a maximum 1,024 characters.
18343	ReportPlanDescription *string `type:"string"`
18344
18345	// The unique name of the report plan. This name is between 1 and 256 characters,
18346	// starting with a letter, and consisting of letters (a-z, A-Z), numbers (0-9),
18347	// and underscores (_).
18348	//
18349	// ReportPlanName is a required field
18350	ReportPlanName *string `location:"uri" locationName:"reportPlanName" min:"1" type:"string" required:"true"`
18351
18352	// Identifies the report template for the report. Reports are built using a
18353	// report template. The report templates are:
18354	//
18355	// RESOURCE_COMPLIANCE_REPORT | CONTROL_COMPLIANCE_REPORT | BACKUP_JOB_REPORT
18356	// | COPY_JOB_REPORT | RESTORE_JOB_REPORT
18357	//
18358	// If the report template is RESOURCE_COMPLIANCE_REPORT or CONTROL_COMPLIANCE_REPORT,
18359	// this API resource also describes the report coverage by Amazon Web Services
18360	// Regions and frameworks.
18361	ReportSetting *ReportSetting `type:"structure"`
18362}
18363
18364// String returns the string representation.
18365//
18366// API parameter values that are decorated as "sensitive" in the API will not
18367// be included in the string output. The member name will be present, but the
18368// value will be replaced with "sensitive".
18369func (s UpdateReportPlanInput) String() string {
18370	return awsutil.Prettify(s)
18371}
18372
18373// GoString returns the string representation.
18374//
18375// API parameter values that are decorated as "sensitive" in the API will not
18376// be included in the string output. The member name will be present, but the
18377// value will be replaced with "sensitive".
18378func (s UpdateReportPlanInput) GoString() string {
18379	return s.String()
18380}
18381
18382// Validate inspects the fields of the type to determine if they are valid.
18383func (s *UpdateReportPlanInput) Validate() error {
18384	invalidParams := request.ErrInvalidParams{Context: "UpdateReportPlanInput"}
18385	if s.ReportPlanName == nil {
18386		invalidParams.Add(request.NewErrParamRequired("ReportPlanName"))
18387	}
18388	if s.ReportPlanName != nil && len(*s.ReportPlanName) < 1 {
18389		invalidParams.Add(request.NewErrParamMinLen("ReportPlanName", 1))
18390	}
18391	if s.ReportDeliveryChannel != nil {
18392		if err := s.ReportDeliveryChannel.Validate(); err != nil {
18393			invalidParams.AddNested("ReportDeliveryChannel", err.(request.ErrInvalidParams))
18394		}
18395	}
18396	if s.ReportSetting != nil {
18397		if err := s.ReportSetting.Validate(); err != nil {
18398			invalidParams.AddNested("ReportSetting", err.(request.ErrInvalidParams))
18399		}
18400	}
18401
18402	if invalidParams.Len() > 0 {
18403		return invalidParams
18404	}
18405	return nil
18406}
18407
18408// SetIdempotencyToken sets the IdempotencyToken field's value.
18409func (s *UpdateReportPlanInput) SetIdempotencyToken(v string) *UpdateReportPlanInput {
18410	s.IdempotencyToken = &v
18411	return s
18412}
18413
18414// SetReportDeliveryChannel sets the ReportDeliveryChannel field's value.
18415func (s *UpdateReportPlanInput) SetReportDeliveryChannel(v *ReportDeliveryChannel) *UpdateReportPlanInput {
18416	s.ReportDeliveryChannel = v
18417	return s
18418}
18419
18420// SetReportPlanDescription sets the ReportPlanDescription field's value.
18421func (s *UpdateReportPlanInput) SetReportPlanDescription(v string) *UpdateReportPlanInput {
18422	s.ReportPlanDescription = &v
18423	return s
18424}
18425
18426// SetReportPlanName sets the ReportPlanName field's value.
18427func (s *UpdateReportPlanInput) SetReportPlanName(v string) *UpdateReportPlanInput {
18428	s.ReportPlanName = &v
18429	return s
18430}
18431
18432// SetReportSetting sets the ReportSetting field's value.
18433func (s *UpdateReportPlanInput) SetReportSetting(v *ReportSetting) *UpdateReportPlanInput {
18434	s.ReportSetting = v
18435	return s
18436}
18437
18438type UpdateReportPlanOutput struct {
18439	_ struct{} `type:"structure"`
18440
18441	// The date and time that a report plan is created, in Unix format and Coordinated
18442	// Universal Time (UTC). The value of CreationTime is accurate to milliseconds.
18443	// For example, the value 1516925490.087 represents Friday, January 26, 2018
18444	// 12:11:30.087 AM.
18445	CreationTime *time.Time `type:"timestamp"`
18446
18447	// An Amazon Resource Name (ARN) that uniquely identifies a resource. The format
18448	// of the ARN depends on the resource type.
18449	ReportPlanArn *string `type:"string"`
18450
18451	// The unique name of the report plan.
18452	ReportPlanName *string `min:"1" type:"string"`
18453}
18454
18455// String returns the string representation.
18456//
18457// API parameter values that are decorated as "sensitive" in the API will not
18458// be included in the string output. The member name will be present, but the
18459// value will be replaced with "sensitive".
18460func (s UpdateReportPlanOutput) String() string {
18461	return awsutil.Prettify(s)
18462}
18463
18464// GoString returns the string representation.
18465//
18466// API parameter values that are decorated as "sensitive" in the API will not
18467// be included in the string output. The member name will be present, but the
18468// value will be replaced with "sensitive".
18469func (s UpdateReportPlanOutput) GoString() string {
18470	return s.String()
18471}
18472
18473// SetCreationTime sets the CreationTime field's value.
18474func (s *UpdateReportPlanOutput) SetCreationTime(v time.Time) *UpdateReportPlanOutput {
18475	s.CreationTime = &v
18476	return s
18477}
18478
18479// SetReportPlanArn sets the ReportPlanArn field's value.
18480func (s *UpdateReportPlanOutput) SetReportPlanArn(v string) *UpdateReportPlanOutput {
18481	s.ReportPlanArn = &v
18482	return s
18483}
18484
18485// SetReportPlanName sets the ReportPlanName field's value.
18486func (s *UpdateReportPlanOutput) SetReportPlanName(v string) *UpdateReportPlanOutput {
18487	s.ReportPlanName = &v
18488	return s
18489}
18490
18491// Contains metadata about a backup vault.
18492type VaultListMember struct {
18493	_ struct{} `type:"structure"`
18494
18495	// An Amazon Resource Name (ARN) that uniquely identifies a backup vault; for
18496	// example, arn:aws:backup:us-east-1:123456789012:vault:aBackupVault.
18497	BackupVaultArn *string `type:"string"`
18498
18499	// The name of a logical container where backups are stored. Backup vaults are
18500	// identified by names that are unique to the account used to create them and
18501	// the Amazon Web Services Region where they are created. They consist of lowercase
18502	// letters, numbers, and hyphens.
18503	BackupVaultName *string `type:"string"`
18504
18505	// The date and time a resource backup is created, in Unix format and Coordinated
18506	// Universal Time (UTC). The value of CreationDate is accurate to milliseconds.
18507	// For example, the value 1516925490.087 represents Friday, January 26, 2018
18508	// 12:11:30.087 AM.
18509	CreationDate *time.Time `type:"timestamp"`
18510
18511	// A unique string that identifies the request and allows failed requests to
18512	// be retried without the risk of running the operation twice.
18513	CreatorRequestId *string `type:"string"`
18514
18515	// The server-side encryption key that is used to protect your backups; for
18516	// example, arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab.
18517	EncryptionKeyArn *string `type:"string"`
18518
18519	// The date and time when Backup Vault Lock configuration becomes immutable,
18520	// meaning it cannot be changed or deleted.
18521	//
18522	// If you applied Vault Lock to your vault without specifying a lock date, you
18523	// can change your Vault Lock settings, or delete Vault Lock from the vault
18524	// entirely, at any time.
18525	//
18526	// This value is in Unix format, Coordinated Universal Time (UTC), and accurate
18527	// to milliseconds. For example, the value 1516925490.087 represents Friday,
18528	// January 26, 2018 12:11:30.087 AM.
18529	LockDate *time.Time `type:"timestamp"`
18530
18531	// A Boolean value that indicates whether Backup Vault Lock applies to the selected
18532	// backup vault. If true, Vault Lock prevents delete and update operations on
18533	// the recovery points in the selected vault.
18534	Locked *bool `type:"boolean"`
18535
18536	// The Backup Vault Lock setting that specifies the maximum retention period
18537	// that the vault retains its recovery points. If this parameter is not specified,
18538	// Vault Lock does not enforce a maximum retention period on the recovery points
18539	// in the vault (allowing indefinite storage).
18540	//
18541	// If specified, any backup or copy job to the vault must have a lifecycle policy
18542	// with a retention period equal to or shorter than the maximum retention period.
18543	// If the job's retention period is longer than that maximum retention period,
18544	// then the vault fails the backup or copy job, and you should either modify
18545	// your lifecycle settings or use a different vault. Recovery points already
18546	// stored in the vault prior to Vault Lock are not affected.
18547	MaxRetentionDays *int64 `type:"long"`
18548
18549	// The Backup Vault Lock setting that specifies the minimum retention period
18550	// that the vault retains its recovery points. If this parameter is not specified,
18551	// Vault Lock does not enforce a minimum retention period.
18552	//
18553	// If specified, any backup or copy job to the vault must have a lifecycle policy
18554	// with a retention period equal to or longer than the minimum retention period.
18555	// If the job's retention period is shorter than that minimum retention period,
18556	// then the vault fails the backup or copy job, and you should either modify
18557	// your lifecycle settings or use a different vault. Recovery points already
18558	// stored in the vault prior to Vault Lock are not affected.
18559	MinRetentionDays *int64 `type:"long"`
18560
18561	// The number of recovery points that are stored in a backup vault.
18562	NumberOfRecoveryPoints *int64 `type:"long"`
18563}
18564
18565// String returns the string representation.
18566//
18567// API parameter values that are decorated as "sensitive" in the API will not
18568// be included in the string output. The member name will be present, but the
18569// value will be replaced with "sensitive".
18570func (s VaultListMember) String() string {
18571	return awsutil.Prettify(s)
18572}
18573
18574// GoString returns the string representation.
18575//
18576// API parameter values that are decorated as "sensitive" in the API will not
18577// be included in the string output. The member name will be present, but the
18578// value will be replaced with "sensitive".
18579func (s VaultListMember) GoString() string {
18580	return s.String()
18581}
18582
18583// SetBackupVaultArn sets the BackupVaultArn field's value.
18584func (s *VaultListMember) SetBackupVaultArn(v string) *VaultListMember {
18585	s.BackupVaultArn = &v
18586	return s
18587}
18588
18589// SetBackupVaultName sets the BackupVaultName field's value.
18590func (s *VaultListMember) SetBackupVaultName(v string) *VaultListMember {
18591	s.BackupVaultName = &v
18592	return s
18593}
18594
18595// SetCreationDate sets the CreationDate field's value.
18596func (s *VaultListMember) SetCreationDate(v time.Time) *VaultListMember {
18597	s.CreationDate = &v
18598	return s
18599}
18600
18601// SetCreatorRequestId sets the CreatorRequestId field's value.
18602func (s *VaultListMember) SetCreatorRequestId(v string) *VaultListMember {
18603	s.CreatorRequestId = &v
18604	return s
18605}
18606
18607// SetEncryptionKeyArn sets the EncryptionKeyArn field's value.
18608func (s *VaultListMember) SetEncryptionKeyArn(v string) *VaultListMember {
18609	s.EncryptionKeyArn = &v
18610	return s
18611}
18612
18613// SetLockDate sets the LockDate field's value.
18614func (s *VaultListMember) SetLockDate(v time.Time) *VaultListMember {
18615	s.LockDate = &v
18616	return s
18617}
18618
18619// SetLocked sets the Locked field's value.
18620func (s *VaultListMember) SetLocked(v bool) *VaultListMember {
18621	s.Locked = &v
18622	return s
18623}
18624
18625// SetMaxRetentionDays sets the MaxRetentionDays field's value.
18626func (s *VaultListMember) SetMaxRetentionDays(v int64) *VaultListMember {
18627	s.MaxRetentionDays = &v
18628	return s
18629}
18630
18631// SetMinRetentionDays sets the MinRetentionDays field's value.
18632func (s *VaultListMember) SetMinRetentionDays(v int64) *VaultListMember {
18633	s.MinRetentionDays = &v
18634	return s
18635}
18636
18637// SetNumberOfRecoveryPoints sets the NumberOfRecoveryPoints field's value.
18638func (s *VaultListMember) SetNumberOfRecoveryPoints(v int64) *VaultListMember {
18639	s.NumberOfRecoveryPoints = &v
18640	return s
18641}
18642
18643const (
18644	// ConditionTypeStringequals is a ConditionType enum value
18645	ConditionTypeStringequals = "STRINGEQUALS"
18646)
18647
18648// ConditionType_Values returns all elements of the ConditionType enum
18649func ConditionType_Values() []string {
18650	return []string{
18651		ConditionTypeStringequals,
18652	}
18653}
18654
18655const (
18656	// CopyJobStateCreated is a CopyJobState enum value
18657	CopyJobStateCreated = "CREATED"
18658
18659	// CopyJobStateRunning is a CopyJobState enum value
18660	CopyJobStateRunning = "RUNNING"
18661
18662	// CopyJobStateCompleted is a CopyJobState enum value
18663	CopyJobStateCompleted = "COMPLETED"
18664
18665	// CopyJobStateFailed is a CopyJobState enum value
18666	CopyJobStateFailed = "FAILED"
18667)
18668
18669// CopyJobState_Values returns all elements of the CopyJobState enum
18670func CopyJobState_Values() []string {
18671	return []string{
18672		CopyJobStateCreated,
18673		CopyJobStateRunning,
18674		CopyJobStateCompleted,
18675		CopyJobStateFailed,
18676	}
18677}
18678
18679const (
18680	// JobStateCreated is a JobState enum value
18681	JobStateCreated = "CREATED"
18682
18683	// JobStatePending is a JobState enum value
18684	JobStatePending = "PENDING"
18685
18686	// JobStateRunning is a JobState enum value
18687	JobStateRunning = "RUNNING"
18688
18689	// JobStateAborting is a JobState enum value
18690	JobStateAborting = "ABORTING"
18691
18692	// JobStateAborted is a JobState enum value
18693	JobStateAborted = "ABORTED"
18694
18695	// JobStateCompleted is a JobState enum value
18696	JobStateCompleted = "COMPLETED"
18697
18698	// JobStateFailed is a JobState enum value
18699	JobStateFailed = "FAILED"
18700
18701	// JobStateExpired is a JobState enum value
18702	JobStateExpired = "EXPIRED"
18703)
18704
18705// JobState_Values returns all elements of the JobState enum
18706func JobState_Values() []string {
18707	return []string{
18708		JobStateCreated,
18709		JobStatePending,
18710		JobStateRunning,
18711		JobStateAborting,
18712		JobStateAborted,
18713		JobStateCompleted,
18714		JobStateFailed,
18715		JobStateExpired,
18716	}
18717}
18718
18719const (
18720	// RecoveryPointStatusCompleted is a RecoveryPointStatus enum value
18721	RecoveryPointStatusCompleted = "COMPLETED"
18722
18723	// RecoveryPointStatusPartial is a RecoveryPointStatus enum value
18724	RecoveryPointStatusPartial = "PARTIAL"
18725
18726	// RecoveryPointStatusDeleting is a RecoveryPointStatus enum value
18727	RecoveryPointStatusDeleting = "DELETING"
18728
18729	// RecoveryPointStatusExpired is a RecoveryPointStatus enum value
18730	RecoveryPointStatusExpired = "EXPIRED"
18731)
18732
18733// RecoveryPointStatus_Values returns all elements of the RecoveryPointStatus enum
18734func RecoveryPointStatus_Values() []string {
18735	return []string{
18736		RecoveryPointStatusCompleted,
18737		RecoveryPointStatusPartial,
18738		RecoveryPointStatusDeleting,
18739		RecoveryPointStatusExpired,
18740	}
18741}
18742
18743const (
18744	// RestoreJobStatusPending is a RestoreJobStatus enum value
18745	RestoreJobStatusPending = "PENDING"
18746
18747	// RestoreJobStatusRunning is a RestoreJobStatus enum value
18748	RestoreJobStatusRunning = "RUNNING"
18749
18750	// RestoreJobStatusCompleted is a RestoreJobStatus enum value
18751	RestoreJobStatusCompleted = "COMPLETED"
18752
18753	// RestoreJobStatusAborted is a RestoreJobStatus enum value
18754	RestoreJobStatusAborted = "ABORTED"
18755
18756	// RestoreJobStatusFailed is a RestoreJobStatus enum value
18757	RestoreJobStatusFailed = "FAILED"
18758)
18759
18760// RestoreJobStatus_Values returns all elements of the RestoreJobStatus enum
18761func RestoreJobStatus_Values() []string {
18762	return []string{
18763		RestoreJobStatusPending,
18764		RestoreJobStatusRunning,
18765		RestoreJobStatusCompleted,
18766		RestoreJobStatusAborted,
18767		RestoreJobStatusFailed,
18768	}
18769}
18770
18771const (
18772	// StorageClassWarm is a StorageClass enum value
18773	StorageClassWarm = "WARM"
18774
18775	// StorageClassCold is a StorageClass enum value
18776	StorageClassCold = "COLD"
18777
18778	// StorageClassDeleted is a StorageClass enum value
18779	StorageClassDeleted = "DELETED"
18780)
18781
18782// StorageClass_Values returns all elements of the StorageClass enum
18783func StorageClass_Values() []string {
18784	return []string{
18785		StorageClassWarm,
18786		StorageClassCold,
18787		StorageClassDeleted,
18788	}
18789}
18790
18791const (
18792	// VaultEventBackupJobStarted is a VaultEvent enum value
18793	VaultEventBackupJobStarted = "BACKUP_JOB_STARTED"
18794
18795	// VaultEventBackupJobCompleted is a VaultEvent enum value
18796	VaultEventBackupJobCompleted = "BACKUP_JOB_COMPLETED"
18797
18798	// VaultEventBackupJobSuccessful is a VaultEvent enum value
18799	VaultEventBackupJobSuccessful = "BACKUP_JOB_SUCCESSFUL"
18800
18801	// VaultEventBackupJobFailed is a VaultEvent enum value
18802	VaultEventBackupJobFailed = "BACKUP_JOB_FAILED"
18803
18804	// VaultEventBackupJobExpired is a VaultEvent enum value
18805	VaultEventBackupJobExpired = "BACKUP_JOB_EXPIRED"
18806
18807	// VaultEventRestoreJobStarted is a VaultEvent enum value
18808	VaultEventRestoreJobStarted = "RESTORE_JOB_STARTED"
18809
18810	// VaultEventRestoreJobCompleted is a VaultEvent enum value
18811	VaultEventRestoreJobCompleted = "RESTORE_JOB_COMPLETED"
18812
18813	// VaultEventRestoreJobSuccessful is a VaultEvent enum value
18814	VaultEventRestoreJobSuccessful = "RESTORE_JOB_SUCCESSFUL"
18815
18816	// VaultEventRestoreJobFailed is a VaultEvent enum value
18817	VaultEventRestoreJobFailed = "RESTORE_JOB_FAILED"
18818
18819	// VaultEventCopyJobStarted is a VaultEvent enum value
18820	VaultEventCopyJobStarted = "COPY_JOB_STARTED"
18821
18822	// VaultEventCopyJobSuccessful is a VaultEvent enum value
18823	VaultEventCopyJobSuccessful = "COPY_JOB_SUCCESSFUL"
18824
18825	// VaultEventCopyJobFailed is a VaultEvent enum value
18826	VaultEventCopyJobFailed = "COPY_JOB_FAILED"
18827
18828	// VaultEventRecoveryPointModified is a VaultEvent enum value
18829	VaultEventRecoveryPointModified = "RECOVERY_POINT_MODIFIED"
18830
18831	// VaultEventBackupPlanCreated is a VaultEvent enum value
18832	VaultEventBackupPlanCreated = "BACKUP_PLAN_CREATED"
18833
18834	// VaultEventBackupPlanModified is a VaultEvent enum value
18835	VaultEventBackupPlanModified = "BACKUP_PLAN_MODIFIED"
18836)
18837
18838// VaultEvent_Values returns all elements of the VaultEvent enum
18839func VaultEvent_Values() []string {
18840	return []string{
18841		VaultEventBackupJobStarted,
18842		VaultEventBackupJobCompleted,
18843		VaultEventBackupJobSuccessful,
18844		VaultEventBackupJobFailed,
18845		VaultEventBackupJobExpired,
18846		VaultEventRestoreJobStarted,
18847		VaultEventRestoreJobCompleted,
18848		VaultEventRestoreJobSuccessful,
18849		VaultEventRestoreJobFailed,
18850		VaultEventCopyJobStarted,
18851		VaultEventCopyJobSuccessful,
18852		VaultEventCopyJobFailed,
18853		VaultEventRecoveryPointModified,
18854		VaultEventBackupPlanCreated,
18855		VaultEventBackupPlanModified,
18856	}
18857}
18858