github.com/aavshr/aws-sdk-go@v1.41.3/service/backup/api.go (about)

     1  // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
     2  
     3  package backup
     4  
     5  import (
     6  	"fmt"
     7  	"time"
     8  
     9  	"github.com/aavshr/aws-sdk-go/aws"
    10  	"github.com/aavshr/aws-sdk-go/aws/awsutil"
    11  	"github.com/aavshr/aws-sdk-go/aws/request"
    12  	"github.com/aavshr/aws-sdk-go/private/protocol"
    13  	"github.com/aavshr/aws-sdk-go/private/protocol/restjson"
    14  )
    15  
    16  const 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
    42  func (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
    93  func (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.
   107  func (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  
   114  const 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
   140  func (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
   206  func (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.
   220  func (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  
   227  const 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
   253  func (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
   304  func (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.
   318  func (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  
   325  const 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
   351  func (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
   401  func (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.
   415  func (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  
   422  const 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
   448  func (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
   498  func (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.
   512  func (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  
   519  const 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
   545  func (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
   594  func (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.
   608  func (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  
   615  const 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
   641  func (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
   685  func (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.
   699  func (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  
   706  const 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
   732  func (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
   780  func (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.
   794  func (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  
   801  const 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
   827  func (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
   870  func (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.
   884  func (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  
   891  const 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
   917  func (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
   970  func (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.
   984  func (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  
   991  const 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
  1017  func (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
  1060  func (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.
  1074  func (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  
  1081  const 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
  1107  func (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
  1154  func (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.
  1168  func (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  
  1175  const 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
  1201  func (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
  1255  func (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.
  1269  func (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  
  1276  const 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
  1302  func (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
  1349  func (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.
  1363  func (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  
  1370  const 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
  1396  func (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
  1442  func (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.
  1456  func (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  
  1463  const 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
  1489  func (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
  1531  func (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.
  1545  func (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  
  1552  const 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
  1578  func (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
  1620  func (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.
  1634  func (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  
  1641  const 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
  1667  func (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
  1709  func (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.
  1723  func (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  
  1730  const 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
  1756  func (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
  1794  func (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.
  1808  func (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  
  1815  const 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
  1841  func (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
  1885  func (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.
  1899  func (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  
  1906  const 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
  1932  func (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
  1975  func (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.
  1989  func (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  
  1996  const 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
  2022  func (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
  2058  func (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.
  2072  func (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  
  2079  const 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
  2105  func (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
  2144  func (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.
  2158  func (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  
  2165  const 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
  2191  func (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
  2234  func (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.
  2248  func (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  
  2255  const 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
  2281  func (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
  2328  func (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.
  2342  func (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  
  2349  const 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
  2375  func (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
  2431  func (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.
  2445  func (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  
  2452  const 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
  2478  func (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
  2520  func (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.
  2534  func (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  
  2541  const 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
  2567  func (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
  2610  func (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.
  2624  func (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  
  2631  const 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
  2657  func (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
  2704  func (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.
  2718  func (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  
  2725  const 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
  2751  func (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
  2793  func (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.
  2807  func (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  
  2814  const 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
  2840  func (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
  2883  func (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.
  2897  func (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  
  2904  const 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
  2930  func (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
  2973  func (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.
  2987  func (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  
  2994  const 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
  3020  func (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
  3062  func (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.
  3076  func (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  
  3083  const 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
  3109  func (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
  3151  func (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.
  3165  func (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  
  3172  const 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
  3198  func (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
  3230  func (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.
  3244  func (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  
  3251  const 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
  3277  func (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
  3321  func (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.
  3335  func (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  //
  3359  func (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.
  3370  func (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  
  3394  const 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
  3420  func (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
  3469  func (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.
  3483  func (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  //
  3507  func (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.
  3518  func (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  
  3542  const 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
  3568  func (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
  3618  func (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.
  3632  func (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  //
  3656  func (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.
  3667  func (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  
  3691  const 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
  3717  func (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
  3768  func (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.
  3782  func (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  //
  3806  func (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.
  3817  func (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  
  3841  const 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
  3867  func (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
  3916  func (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.
  3930  func (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  //
  3954  func (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.
  3965  func (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  
  3989  const 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
  4015  func (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
  4064  func (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.
  4078  func (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  //
  4102  func (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.
  4113  func (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  
  4137  const 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
  4163  func (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
  4205  func (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.
  4219  func (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  //
  4243  func (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.
  4254  func (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  
  4278  const 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
  4304  func (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
  4347  func (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.
  4361  func (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  //
  4385  func (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.
  4396  func (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  
  4420  const 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
  4446  func (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
  4490  func (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.
  4504  func (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  //
  4528  func (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.
  4539  func (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  
  4563  const 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
  4589  func (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
  4638  func (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.
  4652  func (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  //
  4676  func (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.
  4687  func (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  
  4711  const 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
  4737  func (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
  4789  func (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.
  4803  func (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  //
  4827  func (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.
  4838  func (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  
  4862  const 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
  4888  func (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
  4930  func (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.
  4944  func (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  //
  4968  func (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.
  4979  func (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  
  5003  const 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
  5029  func (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
  5072  func (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.
  5086  func (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  //
  5110  func (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.
  5121  func (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  
  5145  const 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
  5171  func (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
  5220  func (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.
  5234  func (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  //
  5258  func (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.
  5269  func (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  
  5293  const 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
  5319  func (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
  5370  func (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.
  5384  func (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  //
  5408  func (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.
  5419  func (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  
  5443  const 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
  5469  func (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
  5514  func (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.
  5528  func (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  
  5535  const 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
  5561  func (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
  5613  func (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.
  5627  func (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  
  5634  const 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
  5660  func (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
  5703  func (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.
  5717  func (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  
  5724  const 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
  5750  func (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
  5800  func (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.
  5814  func (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  
  5821  const 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
  5847  func (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
  5899  func (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.
  5913  func (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  
  5920  const 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
  5946  func (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
  5988  func (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.
  6002  func (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  
  6009  const 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
  6035  func (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
  6077  func (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.
  6091  func (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  
  6098  const 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
  6124  func (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
  6171  func (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.
  6185  func (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  
  6192  const 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
  6218  func (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
  6266  func (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.
  6280  func (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  
  6287  const 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
  6313  func (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
  6357  func (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.
  6371  func (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  
  6378  const 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
  6404  func (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
  6447  func (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.
  6461  func (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  
  6468  const 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
  6494  func (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
  6548  func (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.
  6562  func (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  
  6569  const 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
  6595  func (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
  6641  func (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.
  6655  func (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  
  6662  const 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
  6688  func (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
  6744  func (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.
  6758  func (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  
  6765  const 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
  6791  func (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
  6836  func (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.
  6850  func (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  
  6857  const 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
  6883  func (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
  6930  func (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.
  6944  func (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.
  6952  type 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".
  6988  func (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".
  6997  func (s AdvancedBackupSetting) GoString() string {
  6998  	return s.String()
  6999  }
  7000  
  7001  // SetBackupOptions sets the BackupOptions field's value.
  7002  func (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.
  7008  func (s *AdvancedBackupSetting) SetResourceType(v string) *AdvancedBackupSetting {
  7009  	s.ResourceType = &v
  7010  	return s
  7011  }
  7012  
  7013  // The required resource already exists.
  7014  type 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".
  7036  func (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".
  7045  func (s AlreadyExistsException) GoString() string {
  7046  	return s.String()
  7047  }
  7048  
  7049  func newErrorAlreadyExistsException(v protocol.ResponseMetadata) error {
  7050  	return &AlreadyExistsException{
  7051  		RespMetadata: v,
  7052  	}
  7053  }
  7054  
  7055  // Code returns the exception type name.
  7056  func (s *AlreadyExistsException) Code() string {
  7057  	return "AlreadyExistsException"
  7058  }
  7059  
  7060  // Message returns the exception's message.
  7061  func (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.
  7069  func (s *AlreadyExistsException) OrigErr() error {
  7070  	return nil
  7071  }
  7072  
  7073  func (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.
  7078  func (s *AlreadyExistsException) StatusCode() int {
  7079  	return s.RespMetadata.StatusCode
  7080  }
  7081  
  7082  // RequestID returns the service's response RequestID for request.
  7083  func (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.
  7101  type 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".
  7116  func (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".
  7125  func (s CalculatedLifecycle) GoString() string {
  7126  	return s.String()
  7127  }
  7128  
  7129  // SetDeleteAt sets the DeleteAt field's value.
  7130  func (s *CalculatedLifecycle) SetDeleteAt(v time.Time) *CalculatedLifecycle {
  7131  	s.DeleteAt = &v
  7132  	return s
  7133  }
  7134  
  7135  // SetMoveToColdStorageAt sets the MoveToColdStorageAt field's value.
  7136  func (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.
  7144  type 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".
  7171  func (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".
  7180  func (s Condition) GoString() string {
  7181  	return s.String()
  7182  }
  7183  
  7184  // Validate inspects the fields of the type to determine if they are valid.
  7185  func (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.
  7204  func (s *Condition) SetConditionKey(v string) *Condition {
  7205  	s.ConditionKey = &v
  7206  	return s
  7207  }
  7208  
  7209  // SetConditionType sets the ConditionType field's value.
  7210  func (s *Condition) SetConditionType(v string) *Condition {
  7211  	s.ConditionType = &v
  7212  	return s
  7213  }
  7214  
  7215  // SetConditionValue sets the ConditionValue field's value.
  7216  func (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.
  7223  type 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".
  7241  func (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".
  7250  func (s ConflictException) GoString() string {
  7251  	return s.String()
  7252  }
  7253  
  7254  func newErrorConflictException(v protocol.ResponseMetadata) error {
  7255  	return &ConflictException{
  7256  		RespMetadata: v,
  7257  	}
  7258  }
  7259  
  7260  // Code returns the exception type name.
  7261  func (s *ConflictException) Code() string {
  7262  	return "ConflictException"
  7263  }
  7264  
  7265  // Message returns the exception's message.
  7266  func (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.
  7274  func (s *ConflictException) OrigErr() error {
  7275  	return nil
  7276  }
  7277  
  7278  func (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.
  7283  func (s *ConflictException) StatusCode() int {
  7284  	return s.RespMetadata.StatusCode
  7285  }
  7286  
  7287  // RequestID returns the service's response RequestID for request.
  7288  func (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.
  7296  type 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".
  7311  func (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".
  7320  func (s ControlInputParameter) GoString() string {
  7321  	return s.String()
  7322  }
  7323  
  7324  // SetParameterName sets the ParameterName field's value.
  7325  func (s *ControlInputParameter) SetParameterName(v string) *ControlInputParameter {
  7326  	s.ParameterName = &v
  7327  	return s
  7328  }
  7329  
  7330  // SetParameterValue sets the ParameterValue field's value.
  7331  func (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.
  7343  type 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".
  7364  func (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".
  7373  func (s ControlScope) GoString() string {
  7374  	return s.String()
  7375  }
  7376  
  7377  // Validate inspects the fields of the type to determine if they are valid.
  7378  func (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.
  7391  func (s *ControlScope) SetComplianceResourceIds(v []*string) *ControlScope {
  7392  	s.ComplianceResourceIds = v
  7393  	return s
  7394  }
  7395  
  7396  // SetComplianceResourceTypes sets the ComplianceResourceTypes field's value.
  7397  func (s *ControlScope) SetComplianceResourceTypes(v []*string) *ControlScope {
  7398  	s.ComplianceResourceTypes = v
  7399  	return s
  7400  }
  7401  
  7402  // SetTags sets the Tags field's value.
  7403  func (s *ControlScope) SetTags(v map[string]*string) *ControlScope {
  7404  	s.Tags = v
  7405  	return s
  7406  }
  7407  
  7408  // The details of the copy operation.
  7409  type 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".
  7436  func (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".
  7445  func (s CopyAction) GoString() string {
  7446  	return s.String()
  7447  }
  7448  
  7449  // Validate inspects the fields of the type to determine if they are valid.
  7450  func (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.
  7463  func (s *CopyAction) SetDestinationBackupVaultArn(v string) *CopyAction {
  7464  	s.DestinationBackupVaultArn = &v
  7465  	return s
  7466  }
  7467  
  7468  // SetLifecycle sets the Lifecycle field's value.
  7469  func (s *CopyAction) SetLifecycle(v *Lifecycle) *CopyAction {
  7470  	s.Lifecycle = v
  7471  	return s
  7472  }
  7473  
  7474  // Contains detailed information about a copy job.
  7475  type 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".
  7544  func (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".
  7553  func (s CopyJob) GoString() string {
  7554  	return s.String()
  7555  }
  7556  
  7557  // SetAccountId sets the AccountId field's value.
  7558  func (s *CopyJob) SetAccountId(v string) *CopyJob {
  7559  	s.AccountId = &v
  7560  	return s
  7561  }
  7562  
  7563  // SetBackupSizeInBytes sets the BackupSizeInBytes field's value.
  7564  func (s *CopyJob) SetBackupSizeInBytes(v int64) *CopyJob {
  7565  	s.BackupSizeInBytes = &v
  7566  	return s
  7567  }
  7568  
  7569  // SetCompletionDate sets the CompletionDate field's value.
  7570  func (s *CopyJob) SetCompletionDate(v time.Time) *CopyJob {
  7571  	s.CompletionDate = &v
  7572  	return s
  7573  }
  7574  
  7575  // SetCopyJobId sets the CopyJobId field's value.
  7576  func (s *CopyJob) SetCopyJobId(v string) *CopyJob {
  7577  	s.CopyJobId = &v
  7578  	return s
  7579  }
  7580  
  7581  // SetCreatedBy sets the CreatedBy field's value.
  7582  func (s *CopyJob) SetCreatedBy(v *RecoveryPointCreator) *CopyJob {
  7583  	s.CreatedBy = v
  7584  	return s
  7585  }
  7586  
  7587  // SetCreationDate sets the CreationDate field's value.
  7588  func (s *CopyJob) SetCreationDate(v time.Time) *CopyJob {
  7589  	s.CreationDate = &v
  7590  	return s
  7591  }
  7592  
  7593  // SetDestinationBackupVaultArn sets the DestinationBackupVaultArn field's value.
  7594  func (s *CopyJob) SetDestinationBackupVaultArn(v string) *CopyJob {
  7595  	s.DestinationBackupVaultArn = &v
  7596  	return s
  7597  }
  7598  
  7599  // SetDestinationRecoveryPointArn sets the DestinationRecoveryPointArn field's value.
  7600  func (s *CopyJob) SetDestinationRecoveryPointArn(v string) *CopyJob {
  7601  	s.DestinationRecoveryPointArn = &v
  7602  	return s
  7603  }
  7604  
  7605  // SetIamRoleArn sets the IamRoleArn field's value.
  7606  func (s *CopyJob) SetIamRoleArn(v string) *CopyJob {
  7607  	s.IamRoleArn = &v
  7608  	return s
  7609  }
  7610  
  7611  // SetResourceArn sets the ResourceArn field's value.
  7612  func (s *CopyJob) SetResourceArn(v string) *CopyJob {
  7613  	s.ResourceArn = &v
  7614  	return s
  7615  }
  7616  
  7617  // SetResourceType sets the ResourceType field's value.
  7618  func (s *CopyJob) SetResourceType(v string) *CopyJob {
  7619  	s.ResourceType = &v
  7620  	return s
  7621  }
  7622  
  7623  // SetSourceBackupVaultArn sets the SourceBackupVaultArn field's value.
  7624  func (s *CopyJob) SetSourceBackupVaultArn(v string) *CopyJob {
  7625  	s.SourceBackupVaultArn = &v
  7626  	return s
  7627  }
  7628  
  7629  // SetSourceRecoveryPointArn sets the SourceRecoveryPointArn field's value.
  7630  func (s *CopyJob) SetSourceRecoveryPointArn(v string) *CopyJob {
  7631  	s.SourceRecoveryPointArn = &v
  7632  	return s
  7633  }
  7634  
  7635  // SetState sets the State field's value.
  7636  func (s *CopyJob) SetState(v string) *CopyJob {
  7637  	s.State = &v
  7638  	return s
  7639  }
  7640  
  7641  // SetStatusMessage sets the StatusMessage field's value.
  7642  func (s *CopyJob) SetStatusMessage(v string) *CopyJob {
  7643  	s.StatusMessage = &v
  7644  	return s
  7645  }
  7646  
  7647  type 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".
  7677  func (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".
  7686  func (s CreateBackupPlanInput) GoString() string {
  7687  	return s.String()
  7688  }
  7689  
  7690  // Validate inspects the fields of the type to determine if they are valid.
  7691  func (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.
  7709  func (s *CreateBackupPlanInput) SetBackupPlan(v *PlanInput) *CreateBackupPlanInput {
  7710  	s.BackupPlan = v
  7711  	return s
  7712  }
  7713  
  7714  // SetBackupPlanTags sets the BackupPlanTags field's value.
  7715  func (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.
  7721  func (s *CreateBackupPlanInput) SetCreatorRequestId(v string) *CreateBackupPlanInput {
  7722  	s.CreatorRequestId = &v
  7723  	return s
  7724  }
  7725  
  7726  type 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".
  7756  func (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".
  7765  func (s CreateBackupPlanOutput) GoString() string {
  7766  	return s.String()
  7767  }
  7768  
  7769  // SetAdvancedBackupSettings sets the AdvancedBackupSettings field's value.
  7770  func (s *CreateBackupPlanOutput) SetAdvancedBackupSettings(v []*AdvancedBackupSetting) *CreateBackupPlanOutput {
  7771  	s.AdvancedBackupSettings = v
  7772  	return s
  7773  }
  7774  
  7775  // SetBackupPlanArn sets the BackupPlanArn field's value.
  7776  func (s *CreateBackupPlanOutput) SetBackupPlanArn(v string) *CreateBackupPlanOutput {
  7777  	s.BackupPlanArn = &v
  7778  	return s
  7779  }
  7780  
  7781  // SetBackupPlanId sets the BackupPlanId field's value.
  7782  func (s *CreateBackupPlanOutput) SetBackupPlanId(v string) *CreateBackupPlanOutput {
  7783  	s.BackupPlanId = &v
  7784  	return s
  7785  }
  7786  
  7787  // SetCreationDate sets the CreationDate field's value.
  7788  func (s *CreateBackupPlanOutput) SetCreationDate(v time.Time) *CreateBackupPlanOutput {
  7789  	s.CreationDate = &v
  7790  	return s
  7791  }
  7792  
  7793  // SetVersionId sets the VersionId field's value.
  7794  func (s *CreateBackupPlanOutput) SetVersionId(v string) *CreateBackupPlanOutput {
  7795  	s.VersionId = &v
  7796  	return s
  7797  }
  7798  
  7799  type 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".
  7824  func (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".
  7833  func (s CreateBackupSelectionInput) GoString() string {
  7834  	return s.String()
  7835  }
  7836  
  7837  // Validate inspects the fields of the type to determine if they are valid.
  7838  func (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.
  7862  func (s *CreateBackupSelectionInput) SetBackupPlanId(v string) *CreateBackupSelectionInput {
  7863  	s.BackupPlanId = &v
  7864  	return s
  7865  }
  7866  
  7867  // SetBackupSelection sets the BackupSelection field's value.
  7868  func (s *CreateBackupSelectionInput) SetBackupSelection(v *Selection) *CreateBackupSelectionInput {
  7869  	s.BackupSelection = v
  7870  	return s
  7871  }
  7872  
  7873  // SetCreatorRequestId sets the CreatorRequestId field's value.
  7874  func (s *CreateBackupSelectionInput) SetCreatorRequestId(v string) *CreateBackupSelectionInput {
  7875  	s.CreatorRequestId = &v
  7876  	return s
  7877  }
  7878  
  7879  type 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".
  7901  func (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".
  7910  func (s CreateBackupSelectionOutput) GoString() string {
  7911  	return s.String()
  7912  }
  7913  
  7914  // SetBackupPlanId sets the BackupPlanId field's value.
  7915  func (s *CreateBackupSelectionOutput) SetBackupPlanId(v string) *CreateBackupSelectionOutput {
  7916  	s.BackupPlanId = &v
  7917  	return s
  7918  }
  7919  
  7920  // SetCreationDate sets the CreationDate field's value.
  7921  func (s *CreateBackupSelectionOutput) SetCreationDate(v time.Time) *CreateBackupSelectionOutput {
  7922  	s.CreationDate = &v
  7923  	return s
  7924  }
  7925  
  7926  // SetSelectionId sets the SelectionId field's value.
  7927  func (s *CreateBackupSelectionOutput) SetSelectionId(v string) *CreateBackupSelectionOutput {
  7928  	s.SelectionId = &v
  7929  	return s
  7930  }
  7931  
  7932  type 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".
  7965  func (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".
  7974  func (s CreateBackupVaultInput) GoString() string {
  7975  	return s.String()
  7976  }
  7977  
  7978  // Validate inspects the fields of the type to determine if they are valid.
  7979  func (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.
  7995  func (s *CreateBackupVaultInput) SetBackupVaultName(v string) *CreateBackupVaultInput {
  7996  	s.BackupVaultName = &v
  7997  	return s
  7998  }
  7999  
  8000  // SetBackupVaultTags sets the BackupVaultTags field's value.
  8001  func (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.
  8007  func (s *CreateBackupVaultInput) SetCreatorRequestId(v string) *CreateBackupVaultInput {
  8008  	s.CreatorRequestId = &v
  8009  	return s
  8010  }
  8011  
  8012  // SetEncryptionKeyArn sets the EncryptionKeyArn field's value.
  8013  func (s *CreateBackupVaultInput) SetEncryptionKeyArn(v string) *CreateBackupVaultInput {
  8014  	s.EncryptionKeyArn = &v
  8015  	return s
  8016  }
  8017  
  8018  type 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".
  8043  func (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".
  8052  func (s CreateBackupVaultOutput) GoString() string {
  8053  	return s.String()
  8054  }
  8055  
  8056  // SetBackupVaultArn sets the BackupVaultArn field's value.
  8057  func (s *CreateBackupVaultOutput) SetBackupVaultArn(v string) *CreateBackupVaultOutput {
  8058  	s.BackupVaultArn = &v
  8059  	return s
  8060  }
  8061  
  8062  // SetBackupVaultName sets the BackupVaultName field's value.
  8063  func (s *CreateBackupVaultOutput) SetBackupVaultName(v string) *CreateBackupVaultOutput {
  8064  	s.BackupVaultName = &v
  8065  	return s
  8066  }
  8067  
  8068  // SetCreationDate sets the CreationDate field's value.
  8069  func (s *CreateBackupVaultOutput) SetCreationDate(v time.Time) *CreateBackupVaultOutput {
  8070  	s.CreationDate = &v
  8071  	return s
  8072  }
  8073  
  8074  type 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".
  8108  func (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".
  8117  func (s CreateFrameworkInput) GoString() string {
  8118  	return s.String()
  8119  }
  8120  
  8121  // Validate inspects the fields of the type to determine if they are valid.
  8122  func (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.
  8151  func (s *CreateFrameworkInput) SetFrameworkControls(v []*FrameworkControl) *CreateFrameworkInput {
  8152  	s.FrameworkControls = v
  8153  	return s
  8154  }
  8155  
  8156  // SetFrameworkDescription sets the FrameworkDescription field's value.
  8157  func (s *CreateFrameworkInput) SetFrameworkDescription(v string) *CreateFrameworkInput {
  8158  	s.FrameworkDescription = &v
  8159  	return s
  8160  }
  8161  
  8162  // SetFrameworkName sets the FrameworkName field's value.
  8163  func (s *CreateFrameworkInput) SetFrameworkName(v string) *CreateFrameworkInput {
  8164  	s.FrameworkName = &v
  8165  	return s
  8166  }
  8167  
  8168  // SetFrameworkTags sets the FrameworkTags field's value.
  8169  func (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.
  8175  func (s *CreateFrameworkInput) SetIdempotencyToken(v string) *CreateFrameworkInput {
  8176  	s.IdempotencyToken = &v
  8177  	return s
  8178  }
  8179  
  8180  type 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".
  8198  func (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".
  8207  func (s CreateFrameworkOutput) GoString() string {
  8208  	return s.String()
  8209  }
  8210  
  8211  // SetFrameworkArn sets the FrameworkArn field's value.
  8212  func (s *CreateFrameworkOutput) SetFrameworkArn(v string) *CreateFrameworkOutput {
  8213  	s.FrameworkArn = &v
  8214  	return s
  8215  }
  8216  
  8217  // SetFrameworkName sets the FrameworkName field's value.
  8218  func (s *CreateFrameworkOutput) SetFrameworkName(v string) *CreateFrameworkOutput {
  8219  	s.FrameworkName = &v
  8220  	return s
  8221  }
  8222  
  8223  type 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".
  8271  func (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".
  8280  func (s CreateReportPlanInput) GoString() string {
  8281  	return s.String()
  8282  }
  8283  
  8284  // Validate inspects the fields of the type to determine if they are valid.
  8285  func (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.
  8317  func (s *CreateReportPlanInput) SetIdempotencyToken(v string) *CreateReportPlanInput {
  8318  	s.IdempotencyToken = &v
  8319  	return s
  8320  }
  8321  
  8322  // SetReportDeliveryChannel sets the ReportDeliveryChannel field's value.
  8323  func (s *CreateReportPlanInput) SetReportDeliveryChannel(v *ReportDeliveryChannel) *CreateReportPlanInput {
  8324  	s.ReportDeliveryChannel = v
  8325  	return s
  8326  }
  8327  
  8328  // SetReportPlanDescription sets the ReportPlanDescription field's value.
  8329  func (s *CreateReportPlanInput) SetReportPlanDescription(v string) *CreateReportPlanInput {
  8330  	s.ReportPlanDescription = &v
  8331  	return s
  8332  }
  8333  
  8334  // SetReportPlanName sets the ReportPlanName field's value.
  8335  func (s *CreateReportPlanInput) SetReportPlanName(v string) *CreateReportPlanInput {
  8336  	s.ReportPlanName = &v
  8337  	return s
  8338  }
  8339  
  8340  // SetReportPlanTags sets the ReportPlanTags field's value.
  8341  func (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.
  8347  func (s *CreateReportPlanInput) SetReportSetting(v *ReportSetting) *CreateReportPlanInput {
  8348  	s.ReportSetting = v
  8349  	return s
  8350  }
  8351  
  8352  type 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".
  8374  func (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".
  8383  func (s CreateReportPlanOutput) GoString() string {
  8384  	return s.String()
  8385  }
  8386  
  8387  // SetCreationTime sets the CreationTime field's value.
  8388  func (s *CreateReportPlanOutput) SetCreationTime(v time.Time) *CreateReportPlanOutput {
  8389  	s.CreationTime = &v
  8390  	return s
  8391  }
  8392  
  8393  // SetReportPlanArn sets the ReportPlanArn field's value.
  8394  func (s *CreateReportPlanOutput) SetReportPlanArn(v string) *CreateReportPlanOutput {
  8395  	s.ReportPlanArn = &v
  8396  	return s
  8397  }
  8398  
  8399  // SetReportPlanName sets the ReportPlanName field's value.
  8400  func (s *CreateReportPlanOutput) SetReportPlanName(v string) *CreateReportPlanOutput {
  8401  	s.ReportPlanName = &v
  8402  	return s
  8403  }
  8404  
  8405  type 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".
  8419  func (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".
  8428  func (s DeleteBackupPlanInput) GoString() string {
  8429  	return s.String()
  8430  }
  8431  
  8432  // Validate inspects the fields of the type to determine if they are valid.
  8433  func (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.
  8449  func (s *DeleteBackupPlanInput) SetBackupPlanId(v string) *DeleteBackupPlanInput {
  8450  	s.BackupPlanId = &v
  8451  	return s
  8452  }
  8453  
  8454  type 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".
  8480  func (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".
  8489  func (s DeleteBackupPlanOutput) GoString() string {
  8490  	return s.String()
  8491  }
  8492  
  8493  // SetBackupPlanArn sets the BackupPlanArn field's value.
  8494  func (s *DeleteBackupPlanOutput) SetBackupPlanArn(v string) *DeleteBackupPlanOutput {
  8495  	s.BackupPlanArn = &v
  8496  	return s
  8497  }
  8498  
  8499  // SetBackupPlanId sets the BackupPlanId field's value.
  8500  func (s *DeleteBackupPlanOutput) SetBackupPlanId(v string) *DeleteBackupPlanOutput {
  8501  	s.BackupPlanId = &v
  8502  	return s
  8503  }
  8504  
  8505  // SetDeletionDate sets the DeletionDate field's value.
  8506  func (s *DeleteBackupPlanOutput) SetDeletionDate(v time.Time) *DeleteBackupPlanOutput {
  8507  	s.DeletionDate = &v
  8508  	return s
  8509  }
  8510  
  8511  // SetVersionId sets the VersionId field's value.
  8512  func (s *DeleteBackupPlanOutput) SetVersionId(v string) *DeleteBackupPlanOutput {
  8513  	s.VersionId = &v
  8514  	return s
  8515  }
  8516  
  8517  type 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".
  8537  func (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".
  8546  func (s DeleteBackupSelectionInput) GoString() string {
  8547  	return s.String()
  8548  }
  8549  
  8550  // Validate inspects the fields of the type to determine if they are valid.
  8551  func (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.
  8573  func (s *DeleteBackupSelectionInput) SetBackupPlanId(v string) *DeleteBackupSelectionInput {
  8574  	s.BackupPlanId = &v
  8575  	return s
  8576  }
  8577  
  8578  // SetSelectionId sets the SelectionId field's value.
  8579  func (s *DeleteBackupSelectionInput) SetSelectionId(v string) *DeleteBackupSelectionInput {
  8580  	s.SelectionId = &v
  8581  	return s
  8582  }
  8583  
  8584  type DeleteBackupSelectionOutput struct {
  8585  	_ struct{} `type:"structure" nopayload:"true"`
  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".
  8593  func (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".
  8602  func (s DeleteBackupSelectionOutput) GoString() string {
  8603  	return s.String()
  8604  }
  8605  
  8606  type 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".
  8623  func (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".
  8632  func (s DeleteBackupVaultAccessPolicyInput) GoString() string {
  8633  	return s.String()
  8634  }
  8635  
  8636  // Validate inspects the fields of the type to determine if they are valid.
  8637  func (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.
  8653  func (s *DeleteBackupVaultAccessPolicyInput) SetBackupVaultName(v string) *DeleteBackupVaultAccessPolicyInput {
  8654  	s.BackupVaultName = &v
  8655  	return s
  8656  }
  8657  
  8658  type DeleteBackupVaultAccessPolicyOutput struct {
  8659  	_ struct{} `type:"structure" nopayload:"true"`
  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".
  8667  func (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".
  8676  func (s DeleteBackupVaultAccessPolicyOutput) GoString() string {
  8677  	return s.String()
  8678  }
  8679  
  8680  type 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".
  8697  func (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".
  8706  func (s DeleteBackupVaultInput) GoString() string {
  8707  	return s.String()
  8708  }
  8709  
  8710  // Validate inspects the fields of the type to determine if they are valid.
  8711  func (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.
  8727  func (s *DeleteBackupVaultInput) SetBackupVaultName(v string) *DeleteBackupVaultInput {
  8728  	s.BackupVaultName = &v
  8729  	return s
  8730  }
  8731  
  8732  type 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".
  8746  func (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".
  8755  func (s DeleteBackupVaultLockConfigurationInput) GoString() string {
  8756  	return s.String()
  8757  }
  8758  
  8759  // Validate inspects the fields of the type to determine if they are valid.
  8760  func (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.
  8776  func (s *DeleteBackupVaultLockConfigurationInput) SetBackupVaultName(v string) *DeleteBackupVaultLockConfigurationInput {
  8777  	s.BackupVaultName = &v
  8778  	return s
  8779  }
  8780  
  8781  type DeleteBackupVaultLockConfigurationOutput struct {
  8782  	_ struct{} `type:"structure" nopayload:"true"`
  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".
  8790  func (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".
  8799  func (s DeleteBackupVaultLockConfigurationOutput) GoString() string {
  8800  	return s.String()
  8801  }
  8802  
  8803  type 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".
  8820  func (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".
  8829  func (s DeleteBackupVaultNotificationsInput) GoString() string {
  8830  	return s.String()
  8831  }
  8832  
  8833  // Validate inspects the fields of the type to determine if they are valid.
  8834  func (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.
  8850  func (s *DeleteBackupVaultNotificationsInput) SetBackupVaultName(v string) *DeleteBackupVaultNotificationsInput {
  8851  	s.BackupVaultName = &v
  8852  	return s
  8853  }
  8854  
  8855  type DeleteBackupVaultNotificationsOutput struct {
  8856  	_ struct{} `type:"structure" nopayload:"true"`
  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".
  8864  func (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".
  8873  func (s DeleteBackupVaultNotificationsOutput) GoString() string {
  8874  	return s.String()
  8875  }
  8876  
  8877  type DeleteBackupVaultOutput struct {
  8878  	_ struct{} `type:"structure" nopayload:"true"`
  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".
  8886  func (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".
  8895  func (s DeleteBackupVaultOutput) GoString() string {
  8896  	return s.String()
  8897  }
  8898  
  8899  type 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".
  8913  func (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".
  8922  func (s DeleteFrameworkInput) GoString() string {
  8923  	return s.String()
  8924  }
  8925  
  8926  // Validate inspects the fields of the type to determine if they are valid.
  8927  func (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.
  8943  func (s *DeleteFrameworkInput) SetFrameworkName(v string) *DeleteFrameworkInput {
  8944  	s.FrameworkName = &v
  8945  	return s
  8946  }
  8947  
  8948  type DeleteFrameworkOutput struct {
  8949  	_ struct{} `type:"structure" nopayload:"true"`
  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".
  8957  func (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".
  8966  func (s DeleteFrameworkOutput) GoString() string {
  8967  	return s.String()
  8968  }
  8969  
  8970  type 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".
  8993  func (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".
  9002  func (s DeleteRecoveryPointInput) GoString() string {
  9003  	return s.String()
  9004  }
  9005  
  9006  // Validate inspects the fields of the type to determine if they are valid.
  9007  func (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.
  9029  func (s *DeleteRecoveryPointInput) SetBackupVaultName(v string) *DeleteRecoveryPointInput {
  9030  	s.BackupVaultName = &v
  9031  	return s
  9032  }
  9033  
  9034  // SetRecoveryPointArn sets the RecoveryPointArn field's value.
  9035  func (s *DeleteRecoveryPointInput) SetRecoveryPointArn(v string) *DeleteRecoveryPointInput {
  9036  	s.RecoveryPointArn = &v
  9037  	return s
  9038  }
  9039  
  9040  type DeleteRecoveryPointOutput struct {
  9041  	_ struct{} `type:"structure" nopayload:"true"`
  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".
  9049  func (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".
  9058  func (s DeleteRecoveryPointOutput) GoString() string {
  9059  	return s.String()
  9060  }
  9061  
  9062  type 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".
  9076  func (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".
  9085  func (s DeleteReportPlanInput) GoString() string {
  9086  	return s.String()
  9087  }
  9088  
  9089  // Validate inspects the fields of the type to determine if they are valid.
  9090  func (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.
  9106  func (s *DeleteReportPlanInput) SetReportPlanName(v string) *DeleteReportPlanInput {
  9107  	s.ReportPlanName = &v
  9108  	return s
  9109  }
  9110  
  9111  type DeleteReportPlanOutput struct {
  9112  	_ struct{} `type:"structure" nopayload:"true"`
  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".
  9120  func (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".
  9129  func (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.
  9135  type 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".
  9153  func (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".
  9162  func (s DependencyFailureException) GoString() string {
  9163  	return s.String()
  9164  }
  9165  
  9166  func newErrorDependencyFailureException(v protocol.ResponseMetadata) error {
  9167  	return &DependencyFailureException{
  9168  		RespMetadata: v,
  9169  	}
  9170  }
  9171  
  9172  // Code returns the exception type name.
  9173  func (s *DependencyFailureException) Code() string {
  9174  	return "DependencyFailureException"
  9175  }
  9176  
  9177  // Message returns the exception's message.
  9178  func (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.
  9186  func (s *DependencyFailureException) OrigErr() error {
  9187  	return nil
  9188  }
  9189  
  9190  func (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.
  9195  func (s *DependencyFailureException) StatusCode() int {
  9196  	return s.RespMetadata.StatusCode
  9197  }
  9198  
  9199  // RequestID returns the service's response RequestID for request.
  9200  func (s *DependencyFailureException) RequestID() string {
  9201  	return s.RespMetadata.RequestID
  9202  }
  9203  
  9204  type 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".
  9218  func (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".
  9227  func (s DescribeBackupJobInput) GoString() string {
  9228  	return s.String()
  9229  }
  9230  
  9231  // Validate inspects the fields of the type to determine if they are valid.
  9232  func (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.
  9248  func (s *DescribeBackupJobInput) SetBackupJobId(v string) *DescribeBackupJobInput {
  9249  	s.BackupJobId = &v
  9250  	return s
  9251  }
  9252  
  9253  type 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".
  9353  func (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".
  9362  func (s DescribeBackupJobOutput) GoString() string {
  9363  	return s.String()
  9364  }
  9365  
  9366  // SetAccountId sets the AccountId field's value.
  9367  func (s *DescribeBackupJobOutput) SetAccountId(v string) *DescribeBackupJobOutput {
  9368  	s.AccountId = &v
  9369  	return s
  9370  }
  9371  
  9372  // SetBackupJobId sets the BackupJobId field's value.
  9373  func (s *DescribeBackupJobOutput) SetBackupJobId(v string) *DescribeBackupJobOutput {
  9374  	s.BackupJobId = &v
  9375  	return s
  9376  }
  9377  
  9378  // SetBackupOptions sets the BackupOptions field's value.
  9379  func (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.
  9385  func (s *DescribeBackupJobOutput) SetBackupSizeInBytes(v int64) *DescribeBackupJobOutput {
  9386  	s.BackupSizeInBytes = &v
  9387  	return s
  9388  }
  9389  
  9390  // SetBackupType sets the BackupType field's value.
  9391  func (s *DescribeBackupJobOutput) SetBackupType(v string) *DescribeBackupJobOutput {
  9392  	s.BackupType = &v
  9393  	return s
  9394  }
  9395  
  9396  // SetBackupVaultArn sets the BackupVaultArn field's value.
  9397  func (s *DescribeBackupJobOutput) SetBackupVaultArn(v string) *DescribeBackupJobOutput {
  9398  	s.BackupVaultArn = &v
  9399  	return s
  9400  }
  9401  
  9402  // SetBackupVaultName sets the BackupVaultName field's value.
  9403  func (s *DescribeBackupJobOutput) SetBackupVaultName(v string) *DescribeBackupJobOutput {
  9404  	s.BackupVaultName = &v
  9405  	return s
  9406  }
  9407  
  9408  // SetBytesTransferred sets the BytesTransferred field's value.
  9409  func (s *DescribeBackupJobOutput) SetBytesTransferred(v int64) *DescribeBackupJobOutput {
  9410  	s.BytesTransferred = &v
  9411  	return s
  9412  }
  9413  
  9414  // SetCompletionDate sets the CompletionDate field's value.
  9415  func (s *DescribeBackupJobOutput) SetCompletionDate(v time.Time) *DescribeBackupJobOutput {
  9416  	s.CompletionDate = &v
  9417  	return s
  9418  }
  9419  
  9420  // SetCreatedBy sets the CreatedBy field's value.
  9421  func (s *DescribeBackupJobOutput) SetCreatedBy(v *RecoveryPointCreator) *DescribeBackupJobOutput {
  9422  	s.CreatedBy = v
  9423  	return s
  9424  }
  9425  
  9426  // SetCreationDate sets the CreationDate field's value.
  9427  func (s *DescribeBackupJobOutput) SetCreationDate(v time.Time) *DescribeBackupJobOutput {
  9428  	s.CreationDate = &v
  9429  	return s
  9430  }
  9431  
  9432  // SetExpectedCompletionDate sets the ExpectedCompletionDate field's value.
  9433  func (s *DescribeBackupJobOutput) SetExpectedCompletionDate(v time.Time) *DescribeBackupJobOutput {
  9434  	s.ExpectedCompletionDate = &v
  9435  	return s
  9436  }
  9437  
  9438  // SetIamRoleArn sets the IamRoleArn field's value.
  9439  func (s *DescribeBackupJobOutput) SetIamRoleArn(v string) *DescribeBackupJobOutput {
  9440  	s.IamRoleArn = &v
  9441  	return s
  9442  }
  9443  
  9444  // SetPercentDone sets the PercentDone field's value.
  9445  func (s *DescribeBackupJobOutput) SetPercentDone(v string) *DescribeBackupJobOutput {
  9446  	s.PercentDone = &v
  9447  	return s
  9448  }
  9449  
  9450  // SetRecoveryPointArn sets the RecoveryPointArn field's value.
  9451  func (s *DescribeBackupJobOutput) SetRecoveryPointArn(v string) *DescribeBackupJobOutput {
  9452  	s.RecoveryPointArn = &v
  9453  	return s
  9454  }
  9455  
  9456  // SetResourceArn sets the ResourceArn field's value.
  9457  func (s *DescribeBackupJobOutput) SetResourceArn(v string) *DescribeBackupJobOutput {
  9458  	s.ResourceArn = &v
  9459  	return s
  9460  }
  9461  
  9462  // SetResourceType sets the ResourceType field's value.
  9463  func (s *DescribeBackupJobOutput) SetResourceType(v string) *DescribeBackupJobOutput {
  9464  	s.ResourceType = &v
  9465  	return s
  9466  }
  9467  
  9468  // SetStartBy sets the StartBy field's value.
  9469  func (s *DescribeBackupJobOutput) SetStartBy(v time.Time) *DescribeBackupJobOutput {
  9470  	s.StartBy = &v
  9471  	return s
  9472  }
  9473  
  9474  // SetState sets the State field's value.
  9475  func (s *DescribeBackupJobOutput) SetState(v string) *DescribeBackupJobOutput {
  9476  	s.State = &v
  9477  	return s
  9478  }
  9479  
  9480  // SetStatusMessage sets the StatusMessage field's value.
  9481  func (s *DescribeBackupJobOutput) SetStatusMessage(v string) *DescribeBackupJobOutput {
  9482  	s.StatusMessage = &v
  9483  	return s
  9484  }
  9485  
  9486  type 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".
  9503  func (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".
  9512  func (s DescribeBackupVaultInput) GoString() string {
  9513  	return s.String()
  9514  }
  9515  
  9516  // Validate inspects the fields of the type to determine if they are valid.
  9517  func (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.
  9533  func (s *DescribeBackupVaultInput) SetBackupVaultName(v string) *DescribeBackupVaultInput {
  9534  	s.BackupVaultName = &v
  9535  	return s
  9536  }
  9537  
  9538  type 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".
  9616  func (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".
  9625  func (s DescribeBackupVaultOutput) GoString() string {
  9626  	return s.String()
  9627  }
  9628  
  9629  // SetBackupVaultArn sets the BackupVaultArn field's value.
  9630  func (s *DescribeBackupVaultOutput) SetBackupVaultArn(v string) *DescribeBackupVaultOutput {
  9631  	s.BackupVaultArn = &v
  9632  	return s
  9633  }
  9634  
  9635  // SetBackupVaultName sets the BackupVaultName field's value.
  9636  func (s *DescribeBackupVaultOutput) SetBackupVaultName(v string) *DescribeBackupVaultOutput {
  9637  	s.BackupVaultName = &v
  9638  	return s
  9639  }
  9640  
  9641  // SetCreationDate sets the CreationDate field's value.
  9642  func (s *DescribeBackupVaultOutput) SetCreationDate(v time.Time) *DescribeBackupVaultOutput {
  9643  	s.CreationDate = &v
  9644  	return s
  9645  }
  9646  
  9647  // SetCreatorRequestId sets the CreatorRequestId field's value.
  9648  func (s *DescribeBackupVaultOutput) SetCreatorRequestId(v string) *DescribeBackupVaultOutput {
  9649  	s.CreatorRequestId = &v
  9650  	return s
  9651  }
  9652  
  9653  // SetEncryptionKeyArn sets the EncryptionKeyArn field's value.
  9654  func (s *DescribeBackupVaultOutput) SetEncryptionKeyArn(v string) *DescribeBackupVaultOutput {
  9655  	s.EncryptionKeyArn = &v
  9656  	return s
  9657  }
  9658  
  9659  // SetLockDate sets the LockDate field's value.
  9660  func (s *DescribeBackupVaultOutput) SetLockDate(v time.Time) *DescribeBackupVaultOutput {
  9661  	s.LockDate = &v
  9662  	return s
  9663  }
  9664  
  9665  // SetLocked sets the Locked field's value.
  9666  func (s *DescribeBackupVaultOutput) SetLocked(v bool) *DescribeBackupVaultOutput {
  9667  	s.Locked = &v
  9668  	return s
  9669  }
  9670  
  9671  // SetMaxRetentionDays sets the MaxRetentionDays field's value.
  9672  func (s *DescribeBackupVaultOutput) SetMaxRetentionDays(v int64) *DescribeBackupVaultOutput {
  9673  	s.MaxRetentionDays = &v
  9674  	return s
  9675  }
  9676  
  9677  // SetMinRetentionDays sets the MinRetentionDays field's value.
  9678  func (s *DescribeBackupVaultOutput) SetMinRetentionDays(v int64) *DescribeBackupVaultOutput {
  9679  	s.MinRetentionDays = &v
  9680  	return s
  9681  }
  9682  
  9683  // SetNumberOfRecoveryPoints sets the NumberOfRecoveryPoints field's value.
  9684  func (s *DescribeBackupVaultOutput) SetNumberOfRecoveryPoints(v int64) *DescribeBackupVaultOutput {
  9685  	s.NumberOfRecoveryPoints = &v
  9686  	return s
  9687  }
  9688  
  9689  type 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".
  9703  func (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".
  9712  func (s DescribeCopyJobInput) GoString() string {
  9713  	return s.String()
  9714  }
  9715  
  9716  // Validate inspects the fields of the type to determine if they are valid.
  9717  func (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.
  9733  func (s *DescribeCopyJobInput) SetCopyJobId(v string) *DescribeCopyJobInput {
  9734  	s.CopyJobId = &v
  9735  	return s
  9736  }
  9737  
  9738  type 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".
  9750  func (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".
  9759  func (s DescribeCopyJobOutput) GoString() string {
  9760  	return s.String()
  9761  }
  9762  
  9763  // SetCopyJob sets the CopyJob field's value.
  9764  func (s *DescribeCopyJobOutput) SetCopyJob(v *CopyJob) *DescribeCopyJobOutput {
  9765  	s.CopyJob = v
  9766  	return s
  9767  }
  9768  
  9769  type 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".
  9783  func (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".
  9792  func (s DescribeFrameworkInput) GoString() string {
  9793  	return s.String()
  9794  }
  9795  
  9796  // Validate inspects the fields of the type to determine if they are valid.
  9797  func (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.
  9813  func (s *DescribeFrameworkInput) SetFrameworkName(v string) *DescribeFrameworkInput {
  9814  	s.FrameworkName = &v
  9815  	return s
  9816  }
  9817  
  9818  type 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".
  9877  func (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".
  9886  func (s DescribeFrameworkOutput) GoString() string {
  9887  	return s.String()
  9888  }
  9889  
  9890  // SetCreationTime sets the CreationTime field's value.
  9891  func (s *DescribeFrameworkOutput) SetCreationTime(v time.Time) *DescribeFrameworkOutput {
  9892  	s.CreationTime = &v
  9893  	return s
  9894  }
  9895  
  9896  // SetDeploymentStatus sets the DeploymentStatus field's value.
  9897  func (s *DescribeFrameworkOutput) SetDeploymentStatus(v string) *DescribeFrameworkOutput {
  9898  	s.DeploymentStatus = &v
  9899  	return s
  9900  }
  9901  
  9902  // SetFrameworkArn sets the FrameworkArn field's value.
  9903  func (s *DescribeFrameworkOutput) SetFrameworkArn(v string) *DescribeFrameworkOutput {
  9904  	s.FrameworkArn = &v
  9905  	return s
  9906  }
  9907  
  9908  // SetFrameworkControls sets the FrameworkControls field's value.
  9909  func (s *DescribeFrameworkOutput) SetFrameworkControls(v []*FrameworkControl) *DescribeFrameworkOutput {
  9910  	s.FrameworkControls = v
  9911  	return s
  9912  }
  9913  
  9914  // SetFrameworkDescription sets the FrameworkDescription field's value.
  9915  func (s *DescribeFrameworkOutput) SetFrameworkDescription(v string) *DescribeFrameworkOutput {
  9916  	s.FrameworkDescription = &v
  9917  	return s
  9918  }
  9919  
  9920  // SetFrameworkName sets the FrameworkName field's value.
  9921  func (s *DescribeFrameworkOutput) SetFrameworkName(v string) *DescribeFrameworkOutput {
  9922  	s.FrameworkName = &v
  9923  	return s
  9924  }
  9925  
  9926  // SetFrameworkStatus sets the FrameworkStatus field's value.
  9927  func (s *DescribeFrameworkOutput) SetFrameworkStatus(v string) *DescribeFrameworkOutput {
  9928  	s.FrameworkStatus = &v
  9929  	return s
  9930  }
  9931  
  9932  // SetIdempotencyToken sets the IdempotencyToken field's value.
  9933  func (s *DescribeFrameworkOutput) SetIdempotencyToken(v string) *DescribeFrameworkOutput {
  9934  	s.IdempotencyToken = &v
  9935  	return s
  9936  }
  9937  
  9938  type 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".
  9947  func (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".
  9956  func (s DescribeGlobalSettingsInput) GoString() string {
  9957  	return s.String()
  9958  }
  9959  
  9960  type 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".
  9978  func (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".
  9987  func (s DescribeGlobalSettingsOutput) GoString() string {
  9988  	return s.String()
  9989  }
  9990  
  9991  // SetGlobalSettings sets the GlobalSettings field's value.
  9992  func (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.
  9998  func (s *DescribeGlobalSettingsOutput) SetLastUpdateTime(v time.Time) *DescribeGlobalSettingsOutput {
  9999  	s.LastUpdateTime = &v
 10000  	return s
 10001  }
 10002  
 10003  type 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".
 10018  func (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".
 10027  func (s DescribeProtectedResourceInput) GoString() string {
 10028  	return s.String()
 10029  }
 10030  
 10031  // Validate inspects the fields of the type to determine if they are valid.
 10032  func (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.
 10048  func (s *DescribeProtectedResourceInput) SetResourceArn(v string) *DescribeProtectedResourceInput {
 10049  	s.ResourceArn = &v
 10050  	return s
 10051  }
 10052  
 10053  type 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".
 10076  func (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".
 10085  func (s DescribeProtectedResourceOutput) GoString() string {
 10086  	return s.String()
 10087  }
 10088  
 10089  // SetLastBackupTime sets the LastBackupTime field's value.
 10090  func (s *DescribeProtectedResourceOutput) SetLastBackupTime(v time.Time) *DescribeProtectedResourceOutput {
 10091  	s.LastBackupTime = &v
 10092  	return s
 10093  }
 10094  
 10095  // SetResourceArn sets the ResourceArn field's value.
 10096  func (s *DescribeProtectedResourceOutput) SetResourceArn(v string) *DescribeProtectedResourceOutput {
 10097  	s.ResourceArn = &v
 10098  	return s
 10099  }
 10100  
 10101  // SetResourceType sets the ResourceType field's value.
 10102  func (s *DescribeProtectedResourceOutput) SetResourceType(v string) *DescribeProtectedResourceOutput {
 10103  	s.ResourceType = &v
 10104  	return s
 10105  }
 10106  
 10107  type 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".
 10130  func (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".
 10139  func (s DescribeRecoveryPointInput) GoString() string {
 10140  	return s.String()
 10141  }
 10142  
 10143  // Validate inspects the fields of the type to determine if they are valid.
 10144  func (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.
 10166  func (s *DescribeRecoveryPointInput) SetBackupVaultName(v string) *DescribeRecoveryPointInput {
 10167  	s.BackupVaultName = &v
 10168  	return s
 10169  }
 10170  
 10171  // SetRecoveryPointArn sets the RecoveryPointArn field's value.
 10172  func (s *DescribeRecoveryPointInput) SetRecoveryPointArn(v string) *DescribeRecoveryPointInput {
 10173  	s.RecoveryPointArn = &v
 10174  	return s
 10175  }
 10176  
 10177  type 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".
 10290  func (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".
 10299  func (s DescribeRecoveryPointOutput) GoString() string {
 10300  	return s.String()
 10301  }
 10302  
 10303  // SetBackupSizeInBytes sets the BackupSizeInBytes field's value.
 10304  func (s *DescribeRecoveryPointOutput) SetBackupSizeInBytes(v int64) *DescribeRecoveryPointOutput {
 10305  	s.BackupSizeInBytes = &v
 10306  	return s
 10307  }
 10308  
 10309  // SetBackupVaultArn sets the BackupVaultArn field's value.
 10310  func (s *DescribeRecoveryPointOutput) SetBackupVaultArn(v string) *DescribeRecoveryPointOutput {
 10311  	s.BackupVaultArn = &v
 10312  	return s
 10313  }
 10314  
 10315  // SetBackupVaultName sets the BackupVaultName field's value.
 10316  func (s *DescribeRecoveryPointOutput) SetBackupVaultName(v string) *DescribeRecoveryPointOutput {
 10317  	s.BackupVaultName = &v
 10318  	return s
 10319  }
 10320  
 10321  // SetCalculatedLifecycle sets the CalculatedLifecycle field's value.
 10322  func (s *DescribeRecoveryPointOutput) SetCalculatedLifecycle(v *CalculatedLifecycle) *DescribeRecoveryPointOutput {
 10323  	s.CalculatedLifecycle = v
 10324  	return s
 10325  }
 10326  
 10327  // SetCompletionDate sets the CompletionDate field's value.
 10328  func (s *DescribeRecoveryPointOutput) SetCompletionDate(v time.Time) *DescribeRecoveryPointOutput {
 10329  	s.CompletionDate = &v
 10330  	return s
 10331  }
 10332  
 10333  // SetCreatedBy sets the CreatedBy field's value.
 10334  func (s *DescribeRecoveryPointOutput) SetCreatedBy(v *RecoveryPointCreator) *DescribeRecoveryPointOutput {
 10335  	s.CreatedBy = v
 10336  	return s
 10337  }
 10338  
 10339  // SetCreationDate sets the CreationDate field's value.
 10340  func (s *DescribeRecoveryPointOutput) SetCreationDate(v time.Time) *DescribeRecoveryPointOutput {
 10341  	s.CreationDate = &v
 10342  	return s
 10343  }
 10344  
 10345  // SetEncryptionKeyArn sets the EncryptionKeyArn field's value.
 10346  func (s *DescribeRecoveryPointOutput) SetEncryptionKeyArn(v string) *DescribeRecoveryPointOutput {
 10347  	s.EncryptionKeyArn = &v
 10348  	return s
 10349  }
 10350  
 10351  // SetIamRoleArn sets the IamRoleArn field's value.
 10352  func (s *DescribeRecoveryPointOutput) SetIamRoleArn(v string) *DescribeRecoveryPointOutput {
 10353  	s.IamRoleArn = &v
 10354  	return s
 10355  }
 10356  
 10357  // SetIsEncrypted sets the IsEncrypted field's value.
 10358  func (s *DescribeRecoveryPointOutput) SetIsEncrypted(v bool) *DescribeRecoveryPointOutput {
 10359  	s.IsEncrypted = &v
 10360  	return s
 10361  }
 10362  
 10363  // SetLastRestoreTime sets the LastRestoreTime field's value.
 10364  func (s *DescribeRecoveryPointOutput) SetLastRestoreTime(v time.Time) *DescribeRecoveryPointOutput {
 10365  	s.LastRestoreTime = &v
 10366  	return s
 10367  }
 10368  
 10369  // SetLifecycle sets the Lifecycle field's value.
 10370  func (s *DescribeRecoveryPointOutput) SetLifecycle(v *Lifecycle) *DescribeRecoveryPointOutput {
 10371  	s.Lifecycle = v
 10372  	return s
 10373  }
 10374  
 10375  // SetRecoveryPointArn sets the RecoveryPointArn field's value.
 10376  func (s *DescribeRecoveryPointOutput) SetRecoveryPointArn(v string) *DescribeRecoveryPointOutput {
 10377  	s.RecoveryPointArn = &v
 10378  	return s
 10379  }
 10380  
 10381  // SetResourceArn sets the ResourceArn field's value.
 10382  func (s *DescribeRecoveryPointOutput) SetResourceArn(v string) *DescribeRecoveryPointOutput {
 10383  	s.ResourceArn = &v
 10384  	return s
 10385  }
 10386  
 10387  // SetResourceType sets the ResourceType field's value.
 10388  func (s *DescribeRecoveryPointOutput) SetResourceType(v string) *DescribeRecoveryPointOutput {
 10389  	s.ResourceType = &v
 10390  	return s
 10391  }
 10392  
 10393  // SetSourceBackupVaultArn sets the SourceBackupVaultArn field's value.
 10394  func (s *DescribeRecoveryPointOutput) SetSourceBackupVaultArn(v string) *DescribeRecoveryPointOutput {
 10395  	s.SourceBackupVaultArn = &v
 10396  	return s
 10397  }
 10398  
 10399  // SetStatus sets the Status field's value.
 10400  func (s *DescribeRecoveryPointOutput) SetStatus(v string) *DescribeRecoveryPointOutput {
 10401  	s.Status = &v
 10402  	return s
 10403  }
 10404  
 10405  // SetStatusMessage sets the StatusMessage field's value.
 10406  func (s *DescribeRecoveryPointOutput) SetStatusMessage(v string) *DescribeRecoveryPointOutput {
 10407  	s.StatusMessage = &v
 10408  	return s
 10409  }
 10410  
 10411  // SetStorageClass sets the StorageClass field's value.
 10412  func (s *DescribeRecoveryPointOutput) SetStorageClass(v string) *DescribeRecoveryPointOutput {
 10413  	s.StorageClass = &v
 10414  	return s
 10415  }
 10416  
 10417  type 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".
 10426  func (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".
 10435  func (s DescribeRegionSettingsInput) GoString() string {
 10436  	return s.String()
 10437  }
 10438  
 10439  type 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".
 10451  func (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".
 10460  func (s DescribeRegionSettingsOutput) GoString() string {
 10461  	return s.String()
 10462  }
 10463  
 10464  // SetResourceTypeOptInPreference sets the ResourceTypeOptInPreference field's value.
 10465  func (s *DescribeRegionSettingsOutput) SetResourceTypeOptInPreference(v map[string]*bool) *DescribeRegionSettingsOutput {
 10466  	s.ResourceTypeOptInPreference = v
 10467  	return s
 10468  }
 10469  
 10470  type 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".
 10486  func (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".
 10495  func (s DescribeReportJobInput) GoString() string {
 10496  	return s.String()
 10497  }
 10498  
 10499  // Validate inspects the fields of the type to determine if they are valid.
 10500  func (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.
 10516  func (s *DescribeReportJobInput) SetReportJobId(v string) *DescribeReportJobInput {
 10517  	s.ReportJobId = &v
 10518  	return s
 10519  }
 10520  
 10521  type 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".
 10535  func (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".
 10544  func (s DescribeReportJobOutput) GoString() string {
 10545  	return s.String()
 10546  }
 10547  
 10548  // SetReportJob sets the ReportJob field's value.
 10549  func (s *DescribeReportJobOutput) SetReportJob(v *ReportJob) *DescribeReportJobOutput {
 10550  	s.ReportJob = v
 10551  	return s
 10552  }
 10553  
 10554  type 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".
 10568  func (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".
 10577  func (s DescribeReportPlanInput) GoString() string {
 10578  	return s.String()
 10579  }
 10580  
 10581  // Validate inspects the fields of the type to determine if they are valid.
 10582  func (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.
 10598  func (s *DescribeReportPlanInput) SetReportPlanName(v string) *DescribeReportPlanInput {
 10599  	s.ReportPlanName = &v
 10600  	return s
 10601  }
 10602  
 10603  type 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".
 10618  func (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".
 10627  func (s DescribeReportPlanOutput) GoString() string {
 10628  	return s.String()
 10629  }
 10630  
 10631  // SetReportPlan sets the ReportPlan field's value.
 10632  func (s *DescribeReportPlanOutput) SetReportPlan(v *ReportPlan) *DescribeReportPlanOutput {
 10633  	s.ReportPlan = v
 10634  	return s
 10635  }
 10636  
 10637  type 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".
 10651  func (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".
 10660  func (s DescribeRestoreJobInput) GoString() string {
 10661  	return s.String()
 10662  }
 10663  
 10664  // Validate inspects the fields of the type to determine if they are valid.
 10665  func (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.
 10681  func (s *DescribeRestoreJobInput) SetRestoreJobId(v string) *DescribeRestoreJobInput {
 10682  	s.RestoreJobId = &v
 10683  	return s
 10684  }
 10685  
 10686  type 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".
 10746  func (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".
 10755  func (s DescribeRestoreJobOutput) GoString() string {
 10756  	return s.String()
 10757  }
 10758  
 10759  // SetAccountId sets the AccountId field's value.
 10760  func (s *DescribeRestoreJobOutput) SetAccountId(v string) *DescribeRestoreJobOutput {
 10761  	s.AccountId = &v
 10762  	return s
 10763  }
 10764  
 10765  // SetBackupSizeInBytes sets the BackupSizeInBytes field's value.
 10766  func (s *DescribeRestoreJobOutput) SetBackupSizeInBytes(v int64) *DescribeRestoreJobOutput {
 10767  	s.BackupSizeInBytes = &v
 10768  	return s
 10769  }
 10770  
 10771  // SetCompletionDate sets the CompletionDate field's value.
 10772  func (s *DescribeRestoreJobOutput) SetCompletionDate(v time.Time) *DescribeRestoreJobOutput {
 10773  	s.CompletionDate = &v
 10774  	return s
 10775  }
 10776  
 10777  // SetCreatedResourceArn sets the CreatedResourceArn field's value.
 10778  func (s *DescribeRestoreJobOutput) SetCreatedResourceArn(v string) *DescribeRestoreJobOutput {
 10779  	s.CreatedResourceArn = &v
 10780  	return s
 10781  }
 10782  
 10783  // SetCreationDate sets the CreationDate field's value.
 10784  func (s *DescribeRestoreJobOutput) SetCreationDate(v time.Time) *DescribeRestoreJobOutput {
 10785  	s.CreationDate = &v
 10786  	return s
 10787  }
 10788  
 10789  // SetExpectedCompletionTimeMinutes sets the ExpectedCompletionTimeMinutes field's value.
 10790  func (s *DescribeRestoreJobOutput) SetExpectedCompletionTimeMinutes(v int64) *DescribeRestoreJobOutput {
 10791  	s.ExpectedCompletionTimeMinutes = &v
 10792  	return s
 10793  }
 10794  
 10795  // SetIamRoleArn sets the IamRoleArn field's value.
 10796  func (s *DescribeRestoreJobOutput) SetIamRoleArn(v string) *DescribeRestoreJobOutput {
 10797  	s.IamRoleArn = &v
 10798  	return s
 10799  }
 10800  
 10801  // SetPercentDone sets the PercentDone field's value.
 10802  func (s *DescribeRestoreJobOutput) SetPercentDone(v string) *DescribeRestoreJobOutput {
 10803  	s.PercentDone = &v
 10804  	return s
 10805  }
 10806  
 10807  // SetRecoveryPointArn sets the RecoveryPointArn field's value.
 10808  func (s *DescribeRestoreJobOutput) SetRecoveryPointArn(v string) *DescribeRestoreJobOutput {
 10809  	s.RecoveryPointArn = &v
 10810  	return s
 10811  }
 10812  
 10813  // SetResourceType sets the ResourceType field's value.
 10814  func (s *DescribeRestoreJobOutput) SetResourceType(v string) *DescribeRestoreJobOutput {
 10815  	s.ResourceType = &v
 10816  	return s
 10817  }
 10818  
 10819  // SetRestoreJobId sets the RestoreJobId field's value.
 10820  func (s *DescribeRestoreJobOutput) SetRestoreJobId(v string) *DescribeRestoreJobOutput {
 10821  	s.RestoreJobId = &v
 10822  	return s
 10823  }
 10824  
 10825  // SetStatus sets the Status field's value.
 10826  func (s *DescribeRestoreJobOutput) SetStatus(v string) *DescribeRestoreJobOutput {
 10827  	s.Status = &v
 10828  	return s
 10829  }
 10830  
 10831  // SetStatusMessage sets the StatusMessage field's value.
 10832  func (s *DescribeRestoreJobOutput) SetStatusMessage(v string) *DescribeRestoreJobOutput {
 10833  	s.StatusMessage = &v
 10834  	return s
 10835  }
 10836  
 10837  type 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".
 10857  func (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".
 10866  func (s DisassociateRecoveryPointInput) GoString() string {
 10867  	return s.String()
 10868  }
 10869  
 10870  // Validate inspects the fields of the type to determine if they are valid.
 10871  func (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.
 10893  func (s *DisassociateRecoveryPointInput) SetBackupVaultName(v string) *DisassociateRecoveryPointInput {
 10894  	s.BackupVaultName = &v
 10895  	return s
 10896  }
 10897  
 10898  // SetRecoveryPointArn sets the RecoveryPointArn field's value.
 10899  func (s *DisassociateRecoveryPointInput) SetRecoveryPointArn(v string) *DisassociateRecoveryPointInput {
 10900  	s.RecoveryPointArn = &v
 10901  	return s
 10902  }
 10903  
 10904  type DisassociateRecoveryPointOutput struct {
 10905  	_ struct{} `type:"structure" nopayload:"true"`
 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".
 10913  func (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".
 10922  func (s DisassociateRecoveryPointOutput) GoString() string {
 10923  	return s.String()
 10924  }
 10925  
 10926  type 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".
 10940  func (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".
 10949  func (s ExportBackupPlanTemplateInput) GoString() string {
 10950  	return s.String()
 10951  }
 10952  
 10953  // Validate inspects the fields of the type to determine if they are valid.
 10954  func (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.
 10970  func (s *ExportBackupPlanTemplateInput) SetBackupPlanId(v string) *ExportBackupPlanTemplateInput {
 10971  	s.BackupPlanId = &v
 10972  	return s
 10973  }
 10974  
 10975  type 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".
 10990  func (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".
 10999  func (s ExportBackupPlanTemplateOutput) GoString() string {
 11000  	return s.String()
 11001  }
 11002  
 11003  // SetBackupPlanTemplateJson sets the BackupPlanTemplateJson field's value.
 11004  func (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.
 11012  type 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".
 11048  func (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".
 11057  func (s Framework) GoString() string {
 11058  	return s.String()
 11059  }
 11060  
 11061  // SetCreationTime sets the CreationTime field's value.
 11062  func (s *Framework) SetCreationTime(v time.Time) *Framework {
 11063  	s.CreationTime = &v
 11064  	return s
 11065  }
 11066  
 11067  // SetDeploymentStatus sets the DeploymentStatus field's value.
 11068  func (s *Framework) SetDeploymentStatus(v string) *Framework {
 11069  	s.DeploymentStatus = &v
 11070  	return s
 11071  }
 11072  
 11073  // SetFrameworkArn sets the FrameworkArn field's value.
 11074  func (s *Framework) SetFrameworkArn(v string) *Framework {
 11075  	s.FrameworkArn = &v
 11076  	return s
 11077  }
 11078  
 11079  // SetFrameworkDescription sets the FrameworkDescription field's value.
 11080  func (s *Framework) SetFrameworkDescription(v string) *Framework {
 11081  	s.FrameworkDescription = &v
 11082  	return s
 11083  }
 11084  
 11085  // SetFrameworkName sets the FrameworkName field's value.
 11086  func (s *Framework) SetFrameworkName(v string) *Framework {
 11087  	s.FrameworkName = &v
 11088  	return s
 11089  }
 11090  
 11091  // SetNumberOfControls sets the NumberOfControls field's value.
 11092  func (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.
 11099  type 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".
 11122  func (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".
 11131  func (s FrameworkControl) GoString() string {
 11132  	return s.String()
 11133  }
 11134  
 11135  // Validate inspects the fields of the type to determine if they are valid.
 11136  func (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.
 11154  func (s *FrameworkControl) SetControlInputParameters(v []*ControlInputParameter) *FrameworkControl {
 11155  	s.ControlInputParameters = v
 11156  	return s
 11157  }
 11158  
 11159  // SetControlName sets the ControlName field's value.
 11160  func (s *FrameworkControl) SetControlName(v string) *FrameworkControl {
 11161  	s.ControlName = &v
 11162  	return s
 11163  }
 11164  
 11165  // SetControlScope sets the ControlScope field's value.
 11166  func (s *FrameworkControl) SetControlScope(v *ControlScope) *FrameworkControl {
 11167  	s.ControlScope = v
 11168  	return s
 11169  }
 11170  
 11171  type 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".
 11185  func (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".
 11194  func (s GetBackupPlanFromJSONInput) GoString() string {
 11195  	return s.String()
 11196  }
 11197  
 11198  // Validate inspects the fields of the type to determine if they are valid.
 11199  func (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.
 11212  func (s *GetBackupPlanFromJSONInput) SetBackupPlanTemplateJson(v string) *GetBackupPlanFromJSONInput {
 11213  	s.BackupPlanTemplateJson = &v
 11214  	return s
 11215  }
 11216  
 11217  type 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".
 11230  func (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".
 11239  func (s GetBackupPlanFromJSONOutput) GoString() string {
 11240  	return s.String()
 11241  }
 11242  
 11243  // SetBackupPlan sets the BackupPlan field's value.
 11244  func (s *GetBackupPlanFromJSONOutput) SetBackupPlan(v *Plan) *GetBackupPlanFromJSONOutput {
 11245  	s.BackupPlan = v
 11246  	return s
 11247  }
 11248  
 11249  type 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".
 11263  func (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".
 11272  func (s GetBackupPlanFromTemplateInput) GoString() string {
 11273  	return s.String()
 11274  }
 11275  
 11276  // Validate inspects the fields of the type to determine if they are valid.
 11277  func (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.
 11293  func (s *GetBackupPlanFromTemplateInput) SetBackupPlanTemplateId(v string) *GetBackupPlanFromTemplateInput {
 11294  	s.BackupPlanTemplateId = &v
 11295  	return s
 11296  }
 11297  
 11298  type 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".
 11311  func (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".
 11320  func (s GetBackupPlanFromTemplateOutput) GoString() string {
 11321  	return s.String()
 11322  }
 11323  
 11324  // SetBackupPlanDocument sets the BackupPlanDocument field's value.
 11325  func (s *GetBackupPlanFromTemplateOutput) SetBackupPlanDocument(v *Plan) *GetBackupPlanFromTemplateOutput {
 11326  	s.BackupPlanDocument = v
 11327  	return s
 11328  }
 11329  
 11330  type 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".
 11348  func (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".
 11357  func (s GetBackupPlanInput) GoString() string {
 11358  	return s.String()
 11359  }
 11360  
 11361  // Validate inspects the fields of the type to determine if they are valid.
 11362  func (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.
 11378  func (s *GetBackupPlanInput) SetBackupPlanId(v string) *GetBackupPlanInput {
 11379  	s.BackupPlanId = &v
 11380  	return s
 11381  }
 11382  
 11383  // SetVersionId sets the VersionId field's value.
 11384  func (s *GetBackupPlanInput) SetVersionId(v string) *GetBackupPlanInput {
 11385  	s.VersionId = &v
 11386  	return s
 11387  }
 11388  
 11389  type 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".
 11439  func (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".
 11448  func (s GetBackupPlanOutput) GoString() string {
 11449  	return s.String()
 11450  }
 11451  
 11452  // SetAdvancedBackupSettings sets the AdvancedBackupSettings field's value.
 11453  func (s *GetBackupPlanOutput) SetAdvancedBackupSettings(v []*AdvancedBackupSetting) *GetBackupPlanOutput {
 11454  	s.AdvancedBackupSettings = v
 11455  	return s
 11456  }
 11457  
 11458  // SetBackupPlan sets the BackupPlan field's value.
 11459  func (s *GetBackupPlanOutput) SetBackupPlan(v *Plan) *GetBackupPlanOutput {
 11460  	s.BackupPlan = v
 11461  	return s
 11462  }
 11463  
 11464  // SetBackupPlanArn sets the BackupPlanArn field's value.
 11465  func (s *GetBackupPlanOutput) SetBackupPlanArn(v string) *GetBackupPlanOutput {
 11466  	s.BackupPlanArn = &v
 11467  	return s
 11468  }
 11469  
 11470  // SetBackupPlanId sets the BackupPlanId field's value.
 11471  func (s *GetBackupPlanOutput) SetBackupPlanId(v string) *GetBackupPlanOutput {
 11472  	s.BackupPlanId = &v
 11473  	return s
 11474  }
 11475  
 11476  // SetCreationDate sets the CreationDate field's value.
 11477  func (s *GetBackupPlanOutput) SetCreationDate(v time.Time) *GetBackupPlanOutput {
 11478  	s.CreationDate = &v
 11479  	return s
 11480  }
 11481  
 11482  // SetCreatorRequestId sets the CreatorRequestId field's value.
 11483  func (s *GetBackupPlanOutput) SetCreatorRequestId(v string) *GetBackupPlanOutput {
 11484  	s.CreatorRequestId = &v
 11485  	return s
 11486  }
 11487  
 11488  // SetDeletionDate sets the DeletionDate field's value.
 11489  func (s *GetBackupPlanOutput) SetDeletionDate(v time.Time) *GetBackupPlanOutput {
 11490  	s.DeletionDate = &v
 11491  	return s
 11492  }
 11493  
 11494  // SetLastExecutionDate sets the LastExecutionDate field's value.
 11495  func (s *GetBackupPlanOutput) SetLastExecutionDate(v time.Time) *GetBackupPlanOutput {
 11496  	s.LastExecutionDate = &v
 11497  	return s
 11498  }
 11499  
 11500  // SetVersionId sets the VersionId field's value.
 11501  func (s *GetBackupPlanOutput) SetVersionId(v string) *GetBackupPlanOutput {
 11502  	s.VersionId = &v
 11503  	return s
 11504  }
 11505  
 11506  type 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".
 11526  func (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".
 11535  func (s GetBackupSelectionInput) GoString() string {
 11536  	return s.String()
 11537  }
 11538  
 11539  // Validate inspects the fields of the type to determine if they are valid.
 11540  func (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.
 11562  func (s *GetBackupSelectionInput) SetBackupPlanId(v string) *GetBackupSelectionInput {
 11563  	s.BackupPlanId = &v
 11564  	return s
 11565  }
 11566  
 11567  // SetSelectionId sets the SelectionId field's value.
 11568  func (s *GetBackupSelectionInput) SetSelectionId(v string) *GetBackupSelectionInput {
 11569  	s.SelectionId = &v
 11570  	return s
 11571  }
 11572  
 11573  type 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".
 11603  func (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".
 11612  func (s GetBackupSelectionOutput) GoString() string {
 11613  	return s.String()
 11614  }
 11615  
 11616  // SetBackupPlanId sets the BackupPlanId field's value.
 11617  func (s *GetBackupSelectionOutput) SetBackupPlanId(v string) *GetBackupSelectionOutput {
 11618  	s.BackupPlanId = &v
 11619  	return s
 11620  }
 11621  
 11622  // SetBackupSelection sets the BackupSelection field's value.
 11623  func (s *GetBackupSelectionOutput) SetBackupSelection(v *Selection) *GetBackupSelectionOutput {
 11624  	s.BackupSelection = v
 11625  	return s
 11626  }
 11627  
 11628  // SetCreationDate sets the CreationDate field's value.
 11629  func (s *GetBackupSelectionOutput) SetCreationDate(v time.Time) *GetBackupSelectionOutput {
 11630  	s.CreationDate = &v
 11631  	return s
 11632  }
 11633  
 11634  // SetCreatorRequestId sets the CreatorRequestId field's value.
 11635  func (s *GetBackupSelectionOutput) SetCreatorRequestId(v string) *GetBackupSelectionOutput {
 11636  	s.CreatorRequestId = &v
 11637  	return s
 11638  }
 11639  
 11640  // SetSelectionId sets the SelectionId field's value.
 11641  func (s *GetBackupSelectionOutput) SetSelectionId(v string) *GetBackupSelectionOutput {
 11642  	s.SelectionId = &v
 11643  	return s
 11644  }
 11645  
 11646  type 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".
 11663  func (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".
 11672  func (s GetBackupVaultAccessPolicyInput) GoString() string {
 11673  	return s.String()
 11674  }
 11675  
 11676  // Validate inspects the fields of the type to determine if they are valid.
 11677  func (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.
 11693  func (s *GetBackupVaultAccessPolicyInput) SetBackupVaultName(v string) *GetBackupVaultAccessPolicyInput {
 11694  	s.BackupVaultName = &v
 11695  	return s
 11696  }
 11697  
 11698  type 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".
 11720  func (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".
 11729  func (s GetBackupVaultAccessPolicyOutput) GoString() string {
 11730  	return s.String()
 11731  }
 11732  
 11733  // SetBackupVaultArn sets the BackupVaultArn field's value.
 11734  func (s *GetBackupVaultAccessPolicyOutput) SetBackupVaultArn(v string) *GetBackupVaultAccessPolicyOutput {
 11735  	s.BackupVaultArn = &v
 11736  	return s
 11737  }
 11738  
 11739  // SetBackupVaultName sets the BackupVaultName field's value.
 11740  func (s *GetBackupVaultAccessPolicyOutput) SetBackupVaultName(v string) *GetBackupVaultAccessPolicyOutput {
 11741  	s.BackupVaultName = &v
 11742  	return s
 11743  }
 11744  
 11745  // SetPolicy sets the Policy field's value.
 11746  func (s *GetBackupVaultAccessPolicyOutput) SetPolicy(v string) *GetBackupVaultAccessPolicyOutput {
 11747  	s.Policy = &v
 11748  	return s
 11749  }
 11750  
 11751  type 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".
 11768  func (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".
 11777  func (s GetBackupVaultNotificationsInput) GoString() string {
 11778  	return s.String()
 11779  }
 11780  
 11781  // Validate inspects the fields of the type to determine if they are valid.
 11782  func (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.
 11798  func (s *GetBackupVaultNotificationsInput) SetBackupVaultName(v string) *GetBackupVaultNotificationsInput {
 11799  	s.BackupVaultName = &v
 11800  	return s
 11801  }
 11802  
 11803  type 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".
 11830  func (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".
 11839  func (s GetBackupVaultNotificationsOutput) GoString() string {
 11840  	return s.String()
 11841  }
 11842  
 11843  // SetBackupVaultArn sets the BackupVaultArn field's value.
 11844  func (s *GetBackupVaultNotificationsOutput) SetBackupVaultArn(v string) *GetBackupVaultNotificationsOutput {
 11845  	s.BackupVaultArn = &v
 11846  	return s
 11847  }
 11848  
 11849  // SetBackupVaultEvents sets the BackupVaultEvents field's value.
 11850  func (s *GetBackupVaultNotificationsOutput) SetBackupVaultEvents(v []*string) *GetBackupVaultNotificationsOutput {
 11851  	s.BackupVaultEvents = v
 11852  	return s
 11853  }
 11854  
 11855  // SetBackupVaultName sets the BackupVaultName field's value.
 11856  func (s *GetBackupVaultNotificationsOutput) SetBackupVaultName(v string) *GetBackupVaultNotificationsOutput {
 11857  	s.BackupVaultName = &v
 11858  	return s
 11859  }
 11860  
 11861  // SetSNSTopicArn sets the SNSTopicArn field's value.
 11862  func (s *GetBackupVaultNotificationsOutput) SetSNSTopicArn(v string) *GetBackupVaultNotificationsOutput {
 11863  	s.SNSTopicArn = &v
 11864  	return s
 11865  }
 11866  
 11867  type 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".
 11890  func (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".
 11899  func (s GetRecoveryPointRestoreMetadataInput) GoString() string {
 11900  	return s.String()
 11901  }
 11902  
 11903  // Validate inspects the fields of the type to determine if they are valid.
 11904  func (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.
 11926  func (s *GetRecoveryPointRestoreMetadataInput) SetBackupVaultName(v string) *GetRecoveryPointRestoreMetadataInput {
 11927  	s.BackupVaultName = &v
 11928  	return s
 11929  }
 11930  
 11931  // SetRecoveryPointArn sets the RecoveryPointArn field's value.
 11932  func (s *GetRecoveryPointRestoreMetadataInput) SetRecoveryPointArn(v string) *GetRecoveryPointRestoreMetadataInput {
 11933  	s.RecoveryPointArn = &v
 11934  	return s
 11935  }
 11936  
 11937  type 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".
 11961  func (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".
 11970  func (s GetRecoveryPointRestoreMetadataOutput) GoString() string {
 11971  	return s.String()
 11972  }
 11973  
 11974  // SetBackupVaultArn sets the BackupVaultArn field's value.
 11975  func (s *GetRecoveryPointRestoreMetadataOutput) SetBackupVaultArn(v string) *GetRecoveryPointRestoreMetadataOutput {
 11976  	s.BackupVaultArn = &v
 11977  	return s
 11978  }
 11979  
 11980  // SetRecoveryPointArn sets the RecoveryPointArn field's value.
 11981  func (s *GetRecoveryPointRestoreMetadataOutput) SetRecoveryPointArn(v string) *GetRecoveryPointRestoreMetadataOutput {
 11982  	s.RecoveryPointArn = &v
 11983  	return s
 11984  }
 11985  
 11986  // SetRestoreMetadata sets the RestoreMetadata field's value.
 11987  func (s *GetRecoveryPointRestoreMetadataOutput) SetRestoreMetadata(v map[string]*string) *GetRecoveryPointRestoreMetadataOutput {
 11988  	s.RestoreMetadata = v
 11989  	return s
 11990  }
 11991  
 11992  type 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".
 12001  func (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".
 12010  func (s GetSupportedResourceTypesInput) GoString() string {
 12011  	return s.String()
 12012  }
 12013  
 12014  type 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".
 12042  func (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".
 12051  func (s GetSupportedResourceTypesOutput) GoString() string {
 12052  	return s.String()
 12053  }
 12054  
 12055  // SetResourceTypes sets the ResourceTypes field's value.
 12056  func (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.
 12063  type 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".
 12081  func (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".
 12090  func (s InvalidParameterValueException) GoString() string {
 12091  	return s.String()
 12092  }
 12093  
 12094  func newErrorInvalidParameterValueException(v protocol.ResponseMetadata) error {
 12095  	return &InvalidParameterValueException{
 12096  		RespMetadata: v,
 12097  	}
 12098  }
 12099  
 12100  // Code returns the exception type name.
 12101  func (s *InvalidParameterValueException) Code() string {
 12102  	return "InvalidParameterValueException"
 12103  }
 12104  
 12105  // Message returns the exception's message.
 12106  func (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.
 12114  func (s *InvalidParameterValueException) OrigErr() error {
 12115  	return nil
 12116  }
 12117  
 12118  func (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.
 12123  func (s *InvalidParameterValueException) StatusCode() int {
 12124  	return s.RespMetadata.StatusCode
 12125  }
 12126  
 12127  // RequestID returns the service's response RequestID for request.
 12128  func (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.
 12134  type 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".
 12152  func (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".
 12161  func (s InvalidRequestException) GoString() string {
 12162  	return s.String()
 12163  }
 12164  
 12165  func newErrorInvalidRequestException(v protocol.ResponseMetadata) error {
 12166  	return &InvalidRequestException{
 12167  		RespMetadata: v,
 12168  	}
 12169  }
 12170  
 12171  // Code returns the exception type name.
 12172  func (s *InvalidRequestException) Code() string {
 12173  	return "InvalidRequestException"
 12174  }
 12175  
 12176  // Message returns the exception's message.
 12177  func (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.
 12185  func (s *InvalidRequestException) OrigErr() error {
 12186  	return nil
 12187  }
 12188  
 12189  func (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.
 12194  func (s *InvalidRequestException) StatusCode() int {
 12195  	return s.RespMetadata.StatusCode
 12196  }
 12197  
 12198  // RequestID returns the service's response RequestID for request.
 12199  func (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.
 12205  type 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".
 12223  func (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".
 12232  func (s InvalidResourceStateException) GoString() string {
 12233  	return s.String()
 12234  }
 12235  
 12236  func newErrorInvalidResourceStateException(v protocol.ResponseMetadata) error {
 12237  	return &InvalidResourceStateException{
 12238  		RespMetadata: v,
 12239  	}
 12240  }
 12241  
 12242  // Code returns the exception type name.
 12243  func (s *InvalidResourceStateException) Code() string {
 12244  	return "InvalidResourceStateException"
 12245  }
 12246  
 12247  // Message returns the exception's message.
 12248  func (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.
 12256  func (s *InvalidResourceStateException) OrigErr() error {
 12257  	return nil
 12258  }
 12259  
 12260  func (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.
 12265  func (s *InvalidResourceStateException) StatusCode() int {
 12266  	return s.RespMetadata.StatusCode
 12267  }
 12268  
 12269  // RequestID returns the service's response RequestID for request.
 12270  func (s *InvalidResourceStateException) RequestID() string {
 12271  	return s.RespMetadata.RequestID
 12272  }
 12273  
 12274  // Contains detailed information about a backup job.
 12275  type 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".
 12380  func (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".
 12389  func (s Job) GoString() string {
 12390  	return s.String()
 12391  }
 12392  
 12393  // SetAccountId sets the AccountId field's value.
 12394  func (s *Job) SetAccountId(v string) *Job {
 12395  	s.AccountId = &v
 12396  	return s
 12397  }
 12398  
 12399  // SetBackupJobId sets the BackupJobId field's value.
 12400  func (s *Job) SetBackupJobId(v string) *Job {
 12401  	s.BackupJobId = &v
 12402  	return s
 12403  }
 12404  
 12405  // SetBackupOptions sets the BackupOptions field's value.
 12406  func (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.
 12412  func (s *Job) SetBackupSizeInBytes(v int64) *Job {
 12413  	s.BackupSizeInBytes = &v
 12414  	return s
 12415  }
 12416  
 12417  // SetBackupType sets the BackupType field's value.
 12418  func (s *Job) SetBackupType(v string) *Job {
 12419  	s.BackupType = &v
 12420  	return s
 12421  }
 12422  
 12423  // SetBackupVaultArn sets the BackupVaultArn field's value.
 12424  func (s *Job) SetBackupVaultArn(v string) *Job {
 12425  	s.BackupVaultArn = &v
 12426  	return s
 12427  }
 12428  
 12429  // SetBackupVaultName sets the BackupVaultName field's value.
 12430  func (s *Job) SetBackupVaultName(v string) *Job {
 12431  	s.BackupVaultName = &v
 12432  	return s
 12433  }
 12434  
 12435  // SetBytesTransferred sets the BytesTransferred field's value.
 12436  func (s *Job) SetBytesTransferred(v int64) *Job {
 12437  	s.BytesTransferred = &v
 12438  	return s
 12439  }
 12440  
 12441  // SetCompletionDate sets the CompletionDate field's value.
 12442  func (s *Job) SetCompletionDate(v time.Time) *Job {
 12443  	s.CompletionDate = &v
 12444  	return s
 12445  }
 12446  
 12447  // SetCreatedBy sets the CreatedBy field's value.
 12448  func (s *Job) SetCreatedBy(v *RecoveryPointCreator) *Job {
 12449  	s.CreatedBy = v
 12450  	return s
 12451  }
 12452  
 12453  // SetCreationDate sets the CreationDate field's value.
 12454  func (s *Job) SetCreationDate(v time.Time) *Job {
 12455  	s.CreationDate = &v
 12456  	return s
 12457  }
 12458  
 12459  // SetExpectedCompletionDate sets the ExpectedCompletionDate field's value.
 12460  func (s *Job) SetExpectedCompletionDate(v time.Time) *Job {
 12461  	s.ExpectedCompletionDate = &v
 12462  	return s
 12463  }
 12464  
 12465  // SetIamRoleArn sets the IamRoleArn field's value.
 12466  func (s *Job) SetIamRoleArn(v string) *Job {
 12467  	s.IamRoleArn = &v
 12468  	return s
 12469  }
 12470  
 12471  // SetPercentDone sets the PercentDone field's value.
 12472  func (s *Job) SetPercentDone(v string) *Job {
 12473  	s.PercentDone = &v
 12474  	return s
 12475  }
 12476  
 12477  // SetRecoveryPointArn sets the RecoveryPointArn field's value.
 12478  func (s *Job) SetRecoveryPointArn(v string) *Job {
 12479  	s.RecoveryPointArn = &v
 12480  	return s
 12481  }
 12482  
 12483  // SetResourceArn sets the ResourceArn field's value.
 12484  func (s *Job) SetResourceArn(v string) *Job {
 12485  	s.ResourceArn = &v
 12486  	return s
 12487  }
 12488  
 12489  // SetResourceType sets the ResourceType field's value.
 12490  func (s *Job) SetResourceType(v string) *Job {
 12491  	s.ResourceType = &v
 12492  	return s
 12493  }
 12494  
 12495  // SetStartBy sets the StartBy field's value.
 12496  func (s *Job) SetStartBy(v time.Time) *Job {
 12497  	s.StartBy = &v
 12498  	return s
 12499  }
 12500  
 12501  // SetState sets the State field's value.
 12502  func (s *Job) SetState(v string) *Job {
 12503  	s.State = &v
 12504  	return s
 12505  }
 12506  
 12507  // SetStatusMessage sets the StatusMessage field's value.
 12508  func (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.
 12523  type 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".
 12540  func (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".
 12549  func (s Lifecycle) GoString() string {
 12550  	return s.String()
 12551  }
 12552  
 12553  // SetDeleteAfterDays sets the DeleteAfterDays field's value.
 12554  func (s *Lifecycle) SetDeleteAfterDays(v int64) *Lifecycle {
 12555  	s.DeleteAfterDays = &v
 12556  	return s
 12557  }
 12558  
 12559  // SetMoveToColdStorageAfterDays sets the MoveToColdStorageAfterDays field's value.
 12560  func (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.
 12567  type 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".
 12585  func (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".
 12594  func (s LimitExceededException) GoString() string {
 12595  	return s.String()
 12596  }
 12597  
 12598  func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
 12599  	return &LimitExceededException{
 12600  		RespMetadata: v,
 12601  	}
 12602  }
 12603  
 12604  // Code returns the exception type name.
 12605  func (s *LimitExceededException) Code() string {
 12606  	return "LimitExceededException"
 12607  }
 12608  
 12609  // Message returns the exception's message.
 12610  func (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.
 12618  func (s *LimitExceededException) OrigErr() error {
 12619  	return nil
 12620  }
 12621  
 12622  func (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.
 12627  func (s *LimitExceededException) StatusCode() int {
 12628  	return s.RespMetadata.StatusCode
 12629  }
 12630  
 12631  // RequestID returns the service's response RequestID for request.
 12632  func (s *LimitExceededException) RequestID() string {
 12633  	return s.RespMetadata.RequestID
 12634  }
 12635  
 12636  type 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".
 12697  func (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".
 12706  func (s ListBackupJobsInput) GoString() string {
 12707  	return s.String()
 12708  }
 12709  
 12710  // Validate inspects the fields of the type to determine if they are valid.
 12711  func (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.
 12724  func (s *ListBackupJobsInput) SetByAccountId(v string) *ListBackupJobsInput {
 12725  	s.ByAccountId = &v
 12726  	return s
 12727  }
 12728  
 12729  // SetByBackupVaultName sets the ByBackupVaultName field's value.
 12730  func (s *ListBackupJobsInput) SetByBackupVaultName(v string) *ListBackupJobsInput {
 12731  	s.ByBackupVaultName = &v
 12732  	return s
 12733  }
 12734  
 12735  // SetByCreatedAfter sets the ByCreatedAfter field's value.
 12736  func (s *ListBackupJobsInput) SetByCreatedAfter(v time.Time) *ListBackupJobsInput {
 12737  	s.ByCreatedAfter = &v
 12738  	return s
 12739  }
 12740  
 12741  // SetByCreatedBefore sets the ByCreatedBefore field's value.
 12742  func (s *ListBackupJobsInput) SetByCreatedBefore(v time.Time) *ListBackupJobsInput {
 12743  	s.ByCreatedBefore = &v
 12744  	return s
 12745  }
 12746  
 12747  // SetByResourceArn sets the ByResourceArn field's value.
 12748  func (s *ListBackupJobsInput) SetByResourceArn(v string) *ListBackupJobsInput {
 12749  	s.ByResourceArn = &v
 12750  	return s
 12751  }
 12752  
 12753  // SetByResourceType sets the ByResourceType field's value.
 12754  func (s *ListBackupJobsInput) SetByResourceType(v string) *ListBackupJobsInput {
 12755  	s.ByResourceType = &v
 12756  	return s
 12757  }
 12758  
 12759  // SetByState sets the ByState field's value.
 12760  func (s *ListBackupJobsInput) SetByState(v string) *ListBackupJobsInput {
 12761  	s.ByState = &v
 12762  	return s
 12763  }
 12764  
 12765  // SetMaxResults sets the MaxResults field's value.
 12766  func (s *ListBackupJobsInput) SetMaxResults(v int64) *ListBackupJobsInput {
 12767  	s.MaxResults = &v
 12768  	return s
 12769  }
 12770  
 12771  // SetNextToken sets the NextToken field's value.
 12772  func (s *ListBackupJobsInput) SetNextToken(v string) *ListBackupJobsInput {
 12773  	s.NextToken = &v
 12774  	return s
 12775  }
 12776  
 12777  type 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".
 12796  func (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".
 12805  func (s ListBackupJobsOutput) GoString() string {
 12806  	return s.String()
 12807  }
 12808  
 12809  // SetBackupJobs sets the BackupJobs field's value.
 12810  func (s *ListBackupJobsOutput) SetBackupJobs(v []*Job) *ListBackupJobsOutput {
 12811  	s.BackupJobs = v
 12812  	return s
 12813  }
 12814  
 12815  // SetNextToken sets the NextToken field's value.
 12816  func (s *ListBackupJobsOutput) SetNextToken(v string) *ListBackupJobsOutput {
 12817  	s.NextToken = &v
 12818  	return s
 12819  }
 12820  
 12821  type 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".
 12839  func (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".
 12848  func (s ListBackupPlanTemplatesInput) GoString() string {
 12849  	return s.String()
 12850  }
 12851  
 12852  // Validate inspects the fields of the type to determine if they are valid.
 12853  func (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.
 12866  func (s *ListBackupPlanTemplatesInput) SetMaxResults(v int64) *ListBackupPlanTemplatesInput {
 12867  	s.MaxResults = &v
 12868  	return s
 12869  }
 12870  
 12871  // SetNextToken sets the NextToken field's value.
 12872  func (s *ListBackupPlanTemplatesInput) SetNextToken(v string) *ListBackupPlanTemplatesInput {
 12873  	s.NextToken = &v
 12874  	return s
 12875  }
 12876  
 12877  type 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".
 12895  func (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".
 12904  func (s ListBackupPlanTemplatesOutput) GoString() string {
 12905  	return s.String()
 12906  }
 12907  
 12908  // SetBackupPlanTemplatesList sets the BackupPlanTemplatesList field's value.
 12909  func (s *ListBackupPlanTemplatesOutput) SetBackupPlanTemplatesList(v []*PlanTemplatesListMember) *ListBackupPlanTemplatesOutput {
 12910  	s.BackupPlanTemplatesList = v
 12911  	return s
 12912  }
 12913  
 12914  // SetNextToken sets the NextToken field's value.
 12915  func (s *ListBackupPlanTemplatesOutput) SetNextToken(v string) *ListBackupPlanTemplatesOutput {
 12916  	s.NextToken = &v
 12917  	return s
 12918  }
 12919  
 12920  type 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".
 12943  func (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".
 12952  func (s ListBackupPlanVersionsInput) GoString() string {
 12953  	return s.String()
 12954  }
 12955  
 12956  // Validate inspects the fields of the type to determine if they are valid.
 12957  func (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.
 12976  func (s *ListBackupPlanVersionsInput) SetBackupPlanId(v string) *ListBackupPlanVersionsInput {
 12977  	s.BackupPlanId = &v
 12978  	return s
 12979  }
 12980  
 12981  // SetMaxResults sets the MaxResults field's value.
 12982  func (s *ListBackupPlanVersionsInput) SetMaxResults(v int64) *ListBackupPlanVersionsInput {
 12983  	s.MaxResults = &v
 12984  	return s
 12985  }
 12986  
 12987  // SetNextToken sets the NextToken field's value.
 12988  func (s *ListBackupPlanVersionsInput) SetNextToken(v string) *ListBackupPlanVersionsInput {
 12989  	s.NextToken = &v
 12990  	return s
 12991  }
 12992  
 12993  type 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".
 13011  func (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".
 13020  func (s ListBackupPlanVersionsOutput) GoString() string {
 13021  	return s.String()
 13022  }
 13023  
 13024  // SetBackupPlanVersionsList sets the BackupPlanVersionsList field's value.
 13025  func (s *ListBackupPlanVersionsOutput) SetBackupPlanVersionsList(v []*PlansListMember) *ListBackupPlanVersionsOutput {
 13026  	s.BackupPlanVersionsList = v
 13027  	return s
 13028  }
 13029  
 13030  // SetNextToken sets the NextToken field's value.
 13031  func (s *ListBackupPlanVersionsOutput) SetNextToken(v string) *ListBackupPlanVersionsOutput {
 13032  	s.NextToken = &v
 13033  	return s
 13034  }
 13035  
 13036  type 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".
 13058  func (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".
 13067  func (s ListBackupPlansInput) GoString() string {
 13068  	return s.String()
 13069  }
 13070  
 13071  // Validate inspects the fields of the type to determine if they are valid.
 13072  func (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.
 13085  func (s *ListBackupPlansInput) SetIncludeDeleted(v bool) *ListBackupPlansInput {
 13086  	s.IncludeDeleted = &v
 13087  	return s
 13088  }
 13089  
 13090  // SetMaxResults sets the MaxResults field's value.
 13091  func (s *ListBackupPlansInput) SetMaxResults(v int64) *ListBackupPlansInput {
 13092  	s.MaxResults = &v
 13093  	return s
 13094  }
 13095  
 13096  // SetNextToken sets the NextToken field's value.
 13097  func (s *ListBackupPlansInput) SetNextToken(v string) *ListBackupPlansInput {
 13098  	s.NextToken = &v
 13099  	return s
 13100  }
 13101  
 13102  type 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".
 13121  func (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".
 13130  func (s ListBackupPlansOutput) GoString() string {
 13131  	return s.String()
 13132  }
 13133  
 13134  // SetBackupPlansList sets the BackupPlansList field's value.
 13135  func (s *ListBackupPlansOutput) SetBackupPlansList(v []*PlansListMember) *ListBackupPlansOutput {
 13136  	s.BackupPlansList = v
 13137  	return s
 13138  }
 13139  
 13140  // SetNextToken sets the NextToken field's value.
 13141  func (s *ListBackupPlansOutput) SetNextToken(v string) *ListBackupPlansOutput {
 13142  	s.NextToken = &v
 13143  	return s
 13144  }
 13145  
 13146  type 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".
 13169  func (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".
 13178  func (s ListBackupSelectionsInput) GoString() string {
 13179  	return s.String()
 13180  }
 13181  
 13182  // Validate inspects the fields of the type to determine if they are valid.
 13183  func (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.
 13202  func (s *ListBackupSelectionsInput) SetBackupPlanId(v string) *ListBackupSelectionsInput {
 13203  	s.BackupPlanId = &v
 13204  	return s
 13205  }
 13206  
 13207  // SetMaxResults sets the MaxResults field's value.
 13208  func (s *ListBackupSelectionsInput) SetMaxResults(v int64) *ListBackupSelectionsInput {
 13209  	s.MaxResults = &v
 13210  	return s
 13211  }
 13212  
 13213  // SetNextToken sets the NextToken field's value.
 13214  func (s *ListBackupSelectionsInput) SetNextToken(v string) *ListBackupSelectionsInput {
 13215  	s.NextToken = &v
 13216  	return s
 13217  }
 13218  
 13219  type 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".
 13238  func (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".
 13247  func (s ListBackupSelectionsOutput) GoString() string {
 13248  	return s.String()
 13249  }
 13250  
 13251  // SetBackupSelectionsList sets the BackupSelectionsList field's value.
 13252  func (s *ListBackupSelectionsOutput) SetBackupSelectionsList(v []*SelectionsListMember) *ListBackupSelectionsOutput {
 13253  	s.BackupSelectionsList = v
 13254  	return s
 13255  }
 13256  
 13257  // SetNextToken sets the NextToken field's value.
 13258  func (s *ListBackupSelectionsOutput) SetNextToken(v string) *ListBackupSelectionsOutput {
 13259  	s.NextToken = &v
 13260  	return s
 13261  }
 13262  
 13263  type 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".
 13281  func (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".
 13290  func (s ListBackupVaultsInput) GoString() string {
 13291  	return s.String()
 13292  }
 13293  
 13294  // Validate inspects the fields of the type to determine if they are valid.
 13295  func (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.
 13308  func (s *ListBackupVaultsInput) SetMaxResults(v int64) *ListBackupVaultsInput {
 13309  	s.MaxResults = &v
 13310  	return s
 13311  }
 13312  
 13313  // SetNextToken sets the NextToken field's value.
 13314  func (s *ListBackupVaultsInput) SetNextToken(v string) *ListBackupVaultsInput {
 13315  	s.NextToken = &v
 13316  	return s
 13317  }
 13318  
 13319  type 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".
 13340  func (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".
 13349  func (s ListBackupVaultsOutput) GoString() string {
 13350  	return s.String()
 13351  }
 13352  
 13353  // SetBackupVaultList sets the BackupVaultList field's value.
 13354  func (s *ListBackupVaultsOutput) SetBackupVaultList(v []*VaultListMember) *ListBackupVaultsOutput {
 13355  	s.BackupVaultList = v
 13356  	return s
 13357  }
 13358  
 13359  // SetNextToken sets the NextToken field's value.
 13360  func (s *ListBackupVaultsOutput) SetNextToken(v string) *ListBackupVaultsOutput {
 13361  	s.NextToken = &v
 13362  	return s
 13363  }
 13364  
 13365  type 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".
 13421  func (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".
 13430  func (s ListCopyJobsInput) GoString() string {
 13431  	return s.String()
 13432  }
 13433  
 13434  // Validate inspects the fields of the type to determine if they are valid.
 13435  func (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.
 13448  func (s *ListCopyJobsInput) SetByAccountId(v string) *ListCopyJobsInput {
 13449  	s.ByAccountId = &v
 13450  	return s
 13451  }
 13452  
 13453  // SetByCreatedAfter sets the ByCreatedAfter field's value.
 13454  func (s *ListCopyJobsInput) SetByCreatedAfter(v time.Time) *ListCopyJobsInput {
 13455  	s.ByCreatedAfter = &v
 13456  	return s
 13457  }
 13458  
 13459  // SetByCreatedBefore sets the ByCreatedBefore field's value.
 13460  func (s *ListCopyJobsInput) SetByCreatedBefore(v time.Time) *ListCopyJobsInput {
 13461  	s.ByCreatedBefore = &v
 13462  	return s
 13463  }
 13464  
 13465  // SetByDestinationVaultArn sets the ByDestinationVaultArn field's value.
 13466  func (s *ListCopyJobsInput) SetByDestinationVaultArn(v string) *ListCopyJobsInput {
 13467  	s.ByDestinationVaultArn = &v
 13468  	return s
 13469  }
 13470  
 13471  // SetByResourceArn sets the ByResourceArn field's value.
 13472  func (s *ListCopyJobsInput) SetByResourceArn(v string) *ListCopyJobsInput {
 13473  	s.ByResourceArn = &v
 13474  	return s
 13475  }
 13476  
 13477  // SetByResourceType sets the ByResourceType field's value.
 13478  func (s *ListCopyJobsInput) SetByResourceType(v string) *ListCopyJobsInput {
 13479  	s.ByResourceType = &v
 13480  	return s
 13481  }
 13482  
 13483  // SetByState sets the ByState field's value.
 13484  func (s *ListCopyJobsInput) SetByState(v string) *ListCopyJobsInput {
 13485  	s.ByState = &v
 13486  	return s
 13487  }
 13488  
 13489  // SetMaxResults sets the MaxResults field's value.
 13490  func (s *ListCopyJobsInput) SetMaxResults(v int64) *ListCopyJobsInput {
 13491  	s.MaxResults = &v
 13492  	return s
 13493  }
 13494  
 13495  // SetNextToken sets the NextToken field's value.
 13496  func (s *ListCopyJobsInput) SetNextToken(v string) *ListCopyJobsInput {
 13497  	s.NextToken = &v
 13498  	return s
 13499  }
 13500  
 13501  type 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".
 13520  func (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".
 13529  func (s ListCopyJobsOutput) GoString() string {
 13530  	return s.String()
 13531  }
 13532  
 13533  // SetCopyJobs sets the CopyJobs field's value.
 13534  func (s *ListCopyJobsOutput) SetCopyJobs(v []*CopyJob) *ListCopyJobsOutput {
 13535  	s.CopyJobs = v
 13536  	return s
 13537  }
 13538  
 13539  // SetNextToken sets the NextToken field's value.
 13540  func (s *ListCopyJobsOutput) SetNextToken(v string) *ListCopyJobsOutput {
 13541  	s.NextToken = &v
 13542  	return s
 13543  }
 13544  
 13545  type 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".
 13562  func (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".
 13571  func (s ListFrameworksInput) GoString() string {
 13572  	return s.String()
 13573  }
 13574  
 13575  // Validate inspects the fields of the type to determine if they are valid.
 13576  func (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.
 13589  func (s *ListFrameworksInput) SetMaxResults(v int64) *ListFrameworksInput {
 13590  	s.MaxResults = &v
 13591  	return s
 13592  }
 13593  
 13594  // SetNextToken sets the NextToken field's value.
 13595  func (s *ListFrameworksInput) SetNextToken(v string) *ListFrameworksInput {
 13596  	s.NextToken = &v
 13597  	return s
 13598  }
 13599  
 13600  type 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".
 13618  func (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".
 13627  func (s ListFrameworksOutput) GoString() string {
 13628  	return s.String()
 13629  }
 13630  
 13631  // SetFrameworks sets the Frameworks field's value.
 13632  func (s *ListFrameworksOutput) SetFrameworks(v []*Framework) *ListFrameworksOutput {
 13633  	s.Frameworks = v
 13634  	return s
 13635  }
 13636  
 13637  // SetNextToken sets the NextToken field's value.
 13638  func (s *ListFrameworksOutput) SetNextToken(v string) *ListFrameworksOutput {
 13639  	s.NextToken = &v
 13640  	return s
 13641  }
 13642  
 13643  type 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".
 13661  func (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".
 13670  func (s ListProtectedResourcesInput) GoString() string {
 13671  	return s.String()
 13672  }
 13673  
 13674  // Validate inspects the fields of the type to determine if they are valid.
 13675  func (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.
 13688  func (s *ListProtectedResourcesInput) SetMaxResults(v int64) *ListProtectedResourcesInput {
 13689  	s.MaxResults = &v
 13690  	return s
 13691  }
 13692  
 13693  // SetNextToken sets the NextToken field's value.
 13694  func (s *ListProtectedResourcesInput) SetNextToken(v string) *ListProtectedResourcesInput {
 13695  	s.NextToken = &v
 13696  	return s
 13697  }
 13698  
 13699  type 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".
 13719  func (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".
 13728  func (s ListProtectedResourcesOutput) GoString() string {
 13729  	return s.String()
 13730  }
 13731  
 13732  // SetNextToken sets the NextToken field's value.
 13733  func (s *ListProtectedResourcesOutput) SetNextToken(v string) *ListProtectedResourcesOutput {
 13734  	s.NextToken = &v
 13735  	return s
 13736  }
 13737  
 13738  // SetResults sets the Results field's value.
 13739  func (s *ListProtectedResourcesOutput) SetResults(v []*ProtectedResource) *ListProtectedResourcesOutput {
 13740  	s.Results = v
 13741  	return s
 13742  }
 13743  
 13744  type 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".
 13789  func (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".
 13798  func (s ListRecoveryPointsByBackupVaultInput) GoString() string {
 13799  	return s.String()
 13800  }
 13801  
 13802  // Validate inspects the fields of the type to determine if they are valid.
 13803  func (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.
 13822  func (s *ListRecoveryPointsByBackupVaultInput) SetBackupVaultName(v string) *ListRecoveryPointsByBackupVaultInput {
 13823  	s.BackupVaultName = &v
 13824  	return s
 13825  }
 13826  
 13827  // SetByBackupPlanId sets the ByBackupPlanId field's value.
 13828  func (s *ListRecoveryPointsByBackupVaultInput) SetByBackupPlanId(v string) *ListRecoveryPointsByBackupVaultInput {
 13829  	s.ByBackupPlanId = &v
 13830  	return s
 13831  }
 13832  
 13833  // SetByCreatedAfter sets the ByCreatedAfter field's value.
 13834  func (s *ListRecoveryPointsByBackupVaultInput) SetByCreatedAfter(v time.Time) *ListRecoveryPointsByBackupVaultInput {
 13835  	s.ByCreatedAfter = &v
 13836  	return s
 13837  }
 13838  
 13839  // SetByCreatedBefore sets the ByCreatedBefore field's value.
 13840  func (s *ListRecoveryPointsByBackupVaultInput) SetByCreatedBefore(v time.Time) *ListRecoveryPointsByBackupVaultInput {
 13841  	s.ByCreatedBefore = &v
 13842  	return s
 13843  }
 13844  
 13845  // SetByResourceArn sets the ByResourceArn field's value.
 13846  func (s *ListRecoveryPointsByBackupVaultInput) SetByResourceArn(v string) *ListRecoveryPointsByBackupVaultInput {
 13847  	s.ByResourceArn = &v
 13848  	return s
 13849  }
 13850  
 13851  // SetByResourceType sets the ByResourceType field's value.
 13852  func (s *ListRecoveryPointsByBackupVaultInput) SetByResourceType(v string) *ListRecoveryPointsByBackupVaultInput {
 13853  	s.ByResourceType = &v
 13854  	return s
 13855  }
 13856  
 13857  // SetMaxResults sets the MaxResults field's value.
 13858  func (s *ListRecoveryPointsByBackupVaultInput) SetMaxResults(v int64) *ListRecoveryPointsByBackupVaultInput {
 13859  	s.MaxResults = &v
 13860  	return s
 13861  }
 13862  
 13863  // SetNextToken sets the NextToken field's value.
 13864  func (s *ListRecoveryPointsByBackupVaultInput) SetNextToken(v string) *ListRecoveryPointsByBackupVaultInput {
 13865  	s.NextToken = &v
 13866  	return s
 13867  }
 13868  
 13869  type 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".
 13888  func (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".
 13897  func (s ListRecoveryPointsByBackupVaultOutput) GoString() string {
 13898  	return s.String()
 13899  }
 13900  
 13901  // SetNextToken sets the NextToken field's value.
 13902  func (s *ListRecoveryPointsByBackupVaultOutput) SetNextToken(v string) *ListRecoveryPointsByBackupVaultOutput {
 13903  	s.NextToken = &v
 13904  	return s
 13905  }
 13906  
 13907  // SetRecoveryPoints sets the RecoveryPoints field's value.
 13908  func (s *ListRecoveryPointsByBackupVaultOutput) SetRecoveryPoints(v []*RecoveryPointByBackupVault) *ListRecoveryPointsByBackupVaultOutput {
 13909  	s.RecoveryPoints = v
 13910  	return s
 13911  }
 13912  
 13913  type 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".
 13939  func (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".
 13948  func (s ListRecoveryPointsByResourceInput) GoString() string {
 13949  	return s.String()
 13950  }
 13951  
 13952  // Validate inspects the fields of the type to determine if they are valid.
 13953  func (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.
 13972  func (s *ListRecoveryPointsByResourceInput) SetMaxResults(v int64) *ListRecoveryPointsByResourceInput {
 13973  	s.MaxResults = &v
 13974  	return s
 13975  }
 13976  
 13977  // SetNextToken sets the NextToken field's value.
 13978  func (s *ListRecoveryPointsByResourceInput) SetNextToken(v string) *ListRecoveryPointsByResourceInput {
 13979  	s.NextToken = &v
 13980  	return s
 13981  }
 13982  
 13983  // SetResourceArn sets the ResourceArn field's value.
 13984  func (s *ListRecoveryPointsByResourceInput) SetResourceArn(v string) *ListRecoveryPointsByResourceInput {
 13985  	s.ResourceArn = &v
 13986  	return s
 13987  }
 13988  
 13989  type 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".
 14010  func (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".
 14019  func (s ListRecoveryPointsByResourceOutput) GoString() string {
 14020  	return s.String()
 14021  }
 14022  
 14023  // SetNextToken sets the NextToken field's value.
 14024  func (s *ListRecoveryPointsByResourceOutput) SetNextToken(v string) *ListRecoveryPointsByResourceOutput {
 14025  	s.NextToken = &v
 14026  	return s
 14027  }
 14028  
 14029  // SetRecoveryPoints sets the RecoveryPoints field's value.
 14030  func (s *ListRecoveryPointsByResourceOutput) SetRecoveryPoints(v []*RecoveryPointByResource) *ListRecoveryPointsByResourceOutput {
 14031  	s.RecoveryPoints = v
 14032  	return s
 14033  }
 14034  
 14035  type 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".
 14070  func (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".
 14079  func (s ListReportJobsInput) GoString() string {
 14080  	return s.String()
 14081  }
 14082  
 14083  // Validate inspects the fields of the type to determine if they are valid.
 14084  func (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.
 14100  func (s *ListReportJobsInput) SetByCreationAfter(v time.Time) *ListReportJobsInput {
 14101  	s.ByCreationAfter = &v
 14102  	return s
 14103  }
 14104  
 14105  // SetByCreationBefore sets the ByCreationBefore field's value.
 14106  func (s *ListReportJobsInput) SetByCreationBefore(v time.Time) *ListReportJobsInput {
 14107  	s.ByCreationBefore = &v
 14108  	return s
 14109  }
 14110  
 14111  // SetByReportPlanName sets the ByReportPlanName field's value.
 14112  func (s *ListReportJobsInput) SetByReportPlanName(v string) *ListReportJobsInput {
 14113  	s.ByReportPlanName = &v
 14114  	return s
 14115  }
 14116  
 14117  // SetByStatus sets the ByStatus field's value.
 14118  func (s *ListReportJobsInput) SetByStatus(v string) *ListReportJobsInput {
 14119  	s.ByStatus = &v
 14120  	return s
 14121  }
 14122  
 14123  // SetMaxResults sets the MaxResults field's value.
 14124  func (s *ListReportJobsInput) SetMaxResults(v int64) *ListReportJobsInput {
 14125  	s.MaxResults = &v
 14126  	return s
 14127  }
 14128  
 14129  // SetNextToken sets the NextToken field's value.
 14130  func (s *ListReportJobsInput) SetNextToken(v string) *ListReportJobsInput {
 14131  	s.NextToken = &v
 14132  	return s
 14133  }
 14134  
 14135  type 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".
 14151  func (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".
 14160  func (s ListReportJobsOutput) GoString() string {
 14161  	return s.String()
 14162  }
 14163  
 14164  // SetNextToken sets the NextToken field's value.
 14165  func (s *ListReportJobsOutput) SetNextToken(v string) *ListReportJobsOutput {
 14166  	s.NextToken = &v
 14167  	return s
 14168  }
 14169  
 14170  // SetReportJobs sets the ReportJobs field's value.
 14171  func (s *ListReportJobsOutput) SetReportJobs(v []*ReportJob) *ListReportJobsOutput {
 14172  	s.ReportJobs = v
 14173  	return s
 14174  }
 14175  
 14176  type 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".
 14193  func (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".
 14202  func (s ListReportPlansInput) GoString() string {
 14203  	return s.String()
 14204  }
 14205  
 14206  // Validate inspects the fields of the type to determine if they are valid.
 14207  func (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.
 14220  func (s *ListReportPlansInput) SetMaxResults(v int64) *ListReportPlansInput {
 14221  	s.MaxResults = &v
 14222  	return s
 14223  }
 14224  
 14225  // SetNextToken sets the NextToken field's value.
 14226  func (s *ListReportPlansInput) SetNextToken(v string) *ListReportPlansInput {
 14227  	s.NextToken = &v
 14228  	return s
 14229  }
 14230  
 14231  type 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".
 14250  func (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".
 14259  func (s ListReportPlansOutput) GoString() string {
 14260  	return s.String()
 14261  }
 14262  
 14263  // SetNextToken sets the NextToken field's value.
 14264  func (s *ListReportPlansOutput) SetNextToken(v string) *ListReportPlansOutput {
 14265  	s.NextToken = &v
 14266  	return s
 14267  }
 14268  
 14269  // SetReportPlans sets the ReportPlans field's value.
 14270  func (s *ListReportPlansOutput) SetReportPlans(v []*ReportPlan) *ListReportPlansOutput {
 14271  	s.ReportPlans = v
 14272  	return s
 14273  }
 14274  
 14275  type 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".
 14306  func (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".
 14315  func (s ListRestoreJobsInput) GoString() string {
 14316  	return s.String()
 14317  }
 14318  
 14319  // Validate inspects the fields of the type to determine if they are valid.
 14320  func (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.
 14333  func (s *ListRestoreJobsInput) SetByAccountId(v string) *ListRestoreJobsInput {
 14334  	s.ByAccountId = &v
 14335  	return s
 14336  }
 14337  
 14338  // SetByCreatedAfter sets the ByCreatedAfter field's value.
 14339  func (s *ListRestoreJobsInput) SetByCreatedAfter(v time.Time) *ListRestoreJobsInput {
 14340  	s.ByCreatedAfter = &v
 14341  	return s
 14342  }
 14343  
 14344  // SetByCreatedBefore sets the ByCreatedBefore field's value.
 14345  func (s *ListRestoreJobsInput) SetByCreatedBefore(v time.Time) *ListRestoreJobsInput {
 14346  	s.ByCreatedBefore = &v
 14347  	return s
 14348  }
 14349  
 14350  // SetByStatus sets the ByStatus field's value.
 14351  func (s *ListRestoreJobsInput) SetByStatus(v string) *ListRestoreJobsInput {
 14352  	s.ByStatus = &v
 14353  	return s
 14354  }
 14355  
 14356  // SetMaxResults sets the MaxResults field's value.
 14357  func (s *ListRestoreJobsInput) SetMaxResults(v int64) *ListRestoreJobsInput {
 14358  	s.MaxResults = &v
 14359  	return s
 14360  }
 14361  
 14362  // SetNextToken sets the NextToken field's value.
 14363  func (s *ListRestoreJobsInput) SetNextToken(v string) *ListRestoreJobsInput {
 14364  	s.NextToken = &v
 14365  	return s
 14366  }
 14367  
 14368  type 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".
 14387  func (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".
 14396  func (s ListRestoreJobsOutput) GoString() string {
 14397  	return s.String()
 14398  }
 14399  
 14400  // SetNextToken sets the NextToken field's value.
 14401  func (s *ListRestoreJobsOutput) SetNextToken(v string) *ListRestoreJobsOutput {
 14402  	s.NextToken = &v
 14403  	return s
 14404  }
 14405  
 14406  // SetRestoreJobs sets the RestoreJobs field's value.
 14407  func (s *ListRestoreJobsOutput) SetRestoreJobs(v []*RestoreJobsListMember) *ListRestoreJobsOutput {
 14408  	s.RestoreJobs = v
 14409  	return s
 14410  }
 14411  
 14412  type 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".
 14437  func (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".
 14446  func (s ListTagsInput) GoString() string {
 14447  	return s.String()
 14448  }
 14449  
 14450  // Validate inspects the fields of the type to determine if they are valid.
 14451  func (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.
 14470  func (s *ListTagsInput) SetMaxResults(v int64) *ListTagsInput {
 14471  	s.MaxResults = &v
 14472  	return s
 14473  }
 14474  
 14475  // SetNextToken sets the NextToken field's value.
 14476  func (s *ListTagsInput) SetNextToken(v string) *ListTagsInput {
 14477  	s.NextToken = &v
 14478  	return s
 14479  }
 14480  
 14481  // SetResourceArn sets the ResourceArn field's value.
 14482  func (s *ListTagsInput) SetResourceArn(v string) *ListTagsInput {
 14483  	s.ResourceArn = &v
 14484  	return s
 14485  }
 14486  
 14487  type 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".
 14510  func (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".
 14519  func (s ListTagsOutput) GoString() string {
 14520  	return s.String()
 14521  }
 14522  
 14523  // SetNextToken sets the NextToken field's value.
 14524  func (s *ListTagsOutput) SetNextToken(v string) *ListTagsOutput {
 14525  	s.NextToken = &v
 14526  	return s
 14527  }
 14528  
 14529  // SetTags sets the Tags field's value.
 14530  func (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.
 14536  type 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".
 14554  func (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".
 14563  func (s MissingParameterValueException) GoString() string {
 14564  	return s.String()
 14565  }
 14566  
 14567  func newErrorMissingParameterValueException(v protocol.ResponseMetadata) error {
 14568  	return &MissingParameterValueException{
 14569  		RespMetadata: v,
 14570  	}
 14571  }
 14572  
 14573  // Code returns the exception type name.
 14574  func (s *MissingParameterValueException) Code() string {
 14575  	return "MissingParameterValueException"
 14576  }
 14577  
 14578  // Message returns the exception's message.
 14579  func (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.
 14587  func (s *MissingParameterValueException) OrigErr() error {
 14588  	return nil
 14589  }
 14590  
 14591  func (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.
 14596  func (s *MissingParameterValueException) StatusCode() int {
 14597  	return s.RespMetadata.StatusCode
 14598  }
 14599  
 14600  // RequestID returns the service's response RequestID for request.
 14601  func (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.
 14609  type 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".
 14632  func (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".
 14641  func (s Plan) GoString() string {
 14642  	return s.String()
 14643  }
 14644  
 14645  // SetAdvancedBackupSettings sets the AdvancedBackupSettings field's value.
 14646  func (s *Plan) SetAdvancedBackupSettings(v []*AdvancedBackupSetting) *Plan {
 14647  	s.AdvancedBackupSettings = v
 14648  	return s
 14649  }
 14650  
 14651  // SetBackupPlanName sets the BackupPlanName field's value.
 14652  func (s *Plan) SetBackupPlanName(v string) *Plan {
 14653  	s.BackupPlanName = &v
 14654  	return s
 14655  }
 14656  
 14657  // SetRules sets the Rules field's value.
 14658  func (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.
 14666  type 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".
 14690  func (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".
 14699  func (s PlanInput) GoString() string {
 14700  	return s.String()
 14701  }
 14702  
 14703  // Validate inspects the fields of the type to determine if they are valid.
 14704  func (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.
 14730  func (s *PlanInput) SetAdvancedBackupSettings(v []*AdvancedBackupSetting) *PlanInput {
 14731  	s.AdvancedBackupSettings = v
 14732  	return s
 14733  }
 14734  
 14735  // SetBackupPlanName sets the BackupPlanName field's value.
 14736  func (s *PlanInput) SetBackupPlanName(v string) *PlanInput {
 14737  	s.BackupPlanName = &v
 14738  	return s
 14739  }
 14740  
 14741  // SetRules sets the Rules field's value.
 14742  func (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.
 14748  type 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".
 14763  func (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".
 14772  func (s PlanTemplatesListMember) GoString() string {
 14773  	return s.String()
 14774  }
 14775  
 14776  // SetBackupPlanTemplateId sets the BackupPlanTemplateId field's value.
 14777  func (s *PlanTemplatesListMember) SetBackupPlanTemplateId(v string) *PlanTemplatesListMember {
 14778  	s.BackupPlanTemplateId = &v
 14779  	return s
 14780  }
 14781  
 14782  // SetBackupPlanTemplateName sets the BackupPlanTemplateName field's value.
 14783  func (s *PlanTemplatesListMember) SetBackupPlanTemplateName(v string) *PlanTemplatesListMember {
 14784  	s.BackupPlanTemplateName = &v
 14785  	return s
 14786  }
 14787  
 14788  // Contains metadata about a backup plan.
 14789  type 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".
 14837  func (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".
 14846  func (s PlansListMember) GoString() string {
 14847  	return s.String()
 14848  }
 14849  
 14850  // SetAdvancedBackupSettings sets the AdvancedBackupSettings field's value.
 14851  func (s *PlansListMember) SetAdvancedBackupSettings(v []*AdvancedBackupSetting) *PlansListMember {
 14852  	s.AdvancedBackupSettings = v
 14853  	return s
 14854  }
 14855  
 14856  // SetBackupPlanArn sets the BackupPlanArn field's value.
 14857  func (s *PlansListMember) SetBackupPlanArn(v string) *PlansListMember {
 14858  	s.BackupPlanArn = &v
 14859  	return s
 14860  }
 14861  
 14862  // SetBackupPlanId sets the BackupPlanId field's value.
 14863  func (s *PlansListMember) SetBackupPlanId(v string) *PlansListMember {
 14864  	s.BackupPlanId = &v
 14865  	return s
 14866  }
 14867  
 14868  // SetBackupPlanName sets the BackupPlanName field's value.
 14869  func (s *PlansListMember) SetBackupPlanName(v string) *PlansListMember {
 14870  	s.BackupPlanName = &v
 14871  	return s
 14872  }
 14873  
 14874  // SetCreationDate sets the CreationDate field's value.
 14875  func (s *PlansListMember) SetCreationDate(v time.Time) *PlansListMember {
 14876  	s.CreationDate = &v
 14877  	return s
 14878  }
 14879  
 14880  // SetCreatorRequestId sets the CreatorRequestId field's value.
 14881  func (s *PlansListMember) SetCreatorRequestId(v string) *PlansListMember {
 14882  	s.CreatorRequestId = &v
 14883  	return s
 14884  }
 14885  
 14886  // SetDeletionDate sets the DeletionDate field's value.
 14887  func (s *PlansListMember) SetDeletionDate(v time.Time) *PlansListMember {
 14888  	s.DeletionDate = &v
 14889  	return s
 14890  }
 14891  
 14892  // SetLastExecutionDate sets the LastExecutionDate field's value.
 14893  func (s *PlansListMember) SetLastExecutionDate(v time.Time) *PlansListMember {
 14894  	s.LastExecutionDate = &v
 14895  	return s
 14896  }
 14897  
 14898  // SetVersionId sets the VersionId field's value.
 14899  func (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.
 14905  type 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".
 14930  func (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".
 14939  func (s ProtectedResource) GoString() string {
 14940  	return s.String()
 14941  }
 14942  
 14943  // SetLastBackupTime sets the LastBackupTime field's value.
 14944  func (s *ProtectedResource) SetLastBackupTime(v time.Time) *ProtectedResource {
 14945  	s.LastBackupTime = &v
 14946  	return s
 14947  }
 14948  
 14949  // SetResourceArn sets the ResourceArn field's value.
 14950  func (s *ProtectedResource) SetResourceArn(v string) *ProtectedResource {
 14951  	s.ResourceArn = &v
 14952  	return s
 14953  }
 14954  
 14955  // SetResourceType sets the ResourceType field's value.
 14956  func (s *ProtectedResource) SetResourceType(v string) *ProtectedResource {
 14957  	s.ResourceType = &v
 14958  	return s
 14959  }
 14960  
 14961  type 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".
 14981  func (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".
 14990  func (s PutBackupVaultAccessPolicyInput) GoString() string {
 14991  	return s.String()
 14992  }
 14993  
 14994  // Validate inspects the fields of the type to determine if they are valid.
 14995  func (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.
 15011  func (s *PutBackupVaultAccessPolicyInput) SetBackupVaultName(v string) *PutBackupVaultAccessPolicyInput {
 15012  	s.BackupVaultName = &v
 15013  	return s
 15014  }
 15015  
 15016  // SetPolicy sets the Policy field's value.
 15017  func (s *PutBackupVaultAccessPolicyInput) SetPolicy(v string) *PutBackupVaultAccessPolicyInput {
 15018  	s.Policy = &v
 15019  	return s
 15020  }
 15021  
 15022  type PutBackupVaultAccessPolicyOutput struct {
 15023  	_ struct{} `type:"structure" nopayload:"true"`
 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".
 15031  func (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".
 15040  func (s PutBackupVaultAccessPolicyOutput) GoString() string {
 15041  	return s.String()
 15042  }
 15043  
 15044  type 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".
 15111  func (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".
 15120  func (s PutBackupVaultLockConfigurationInput) GoString() string {
 15121  	return s.String()
 15122  }
 15123  
 15124  // Validate inspects the fields of the type to determine if they are valid.
 15125  func (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.
 15141  func (s *PutBackupVaultLockConfigurationInput) SetBackupVaultName(v string) *PutBackupVaultLockConfigurationInput {
 15142  	s.BackupVaultName = &v
 15143  	return s
 15144  }
 15145  
 15146  // SetChangeableForDays sets the ChangeableForDays field's value.
 15147  func (s *PutBackupVaultLockConfigurationInput) SetChangeableForDays(v int64) *PutBackupVaultLockConfigurationInput {
 15148  	s.ChangeableForDays = &v
 15149  	return s
 15150  }
 15151  
 15152  // SetMaxRetentionDays sets the MaxRetentionDays field's value.
 15153  func (s *PutBackupVaultLockConfigurationInput) SetMaxRetentionDays(v int64) *PutBackupVaultLockConfigurationInput {
 15154  	s.MaxRetentionDays = &v
 15155  	return s
 15156  }
 15157  
 15158  // SetMinRetentionDays sets the MinRetentionDays field's value.
 15159  func (s *PutBackupVaultLockConfigurationInput) SetMinRetentionDays(v int64) *PutBackupVaultLockConfigurationInput {
 15160  	s.MinRetentionDays = &v
 15161  	return s
 15162  }
 15163  
 15164  type PutBackupVaultLockConfigurationOutput struct {
 15165  	_ struct{} `type:"structure" nopayload:"true"`
 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".
 15173  func (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".
 15182  func (s PutBackupVaultLockConfigurationOutput) GoString() string {
 15183  	return s.String()
 15184  }
 15185  
 15186  type 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".
 15228  func (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".
 15237  func (s PutBackupVaultNotificationsInput) GoString() string {
 15238  	return s.String()
 15239  }
 15240  
 15241  // Validate inspects the fields of the type to determine if they are valid.
 15242  func (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.
 15264  func (s *PutBackupVaultNotificationsInput) SetBackupVaultEvents(v []*string) *PutBackupVaultNotificationsInput {
 15265  	s.BackupVaultEvents = v
 15266  	return s
 15267  }
 15268  
 15269  // SetBackupVaultName sets the BackupVaultName field's value.
 15270  func (s *PutBackupVaultNotificationsInput) SetBackupVaultName(v string) *PutBackupVaultNotificationsInput {
 15271  	s.BackupVaultName = &v
 15272  	return s
 15273  }
 15274  
 15275  // SetSNSTopicArn sets the SNSTopicArn field's value.
 15276  func (s *PutBackupVaultNotificationsInput) SetSNSTopicArn(v string) *PutBackupVaultNotificationsInput {
 15277  	s.SNSTopicArn = &v
 15278  	return s
 15279  }
 15280  
 15281  type PutBackupVaultNotificationsOutput struct {
 15282  	_ struct{} `type:"structure" nopayload:"true"`
 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".
 15290  func (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".
 15299  func (s PutBackupVaultNotificationsOutput) GoString() string {
 15300  	return s.String()
 15301  }
 15302  
 15303  // Contains detailed information about the recovery points stored in a backup
 15304  // vault.
 15305  type 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".
 15402  func (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".
 15411  func (s RecoveryPointByBackupVault) GoString() string {
 15412  	return s.String()
 15413  }
 15414  
 15415  // SetBackupSizeInBytes sets the BackupSizeInBytes field's value.
 15416  func (s *RecoveryPointByBackupVault) SetBackupSizeInBytes(v int64) *RecoveryPointByBackupVault {
 15417  	s.BackupSizeInBytes = &v
 15418  	return s
 15419  }
 15420  
 15421  // SetBackupVaultArn sets the BackupVaultArn field's value.
 15422  func (s *RecoveryPointByBackupVault) SetBackupVaultArn(v string) *RecoveryPointByBackupVault {
 15423  	s.BackupVaultArn = &v
 15424  	return s
 15425  }
 15426  
 15427  // SetBackupVaultName sets the BackupVaultName field's value.
 15428  func (s *RecoveryPointByBackupVault) SetBackupVaultName(v string) *RecoveryPointByBackupVault {
 15429  	s.BackupVaultName = &v
 15430  	return s
 15431  }
 15432  
 15433  // SetCalculatedLifecycle sets the CalculatedLifecycle field's value.
 15434  func (s *RecoveryPointByBackupVault) SetCalculatedLifecycle(v *CalculatedLifecycle) *RecoveryPointByBackupVault {
 15435  	s.CalculatedLifecycle = v
 15436  	return s
 15437  }
 15438  
 15439  // SetCompletionDate sets the CompletionDate field's value.
 15440  func (s *RecoveryPointByBackupVault) SetCompletionDate(v time.Time) *RecoveryPointByBackupVault {
 15441  	s.CompletionDate = &v
 15442  	return s
 15443  }
 15444  
 15445  // SetCreatedBy sets the CreatedBy field's value.
 15446  func (s *RecoveryPointByBackupVault) SetCreatedBy(v *RecoveryPointCreator) *RecoveryPointByBackupVault {
 15447  	s.CreatedBy = v
 15448  	return s
 15449  }
 15450  
 15451  // SetCreationDate sets the CreationDate field's value.
 15452  func (s *RecoveryPointByBackupVault) SetCreationDate(v time.Time) *RecoveryPointByBackupVault {
 15453  	s.CreationDate = &v
 15454  	return s
 15455  }
 15456  
 15457  // SetEncryptionKeyArn sets the EncryptionKeyArn field's value.
 15458  func (s *RecoveryPointByBackupVault) SetEncryptionKeyArn(v string) *RecoveryPointByBackupVault {
 15459  	s.EncryptionKeyArn = &v
 15460  	return s
 15461  }
 15462  
 15463  // SetIamRoleArn sets the IamRoleArn field's value.
 15464  func (s *RecoveryPointByBackupVault) SetIamRoleArn(v string) *RecoveryPointByBackupVault {
 15465  	s.IamRoleArn = &v
 15466  	return s
 15467  }
 15468  
 15469  // SetIsEncrypted sets the IsEncrypted field's value.
 15470  func (s *RecoveryPointByBackupVault) SetIsEncrypted(v bool) *RecoveryPointByBackupVault {
 15471  	s.IsEncrypted = &v
 15472  	return s
 15473  }
 15474  
 15475  // SetLastRestoreTime sets the LastRestoreTime field's value.
 15476  func (s *RecoveryPointByBackupVault) SetLastRestoreTime(v time.Time) *RecoveryPointByBackupVault {
 15477  	s.LastRestoreTime = &v
 15478  	return s
 15479  }
 15480  
 15481  // SetLifecycle sets the Lifecycle field's value.
 15482  func (s *RecoveryPointByBackupVault) SetLifecycle(v *Lifecycle) *RecoveryPointByBackupVault {
 15483  	s.Lifecycle = v
 15484  	return s
 15485  }
 15486  
 15487  // SetRecoveryPointArn sets the RecoveryPointArn field's value.
 15488  func (s *RecoveryPointByBackupVault) SetRecoveryPointArn(v string) *RecoveryPointByBackupVault {
 15489  	s.RecoveryPointArn = &v
 15490  	return s
 15491  }
 15492  
 15493  // SetResourceArn sets the ResourceArn field's value.
 15494  func (s *RecoveryPointByBackupVault) SetResourceArn(v string) *RecoveryPointByBackupVault {
 15495  	s.ResourceArn = &v
 15496  	return s
 15497  }
 15498  
 15499  // SetResourceType sets the ResourceType field's value.
 15500  func (s *RecoveryPointByBackupVault) SetResourceType(v string) *RecoveryPointByBackupVault {
 15501  	s.ResourceType = &v
 15502  	return s
 15503  }
 15504  
 15505  // SetSourceBackupVaultArn sets the SourceBackupVaultArn field's value.
 15506  func (s *RecoveryPointByBackupVault) SetSourceBackupVaultArn(v string) *RecoveryPointByBackupVault {
 15507  	s.SourceBackupVaultArn = &v
 15508  	return s
 15509  }
 15510  
 15511  // SetStatus sets the Status field's value.
 15512  func (s *RecoveryPointByBackupVault) SetStatus(v string) *RecoveryPointByBackupVault {
 15513  	s.Status = &v
 15514  	return s
 15515  }
 15516  
 15517  // SetStatusMessage sets the StatusMessage field's value.
 15518  func (s *RecoveryPointByBackupVault) SetStatusMessage(v string) *RecoveryPointByBackupVault {
 15519  	s.StatusMessage = &v
 15520  	return s
 15521  }
 15522  
 15523  // Contains detailed information about a saved recovery point.
 15524  type 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".
 15562  func (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".
 15571  func (s RecoveryPointByResource) GoString() string {
 15572  	return s.String()
 15573  }
 15574  
 15575  // SetBackupSizeBytes sets the BackupSizeBytes field's value.
 15576  func (s *RecoveryPointByResource) SetBackupSizeBytes(v int64) *RecoveryPointByResource {
 15577  	s.BackupSizeBytes = &v
 15578  	return s
 15579  }
 15580  
 15581  // SetBackupVaultName sets the BackupVaultName field's value.
 15582  func (s *RecoveryPointByResource) SetBackupVaultName(v string) *RecoveryPointByResource {
 15583  	s.BackupVaultName = &v
 15584  	return s
 15585  }
 15586  
 15587  // SetCreationDate sets the CreationDate field's value.
 15588  func (s *RecoveryPointByResource) SetCreationDate(v time.Time) *RecoveryPointByResource {
 15589  	s.CreationDate = &v
 15590  	return s
 15591  }
 15592  
 15593  // SetEncryptionKeyArn sets the EncryptionKeyArn field's value.
 15594  func (s *RecoveryPointByResource) SetEncryptionKeyArn(v string) *RecoveryPointByResource {
 15595  	s.EncryptionKeyArn = &v
 15596  	return s
 15597  }
 15598  
 15599  // SetRecoveryPointArn sets the RecoveryPointArn field's value.
 15600  func (s *RecoveryPointByResource) SetRecoveryPointArn(v string) *RecoveryPointByResource {
 15601  	s.RecoveryPointArn = &v
 15602  	return s
 15603  }
 15604  
 15605  // SetStatus sets the Status field's value.
 15606  func (s *RecoveryPointByResource) SetStatus(v string) *RecoveryPointByResource {
 15607  	s.Status = &v
 15608  	return s
 15609  }
 15610  
 15611  // SetStatusMessage sets the StatusMessage field's value.
 15612  func (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.
 15619  type 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".
 15643  func (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".
 15652  func (s RecoveryPointCreator) GoString() string {
 15653  	return s.String()
 15654  }
 15655  
 15656  // SetBackupPlanArn sets the BackupPlanArn field's value.
 15657  func (s *RecoveryPointCreator) SetBackupPlanArn(v string) *RecoveryPointCreator {
 15658  	s.BackupPlanArn = &v
 15659  	return s
 15660  }
 15661  
 15662  // SetBackupPlanId sets the BackupPlanId field's value.
 15663  func (s *RecoveryPointCreator) SetBackupPlanId(v string) *RecoveryPointCreator {
 15664  	s.BackupPlanId = &v
 15665  	return s
 15666  }
 15667  
 15668  // SetBackupPlanVersion sets the BackupPlanVersion field's value.
 15669  func (s *RecoveryPointCreator) SetBackupPlanVersion(v string) *RecoveryPointCreator {
 15670  	s.BackupPlanVersion = &v
 15671  	return s
 15672  }
 15673  
 15674  // SetBackupRuleId sets the BackupRuleId field's value.
 15675  func (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.
 15683  type 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".
 15706  func (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".
 15715  func (s ReportDeliveryChannel) GoString() string {
 15716  	return s.String()
 15717  }
 15718  
 15719  // Validate inspects the fields of the type to determine if they are valid.
 15720  func (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.
 15733  func (s *ReportDeliveryChannel) SetFormats(v []*string) *ReportDeliveryChannel {
 15734  	s.Formats = v
 15735  	return s
 15736  }
 15737  
 15738  // SetS3BucketName sets the S3BucketName field's value.
 15739  func (s *ReportDeliveryChannel) SetS3BucketName(v string) *ReportDeliveryChannel {
 15740  	s.S3BucketName = &v
 15741  	return s
 15742  }
 15743  
 15744  // SetS3KeyPrefix sets the S3KeyPrefix field's value.
 15745  func (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.
 15751  type 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".
 15766  func (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".
 15775  func (s ReportDestination) GoString() string {
 15776  	return s.String()
 15777  }
 15778  
 15779  // SetS3BucketName sets the S3BucketName field's value.
 15780  func (s *ReportDestination) SetS3BucketName(v string) *ReportDestination {
 15781  	s.S3BucketName = &v
 15782  	return s
 15783  }
 15784  
 15785  // SetS3Keys sets the S3Keys field's value.
 15786  func (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.
 15793  type 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".
 15845  func (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".
 15854  func (s ReportJob) GoString() string {
 15855  	return s.String()
 15856  }
 15857  
 15858  // SetCompletionTime sets the CompletionTime field's value.
 15859  func (s *ReportJob) SetCompletionTime(v time.Time) *ReportJob {
 15860  	s.CompletionTime = &v
 15861  	return s
 15862  }
 15863  
 15864  // SetCreationTime sets the CreationTime field's value.
 15865  func (s *ReportJob) SetCreationTime(v time.Time) *ReportJob {
 15866  	s.CreationTime = &v
 15867  	return s
 15868  }
 15869  
 15870  // SetReportDestination sets the ReportDestination field's value.
 15871  func (s *ReportJob) SetReportDestination(v *ReportDestination) *ReportJob {
 15872  	s.ReportDestination = v
 15873  	return s
 15874  }
 15875  
 15876  // SetReportJobId sets the ReportJobId field's value.
 15877  func (s *ReportJob) SetReportJobId(v string) *ReportJob {
 15878  	s.ReportJobId = &v
 15879  	return s
 15880  }
 15881  
 15882  // SetReportPlanArn sets the ReportPlanArn field's value.
 15883  func (s *ReportJob) SetReportPlanArn(v string) *ReportJob {
 15884  	s.ReportPlanArn = &v
 15885  	return s
 15886  }
 15887  
 15888  // SetReportTemplate sets the ReportTemplate field's value.
 15889  func (s *ReportJob) SetReportTemplate(v string) *ReportJob {
 15890  	s.ReportTemplate = &v
 15891  	return s
 15892  }
 15893  
 15894  // SetStatus sets the Status field's value.
 15895  func (s *ReportJob) SetStatus(v string) *ReportJob {
 15896  	s.Status = &v
 15897  	return s
 15898  }
 15899  
 15900  // SetStatusMessage sets the StatusMessage field's value.
 15901  func (s *ReportJob) SetStatusMessage(v string) *ReportJob {
 15902  	s.StatusMessage = &v
 15903  	return s
 15904  }
 15905  
 15906  // Contains detailed information about a report plan.
 15907  type 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".
 15968  func (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".
 15977  func (s ReportPlan) GoString() string {
 15978  	return s.String()
 15979  }
 15980  
 15981  // SetCreationTime sets the CreationTime field's value.
 15982  func (s *ReportPlan) SetCreationTime(v time.Time) *ReportPlan {
 15983  	s.CreationTime = &v
 15984  	return s
 15985  }
 15986  
 15987  // SetDeploymentStatus sets the DeploymentStatus field's value.
 15988  func (s *ReportPlan) SetDeploymentStatus(v string) *ReportPlan {
 15989  	s.DeploymentStatus = &v
 15990  	return s
 15991  }
 15992  
 15993  // SetLastAttemptedExecutionTime sets the LastAttemptedExecutionTime field's value.
 15994  func (s *ReportPlan) SetLastAttemptedExecutionTime(v time.Time) *ReportPlan {
 15995  	s.LastAttemptedExecutionTime = &v
 15996  	return s
 15997  }
 15998  
 15999  // SetLastSuccessfulExecutionTime sets the LastSuccessfulExecutionTime field's value.
 16000  func (s *ReportPlan) SetLastSuccessfulExecutionTime(v time.Time) *ReportPlan {
 16001  	s.LastSuccessfulExecutionTime = &v
 16002  	return s
 16003  }
 16004  
 16005  // SetReportDeliveryChannel sets the ReportDeliveryChannel field's value.
 16006  func (s *ReportPlan) SetReportDeliveryChannel(v *ReportDeliveryChannel) *ReportPlan {
 16007  	s.ReportDeliveryChannel = v
 16008  	return s
 16009  }
 16010  
 16011  // SetReportPlanArn sets the ReportPlanArn field's value.
 16012  func (s *ReportPlan) SetReportPlanArn(v string) *ReportPlan {
 16013  	s.ReportPlanArn = &v
 16014  	return s
 16015  }
 16016  
 16017  // SetReportPlanDescription sets the ReportPlanDescription field's value.
 16018  func (s *ReportPlan) SetReportPlanDescription(v string) *ReportPlan {
 16019  	s.ReportPlanDescription = &v
 16020  	return s
 16021  }
 16022  
 16023  // SetReportPlanName sets the ReportPlanName field's value.
 16024  func (s *ReportPlan) SetReportPlanName(v string) *ReportPlan {
 16025  	s.ReportPlanName = &v
 16026  	return s
 16027  }
 16028  
 16029  // SetReportSetting sets the ReportSetting field's value.
 16030  func (s *ReportPlan) SetReportSetting(v *ReportSetting) *ReportPlan {
 16031  	s.ReportSetting = v
 16032  	return s
 16033  }
 16034  
 16035  // Contains detailed information about a report setting.
 16036  type 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".
 16060  func (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".
 16069  func (s ReportSetting) GoString() string {
 16070  	return s.String()
 16071  }
 16072  
 16073  // Validate inspects the fields of the type to determine if they are valid.
 16074  func (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.
 16087  func (s *ReportSetting) SetFrameworkArns(v []*string) *ReportSetting {
 16088  	s.FrameworkArns = v
 16089  	return s
 16090  }
 16091  
 16092  // SetNumberOfFrameworks sets the NumberOfFrameworks field's value.
 16093  func (s *ReportSetting) SetNumberOfFrameworks(v int64) *ReportSetting {
 16094  	s.NumberOfFrameworks = &v
 16095  	return s
 16096  }
 16097  
 16098  // SetReportTemplate sets the ReportTemplate field's value.
 16099  func (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.
 16105  type 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".
 16123  func (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".
 16132  func (s ResourceNotFoundException) GoString() string {
 16133  	return s.String()
 16134  }
 16135  
 16136  func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
 16137  	return &ResourceNotFoundException{
 16138  		RespMetadata: v,
 16139  	}
 16140  }
 16141  
 16142  // Code returns the exception type name.
 16143  func (s *ResourceNotFoundException) Code() string {
 16144  	return "ResourceNotFoundException"
 16145  }
 16146  
 16147  // Message returns the exception's message.
 16148  func (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.
 16156  func (s *ResourceNotFoundException) OrigErr() error {
 16157  	return nil
 16158  }
 16159  
 16160  func (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.
 16165  func (s *ResourceNotFoundException) StatusCode() int {
 16166  	return s.RespMetadata.StatusCode
 16167  }
 16168  
 16169  // RequestID returns the service's response RequestID for request.
 16170  func (s *ResourceNotFoundException) RequestID() string {
 16171  	return s.RespMetadata.RequestID
 16172  }
 16173  
 16174  // Contains metadata about a restore job.
 16175  type 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".
 16238  func (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".
 16247  func (s RestoreJobsListMember) GoString() string {
 16248  	return s.String()
 16249  }
 16250  
 16251  // SetAccountId sets the AccountId field's value.
 16252  func (s *RestoreJobsListMember) SetAccountId(v string) *RestoreJobsListMember {
 16253  	s.AccountId = &v
 16254  	return s
 16255  }
 16256  
 16257  // SetBackupSizeInBytes sets the BackupSizeInBytes field's value.
 16258  func (s *RestoreJobsListMember) SetBackupSizeInBytes(v int64) *RestoreJobsListMember {
 16259  	s.BackupSizeInBytes = &v
 16260  	return s
 16261  }
 16262  
 16263  // SetCompletionDate sets the CompletionDate field's value.
 16264  func (s *RestoreJobsListMember) SetCompletionDate(v time.Time) *RestoreJobsListMember {
 16265  	s.CompletionDate = &v
 16266  	return s
 16267  }
 16268  
 16269  // SetCreatedResourceArn sets the CreatedResourceArn field's value.
 16270  func (s *RestoreJobsListMember) SetCreatedResourceArn(v string) *RestoreJobsListMember {
 16271  	s.CreatedResourceArn = &v
 16272  	return s
 16273  }
 16274  
 16275  // SetCreationDate sets the CreationDate field's value.
 16276  func (s *RestoreJobsListMember) SetCreationDate(v time.Time) *RestoreJobsListMember {
 16277  	s.CreationDate = &v
 16278  	return s
 16279  }
 16280  
 16281  // SetExpectedCompletionTimeMinutes sets the ExpectedCompletionTimeMinutes field's value.
 16282  func (s *RestoreJobsListMember) SetExpectedCompletionTimeMinutes(v int64) *RestoreJobsListMember {
 16283  	s.ExpectedCompletionTimeMinutes = &v
 16284  	return s
 16285  }
 16286  
 16287  // SetIamRoleArn sets the IamRoleArn field's value.
 16288  func (s *RestoreJobsListMember) SetIamRoleArn(v string) *RestoreJobsListMember {
 16289  	s.IamRoleArn = &v
 16290  	return s
 16291  }
 16292  
 16293  // SetPercentDone sets the PercentDone field's value.
 16294  func (s *RestoreJobsListMember) SetPercentDone(v string) *RestoreJobsListMember {
 16295  	s.PercentDone = &v
 16296  	return s
 16297  }
 16298  
 16299  // SetRecoveryPointArn sets the RecoveryPointArn field's value.
 16300  func (s *RestoreJobsListMember) SetRecoveryPointArn(v string) *RestoreJobsListMember {
 16301  	s.RecoveryPointArn = &v
 16302  	return s
 16303  }
 16304  
 16305  // SetResourceType sets the ResourceType field's value.
 16306  func (s *RestoreJobsListMember) SetResourceType(v string) *RestoreJobsListMember {
 16307  	s.ResourceType = &v
 16308  	return s
 16309  }
 16310  
 16311  // SetRestoreJobId sets the RestoreJobId field's value.
 16312  func (s *RestoreJobsListMember) SetRestoreJobId(v string) *RestoreJobsListMember {
 16313  	s.RestoreJobId = &v
 16314  	return s
 16315  }
 16316  
 16317  // SetStatus sets the Status field's value.
 16318  func (s *RestoreJobsListMember) SetStatus(v string) *RestoreJobsListMember {
 16319  	s.Status = &v
 16320  	return s
 16321  }
 16322  
 16323  // SetStatusMessage sets the StatusMessage field's value.
 16324  func (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.
 16330  type 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".
 16401  func (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".
 16410  func (s Rule) GoString() string {
 16411  	return s.String()
 16412  }
 16413  
 16414  // SetCompletionWindowMinutes sets the CompletionWindowMinutes field's value.
 16415  func (s *Rule) SetCompletionWindowMinutes(v int64) *Rule {
 16416  	s.CompletionWindowMinutes = &v
 16417  	return s
 16418  }
 16419  
 16420  // SetCopyActions sets the CopyActions field's value.
 16421  func (s *Rule) SetCopyActions(v []*CopyAction) *Rule {
 16422  	s.CopyActions = v
 16423  	return s
 16424  }
 16425  
 16426  // SetEnableContinuousBackup sets the EnableContinuousBackup field's value.
 16427  func (s *Rule) SetEnableContinuousBackup(v bool) *Rule {
 16428  	s.EnableContinuousBackup = &v
 16429  	return s
 16430  }
 16431  
 16432  // SetLifecycle sets the Lifecycle field's value.
 16433  func (s *Rule) SetLifecycle(v *Lifecycle) *Rule {
 16434  	s.Lifecycle = v
 16435  	return s
 16436  }
 16437  
 16438  // SetRecoveryPointTags sets the RecoveryPointTags field's value.
 16439  func (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.
 16445  func (s *Rule) SetRuleId(v string) *Rule {
 16446  	s.RuleId = &v
 16447  	return s
 16448  }
 16449  
 16450  // SetRuleName sets the RuleName field's value.
 16451  func (s *Rule) SetRuleName(v string) *Rule {
 16452  	s.RuleName = &v
 16453  	return s
 16454  }
 16455  
 16456  // SetScheduleExpression sets the ScheduleExpression field's value.
 16457  func (s *Rule) SetScheduleExpression(v string) *Rule {
 16458  	s.ScheduleExpression = &v
 16459  	return s
 16460  }
 16461  
 16462  // SetStartWindowMinutes sets the StartWindowMinutes field's value.
 16463  func (s *Rule) SetStartWindowMinutes(v int64) *Rule {
 16464  	s.StartWindowMinutes = &v
 16465  	return s
 16466  }
 16467  
 16468  // SetTargetBackupVaultName sets the TargetBackupVaultName field's value.
 16469  func (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.
 16475  type 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".
 16537  func (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".
 16546  func (s RuleInput) GoString() string {
 16547  	return s.String()
 16548  }
 16549  
 16550  // Validate inspects the fields of the type to determine if they are valid.
 16551  func (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.
 16577  func (s *RuleInput) SetCompletionWindowMinutes(v int64) *RuleInput {
 16578  	s.CompletionWindowMinutes = &v
 16579  	return s
 16580  }
 16581  
 16582  // SetCopyActions sets the CopyActions field's value.
 16583  func (s *RuleInput) SetCopyActions(v []*CopyAction) *RuleInput {
 16584  	s.CopyActions = v
 16585  	return s
 16586  }
 16587  
 16588  // SetEnableContinuousBackup sets the EnableContinuousBackup field's value.
 16589  func (s *RuleInput) SetEnableContinuousBackup(v bool) *RuleInput {
 16590  	s.EnableContinuousBackup = &v
 16591  	return s
 16592  }
 16593  
 16594  // SetLifecycle sets the Lifecycle field's value.
 16595  func (s *RuleInput) SetLifecycle(v *Lifecycle) *RuleInput {
 16596  	s.Lifecycle = v
 16597  	return s
 16598  }
 16599  
 16600  // SetRecoveryPointTags sets the RecoveryPointTags field's value.
 16601  func (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.
 16607  func (s *RuleInput) SetRuleName(v string) *RuleInput {
 16608  	s.RuleName = &v
 16609  	return s
 16610  }
 16611  
 16612  // SetScheduleExpression sets the ScheduleExpression field's value.
 16613  func (s *RuleInput) SetScheduleExpression(v string) *RuleInput {
 16614  	s.ScheduleExpression = &v
 16615  	return s
 16616  }
 16617  
 16618  // SetStartWindowMinutes sets the StartWindowMinutes field's value.
 16619  func (s *RuleInput) SetStartWindowMinutes(v int64) *RuleInput {
 16620  	s.StartWindowMinutes = &v
 16621  	return s
 16622  }
 16623  
 16624  // SetTargetBackupVaultName sets the TargetBackupVaultName field's value.
 16625  func (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.
 16631  type 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".
 16661  func (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".
 16670  func (s Selection) GoString() string {
 16671  	return s.String()
 16672  }
 16673  
 16674  // Validate inspects the fields of the type to determine if they are valid.
 16675  func (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.
 16701  func (s *Selection) SetIamRoleArn(v string) *Selection {
 16702  	s.IamRoleArn = &v
 16703  	return s
 16704  }
 16705  
 16706  // SetListOfTags sets the ListOfTags field's value.
 16707  func (s *Selection) SetListOfTags(v []*Condition) *Selection {
 16708  	s.ListOfTags = v
 16709  	return s
 16710  }
 16711  
 16712  // SetResources sets the Resources field's value.
 16713  func (s *Selection) SetResources(v []*string) *Selection {
 16714  	s.Resources = v
 16715  	return s
 16716  }
 16717  
 16718  // SetSelectionName sets the SelectionName field's value.
 16719  func (s *Selection) SetSelectionName(v string) *Selection {
 16720  	s.SelectionName = &v
 16721  	return s
 16722  }
 16723  
 16724  // Contains metadata about a BackupSelection object.
 16725  type 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".
 16757  func (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".
 16766  func (s SelectionsListMember) GoString() string {
 16767  	return s.String()
 16768  }
 16769  
 16770  // SetBackupPlanId sets the BackupPlanId field's value.
 16771  func (s *SelectionsListMember) SetBackupPlanId(v string) *SelectionsListMember {
 16772  	s.BackupPlanId = &v
 16773  	return s
 16774  }
 16775  
 16776  // SetCreationDate sets the CreationDate field's value.
 16777  func (s *SelectionsListMember) SetCreationDate(v time.Time) *SelectionsListMember {
 16778  	s.CreationDate = &v
 16779  	return s
 16780  }
 16781  
 16782  // SetCreatorRequestId sets the CreatorRequestId field's value.
 16783  func (s *SelectionsListMember) SetCreatorRequestId(v string) *SelectionsListMember {
 16784  	s.CreatorRequestId = &v
 16785  	return s
 16786  }
 16787  
 16788  // SetIamRoleArn sets the IamRoleArn field's value.
 16789  func (s *SelectionsListMember) SetIamRoleArn(v string) *SelectionsListMember {
 16790  	s.IamRoleArn = &v
 16791  	return s
 16792  }
 16793  
 16794  // SetSelectionId sets the SelectionId field's value.
 16795  func (s *SelectionsListMember) SetSelectionId(v string) *SelectionsListMember {
 16796  	s.SelectionId = &v
 16797  	return s
 16798  }
 16799  
 16800  // SetSelectionName sets the SelectionName field's value.
 16801  func (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.
 16807  type 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".
 16825  func (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".
 16834  func (s ServiceUnavailableException) GoString() string {
 16835  	return s.String()
 16836  }
 16837  
 16838  func newErrorServiceUnavailableException(v protocol.ResponseMetadata) error {
 16839  	return &ServiceUnavailableException{
 16840  		RespMetadata: v,
 16841  	}
 16842  }
 16843  
 16844  // Code returns the exception type name.
 16845  func (s *ServiceUnavailableException) Code() string {
 16846  	return "ServiceUnavailableException"
 16847  }
 16848  
 16849  // Message returns the exception's message.
 16850  func (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.
 16858  func (s *ServiceUnavailableException) OrigErr() error {
 16859  	return nil
 16860  }
 16861  
 16862  func (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.
 16867  func (s *ServiceUnavailableException) StatusCode() int {
 16868  	return s.RespMetadata.StatusCode
 16869  }
 16870  
 16871  // RequestID returns the service's response RequestID for request.
 16872  func (s *ServiceUnavailableException) RequestID() string {
 16873  	return s.RespMetadata.RequestID
 16874  }
 16875  
 16876  type 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".
 16951  func (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".
 16960  func (s StartBackupJobInput) GoString() string {
 16961  	return s.String()
 16962  }
 16963  
 16964  // Validate inspects the fields of the type to determine if they are valid.
 16965  func (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.
 16984  func (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.
 16990  func (s *StartBackupJobInput) SetBackupVaultName(v string) *StartBackupJobInput {
 16991  	s.BackupVaultName = &v
 16992  	return s
 16993  }
 16994  
 16995  // SetCompleteWindowMinutes sets the CompleteWindowMinutes field's value.
 16996  func (s *StartBackupJobInput) SetCompleteWindowMinutes(v int64) *StartBackupJobInput {
 16997  	s.CompleteWindowMinutes = &v
 16998  	return s
 16999  }
 17000  
 17001  // SetIamRoleArn sets the IamRoleArn field's value.
 17002  func (s *StartBackupJobInput) SetIamRoleArn(v string) *StartBackupJobInput {
 17003  	s.IamRoleArn = &v
 17004  	return s
 17005  }
 17006  
 17007  // SetIdempotencyToken sets the IdempotencyToken field's value.
 17008  func (s *StartBackupJobInput) SetIdempotencyToken(v string) *StartBackupJobInput {
 17009  	s.IdempotencyToken = &v
 17010  	return s
 17011  }
 17012  
 17013  // SetLifecycle sets the Lifecycle field's value.
 17014  func (s *StartBackupJobInput) SetLifecycle(v *Lifecycle) *StartBackupJobInput {
 17015  	s.Lifecycle = v
 17016  	return s
 17017  }
 17018  
 17019  // SetRecoveryPointTags sets the RecoveryPointTags field's value.
 17020  func (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.
 17026  func (s *StartBackupJobInput) SetResourceArn(v string) *StartBackupJobInput {
 17027  	s.ResourceArn = &v
 17028  	return s
 17029  }
 17030  
 17031  // SetStartWindowMinutes sets the StartWindowMinutes field's value.
 17032  func (s *StartBackupJobInput) SetStartWindowMinutes(v int64) *StartBackupJobInput {
 17033  	s.StartWindowMinutes = &v
 17034  	return s
 17035  }
 17036  
 17037  type 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".
 17058  func (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".
 17067  func (s StartBackupJobOutput) GoString() string {
 17068  	return s.String()
 17069  }
 17070  
 17071  // SetBackupJobId sets the BackupJobId field's value.
 17072  func (s *StartBackupJobOutput) SetBackupJobId(v string) *StartBackupJobOutput {
 17073  	s.BackupJobId = &v
 17074  	return s
 17075  }
 17076  
 17077  // SetCreationDate sets the CreationDate field's value.
 17078  func (s *StartBackupJobOutput) SetCreationDate(v time.Time) *StartBackupJobOutput {
 17079  	s.CreationDate = &v
 17080  	return s
 17081  }
 17082  
 17083  // SetRecoveryPointArn sets the RecoveryPointArn field's value.
 17084  func (s *StartBackupJobOutput) SetRecoveryPointArn(v string) *StartBackupJobOutput {
 17085  	s.RecoveryPointArn = &v
 17086  	return s
 17087  }
 17088  
 17089  type 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".
 17141  func (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".
 17150  func (s StartCopyJobInput) GoString() string {
 17151  	return s.String()
 17152  }
 17153  
 17154  // Validate inspects the fields of the type to determine if they are valid.
 17155  func (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.
 17177  func (s *StartCopyJobInput) SetDestinationBackupVaultArn(v string) *StartCopyJobInput {
 17178  	s.DestinationBackupVaultArn = &v
 17179  	return s
 17180  }
 17181  
 17182  // SetIamRoleArn sets the IamRoleArn field's value.
 17183  func (s *StartCopyJobInput) SetIamRoleArn(v string) *StartCopyJobInput {
 17184  	s.IamRoleArn = &v
 17185  	return s
 17186  }
 17187  
 17188  // SetIdempotencyToken sets the IdempotencyToken field's value.
 17189  func (s *StartCopyJobInput) SetIdempotencyToken(v string) *StartCopyJobInput {
 17190  	s.IdempotencyToken = &v
 17191  	return s
 17192  }
 17193  
 17194  // SetLifecycle sets the Lifecycle field's value.
 17195  func (s *StartCopyJobInput) SetLifecycle(v *Lifecycle) *StartCopyJobInput {
 17196  	s.Lifecycle = v
 17197  	return s
 17198  }
 17199  
 17200  // SetRecoveryPointArn sets the RecoveryPointArn field's value.
 17201  func (s *StartCopyJobInput) SetRecoveryPointArn(v string) *StartCopyJobInput {
 17202  	s.RecoveryPointArn = &v
 17203  	return s
 17204  }
 17205  
 17206  // SetSourceBackupVaultName sets the SourceBackupVaultName field's value.
 17207  func (s *StartCopyJobInput) SetSourceBackupVaultName(v string) *StartCopyJobInput {
 17208  	s.SourceBackupVaultName = &v
 17209  	return s
 17210  }
 17211  
 17212  type 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".
 17230  func (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".
 17239  func (s StartCopyJobOutput) GoString() string {
 17240  	return s.String()
 17241  }
 17242  
 17243  // SetCopyJobId sets the CopyJobId field's value.
 17244  func (s *StartCopyJobOutput) SetCopyJobId(v string) *StartCopyJobOutput {
 17245  	s.CopyJobId = &v
 17246  	return s
 17247  }
 17248  
 17249  // SetCreationDate sets the CreationDate field's value.
 17250  func (s *StartCopyJobOutput) SetCreationDate(v time.Time) *StartCopyJobOutput {
 17251  	s.CreationDate = &v
 17252  	return s
 17253  }
 17254  
 17255  type 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".
 17274  func (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".
 17283  func (s StartReportJobInput) GoString() string {
 17284  	return s.String()
 17285  }
 17286  
 17287  // Validate inspects the fields of the type to determine if they are valid.
 17288  func (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.
 17304  func (s *StartReportJobInput) SetIdempotencyToken(v string) *StartReportJobInput {
 17305  	s.IdempotencyToken = &v
 17306  	return s
 17307  }
 17308  
 17309  // SetReportPlanName sets the ReportPlanName field's value.
 17310  func (s *StartReportJobInput) SetReportPlanName(v string) *StartReportJobInput {
 17311  	s.ReportPlanName = &v
 17312  	return s
 17313  }
 17314  
 17315  type 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".
 17329  func (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".
 17338  func (s StartReportJobOutput) GoString() string {
 17339  	return s.String()
 17340  }
 17341  
 17342  // SetReportJobId sets the ReportJobId field's value.
 17343  func (s *StartReportJobOutput) SetReportJobId(v string) *StartReportJobOutput {
 17344  	s.ReportJobId = &v
 17345  	return s
 17346  }
 17347  
 17348  type 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".
 17433  func (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".
 17442  func (s StartRestoreJobInput) GoString() string {
 17443  	return s.String()
 17444  }
 17445  
 17446  // Validate inspects the fields of the type to determine if they are valid.
 17447  func (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.
 17466  func (s *StartRestoreJobInput) SetIamRoleArn(v string) *StartRestoreJobInput {
 17467  	s.IamRoleArn = &v
 17468  	return s
 17469  }
 17470  
 17471  // SetIdempotencyToken sets the IdempotencyToken field's value.
 17472  func (s *StartRestoreJobInput) SetIdempotencyToken(v string) *StartRestoreJobInput {
 17473  	s.IdempotencyToken = &v
 17474  	return s
 17475  }
 17476  
 17477  // SetMetadata sets the Metadata field's value.
 17478  func (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.
 17484  func (s *StartRestoreJobInput) SetRecoveryPointArn(v string) *StartRestoreJobInput {
 17485  	s.RecoveryPointArn = &v
 17486  	return s
 17487  }
 17488  
 17489  // SetResourceType sets the ResourceType field's value.
 17490  func (s *StartRestoreJobInput) SetResourceType(v string) *StartRestoreJobInput {
 17491  	s.ResourceType = &v
 17492  	return s
 17493  }
 17494  
 17495  type 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".
 17507  func (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".
 17516  func (s StartRestoreJobOutput) GoString() string {
 17517  	return s.String()
 17518  }
 17519  
 17520  // SetRestoreJobId sets the RestoreJobId field's value.
 17521  func (s *StartRestoreJobOutput) SetRestoreJobId(v string) *StartRestoreJobOutput {
 17522  	s.RestoreJobId = &v
 17523  	return s
 17524  }
 17525  
 17526  type 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".
 17540  func (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".
 17549  func (s StopBackupJobInput) GoString() string {
 17550  	return s.String()
 17551  }
 17552  
 17553  // Validate inspects the fields of the type to determine if they are valid.
 17554  func (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.
 17570  func (s *StopBackupJobInput) SetBackupJobId(v string) *StopBackupJobInput {
 17571  	s.BackupJobId = &v
 17572  	return s
 17573  }
 17574  
 17575  type StopBackupJobOutput struct {
 17576  	_ struct{} `type:"structure" nopayload:"true"`
 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".
 17584  func (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".
 17593  func (s StopBackupJobOutput) GoString() string {
 17594  	return s.String()
 17595  }
 17596  
 17597  type 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".
 17622  func (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".
 17631  func (s TagResourceInput) GoString() string {
 17632  	return s.String()
 17633  }
 17634  
 17635  // Validate inspects the fields of the type to determine if they are valid.
 17636  func (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.
 17655  func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
 17656  	s.ResourceArn = &v
 17657  	return s
 17658  }
 17659  
 17660  // SetTags sets the Tags field's value.
 17661  func (s *TagResourceInput) SetTags(v map[string]*string) *TagResourceInput {
 17662  	s.Tags = v
 17663  	return s
 17664  }
 17665  
 17666  type TagResourceOutput struct {
 17667  	_ struct{} `type:"structure" nopayload:"true"`
 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".
 17675  func (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".
 17684  func (s TagResourceOutput) GoString() string {
 17685  	return s.String()
 17686  }
 17687  
 17688  type 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".
 17712  func (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".
 17721  func (s UntagResourceInput) GoString() string {
 17722  	return s.String()
 17723  }
 17724  
 17725  // Validate inspects the fields of the type to determine if they are valid.
 17726  func (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.
 17745  func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
 17746  	s.ResourceArn = &v
 17747  	return s
 17748  }
 17749  
 17750  // SetTagKeyList sets the TagKeyList field's value.
 17751  func (s *UntagResourceInput) SetTagKeyList(v []*string) *UntagResourceInput {
 17752  	s.TagKeyList = v
 17753  	return s
 17754  }
 17755  
 17756  type UntagResourceOutput struct {
 17757  	_ struct{} `type:"structure" nopayload:"true"`
 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".
 17765  func (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".
 17774  func (s UntagResourceOutput) GoString() string {
 17775  	return s.String()
 17776  }
 17777  
 17778  type 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".
 17798  func (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".
 17807  func (s UpdateBackupPlanInput) GoString() string {
 17808  	return s.String()
 17809  }
 17810  
 17811  // Validate inspects the fields of the type to determine if they are valid.
 17812  func (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.
 17836  func (s *UpdateBackupPlanInput) SetBackupPlan(v *PlanInput) *UpdateBackupPlanInput {
 17837  	s.BackupPlan = v
 17838  	return s
 17839  }
 17840  
 17841  // SetBackupPlanId sets the BackupPlanId field's value.
 17842  func (s *UpdateBackupPlanInput) SetBackupPlanId(v string) *UpdateBackupPlanInput {
 17843  	s.BackupPlanId = &v
 17844  	return s
 17845  }
 17846  
 17847  type 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".
 17876  func (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".
 17885  func (s UpdateBackupPlanOutput) GoString() string {
 17886  	return s.String()
 17887  }
 17888  
 17889  // SetAdvancedBackupSettings sets the AdvancedBackupSettings field's value.
 17890  func (s *UpdateBackupPlanOutput) SetAdvancedBackupSettings(v []*AdvancedBackupSetting) *UpdateBackupPlanOutput {
 17891  	s.AdvancedBackupSettings = v
 17892  	return s
 17893  }
 17894  
 17895  // SetBackupPlanArn sets the BackupPlanArn field's value.
 17896  func (s *UpdateBackupPlanOutput) SetBackupPlanArn(v string) *UpdateBackupPlanOutput {
 17897  	s.BackupPlanArn = &v
 17898  	return s
 17899  }
 17900  
 17901  // SetBackupPlanId sets the BackupPlanId field's value.
 17902  func (s *UpdateBackupPlanOutput) SetBackupPlanId(v string) *UpdateBackupPlanOutput {
 17903  	s.BackupPlanId = &v
 17904  	return s
 17905  }
 17906  
 17907  // SetCreationDate sets the CreationDate field's value.
 17908  func (s *UpdateBackupPlanOutput) SetCreationDate(v time.Time) *UpdateBackupPlanOutput {
 17909  	s.CreationDate = &v
 17910  	return s
 17911  }
 17912  
 17913  // SetVersionId sets the VersionId field's value.
 17914  func (s *UpdateBackupPlanOutput) SetVersionId(v string) *UpdateBackupPlanOutput {
 17915  	s.VersionId = &v
 17916  	return s
 17917  }
 17918  
 17919  type 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".
 17947  func (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".
 17956  func (s UpdateFrameworkInput) GoString() string {
 17957  	return s.String()
 17958  }
 17959  
 17960  // Validate inspects the fields of the type to determine if they are valid.
 17961  func (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.
 17987  func (s *UpdateFrameworkInput) SetFrameworkControls(v []*FrameworkControl) *UpdateFrameworkInput {
 17988  	s.FrameworkControls = v
 17989  	return s
 17990  }
 17991  
 17992  // SetFrameworkDescription sets the FrameworkDescription field's value.
 17993  func (s *UpdateFrameworkInput) SetFrameworkDescription(v string) *UpdateFrameworkInput {
 17994  	s.FrameworkDescription = &v
 17995  	return s
 17996  }
 17997  
 17998  // SetFrameworkName sets the FrameworkName field's value.
 17999  func (s *UpdateFrameworkInput) SetFrameworkName(v string) *UpdateFrameworkInput {
 18000  	s.FrameworkName = &v
 18001  	return s
 18002  }
 18003  
 18004  // SetIdempotencyToken sets the IdempotencyToken field's value.
 18005  func (s *UpdateFrameworkInput) SetIdempotencyToken(v string) *UpdateFrameworkInput {
 18006  	s.IdempotencyToken = &v
 18007  	return s
 18008  }
 18009  
 18010  type 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".
 18034  func (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".
 18043  func (s UpdateFrameworkOutput) GoString() string {
 18044  	return s.String()
 18045  }
 18046  
 18047  // SetCreationTime sets the CreationTime field's value.
 18048  func (s *UpdateFrameworkOutput) SetCreationTime(v time.Time) *UpdateFrameworkOutput {
 18049  	s.CreationTime = &v
 18050  	return s
 18051  }
 18052  
 18053  // SetFrameworkArn sets the FrameworkArn field's value.
 18054  func (s *UpdateFrameworkOutput) SetFrameworkArn(v string) *UpdateFrameworkOutput {
 18055  	s.FrameworkArn = &v
 18056  	return s
 18057  }
 18058  
 18059  // SetFrameworkName sets the FrameworkName field's value.
 18060  func (s *UpdateFrameworkOutput) SetFrameworkName(v string) *UpdateFrameworkOutput {
 18061  	s.FrameworkName = &v
 18062  	return s
 18063  }
 18064  
 18065  type 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".
 18078  func (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".
 18087  func (s UpdateGlobalSettingsInput) GoString() string {
 18088  	return s.String()
 18089  }
 18090  
 18091  // SetGlobalSettings sets the GlobalSettings field's value.
 18092  func (s *UpdateGlobalSettingsInput) SetGlobalSettings(v map[string]*string) *UpdateGlobalSettingsInput {
 18093  	s.GlobalSettings = v
 18094  	return s
 18095  }
 18096  
 18097  type UpdateGlobalSettingsOutput struct {
 18098  	_ struct{} `type:"structure" nopayload:"true"`
 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".
 18106  func (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".
 18115  func (s UpdateGlobalSettingsOutput) GoString() string {
 18116  	return s.String()
 18117  }
 18118  
 18119  type 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".
 18153  func (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".
 18162  func (s UpdateRecoveryPointLifecycleInput) GoString() string {
 18163  	return s.String()
 18164  }
 18165  
 18166  // Validate inspects the fields of the type to determine if they are valid.
 18167  func (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.
 18189  func (s *UpdateRecoveryPointLifecycleInput) SetBackupVaultName(v string) *UpdateRecoveryPointLifecycleInput {
 18190  	s.BackupVaultName = &v
 18191  	return s
 18192  }
 18193  
 18194  // SetLifecycle sets the Lifecycle field's value.
 18195  func (s *UpdateRecoveryPointLifecycleInput) SetLifecycle(v *Lifecycle) *UpdateRecoveryPointLifecycleInput {
 18196  	s.Lifecycle = v
 18197  	return s
 18198  }
 18199  
 18200  // SetRecoveryPointArn sets the RecoveryPointArn field's value.
 18201  func (s *UpdateRecoveryPointLifecycleInput) SetRecoveryPointArn(v string) *UpdateRecoveryPointLifecycleInput {
 18202  	s.RecoveryPointArn = &v
 18203  	return s
 18204  }
 18205  
 18206  type 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".
 18239  func (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".
 18248  func (s UpdateRecoveryPointLifecycleOutput) GoString() string {
 18249  	return s.String()
 18250  }
 18251  
 18252  // SetBackupVaultArn sets the BackupVaultArn field's value.
 18253  func (s *UpdateRecoveryPointLifecycleOutput) SetBackupVaultArn(v string) *UpdateRecoveryPointLifecycleOutput {
 18254  	s.BackupVaultArn = &v
 18255  	return s
 18256  }
 18257  
 18258  // SetCalculatedLifecycle sets the CalculatedLifecycle field's value.
 18259  func (s *UpdateRecoveryPointLifecycleOutput) SetCalculatedLifecycle(v *CalculatedLifecycle) *UpdateRecoveryPointLifecycleOutput {
 18260  	s.CalculatedLifecycle = v
 18261  	return s
 18262  }
 18263  
 18264  // SetLifecycle sets the Lifecycle field's value.
 18265  func (s *UpdateRecoveryPointLifecycleOutput) SetLifecycle(v *Lifecycle) *UpdateRecoveryPointLifecycleOutput {
 18266  	s.Lifecycle = v
 18267  	return s
 18268  }
 18269  
 18270  // SetRecoveryPointArn sets the RecoveryPointArn field's value.
 18271  func (s *UpdateRecoveryPointLifecycleOutput) SetRecoveryPointArn(v string) *UpdateRecoveryPointLifecycleOutput {
 18272  	s.RecoveryPointArn = &v
 18273  	return s
 18274  }
 18275  
 18276  type 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".
 18288  func (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".
 18297  func (s UpdateRegionSettingsInput) GoString() string {
 18298  	return s.String()
 18299  }
 18300  
 18301  // SetResourceTypeOptInPreference sets the ResourceTypeOptInPreference field's value.
 18302  func (s *UpdateRegionSettingsInput) SetResourceTypeOptInPreference(v map[string]*bool) *UpdateRegionSettingsInput {
 18303  	s.ResourceTypeOptInPreference = v
 18304  	return s
 18305  }
 18306  
 18307  type UpdateRegionSettingsOutput struct {
 18308  	_ struct{} `type:"structure" nopayload:"true"`
 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".
 18316  func (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".
 18325  func (s UpdateRegionSettingsOutput) GoString() string {
 18326  	return s.String()
 18327  }
 18328  
 18329  type 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".
 18369  func (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".
 18378  func (s UpdateReportPlanInput) GoString() string {
 18379  	return s.String()
 18380  }
 18381  
 18382  // Validate inspects the fields of the type to determine if they are valid.
 18383  func (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.
 18409  func (s *UpdateReportPlanInput) SetIdempotencyToken(v string) *UpdateReportPlanInput {
 18410  	s.IdempotencyToken = &v
 18411  	return s
 18412  }
 18413  
 18414  // SetReportDeliveryChannel sets the ReportDeliveryChannel field's value.
 18415  func (s *UpdateReportPlanInput) SetReportDeliveryChannel(v *ReportDeliveryChannel) *UpdateReportPlanInput {
 18416  	s.ReportDeliveryChannel = v
 18417  	return s
 18418  }
 18419  
 18420  // SetReportPlanDescription sets the ReportPlanDescription field's value.
 18421  func (s *UpdateReportPlanInput) SetReportPlanDescription(v string) *UpdateReportPlanInput {
 18422  	s.ReportPlanDescription = &v
 18423  	return s
 18424  }
 18425  
 18426  // SetReportPlanName sets the ReportPlanName field's value.
 18427  func (s *UpdateReportPlanInput) SetReportPlanName(v string) *UpdateReportPlanInput {
 18428  	s.ReportPlanName = &v
 18429  	return s
 18430  }
 18431  
 18432  // SetReportSetting sets the ReportSetting field's value.
 18433  func (s *UpdateReportPlanInput) SetReportSetting(v *ReportSetting) *UpdateReportPlanInput {
 18434  	s.ReportSetting = v
 18435  	return s
 18436  }
 18437  
 18438  type 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".
 18460  func (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".
 18469  func (s UpdateReportPlanOutput) GoString() string {
 18470  	return s.String()
 18471  }
 18472  
 18473  // SetCreationTime sets the CreationTime field's value.
 18474  func (s *UpdateReportPlanOutput) SetCreationTime(v time.Time) *UpdateReportPlanOutput {
 18475  	s.CreationTime = &v
 18476  	return s
 18477  }
 18478  
 18479  // SetReportPlanArn sets the ReportPlanArn field's value.
 18480  func (s *UpdateReportPlanOutput) SetReportPlanArn(v string) *UpdateReportPlanOutput {
 18481  	s.ReportPlanArn = &v
 18482  	return s
 18483  }
 18484  
 18485  // SetReportPlanName sets the ReportPlanName field's value.
 18486  func (s *UpdateReportPlanOutput) SetReportPlanName(v string) *UpdateReportPlanOutput {
 18487  	s.ReportPlanName = &v
 18488  	return s
 18489  }
 18490  
 18491  // Contains metadata about a backup vault.
 18492  type 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".
 18570  func (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".
 18579  func (s VaultListMember) GoString() string {
 18580  	return s.String()
 18581  }
 18582  
 18583  // SetBackupVaultArn sets the BackupVaultArn field's value.
 18584  func (s *VaultListMember) SetBackupVaultArn(v string) *VaultListMember {
 18585  	s.BackupVaultArn = &v
 18586  	return s
 18587  }
 18588  
 18589  // SetBackupVaultName sets the BackupVaultName field's value.
 18590  func (s *VaultListMember) SetBackupVaultName(v string) *VaultListMember {
 18591  	s.BackupVaultName = &v
 18592  	return s
 18593  }
 18594  
 18595  // SetCreationDate sets the CreationDate field's value.
 18596  func (s *VaultListMember) SetCreationDate(v time.Time) *VaultListMember {
 18597  	s.CreationDate = &v
 18598  	return s
 18599  }
 18600  
 18601  // SetCreatorRequestId sets the CreatorRequestId field's value.
 18602  func (s *VaultListMember) SetCreatorRequestId(v string) *VaultListMember {
 18603  	s.CreatorRequestId = &v
 18604  	return s
 18605  }
 18606  
 18607  // SetEncryptionKeyArn sets the EncryptionKeyArn field's value.
 18608  func (s *VaultListMember) SetEncryptionKeyArn(v string) *VaultListMember {
 18609  	s.EncryptionKeyArn = &v
 18610  	return s
 18611  }
 18612  
 18613  // SetLockDate sets the LockDate field's value.
 18614  func (s *VaultListMember) SetLockDate(v time.Time) *VaultListMember {
 18615  	s.LockDate = &v
 18616  	return s
 18617  }
 18618  
 18619  // SetLocked sets the Locked field's value.
 18620  func (s *VaultListMember) SetLocked(v bool) *VaultListMember {
 18621  	s.Locked = &v
 18622  	return s
 18623  }
 18624  
 18625  // SetMaxRetentionDays sets the MaxRetentionDays field's value.
 18626  func (s *VaultListMember) SetMaxRetentionDays(v int64) *VaultListMember {
 18627  	s.MaxRetentionDays = &v
 18628  	return s
 18629  }
 18630  
 18631  // SetMinRetentionDays sets the MinRetentionDays field's value.
 18632  func (s *VaultListMember) SetMinRetentionDays(v int64) *VaultListMember {
 18633  	s.MinRetentionDays = &v
 18634  	return s
 18635  }
 18636  
 18637  // SetNumberOfRecoveryPoints sets the NumberOfRecoveryPoints field's value.
 18638  func (s *VaultListMember) SetNumberOfRecoveryPoints(v int64) *VaultListMember {
 18639  	s.NumberOfRecoveryPoints = &v
 18640  	return s
 18641  }
 18642  
 18643  const (
 18644  	// ConditionTypeStringequals is a ConditionType enum value
 18645  	ConditionTypeStringequals = "STRINGEQUALS"
 18646  )
 18647  
 18648  // ConditionType_Values returns all elements of the ConditionType enum
 18649  func ConditionType_Values() []string {
 18650  	return []string{
 18651  		ConditionTypeStringequals,
 18652  	}
 18653  }
 18654  
 18655  const (
 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
 18670  func CopyJobState_Values() []string {
 18671  	return []string{
 18672  		CopyJobStateCreated,
 18673  		CopyJobStateRunning,
 18674  		CopyJobStateCompleted,
 18675  		CopyJobStateFailed,
 18676  	}
 18677  }
 18678  
 18679  const (
 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
 18706  func 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  
 18719  const (
 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
 18734  func RecoveryPointStatus_Values() []string {
 18735  	return []string{
 18736  		RecoveryPointStatusCompleted,
 18737  		RecoveryPointStatusPartial,
 18738  		RecoveryPointStatusDeleting,
 18739  		RecoveryPointStatusExpired,
 18740  	}
 18741  }
 18742  
 18743  const (
 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
 18761  func RestoreJobStatus_Values() []string {
 18762  	return []string{
 18763  		RestoreJobStatusPending,
 18764  		RestoreJobStatusRunning,
 18765  		RestoreJobStatusCompleted,
 18766  		RestoreJobStatusAborted,
 18767  		RestoreJobStatusFailed,
 18768  	}
 18769  }
 18770  
 18771  const (
 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
 18783  func StorageClass_Values() []string {
 18784  	return []string{
 18785  		StorageClassWarm,
 18786  		StorageClassCold,
 18787  		StorageClassDeleted,
 18788  	}
 18789  }
 18790  
 18791  const (
 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
 18839  func 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  }