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

     1  // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
     2  
     3  package qldb
     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 opCancelJournalKinesisStream = "CancelJournalKinesisStream"
    17  
    18  // CancelJournalKinesisStreamRequest generates a "aws/request.Request" representing the
    19  // client's request for the CancelJournalKinesisStream 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 CancelJournalKinesisStream for more information on using the CancelJournalKinesisStream
    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 CancelJournalKinesisStreamRequest method.
    34  //    req, resp := client.CancelJournalKinesisStreamRequest(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/qldb-2019-01-02/CancelJournalKinesisStream
    42  func (c *QLDB) CancelJournalKinesisStreamRequest(input *CancelJournalKinesisStreamInput) (req *request.Request, output *CancelJournalKinesisStreamOutput) {
    43  	op := &request.Operation{
    44  		Name:       opCancelJournalKinesisStream,
    45  		HTTPMethod: "DELETE",
    46  		HTTPPath:   "/ledgers/{name}/journal-kinesis-streams/{streamId}",
    47  	}
    48  
    49  	if input == nil {
    50  		input = &CancelJournalKinesisStreamInput{}
    51  	}
    52  
    53  	output = &CancelJournalKinesisStreamOutput{}
    54  	req = c.newRequest(op, input, output)
    55  	return
    56  }
    57  
    58  // CancelJournalKinesisStream API operation for Amazon QLDB.
    59  //
    60  // Ends a given Amazon QLDB journal stream. Before a stream can be canceled,
    61  // its current status must be ACTIVE.
    62  //
    63  // You can't restart a stream after you cancel it. Canceled QLDB stream resources
    64  // are subject to a 7-day retention period, so they are automatically deleted
    65  // after this limit expires.
    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 Amazon QLDB's
    72  // API operation CancelJournalKinesisStream for usage and error information.
    73  //
    74  // Returned Error Types:
    75  //   * InvalidParameterException
    76  //   One or more parameters in the request aren't valid.
    77  //
    78  //   * ResourceNotFoundException
    79  //   The specified resource doesn't exist.
    80  //
    81  //   * ResourcePreconditionNotMetException
    82  //   The operation failed because a condition wasn't satisfied in advance.
    83  //
    84  // See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/CancelJournalKinesisStream
    85  func (c *QLDB) CancelJournalKinesisStream(input *CancelJournalKinesisStreamInput) (*CancelJournalKinesisStreamOutput, error) {
    86  	req, out := c.CancelJournalKinesisStreamRequest(input)
    87  	return out, req.Send()
    88  }
    89  
    90  // CancelJournalKinesisStreamWithContext is the same as CancelJournalKinesisStream with the addition of
    91  // the ability to pass a context and additional request options.
    92  //
    93  // See CancelJournalKinesisStream for details on how to use this API operation.
    94  //
    95  // The context must be non-nil and will be used for request cancellation. If
    96  // the context is nil a panic will occur. In the future the SDK may create
    97  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
    98  // for more information on using Contexts.
    99  func (c *QLDB) CancelJournalKinesisStreamWithContext(ctx aws.Context, input *CancelJournalKinesisStreamInput, opts ...request.Option) (*CancelJournalKinesisStreamOutput, error) {
   100  	req, out := c.CancelJournalKinesisStreamRequest(input)
   101  	req.SetContext(ctx)
   102  	req.ApplyOptions(opts...)
   103  	return out, req.Send()
   104  }
   105  
   106  const opCreateLedger = "CreateLedger"
   107  
   108  // CreateLedgerRequest generates a "aws/request.Request" representing the
   109  // client's request for the CreateLedger operation. The "output" return
   110  // value will be populated with the request's response once the request completes
   111  // successfully.
   112  //
   113  // Use "Send" method on the returned Request to send the API call to the service.
   114  // the "output" return value is not valid until after Send returns without error.
   115  //
   116  // See CreateLedger for more information on using the CreateLedger
   117  // API call, and error handling.
   118  //
   119  // This method is useful when you want to inject custom logic or configuration
   120  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   121  //
   122  //
   123  //    // Example sending a request using the CreateLedgerRequest method.
   124  //    req, resp := client.CreateLedgerRequest(params)
   125  //
   126  //    err := req.Send()
   127  //    if err == nil { // resp is now filled
   128  //        fmt.Println(resp)
   129  //    }
   130  //
   131  // See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/CreateLedger
   132  func (c *QLDB) CreateLedgerRequest(input *CreateLedgerInput) (req *request.Request, output *CreateLedgerOutput) {
   133  	op := &request.Operation{
   134  		Name:       opCreateLedger,
   135  		HTTPMethod: "POST",
   136  		HTTPPath:   "/ledgers",
   137  	}
   138  
   139  	if input == nil {
   140  		input = &CreateLedgerInput{}
   141  	}
   142  
   143  	output = &CreateLedgerOutput{}
   144  	req = c.newRequest(op, input, output)
   145  	return
   146  }
   147  
   148  // CreateLedger API operation for Amazon QLDB.
   149  //
   150  // Creates a new ledger in your account in the current Region.
   151  //
   152  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   153  // with awserr.Error's Code and Message methods to get detailed information about
   154  // the error.
   155  //
   156  // See the AWS API reference guide for Amazon QLDB's
   157  // API operation CreateLedger for usage and error information.
   158  //
   159  // Returned Error Types:
   160  //   * InvalidParameterException
   161  //   One or more parameters in the request aren't valid.
   162  //
   163  //   * ResourceAlreadyExistsException
   164  //   The specified resource already exists.
   165  //
   166  //   * LimitExceededException
   167  //   You have reached the limit on the maximum number of resources allowed.
   168  //
   169  //   * ResourceInUseException
   170  //   The specified resource can't be modified at this time.
   171  //
   172  // See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/CreateLedger
   173  func (c *QLDB) CreateLedger(input *CreateLedgerInput) (*CreateLedgerOutput, error) {
   174  	req, out := c.CreateLedgerRequest(input)
   175  	return out, req.Send()
   176  }
   177  
   178  // CreateLedgerWithContext is the same as CreateLedger with the addition of
   179  // the ability to pass a context and additional request options.
   180  //
   181  // See CreateLedger for details on how to use this API operation.
   182  //
   183  // The context must be non-nil and will be used for request cancellation. If
   184  // the context is nil a panic will occur. In the future the SDK may create
   185  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   186  // for more information on using Contexts.
   187  func (c *QLDB) CreateLedgerWithContext(ctx aws.Context, input *CreateLedgerInput, opts ...request.Option) (*CreateLedgerOutput, error) {
   188  	req, out := c.CreateLedgerRequest(input)
   189  	req.SetContext(ctx)
   190  	req.ApplyOptions(opts...)
   191  	return out, req.Send()
   192  }
   193  
   194  const opDeleteLedger = "DeleteLedger"
   195  
   196  // DeleteLedgerRequest generates a "aws/request.Request" representing the
   197  // client's request for the DeleteLedger operation. The "output" return
   198  // value will be populated with the request's response once the request completes
   199  // successfully.
   200  //
   201  // Use "Send" method on the returned Request to send the API call to the service.
   202  // the "output" return value is not valid until after Send returns without error.
   203  //
   204  // See DeleteLedger for more information on using the DeleteLedger
   205  // API call, and error handling.
   206  //
   207  // This method is useful when you want to inject custom logic or configuration
   208  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   209  //
   210  //
   211  //    // Example sending a request using the DeleteLedgerRequest method.
   212  //    req, resp := client.DeleteLedgerRequest(params)
   213  //
   214  //    err := req.Send()
   215  //    if err == nil { // resp is now filled
   216  //        fmt.Println(resp)
   217  //    }
   218  //
   219  // See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/DeleteLedger
   220  func (c *QLDB) DeleteLedgerRequest(input *DeleteLedgerInput) (req *request.Request, output *DeleteLedgerOutput) {
   221  	op := &request.Operation{
   222  		Name:       opDeleteLedger,
   223  		HTTPMethod: "DELETE",
   224  		HTTPPath:   "/ledgers/{name}",
   225  	}
   226  
   227  	if input == nil {
   228  		input = &DeleteLedgerInput{}
   229  	}
   230  
   231  	output = &DeleteLedgerOutput{}
   232  	req = c.newRequest(op, input, output)
   233  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   234  	return
   235  }
   236  
   237  // DeleteLedger API operation for Amazon QLDB.
   238  //
   239  // Deletes a ledger and all of its contents. This action is irreversible.
   240  //
   241  // If deletion protection is enabled, you must first disable it before you can
   242  // delete the ledger. You can disable it by calling the UpdateLedger operation
   243  // to set the flag to false.
   244  //
   245  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   246  // with awserr.Error's Code and Message methods to get detailed information about
   247  // the error.
   248  //
   249  // See the AWS API reference guide for Amazon QLDB's
   250  // API operation DeleteLedger for usage and error information.
   251  //
   252  // Returned Error Types:
   253  //   * InvalidParameterException
   254  //   One or more parameters in the request aren't valid.
   255  //
   256  //   * ResourceNotFoundException
   257  //   The specified resource doesn't exist.
   258  //
   259  //   * ResourceInUseException
   260  //   The specified resource can't be modified at this time.
   261  //
   262  //   * ResourcePreconditionNotMetException
   263  //   The operation failed because a condition wasn't satisfied in advance.
   264  //
   265  // See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/DeleteLedger
   266  func (c *QLDB) DeleteLedger(input *DeleteLedgerInput) (*DeleteLedgerOutput, error) {
   267  	req, out := c.DeleteLedgerRequest(input)
   268  	return out, req.Send()
   269  }
   270  
   271  // DeleteLedgerWithContext is the same as DeleteLedger with the addition of
   272  // the ability to pass a context and additional request options.
   273  //
   274  // See DeleteLedger for details on how to use this API operation.
   275  //
   276  // The context must be non-nil and will be used for request cancellation. If
   277  // the context is nil a panic will occur. In the future the SDK may create
   278  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   279  // for more information on using Contexts.
   280  func (c *QLDB) DeleteLedgerWithContext(ctx aws.Context, input *DeleteLedgerInput, opts ...request.Option) (*DeleteLedgerOutput, error) {
   281  	req, out := c.DeleteLedgerRequest(input)
   282  	req.SetContext(ctx)
   283  	req.ApplyOptions(opts...)
   284  	return out, req.Send()
   285  }
   286  
   287  const opDescribeJournalKinesisStream = "DescribeJournalKinesisStream"
   288  
   289  // DescribeJournalKinesisStreamRequest generates a "aws/request.Request" representing the
   290  // client's request for the DescribeJournalKinesisStream operation. The "output" return
   291  // value will be populated with the request's response once the request completes
   292  // successfully.
   293  //
   294  // Use "Send" method on the returned Request to send the API call to the service.
   295  // the "output" return value is not valid until after Send returns without error.
   296  //
   297  // See DescribeJournalKinesisStream for more information on using the DescribeJournalKinesisStream
   298  // API call, and error handling.
   299  //
   300  // This method is useful when you want to inject custom logic or configuration
   301  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   302  //
   303  //
   304  //    // Example sending a request using the DescribeJournalKinesisStreamRequest method.
   305  //    req, resp := client.DescribeJournalKinesisStreamRequest(params)
   306  //
   307  //    err := req.Send()
   308  //    if err == nil { // resp is now filled
   309  //        fmt.Println(resp)
   310  //    }
   311  //
   312  // See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/DescribeJournalKinesisStream
   313  func (c *QLDB) DescribeJournalKinesisStreamRequest(input *DescribeJournalKinesisStreamInput) (req *request.Request, output *DescribeJournalKinesisStreamOutput) {
   314  	op := &request.Operation{
   315  		Name:       opDescribeJournalKinesisStream,
   316  		HTTPMethod: "GET",
   317  		HTTPPath:   "/ledgers/{name}/journal-kinesis-streams/{streamId}",
   318  	}
   319  
   320  	if input == nil {
   321  		input = &DescribeJournalKinesisStreamInput{}
   322  	}
   323  
   324  	output = &DescribeJournalKinesisStreamOutput{}
   325  	req = c.newRequest(op, input, output)
   326  	return
   327  }
   328  
   329  // DescribeJournalKinesisStream API operation for Amazon QLDB.
   330  //
   331  // Returns detailed information about a given Amazon QLDB journal stream. The
   332  // output includes the Amazon Resource Name (ARN), stream name, current status,
   333  // creation time, and the parameters of the original stream creation request.
   334  //
   335  // This action does not return any expired journal streams. For more information,
   336  // see Expiration for terminal streams (https://docs.aws.amazon.com/qldb/latest/developerguide/streams.create.html#streams.create.states.expiration)
   337  // in the Amazon QLDB Developer Guide.
   338  //
   339  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   340  // with awserr.Error's Code and Message methods to get detailed information about
   341  // the error.
   342  //
   343  // See the AWS API reference guide for Amazon QLDB's
   344  // API operation DescribeJournalKinesisStream for usage and error information.
   345  //
   346  // Returned Error Types:
   347  //   * InvalidParameterException
   348  //   One or more parameters in the request aren't valid.
   349  //
   350  //   * ResourceNotFoundException
   351  //   The specified resource doesn't exist.
   352  //
   353  //   * ResourcePreconditionNotMetException
   354  //   The operation failed because a condition wasn't satisfied in advance.
   355  //
   356  // See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/DescribeJournalKinesisStream
   357  func (c *QLDB) DescribeJournalKinesisStream(input *DescribeJournalKinesisStreamInput) (*DescribeJournalKinesisStreamOutput, error) {
   358  	req, out := c.DescribeJournalKinesisStreamRequest(input)
   359  	return out, req.Send()
   360  }
   361  
   362  // DescribeJournalKinesisStreamWithContext is the same as DescribeJournalKinesisStream with the addition of
   363  // the ability to pass a context and additional request options.
   364  //
   365  // See DescribeJournalKinesisStream for details on how to use this API operation.
   366  //
   367  // The context must be non-nil and will be used for request cancellation. If
   368  // the context is nil a panic will occur. In the future the SDK may create
   369  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   370  // for more information on using Contexts.
   371  func (c *QLDB) DescribeJournalKinesisStreamWithContext(ctx aws.Context, input *DescribeJournalKinesisStreamInput, opts ...request.Option) (*DescribeJournalKinesisStreamOutput, error) {
   372  	req, out := c.DescribeJournalKinesisStreamRequest(input)
   373  	req.SetContext(ctx)
   374  	req.ApplyOptions(opts...)
   375  	return out, req.Send()
   376  }
   377  
   378  const opDescribeJournalS3Export = "DescribeJournalS3Export"
   379  
   380  // DescribeJournalS3ExportRequest generates a "aws/request.Request" representing the
   381  // client's request for the DescribeJournalS3Export operation. The "output" return
   382  // value will be populated with the request's response once the request completes
   383  // successfully.
   384  //
   385  // Use "Send" method on the returned Request to send the API call to the service.
   386  // the "output" return value is not valid until after Send returns without error.
   387  //
   388  // See DescribeJournalS3Export for more information on using the DescribeJournalS3Export
   389  // API call, and error handling.
   390  //
   391  // This method is useful when you want to inject custom logic or configuration
   392  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   393  //
   394  //
   395  //    // Example sending a request using the DescribeJournalS3ExportRequest method.
   396  //    req, resp := client.DescribeJournalS3ExportRequest(params)
   397  //
   398  //    err := req.Send()
   399  //    if err == nil { // resp is now filled
   400  //        fmt.Println(resp)
   401  //    }
   402  //
   403  // See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/DescribeJournalS3Export
   404  func (c *QLDB) DescribeJournalS3ExportRequest(input *DescribeJournalS3ExportInput) (req *request.Request, output *DescribeJournalS3ExportOutput) {
   405  	op := &request.Operation{
   406  		Name:       opDescribeJournalS3Export,
   407  		HTTPMethod: "GET",
   408  		HTTPPath:   "/ledgers/{name}/journal-s3-exports/{exportId}",
   409  	}
   410  
   411  	if input == nil {
   412  		input = &DescribeJournalS3ExportInput{}
   413  	}
   414  
   415  	output = &DescribeJournalS3ExportOutput{}
   416  	req = c.newRequest(op, input, output)
   417  	return
   418  }
   419  
   420  // DescribeJournalS3Export API operation for Amazon QLDB.
   421  //
   422  // Returns information about a journal export job, including the ledger name,
   423  // export ID, creation time, current status, and the parameters of the original
   424  // export creation request.
   425  //
   426  // This action does not return any expired export jobs. For more information,
   427  // see Export job expiration (https://docs.aws.amazon.com/qldb/latest/developerguide/export-journal.request.html#export-journal.request.expiration)
   428  // in the Amazon QLDB Developer Guide.
   429  //
   430  // If the export job with the given ExportId doesn't exist, then throws ResourceNotFoundException.
   431  //
   432  // If the ledger with the given Name doesn't exist, then throws ResourceNotFoundException.
   433  //
   434  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   435  // with awserr.Error's Code and Message methods to get detailed information about
   436  // the error.
   437  //
   438  // See the AWS API reference guide for Amazon QLDB's
   439  // API operation DescribeJournalS3Export for usage and error information.
   440  //
   441  // Returned Error Types:
   442  //   * ResourceNotFoundException
   443  //   The specified resource doesn't exist.
   444  //
   445  // See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/DescribeJournalS3Export
   446  func (c *QLDB) DescribeJournalS3Export(input *DescribeJournalS3ExportInput) (*DescribeJournalS3ExportOutput, error) {
   447  	req, out := c.DescribeJournalS3ExportRequest(input)
   448  	return out, req.Send()
   449  }
   450  
   451  // DescribeJournalS3ExportWithContext is the same as DescribeJournalS3Export with the addition of
   452  // the ability to pass a context and additional request options.
   453  //
   454  // See DescribeJournalS3Export for details on how to use this API operation.
   455  //
   456  // The context must be non-nil and will be used for request cancellation. If
   457  // the context is nil a panic will occur. In the future the SDK may create
   458  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   459  // for more information on using Contexts.
   460  func (c *QLDB) DescribeJournalS3ExportWithContext(ctx aws.Context, input *DescribeJournalS3ExportInput, opts ...request.Option) (*DescribeJournalS3ExportOutput, error) {
   461  	req, out := c.DescribeJournalS3ExportRequest(input)
   462  	req.SetContext(ctx)
   463  	req.ApplyOptions(opts...)
   464  	return out, req.Send()
   465  }
   466  
   467  const opDescribeLedger = "DescribeLedger"
   468  
   469  // DescribeLedgerRequest generates a "aws/request.Request" representing the
   470  // client's request for the DescribeLedger operation. The "output" return
   471  // value will be populated with the request's response once the request completes
   472  // successfully.
   473  //
   474  // Use "Send" method on the returned Request to send the API call to the service.
   475  // the "output" return value is not valid until after Send returns without error.
   476  //
   477  // See DescribeLedger for more information on using the DescribeLedger
   478  // API call, and error handling.
   479  //
   480  // This method is useful when you want to inject custom logic or configuration
   481  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   482  //
   483  //
   484  //    // Example sending a request using the DescribeLedgerRequest method.
   485  //    req, resp := client.DescribeLedgerRequest(params)
   486  //
   487  //    err := req.Send()
   488  //    if err == nil { // resp is now filled
   489  //        fmt.Println(resp)
   490  //    }
   491  //
   492  // See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/DescribeLedger
   493  func (c *QLDB) DescribeLedgerRequest(input *DescribeLedgerInput) (req *request.Request, output *DescribeLedgerOutput) {
   494  	op := &request.Operation{
   495  		Name:       opDescribeLedger,
   496  		HTTPMethod: "GET",
   497  		HTTPPath:   "/ledgers/{name}",
   498  	}
   499  
   500  	if input == nil {
   501  		input = &DescribeLedgerInput{}
   502  	}
   503  
   504  	output = &DescribeLedgerOutput{}
   505  	req = c.newRequest(op, input, output)
   506  	return
   507  }
   508  
   509  // DescribeLedger API operation for Amazon QLDB.
   510  //
   511  // Returns information about a ledger, including its state, permissions mode,
   512  // encryption at rest settings, and when it was created.
   513  //
   514  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   515  // with awserr.Error's Code and Message methods to get detailed information about
   516  // the error.
   517  //
   518  // See the AWS API reference guide for Amazon QLDB's
   519  // API operation DescribeLedger for usage and error information.
   520  //
   521  // Returned Error Types:
   522  //   * InvalidParameterException
   523  //   One or more parameters in the request aren't valid.
   524  //
   525  //   * ResourceNotFoundException
   526  //   The specified resource doesn't exist.
   527  //
   528  // See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/DescribeLedger
   529  func (c *QLDB) DescribeLedger(input *DescribeLedgerInput) (*DescribeLedgerOutput, error) {
   530  	req, out := c.DescribeLedgerRequest(input)
   531  	return out, req.Send()
   532  }
   533  
   534  // DescribeLedgerWithContext is the same as DescribeLedger with the addition of
   535  // the ability to pass a context and additional request options.
   536  //
   537  // See DescribeLedger for details on how to use this API operation.
   538  //
   539  // The context must be non-nil and will be used for request cancellation. If
   540  // the context is nil a panic will occur. In the future the SDK may create
   541  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   542  // for more information on using Contexts.
   543  func (c *QLDB) DescribeLedgerWithContext(ctx aws.Context, input *DescribeLedgerInput, opts ...request.Option) (*DescribeLedgerOutput, error) {
   544  	req, out := c.DescribeLedgerRequest(input)
   545  	req.SetContext(ctx)
   546  	req.ApplyOptions(opts...)
   547  	return out, req.Send()
   548  }
   549  
   550  const opExportJournalToS3 = "ExportJournalToS3"
   551  
   552  // ExportJournalToS3Request generates a "aws/request.Request" representing the
   553  // client's request for the ExportJournalToS3 operation. The "output" return
   554  // value will be populated with the request's response once the request completes
   555  // successfully.
   556  //
   557  // Use "Send" method on the returned Request to send the API call to the service.
   558  // the "output" return value is not valid until after Send returns without error.
   559  //
   560  // See ExportJournalToS3 for more information on using the ExportJournalToS3
   561  // API call, and error handling.
   562  //
   563  // This method is useful when you want to inject custom logic or configuration
   564  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   565  //
   566  //
   567  //    // Example sending a request using the ExportJournalToS3Request method.
   568  //    req, resp := client.ExportJournalToS3Request(params)
   569  //
   570  //    err := req.Send()
   571  //    if err == nil { // resp is now filled
   572  //        fmt.Println(resp)
   573  //    }
   574  //
   575  // See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/ExportJournalToS3
   576  func (c *QLDB) ExportJournalToS3Request(input *ExportJournalToS3Input) (req *request.Request, output *ExportJournalToS3Output) {
   577  	op := &request.Operation{
   578  		Name:       opExportJournalToS3,
   579  		HTTPMethod: "POST",
   580  		HTTPPath:   "/ledgers/{name}/journal-s3-exports",
   581  	}
   582  
   583  	if input == nil {
   584  		input = &ExportJournalToS3Input{}
   585  	}
   586  
   587  	output = &ExportJournalToS3Output{}
   588  	req = c.newRequest(op, input, output)
   589  	return
   590  }
   591  
   592  // ExportJournalToS3 API operation for Amazon QLDB.
   593  //
   594  // Exports journal contents within a date and time range from a ledger into
   595  // a specified Amazon Simple Storage Service (Amazon S3) bucket. The data is
   596  // written as files in Amazon Ion format.
   597  //
   598  // If the ledger with the given Name doesn't exist, then throws ResourceNotFoundException.
   599  //
   600  // If the ledger with the given Name is in CREATING status, then throws ResourcePreconditionNotMetException.
   601  //
   602  // You can initiate up to two concurrent journal export requests for each ledger.
   603  // Beyond this limit, journal export requests throw LimitExceededException.
   604  //
   605  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   606  // with awserr.Error's Code and Message methods to get detailed information about
   607  // the error.
   608  //
   609  // See the AWS API reference guide for Amazon QLDB's
   610  // API operation ExportJournalToS3 for usage and error information.
   611  //
   612  // Returned Error Types:
   613  //   * ResourceNotFoundException
   614  //   The specified resource doesn't exist.
   615  //
   616  //   * ResourcePreconditionNotMetException
   617  //   The operation failed because a condition wasn't satisfied in advance.
   618  //
   619  // See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/ExportJournalToS3
   620  func (c *QLDB) ExportJournalToS3(input *ExportJournalToS3Input) (*ExportJournalToS3Output, error) {
   621  	req, out := c.ExportJournalToS3Request(input)
   622  	return out, req.Send()
   623  }
   624  
   625  // ExportJournalToS3WithContext is the same as ExportJournalToS3 with the addition of
   626  // the ability to pass a context and additional request options.
   627  //
   628  // See ExportJournalToS3 for details on how to use this API operation.
   629  //
   630  // The context must be non-nil and will be used for request cancellation. If
   631  // the context is nil a panic will occur. In the future the SDK may create
   632  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   633  // for more information on using Contexts.
   634  func (c *QLDB) ExportJournalToS3WithContext(ctx aws.Context, input *ExportJournalToS3Input, opts ...request.Option) (*ExportJournalToS3Output, error) {
   635  	req, out := c.ExportJournalToS3Request(input)
   636  	req.SetContext(ctx)
   637  	req.ApplyOptions(opts...)
   638  	return out, req.Send()
   639  }
   640  
   641  const opGetBlock = "GetBlock"
   642  
   643  // GetBlockRequest generates a "aws/request.Request" representing the
   644  // client's request for the GetBlock operation. The "output" return
   645  // value will be populated with the request's response once the request completes
   646  // successfully.
   647  //
   648  // Use "Send" method on the returned Request to send the API call to the service.
   649  // the "output" return value is not valid until after Send returns without error.
   650  //
   651  // See GetBlock for more information on using the GetBlock
   652  // API call, and error handling.
   653  //
   654  // This method is useful when you want to inject custom logic or configuration
   655  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   656  //
   657  //
   658  //    // Example sending a request using the GetBlockRequest method.
   659  //    req, resp := client.GetBlockRequest(params)
   660  //
   661  //    err := req.Send()
   662  //    if err == nil { // resp is now filled
   663  //        fmt.Println(resp)
   664  //    }
   665  //
   666  // See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/GetBlock
   667  func (c *QLDB) GetBlockRequest(input *GetBlockInput) (req *request.Request, output *GetBlockOutput) {
   668  	op := &request.Operation{
   669  		Name:       opGetBlock,
   670  		HTTPMethod: "POST",
   671  		HTTPPath:   "/ledgers/{name}/block",
   672  	}
   673  
   674  	if input == nil {
   675  		input = &GetBlockInput{}
   676  	}
   677  
   678  	output = &GetBlockOutput{}
   679  	req = c.newRequest(op, input, output)
   680  	return
   681  }
   682  
   683  // GetBlock API operation for Amazon QLDB.
   684  //
   685  // Returns a block object at a specified address in a journal. Also returns
   686  // a proof of the specified block for verification if DigestTipAddress is provided.
   687  //
   688  // For information about the data contents in a block, see Journal contents
   689  // (https://docs.aws.amazon.com/qldb/latest/developerguide/journal-contents.html)
   690  // in the Amazon QLDB Developer Guide.
   691  //
   692  // If the specified ledger doesn't exist or is in DELETING status, then throws
   693  // ResourceNotFoundException.
   694  //
   695  // If the specified ledger is in CREATING status, then throws ResourcePreconditionNotMetException.
   696  //
   697  // If no block exists with the specified address, then throws InvalidParameterException.
   698  //
   699  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   700  // with awserr.Error's Code and Message methods to get detailed information about
   701  // the error.
   702  //
   703  // See the AWS API reference guide for Amazon QLDB's
   704  // API operation GetBlock for usage and error information.
   705  //
   706  // Returned Error Types:
   707  //   * InvalidParameterException
   708  //   One or more parameters in the request aren't valid.
   709  //
   710  //   * ResourceNotFoundException
   711  //   The specified resource doesn't exist.
   712  //
   713  //   * ResourcePreconditionNotMetException
   714  //   The operation failed because a condition wasn't satisfied in advance.
   715  //
   716  // See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/GetBlock
   717  func (c *QLDB) GetBlock(input *GetBlockInput) (*GetBlockOutput, error) {
   718  	req, out := c.GetBlockRequest(input)
   719  	return out, req.Send()
   720  }
   721  
   722  // GetBlockWithContext is the same as GetBlock with the addition of
   723  // the ability to pass a context and additional request options.
   724  //
   725  // See GetBlock for details on how to use this API operation.
   726  //
   727  // The context must be non-nil and will be used for request cancellation. If
   728  // the context is nil a panic will occur. In the future the SDK may create
   729  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   730  // for more information on using Contexts.
   731  func (c *QLDB) GetBlockWithContext(ctx aws.Context, input *GetBlockInput, opts ...request.Option) (*GetBlockOutput, error) {
   732  	req, out := c.GetBlockRequest(input)
   733  	req.SetContext(ctx)
   734  	req.ApplyOptions(opts...)
   735  	return out, req.Send()
   736  }
   737  
   738  const opGetDigest = "GetDigest"
   739  
   740  // GetDigestRequest generates a "aws/request.Request" representing the
   741  // client's request for the GetDigest operation. The "output" return
   742  // value will be populated with the request's response once the request completes
   743  // successfully.
   744  //
   745  // Use "Send" method on the returned Request to send the API call to the service.
   746  // the "output" return value is not valid until after Send returns without error.
   747  //
   748  // See GetDigest for more information on using the GetDigest
   749  // API call, and error handling.
   750  //
   751  // This method is useful when you want to inject custom logic or configuration
   752  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   753  //
   754  //
   755  //    // Example sending a request using the GetDigestRequest method.
   756  //    req, resp := client.GetDigestRequest(params)
   757  //
   758  //    err := req.Send()
   759  //    if err == nil { // resp is now filled
   760  //        fmt.Println(resp)
   761  //    }
   762  //
   763  // See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/GetDigest
   764  func (c *QLDB) GetDigestRequest(input *GetDigestInput) (req *request.Request, output *GetDigestOutput) {
   765  	op := &request.Operation{
   766  		Name:       opGetDigest,
   767  		HTTPMethod: "POST",
   768  		HTTPPath:   "/ledgers/{name}/digest",
   769  	}
   770  
   771  	if input == nil {
   772  		input = &GetDigestInput{}
   773  	}
   774  
   775  	output = &GetDigestOutput{}
   776  	req = c.newRequest(op, input, output)
   777  	return
   778  }
   779  
   780  // GetDigest API operation for Amazon QLDB.
   781  //
   782  // Returns the digest of a ledger at the latest committed block in the journal.
   783  // The response includes a 256-bit hash value and a block address.
   784  //
   785  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   786  // with awserr.Error's Code and Message methods to get detailed information about
   787  // the error.
   788  //
   789  // See the AWS API reference guide for Amazon QLDB's
   790  // API operation GetDigest for usage and error information.
   791  //
   792  // Returned Error Types:
   793  //   * InvalidParameterException
   794  //   One or more parameters in the request aren't valid.
   795  //
   796  //   * ResourceNotFoundException
   797  //   The specified resource doesn't exist.
   798  //
   799  //   * ResourcePreconditionNotMetException
   800  //   The operation failed because a condition wasn't satisfied in advance.
   801  //
   802  // See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/GetDigest
   803  func (c *QLDB) GetDigest(input *GetDigestInput) (*GetDigestOutput, error) {
   804  	req, out := c.GetDigestRequest(input)
   805  	return out, req.Send()
   806  }
   807  
   808  // GetDigestWithContext is the same as GetDigest with the addition of
   809  // the ability to pass a context and additional request options.
   810  //
   811  // See GetDigest for details on how to use this API operation.
   812  //
   813  // The context must be non-nil and will be used for request cancellation. If
   814  // the context is nil a panic will occur. In the future the SDK may create
   815  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   816  // for more information on using Contexts.
   817  func (c *QLDB) GetDigestWithContext(ctx aws.Context, input *GetDigestInput, opts ...request.Option) (*GetDigestOutput, error) {
   818  	req, out := c.GetDigestRequest(input)
   819  	req.SetContext(ctx)
   820  	req.ApplyOptions(opts...)
   821  	return out, req.Send()
   822  }
   823  
   824  const opGetRevision = "GetRevision"
   825  
   826  // GetRevisionRequest generates a "aws/request.Request" representing the
   827  // client's request for the GetRevision operation. The "output" return
   828  // value will be populated with the request's response once the request completes
   829  // successfully.
   830  //
   831  // Use "Send" method on the returned Request to send the API call to the service.
   832  // the "output" return value is not valid until after Send returns without error.
   833  //
   834  // See GetRevision for more information on using the GetRevision
   835  // API call, and error handling.
   836  //
   837  // This method is useful when you want to inject custom logic or configuration
   838  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   839  //
   840  //
   841  //    // Example sending a request using the GetRevisionRequest method.
   842  //    req, resp := client.GetRevisionRequest(params)
   843  //
   844  //    err := req.Send()
   845  //    if err == nil { // resp is now filled
   846  //        fmt.Println(resp)
   847  //    }
   848  //
   849  // See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/GetRevision
   850  func (c *QLDB) GetRevisionRequest(input *GetRevisionInput) (req *request.Request, output *GetRevisionOutput) {
   851  	op := &request.Operation{
   852  		Name:       opGetRevision,
   853  		HTTPMethod: "POST",
   854  		HTTPPath:   "/ledgers/{name}/revision",
   855  	}
   856  
   857  	if input == nil {
   858  		input = &GetRevisionInput{}
   859  	}
   860  
   861  	output = &GetRevisionOutput{}
   862  	req = c.newRequest(op, input, output)
   863  	return
   864  }
   865  
   866  // GetRevision API operation for Amazon QLDB.
   867  //
   868  // Returns a revision data object for a specified document ID and block address.
   869  // Also returns a proof of the specified revision for verification if DigestTipAddress
   870  // is provided.
   871  //
   872  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   873  // with awserr.Error's Code and Message methods to get detailed information about
   874  // the error.
   875  //
   876  // See the AWS API reference guide for Amazon QLDB's
   877  // API operation GetRevision for usage and error information.
   878  //
   879  // Returned Error Types:
   880  //   * InvalidParameterException
   881  //   One or more parameters in the request aren't valid.
   882  //
   883  //   * ResourceNotFoundException
   884  //   The specified resource doesn't exist.
   885  //
   886  //   * ResourcePreconditionNotMetException
   887  //   The operation failed because a condition wasn't satisfied in advance.
   888  //
   889  // See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/GetRevision
   890  func (c *QLDB) GetRevision(input *GetRevisionInput) (*GetRevisionOutput, error) {
   891  	req, out := c.GetRevisionRequest(input)
   892  	return out, req.Send()
   893  }
   894  
   895  // GetRevisionWithContext is the same as GetRevision with the addition of
   896  // the ability to pass a context and additional request options.
   897  //
   898  // See GetRevision for details on how to use this API operation.
   899  //
   900  // The context must be non-nil and will be used for request cancellation. If
   901  // the context is nil a panic will occur. In the future the SDK may create
   902  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   903  // for more information on using Contexts.
   904  func (c *QLDB) GetRevisionWithContext(ctx aws.Context, input *GetRevisionInput, opts ...request.Option) (*GetRevisionOutput, error) {
   905  	req, out := c.GetRevisionRequest(input)
   906  	req.SetContext(ctx)
   907  	req.ApplyOptions(opts...)
   908  	return out, req.Send()
   909  }
   910  
   911  const opListJournalKinesisStreamsForLedger = "ListJournalKinesisStreamsForLedger"
   912  
   913  // ListJournalKinesisStreamsForLedgerRequest generates a "aws/request.Request" representing the
   914  // client's request for the ListJournalKinesisStreamsForLedger operation. The "output" return
   915  // value will be populated with the request's response once the request completes
   916  // successfully.
   917  //
   918  // Use "Send" method on the returned Request to send the API call to the service.
   919  // the "output" return value is not valid until after Send returns without error.
   920  //
   921  // See ListJournalKinesisStreamsForLedger for more information on using the ListJournalKinesisStreamsForLedger
   922  // API call, and error handling.
   923  //
   924  // This method is useful when you want to inject custom logic or configuration
   925  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   926  //
   927  //
   928  //    // Example sending a request using the ListJournalKinesisStreamsForLedgerRequest method.
   929  //    req, resp := client.ListJournalKinesisStreamsForLedgerRequest(params)
   930  //
   931  //    err := req.Send()
   932  //    if err == nil { // resp is now filled
   933  //        fmt.Println(resp)
   934  //    }
   935  //
   936  // See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/ListJournalKinesisStreamsForLedger
   937  func (c *QLDB) ListJournalKinesisStreamsForLedgerRequest(input *ListJournalKinesisStreamsForLedgerInput) (req *request.Request, output *ListJournalKinesisStreamsForLedgerOutput) {
   938  	op := &request.Operation{
   939  		Name:       opListJournalKinesisStreamsForLedger,
   940  		HTTPMethod: "GET",
   941  		HTTPPath:   "/ledgers/{name}/journal-kinesis-streams",
   942  		Paginator: &request.Paginator{
   943  			InputTokens:     []string{"NextToken"},
   944  			OutputTokens:    []string{"NextToken"},
   945  			LimitToken:      "MaxResults",
   946  			TruncationToken: "",
   947  		},
   948  	}
   949  
   950  	if input == nil {
   951  		input = &ListJournalKinesisStreamsForLedgerInput{}
   952  	}
   953  
   954  	output = &ListJournalKinesisStreamsForLedgerOutput{}
   955  	req = c.newRequest(op, input, output)
   956  	return
   957  }
   958  
   959  // ListJournalKinesisStreamsForLedger API operation for Amazon QLDB.
   960  //
   961  // Returns an array of all Amazon QLDB journal stream descriptors for a given
   962  // ledger. The output of each stream descriptor includes the same details that
   963  // are returned by DescribeJournalKinesisStream.
   964  //
   965  // This action does not return any expired journal streams. For more information,
   966  // see Expiration for terminal streams (https://docs.aws.amazon.com/qldb/latest/developerguide/streams.create.html#streams.create.states.expiration)
   967  // in the Amazon QLDB Developer Guide.
   968  //
   969  // This action returns a maximum of MaxResults items. It is paginated so that
   970  // you can retrieve all the items by calling ListJournalKinesisStreamsForLedger
   971  // multiple times.
   972  //
   973  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   974  // with awserr.Error's Code and Message methods to get detailed information about
   975  // the error.
   976  //
   977  // See the AWS API reference guide for Amazon QLDB's
   978  // API operation ListJournalKinesisStreamsForLedger for usage and error information.
   979  //
   980  // Returned Error Types:
   981  //   * InvalidParameterException
   982  //   One or more parameters in the request aren't valid.
   983  //
   984  //   * ResourceNotFoundException
   985  //   The specified resource doesn't exist.
   986  //
   987  //   * ResourcePreconditionNotMetException
   988  //   The operation failed because a condition wasn't satisfied in advance.
   989  //
   990  // See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/ListJournalKinesisStreamsForLedger
   991  func (c *QLDB) ListJournalKinesisStreamsForLedger(input *ListJournalKinesisStreamsForLedgerInput) (*ListJournalKinesisStreamsForLedgerOutput, error) {
   992  	req, out := c.ListJournalKinesisStreamsForLedgerRequest(input)
   993  	return out, req.Send()
   994  }
   995  
   996  // ListJournalKinesisStreamsForLedgerWithContext is the same as ListJournalKinesisStreamsForLedger with the addition of
   997  // the ability to pass a context and additional request options.
   998  //
   999  // See ListJournalKinesisStreamsForLedger for details on how to use this API operation.
  1000  //
  1001  // The context must be non-nil and will be used for request cancellation. If
  1002  // the context is nil a panic will occur. In the future the SDK may create
  1003  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1004  // for more information on using Contexts.
  1005  func (c *QLDB) ListJournalKinesisStreamsForLedgerWithContext(ctx aws.Context, input *ListJournalKinesisStreamsForLedgerInput, opts ...request.Option) (*ListJournalKinesisStreamsForLedgerOutput, error) {
  1006  	req, out := c.ListJournalKinesisStreamsForLedgerRequest(input)
  1007  	req.SetContext(ctx)
  1008  	req.ApplyOptions(opts...)
  1009  	return out, req.Send()
  1010  }
  1011  
  1012  // ListJournalKinesisStreamsForLedgerPages iterates over the pages of a ListJournalKinesisStreamsForLedger operation,
  1013  // calling the "fn" function with the response data for each page. To stop
  1014  // iterating, return false from the fn function.
  1015  //
  1016  // See ListJournalKinesisStreamsForLedger method for more information on how to use this operation.
  1017  //
  1018  // Note: This operation can generate multiple requests to a service.
  1019  //
  1020  //    // Example iterating over at most 3 pages of a ListJournalKinesisStreamsForLedger operation.
  1021  //    pageNum := 0
  1022  //    err := client.ListJournalKinesisStreamsForLedgerPages(params,
  1023  //        func(page *qldb.ListJournalKinesisStreamsForLedgerOutput, lastPage bool) bool {
  1024  //            pageNum++
  1025  //            fmt.Println(page)
  1026  //            return pageNum <= 3
  1027  //        })
  1028  //
  1029  func (c *QLDB) ListJournalKinesisStreamsForLedgerPages(input *ListJournalKinesisStreamsForLedgerInput, fn func(*ListJournalKinesisStreamsForLedgerOutput, bool) bool) error {
  1030  	return c.ListJournalKinesisStreamsForLedgerPagesWithContext(aws.BackgroundContext(), input, fn)
  1031  }
  1032  
  1033  // ListJournalKinesisStreamsForLedgerPagesWithContext same as ListJournalKinesisStreamsForLedgerPages except
  1034  // it takes a Context and allows setting request options on the pages.
  1035  //
  1036  // The context must be non-nil and will be used for request cancellation. If
  1037  // the context is nil a panic will occur. In the future the SDK may create
  1038  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1039  // for more information on using Contexts.
  1040  func (c *QLDB) ListJournalKinesisStreamsForLedgerPagesWithContext(ctx aws.Context, input *ListJournalKinesisStreamsForLedgerInput, fn func(*ListJournalKinesisStreamsForLedgerOutput, bool) bool, opts ...request.Option) error {
  1041  	p := request.Pagination{
  1042  		NewRequest: func() (*request.Request, error) {
  1043  			var inCpy *ListJournalKinesisStreamsForLedgerInput
  1044  			if input != nil {
  1045  				tmp := *input
  1046  				inCpy = &tmp
  1047  			}
  1048  			req, _ := c.ListJournalKinesisStreamsForLedgerRequest(inCpy)
  1049  			req.SetContext(ctx)
  1050  			req.ApplyOptions(opts...)
  1051  			return req, nil
  1052  		},
  1053  	}
  1054  
  1055  	for p.Next() {
  1056  		if !fn(p.Page().(*ListJournalKinesisStreamsForLedgerOutput), !p.HasNextPage()) {
  1057  			break
  1058  		}
  1059  	}
  1060  
  1061  	return p.Err()
  1062  }
  1063  
  1064  const opListJournalS3Exports = "ListJournalS3Exports"
  1065  
  1066  // ListJournalS3ExportsRequest generates a "aws/request.Request" representing the
  1067  // client's request for the ListJournalS3Exports operation. The "output" return
  1068  // value will be populated with the request's response once the request completes
  1069  // successfully.
  1070  //
  1071  // Use "Send" method on the returned Request to send the API call to the service.
  1072  // the "output" return value is not valid until after Send returns without error.
  1073  //
  1074  // See ListJournalS3Exports for more information on using the ListJournalS3Exports
  1075  // API call, and error handling.
  1076  //
  1077  // This method is useful when you want to inject custom logic or configuration
  1078  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1079  //
  1080  //
  1081  //    // Example sending a request using the ListJournalS3ExportsRequest method.
  1082  //    req, resp := client.ListJournalS3ExportsRequest(params)
  1083  //
  1084  //    err := req.Send()
  1085  //    if err == nil { // resp is now filled
  1086  //        fmt.Println(resp)
  1087  //    }
  1088  //
  1089  // See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/ListJournalS3Exports
  1090  func (c *QLDB) ListJournalS3ExportsRequest(input *ListJournalS3ExportsInput) (req *request.Request, output *ListJournalS3ExportsOutput) {
  1091  	op := &request.Operation{
  1092  		Name:       opListJournalS3Exports,
  1093  		HTTPMethod: "GET",
  1094  		HTTPPath:   "/journal-s3-exports",
  1095  		Paginator: &request.Paginator{
  1096  			InputTokens:     []string{"NextToken"},
  1097  			OutputTokens:    []string{"NextToken"},
  1098  			LimitToken:      "MaxResults",
  1099  			TruncationToken: "",
  1100  		},
  1101  	}
  1102  
  1103  	if input == nil {
  1104  		input = &ListJournalS3ExportsInput{}
  1105  	}
  1106  
  1107  	output = &ListJournalS3ExportsOutput{}
  1108  	req = c.newRequest(op, input, output)
  1109  	return
  1110  }
  1111  
  1112  // ListJournalS3Exports API operation for Amazon QLDB.
  1113  //
  1114  // Returns an array of journal export job descriptions for all ledgers that
  1115  // are associated with the current account and Region.
  1116  //
  1117  // This action returns a maximum of MaxResults items, and is paginated so that
  1118  // you can retrieve all the items by calling ListJournalS3Exports multiple times.
  1119  //
  1120  // This action does not return any expired export jobs. For more information,
  1121  // see Export job expiration (https://docs.aws.amazon.com/qldb/latest/developerguide/export-journal.request.html#export-journal.request.expiration)
  1122  // in the Amazon QLDB Developer Guide.
  1123  //
  1124  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1125  // with awserr.Error's Code and Message methods to get detailed information about
  1126  // the error.
  1127  //
  1128  // See the AWS API reference guide for Amazon QLDB's
  1129  // API operation ListJournalS3Exports for usage and error information.
  1130  // See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/ListJournalS3Exports
  1131  func (c *QLDB) ListJournalS3Exports(input *ListJournalS3ExportsInput) (*ListJournalS3ExportsOutput, error) {
  1132  	req, out := c.ListJournalS3ExportsRequest(input)
  1133  	return out, req.Send()
  1134  }
  1135  
  1136  // ListJournalS3ExportsWithContext is the same as ListJournalS3Exports with the addition of
  1137  // the ability to pass a context and additional request options.
  1138  //
  1139  // See ListJournalS3Exports for details on how to use this API operation.
  1140  //
  1141  // The context must be non-nil and will be used for request cancellation. If
  1142  // the context is nil a panic will occur. In the future the SDK may create
  1143  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1144  // for more information on using Contexts.
  1145  func (c *QLDB) ListJournalS3ExportsWithContext(ctx aws.Context, input *ListJournalS3ExportsInput, opts ...request.Option) (*ListJournalS3ExportsOutput, error) {
  1146  	req, out := c.ListJournalS3ExportsRequest(input)
  1147  	req.SetContext(ctx)
  1148  	req.ApplyOptions(opts...)
  1149  	return out, req.Send()
  1150  }
  1151  
  1152  // ListJournalS3ExportsPages iterates over the pages of a ListJournalS3Exports operation,
  1153  // calling the "fn" function with the response data for each page. To stop
  1154  // iterating, return false from the fn function.
  1155  //
  1156  // See ListJournalS3Exports method for more information on how to use this operation.
  1157  //
  1158  // Note: This operation can generate multiple requests to a service.
  1159  //
  1160  //    // Example iterating over at most 3 pages of a ListJournalS3Exports operation.
  1161  //    pageNum := 0
  1162  //    err := client.ListJournalS3ExportsPages(params,
  1163  //        func(page *qldb.ListJournalS3ExportsOutput, lastPage bool) bool {
  1164  //            pageNum++
  1165  //            fmt.Println(page)
  1166  //            return pageNum <= 3
  1167  //        })
  1168  //
  1169  func (c *QLDB) ListJournalS3ExportsPages(input *ListJournalS3ExportsInput, fn func(*ListJournalS3ExportsOutput, bool) bool) error {
  1170  	return c.ListJournalS3ExportsPagesWithContext(aws.BackgroundContext(), input, fn)
  1171  }
  1172  
  1173  // ListJournalS3ExportsPagesWithContext same as ListJournalS3ExportsPages except
  1174  // it takes a Context and allows setting request options on the pages.
  1175  //
  1176  // The context must be non-nil and will be used for request cancellation. If
  1177  // the context is nil a panic will occur. In the future the SDK may create
  1178  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1179  // for more information on using Contexts.
  1180  func (c *QLDB) ListJournalS3ExportsPagesWithContext(ctx aws.Context, input *ListJournalS3ExportsInput, fn func(*ListJournalS3ExportsOutput, bool) bool, opts ...request.Option) error {
  1181  	p := request.Pagination{
  1182  		NewRequest: func() (*request.Request, error) {
  1183  			var inCpy *ListJournalS3ExportsInput
  1184  			if input != nil {
  1185  				tmp := *input
  1186  				inCpy = &tmp
  1187  			}
  1188  			req, _ := c.ListJournalS3ExportsRequest(inCpy)
  1189  			req.SetContext(ctx)
  1190  			req.ApplyOptions(opts...)
  1191  			return req, nil
  1192  		},
  1193  	}
  1194  
  1195  	for p.Next() {
  1196  		if !fn(p.Page().(*ListJournalS3ExportsOutput), !p.HasNextPage()) {
  1197  			break
  1198  		}
  1199  	}
  1200  
  1201  	return p.Err()
  1202  }
  1203  
  1204  const opListJournalS3ExportsForLedger = "ListJournalS3ExportsForLedger"
  1205  
  1206  // ListJournalS3ExportsForLedgerRequest generates a "aws/request.Request" representing the
  1207  // client's request for the ListJournalS3ExportsForLedger operation. The "output" return
  1208  // value will be populated with the request's response once the request completes
  1209  // successfully.
  1210  //
  1211  // Use "Send" method on the returned Request to send the API call to the service.
  1212  // the "output" return value is not valid until after Send returns without error.
  1213  //
  1214  // See ListJournalS3ExportsForLedger for more information on using the ListJournalS3ExportsForLedger
  1215  // API call, and error handling.
  1216  //
  1217  // This method is useful when you want to inject custom logic or configuration
  1218  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1219  //
  1220  //
  1221  //    // Example sending a request using the ListJournalS3ExportsForLedgerRequest method.
  1222  //    req, resp := client.ListJournalS3ExportsForLedgerRequest(params)
  1223  //
  1224  //    err := req.Send()
  1225  //    if err == nil { // resp is now filled
  1226  //        fmt.Println(resp)
  1227  //    }
  1228  //
  1229  // See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/ListJournalS3ExportsForLedger
  1230  func (c *QLDB) ListJournalS3ExportsForLedgerRequest(input *ListJournalS3ExportsForLedgerInput) (req *request.Request, output *ListJournalS3ExportsForLedgerOutput) {
  1231  	op := &request.Operation{
  1232  		Name:       opListJournalS3ExportsForLedger,
  1233  		HTTPMethod: "GET",
  1234  		HTTPPath:   "/ledgers/{name}/journal-s3-exports",
  1235  		Paginator: &request.Paginator{
  1236  			InputTokens:     []string{"NextToken"},
  1237  			OutputTokens:    []string{"NextToken"},
  1238  			LimitToken:      "MaxResults",
  1239  			TruncationToken: "",
  1240  		},
  1241  	}
  1242  
  1243  	if input == nil {
  1244  		input = &ListJournalS3ExportsForLedgerInput{}
  1245  	}
  1246  
  1247  	output = &ListJournalS3ExportsForLedgerOutput{}
  1248  	req = c.newRequest(op, input, output)
  1249  	return
  1250  }
  1251  
  1252  // ListJournalS3ExportsForLedger API operation for Amazon QLDB.
  1253  //
  1254  // Returns an array of journal export job descriptions for a specified ledger.
  1255  //
  1256  // This action returns a maximum of MaxResults items, and is paginated so that
  1257  // you can retrieve all the items by calling ListJournalS3ExportsForLedger multiple
  1258  // times.
  1259  //
  1260  // This action does not return any expired export jobs. For more information,
  1261  // see Export job expiration (https://docs.aws.amazon.com/qldb/latest/developerguide/export-journal.request.html#export-journal.request.expiration)
  1262  // in the Amazon QLDB Developer Guide.
  1263  //
  1264  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1265  // with awserr.Error's Code and Message methods to get detailed information about
  1266  // the error.
  1267  //
  1268  // See the AWS API reference guide for Amazon QLDB's
  1269  // API operation ListJournalS3ExportsForLedger for usage and error information.
  1270  // See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/ListJournalS3ExportsForLedger
  1271  func (c *QLDB) ListJournalS3ExportsForLedger(input *ListJournalS3ExportsForLedgerInput) (*ListJournalS3ExportsForLedgerOutput, error) {
  1272  	req, out := c.ListJournalS3ExportsForLedgerRequest(input)
  1273  	return out, req.Send()
  1274  }
  1275  
  1276  // ListJournalS3ExportsForLedgerWithContext is the same as ListJournalS3ExportsForLedger with the addition of
  1277  // the ability to pass a context and additional request options.
  1278  //
  1279  // See ListJournalS3ExportsForLedger for details on how to use this API operation.
  1280  //
  1281  // The context must be non-nil and will be used for request cancellation. If
  1282  // the context is nil a panic will occur. In the future the SDK may create
  1283  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1284  // for more information on using Contexts.
  1285  func (c *QLDB) ListJournalS3ExportsForLedgerWithContext(ctx aws.Context, input *ListJournalS3ExportsForLedgerInput, opts ...request.Option) (*ListJournalS3ExportsForLedgerOutput, error) {
  1286  	req, out := c.ListJournalS3ExportsForLedgerRequest(input)
  1287  	req.SetContext(ctx)
  1288  	req.ApplyOptions(opts...)
  1289  	return out, req.Send()
  1290  }
  1291  
  1292  // ListJournalS3ExportsForLedgerPages iterates over the pages of a ListJournalS3ExportsForLedger operation,
  1293  // calling the "fn" function with the response data for each page. To stop
  1294  // iterating, return false from the fn function.
  1295  //
  1296  // See ListJournalS3ExportsForLedger method for more information on how to use this operation.
  1297  //
  1298  // Note: This operation can generate multiple requests to a service.
  1299  //
  1300  //    // Example iterating over at most 3 pages of a ListJournalS3ExportsForLedger operation.
  1301  //    pageNum := 0
  1302  //    err := client.ListJournalS3ExportsForLedgerPages(params,
  1303  //        func(page *qldb.ListJournalS3ExportsForLedgerOutput, lastPage bool) bool {
  1304  //            pageNum++
  1305  //            fmt.Println(page)
  1306  //            return pageNum <= 3
  1307  //        })
  1308  //
  1309  func (c *QLDB) ListJournalS3ExportsForLedgerPages(input *ListJournalS3ExportsForLedgerInput, fn func(*ListJournalS3ExportsForLedgerOutput, bool) bool) error {
  1310  	return c.ListJournalS3ExportsForLedgerPagesWithContext(aws.BackgroundContext(), input, fn)
  1311  }
  1312  
  1313  // ListJournalS3ExportsForLedgerPagesWithContext same as ListJournalS3ExportsForLedgerPages except
  1314  // it takes a Context and allows setting request options on the pages.
  1315  //
  1316  // The context must be non-nil and will be used for request cancellation. If
  1317  // the context is nil a panic will occur. In the future the SDK may create
  1318  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1319  // for more information on using Contexts.
  1320  func (c *QLDB) ListJournalS3ExportsForLedgerPagesWithContext(ctx aws.Context, input *ListJournalS3ExportsForLedgerInput, fn func(*ListJournalS3ExportsForLedgerOutput, bool) bool, opts ...request.Option) error {
  1321  	p := request.Pagination{
  1322  		NewRequest: func() (*request.Request, error) {
  1323  			var inCpy *ListJournalS3ExportsForLedgerInput
  1324  			if input != nil {
  1325  				tmp := *input
  1326  				inCpy = &tmp
  1327  			}
  1328  			req, _ := c.ListJournalS3ExportsForLedgerRequest(inCpy)
  1329  			req.SetContext(ctx)
  1330  			req.ApplyOptions(opts...)
  1331  			return req, nil
  1332  		},
  1333  	}
  1334  
  1335  	for p.Next() {
  1336  		if !fn(p.Page().(*ListJournalS3ExportsForLedgerOutput), !p.HasNextPage()) {
  1337  			break
  1338  		}
  1339  	}
  1340  
  1341  	return p.Err()
  1342  }
  1343  
  1344  const opListLedgers = "ListLedgers"
  1345  
  1346  // ListLedgersRequest generates a "aws/request.Request" representing the
  1347  // client's request for the ListLedgers operation. The "output" return
  1348  // value will be populated with the request's response once the request completes
  1349  // successfully.
  1350  //
  1351  // Use "Send" method on the returned Request to send the API call to the service.
  1352  // the "output" return value is not valid until after Send returns without error.
  1353  //
  1354  // See ListLedgers for more information on using the ListLedgers
  1355  // API call, and error handling.
  1356  //
  1357  // This method is useful when you want to inject custom logic or configuration
  1358  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1359  //
  1360  //
  1361  //    // Example sending a request using the ListLedgersRequest method.
  1362  //    req, resp := client.ListLedgersRequest(params)
  1363  //
  1364  //    err := req.Send()
  1365  //    if err == nil { // resp is now filled
  1366  //        fmt.Println(resp)
  1367  //    }
  1368  //
  1369  // See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/ListLedgers
  1370  func (c *QLDB) ListLedgersRequest(input *ListLedgersInput) (req *request.Request, output *ListLedgersOutput) {
  1371  	op := &request.Operation{
  1372  		Name:       opListLedgers,
  1373  		HTTPMethod: "GET",
  1374  		HTTPPath:   "/ledgers",
  1375  		Paginator: &request.Paginator{
  1376  			InputTokens:     []string{"NextToken"},
  1377  			OutputTokens:    []string{"NextToken"},
  1378  			LimitToken:      "MaxResults",
  1379  			TruncationToken: "",
  1380  		},
  1381  	}
  1382  
  1383  	if input == nil {
  1384  		input = &ListLedgersInput{}
  1385  	}
  1386  
  1387  	output = &ListLedgersOutput{}
  1388  	req = c.newRequest(op, input, output)
  1389  	return
  1390  }
  1391  
  1392  // ListLedgers API operation for Amazon QLDB.
  1393  //
  1394  // Returns an array of ledger summaries that are associated with the current
  1395  // account and Region.
  1396  //
  1397  // This action returns a maximum of 100 items and is paginated so that you can
  1398  // retrieve all the items by calling ListLedgers multiple times.
  1399  //
  1400  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1401  // with awserr.Error's Code and Message methods to get detailed information about
  1402  // the error.
  1403  //
  1404  // See the AWS API reference guide for Amazon QLDB's
  1405  // API operation ListLedgers for usage and error information.
  1406  // See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/ListLedgers
  1407  func (c *QLDB) ListLedgers(input *ListLedgersInput) (*ListLedgersOutput, error) {
  1408  	req, out := c.ListLedgersRequest(input)
  1409  	return out, req.Send()
  1410  }
  1411  
  1412  // ListLedgersWithContext is the same as ListLedgers with the addition of
  1413  // the ability to pass a context and additional request options.
  1414  //
  1415  // See ListLedgers for details on how to use this API operation.
  1416  //
  1417  // The context must be non-nil and will be used for request cancellation. If
  1418  // the context is nil a panic will occur. In the future the SDK may create
  1419  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1420  // for more information on using Contexts.
  1421  func (c *QLDB) ListLedgersWithContext(ctx aws.Context, input *ListLedgersInput, opts ...request.Option) (*ListLedgersOutput, error) {
  1422  	req, out := c.ListLedgersRequest(input)
  1423  	req.SetContext(ctx)
  1424  	req.ApplyOptions(opts...)
  1425  	return out, req.Send()
  1426  }
  1427  
  1428  // ListLedgersPages iterates over the pages of a ListLedgers operation,
  1429  // calling the "fn" function with the response data for each page. To stop
  1430  // iterating, return false from the fn function.
  1431  //
  1432  // See ListLedgers method for more information on how to use this operation.
  1433  //
  1434  // Note: This operation can generate multiple requests to a service.
  1435  //
  1436  //    // Example iterating over at most 3 pages of a ListLedgers operation.
  1437  //    pageNum := 0
  1438  //    err := client.ListLedgersPages(params,
  1439  //        func(page *qldb.ListLedgersOutput, lastPage bool) bool {
  1440  //            pageNum++
  1441  //            fmt.Println(page)
  1442  //            return pageNum <= 3
  1443  //        })
  1444  //
  1445  func (c *QLDB) ListLedgersPages(input *ListLedgersInput, fn func(*ListLedgersOutput, bool) bool) error {
  1446  	return c.ListLedgersPagesWithContext(aws.BackgroundContext(), input, fn)
  1447  }
  1448  
  1449  // ListLedgersPagesWithContext same as ListLedgersPages except
  1450  // it takes a Context and allows setting request options on the pages.
  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 *QLDB) ListLedgersPagesWithContext(ctx aws.Context, input *ListLedgersInput, fn func(*ListLedgersOutput, bool) bool, opts ...request.Option) error {
  1457  	p := request.Pagination{
  1458  		NewRequest: func() (*request.Request, error) {
  1459  			var inCpy *ListLedgersInput
  1460  			if input != nil {
  1461  				tmp := *input
  1462  				inCpy = &tmp
  1463  			}
  1464  			req, _ := c.ListLedgersRequest(inCpy)
  1465  			req.SetContext(ctx)
  1466  			req.ApplyOptions(opts...)
  1467  			return req, nil
  1468  		},
  1469  	}
  1470  
  1471  	for p.Next() {
  1472  		if !fn(p.Page().(*ListLedgersOutput), !p.HasNextPage()) {
  1473  			break
  1474  		}
  1475  	}
  1476  
  1477  	return p.Err()
  1478  }
  1479  
  1480  const opListTagsForResource = "ListTagsForResource"
  1481  
  1482  // ListTagsForResourceRequest generates a "aws/request.Request" representing the
  1483  // client's request for the ListTagsForResource operation. The "output" return
  1484  // value will be populated with the request's response once the request completes
  1485  // successfully.
  1486  //
  1487  // Use "Send" method on the returned Request to send the API call to the service.
  1488  // the "output" return value is not valid until after Send returns without error.
  1489  //
  1490  // See ListTagsForResource for more information on using the ListTagsForResource
  1491  // API call, and error handling.
  1492  //
  1493  // This method is useful when you want to inject custom logic or configuration
  1494  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1495  //
  1496  //
  1497  //    // Example sending a request using the ListTagsForResourceRequest method.
  1498  //    req, resp := client.ListTagsForResourceRequest(params)
  1499  //
  1500  //    err := req.Send()
  1501  //    if err == nil { // resp is now filled
  1502  //        fmt.Println(resp)
  1503  //    }
  1504  //
  1505  // See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/ListTagsForResource
  1506  func (c *QLDB) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
  1507  	op := &request.Operation{
  1508  		Name:       opListTagsForResource,
  1509  		HTTPMethod: "GET",
  1510  		HTTPPath:   "/tags/{resourceArn}",
  1511  	}
  1512  
  1513  	if input == nil {
  1514  		input = &ListTagsForResourceInput{}
  1515  	}
  1516  
  1517  	output = &ListTagsForResourceOutput{}
  1518  	req = c.newRequest(op, input, output)
  1519  	return
  1520  }
  1521  
  1522  // ListTagsForResource API operation for Amazon QLDB.
  1523  //
  1524  // Returns all tags for a specified Amazon QLDB resource.
  1525  //
  1526  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1527  // with awserr.Error's Code and Message methods to get detailed information about
  1528  // the error.
  1529  //
  1530  // See the AWS API reference guide for Amazon QLDB's
  1531  // API operation ListTagsForResource for usage and error information.
  1532  //
  1533  // Returned Error Types:
  1534  //   * InvalidParameterException
  1535  //   One or more parameters in the request aren't valid.
  1536  //
  1537  //   * ResourceNotFoundException
  1538  //   The specified resource doesn't exist.
  1539  //
  1540  // See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/ListTagsForResource
  1541  func (c *QLDB) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
  1542  	req, out := c.ListTagsForResourceRequest(input)
  1543  	return out, req.Send()
  1544  }
  1545  
  1546  // ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
  1547  // the ability to pass a context and additional request options.
  1548  //
  1549  // See ListTagsForResource for details on how to use this API operation.
  1550  //
  1551  // The context must be non-nil and will be used for request cancellation. If
  1552  // the context is nil a panic will occur. In the future the SDK may create
  1553  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1554  // for more information on using Contexts.
  1555  func (c *QLDB) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
  1556  	req, out := c.ListTagsForResourceRequest(input)
  1557  	req.SetContext(ctx)
  1558  	req.ApplyOptions(opts...)
  1559  	return out, req.Send()
  1560  }
  1561  
  1562  const opStreamJournalToKinesis = "StreamJournalToKinesis"
  1563  
  1564  // StreamJournalToKinesisRequest generates a "aws/request.Request" representing the
  1565  // client's request for the StreamJournalToKinesis operation. The "output" return
  1566  // value will be populated with the request's response once the request completes
  1567  // successfully.
  1568  //
  1569  // Use "Send" method on the returned Request to send the API call to the service.
  1570  // the "output" return value is not valid until after Send returns without error.
  1571  //
  1572  // See StreamJournalToKinesis for more information on using the StreamJournalToKinesis
  1573  // API call, and error handling.
  1574  //
  1575  // This method is useful when you want to inject custom logic or configuration
  1576  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1577  //
  1578  //
  1579  //    // Example sending a request using the StreamJournalToKinesisRequest method.
  1580  //    req, resp := client.StreamJournalToKinesisRequest(params)
  1581  //
  1582  //    err := req.Send()
  1583  //    if err == nil { // resp is now filled
  1584  //        fmt.Println(resp)
  1585  //    }
  1586  //
  1587  // See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/StreamJournalToKinesis
  1588  func (c *QLDB) StreamJournalToKinesisRequest(input *StreamJournalToKinesisInput) (req *request.Request, output *StreamJournalToKinesisOutput) {
  1589  	op := &request.Operation{
  1590  		Name:       opStreamJournalToKinesis,
  1591  		HTTPMethod: "POST",
  1592  		HTTPPath:   "/ledgers/{name}/journal-kinesis-streams",
  1593  	}
  1594  
  1595  	if input == nil {
  1596  		input = &StreamJournalToKinesisInput{}
  1597  	}
  1598  
  1599  	output = &StreamJournalToKinesisOutput{}
  1600  	req = c.newRequest(op, input, output)
  1601  	return
  1602  }
  1603  
  1604  // StreamJournalToKinesis API operation for Amazon QLDB.
  1605  //
  1606  // Creates a journal stream for a given Amazon QLDB ledger. The stream captures
  1607  // every document revision that is committed to the ledger's journal and delivers
  1608  // the data to a specified Amazon Kinesis Data Streams resource.
  1609  //
  1610  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1611  // with awserr.Error's Code and Message methods to get detailed information about
  1612  // the error.
  1613  //
  1614  // See the AWS API reference guide for Amazon QLDB's
  1615  // API operation StreamJournalToKinesis for usage and error information.
  1616  //
  1617  // Returned Error Types:
  1618  //   * InvalidParameterException
  1619  //   One or more parameters in the request aren't valid.
  1620  //
  1621  //   * ResourceNotFoundException
  1622  //   The specified resource doesn't exist.
  1623  //
  1624  //   * ResourcePreconditionNotMetException
  1625  //   The operation failed because a condition wasn't satisfied in advance.
  1626  //
  1627  // See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/StreamJournalToKinesis
  1628  func (c *QLDB) StreamJournalToKinesis(input *StreamJournalToKinesisInput) (*StreamJournalToKinesisOutput, error) {
  1629  	req, out := c.StreamJournalToKinesisRequest(input)
  1630  	return out, req.Send()
  1631  }
  1632  
  1633  // StreamJournalToKinesisWithContext is the same as StreamJournalToKinesis with the addition of
  1634  // the ability to pass a context and additional request options.
  1635  //
  1636  // See StreamJournalToKinesis for details on how to use this API operation.
  1637  //
  1638  // The context must be non-nil and will be used for request cancellation. If
  1639  // the context is nil a panic will occur. In the future the SDK may create
  1640  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1641  // for more information on using Contexts.
  1642  func (c *QLDB) StreamJournalToKinesisWithContext(ctx aws.Context, input *StreamJournalToKinesisInput, opts ...request.Option) (*StreamJournalToKinesisOutput, error) {
  1643  	req, out := c.StreamJournalToKinesisRequest(input)
  1644  	req.SetContext(ctx)
  1645  	req.ApplyOptions(opts...)
  1646  	return out, req.Send()
  1647  }
  1648  
  1649  const opTagResource = "TagResource"
  1650  
  1651  // TagResourceRequest generates a "aws/request.Request" representing the
  1652  // client's request for the TagResource operation. The "output" return
  1653  // value will be populated with the request's response once the request completes
  1654  // successfully.
  1655  //
  1656  // Use "Send" method on the returned Request to send the API call to the service.
  1657  // the "output" return value is not valid until after Send returns without error.
  1658  //
  1659  // See TagResource for more information on using the TagResource
  1660  // API call, and error handling.
  1661  //
  1662  // This method is useful when you want to inject custom logic or configuration
  1663  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1664  //
  1665  //
  1666  //    // Example sending a request using the TagResourceRequest method.
  1667  //    req, resp := client.TagResourceRequest(params)
  1668  //
  1669  //    err := req.Send()
  1670  //    if err == nil { // resp is now filled
  1671  //        fmt.Println(resp)
  1672  //    }
  1673  //
  1674  // See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/TagResource
  1675  func (c *QLDB) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
  1676  	op := &request.Operation{
  1677  		Name:       opTagResource,
  1678  		HTTPMethod: "POST",
  1679  		HTTPPath:   "/tags/{resourceArn}",
  1680  	}
  1681  
  1682  	if input == nil {
  1683  		input = &TagResourceInput{}
  1684  	}
  1685  
  1686  	output = &TagResourceOutput{}
  1687  	req = c.newRequest(op, input, output)
  1688  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1689  	return
  1690  }
  1691  
  1692  // TagResource API operation for Amazon QLDB.
  1693  //
  1694  // Adds one or more tags to a specified Amazon QLDB resource.
  1695  //
  1696  // A resource can have up to 50 tags. If you try to create more than 50 tags
  1697  // for a resource, your request fails and returns an error.
  1698  //
  1699  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1700  // with awserr.Error's Code and Message methods to get detailed information about
  1701  // the error.
  1702  //
  1703  // See the AWS API reference guide for Amazon QLDB's
  1704  // API operation TagResource for usage and error information.
  1705  //
  1706  // Returned Error Types:
  1707  //   * InvalidParameterException
  1708  //   One or more parameters in the request aren't valid.
  1709  //
  1710  //   * ResourceNotFoundException
  1711  //   The specified resource doesn't exist.
  1712  //
  1713  // See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/TagResource
  1714  func (c *QLDB) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
  1715  	req, out := c.TagResourceRequest(input)
  1716  	return out, req.Send()
  1717  }
  1718  
  1719  // TagResourceWithContext is the same as TagResource with the addition of
  1720  // the ability to pass a context and additional request options.
  1721  //
  1722  // See TagResource for details on how to use this API operation.
  1723  //
  1724  // The context must be non-nil and will be used for request cancellation. If
  1725  // the context is nil a panic will occur. In the future the SDK may create
  1726  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1727  // for more information on using Contexts.
  1728  func (c *QLDB) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
  1729  	req, out := c.TagResourceRequest(input)
  1730  	req.SetContext(ctx)
  1731  	req.ApplyOptions(opts...)
  1732  	return out, req.Send()
  1733  }
  1734  
  1735  const opUntagResource = "UntagResource"
  1736  
  1737  // UntagResourceRequest generates a "aws/request.Request" representing the
  1738  // client's request for the UntagResource operation. The "output" return
  1739  // value will be populated with the request's response once the request completes
  1740  // successfully.
  1741  //
  1742  // Use "Send" method on the returned Request to send the API call to the service.
  1743  // the "output" return value is not valid until after Send returns without error.
  1744  //
  1745  // See UntagResource for more information on using the UntagResource
  1746  // API call, and error handling.
  1747  //
  1748  // This method is useful when you want to inject custom logic or configuration
  1749  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1750  //
  1751  //
  1752  //    // Example sending a request using the UntagResourceRequest method.
  1753  //    req, resp := client.UntagResourceRequest(params)
  1754  //
  1755  //    err := req.Send()
  1756  //    if err == nil { // resp is now filled
  1757  //        fmt.Println(resp)
  1758  //    }
  1759  //
  1760  // See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/UntagResource
  1761  func (c *QLDB) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
  1762  	op := &request.Operation{
  1763  		Name:       opUntagResource,
  1764  		HTTPMethod: "DELETE",
  1765  		HTTPPath:   "/tags/{resourceArn}",
  1766  	}
  1767  
  1768  	if input == nil {
  1769  		input = &UntagResourceInput{}
  1770  	}
  1771  
  1772  	output = &UntagResourceOutput{}
  1773  	req = c.newRequest(op, input, output)
  1774  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1775  	return
  1776  }
  1777  
  1778  // UntagResource API operation for Amazon QLDB.
  1779  //
  1780  // Removes one or more tags from a specified Amazon QLDB resource. You can specify
  1781  // up to 50 tag keys to remove.
  1782  //
  1783  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1784  // with awserr.Error's Code and Message methods to get detailed information about
  1785  // the error.
  1786  //
  1787  // See the AWS API reference guide for Amazon QLDB's
  1788  // API operation UntagResource for usage and error information.
  1789  //
  1790  // Returned Error Types:
  1791  //   * InvalidParameterException
  1792  //   One or more parameters in the request aren't valid.
  1793  //
  1794  //   * ResourceNotFoundException
  1795  //   The specified resource doesn't exist.
  1796  //
  1797  // See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/UntagResource
  1798  func (c *QLDB) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
  1799  	req, out := c.UntagResourceRequest(input)
  1800  	return out, req.Send()
  1801  }
  1802  
  1803  // UntagResourceWithContext is the same as UntagResource with the addition of
  1804  // the ability to pass a context and additional request options.
  1805  //
  1806  // See UntagResource for details on how to use this API operation.
  1807  //
  1808  // The context must be non-nil and will be used for request cancellation. If
  1809  // the context is nil a panic will occur. In the future the SDK may create
  1810  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1811  // for more information on using Contexts.
  1812  func (c *QLDB) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
  1813  	req, out := c.UntagResourceRequest(input)
  1814  	req.SetContext(ctx)
  1815  	req.ApplyOptions(opts...)
  1816  	return out, req.Send()
  1817  }
  1818  
  1819  const opUpdateLedger = "UpdateLedger"
  1820  
  1821  // UpdateLedgerRequest generates a "aws/request.Request" representing the
  1822  // client's request for the UpdateLedger operation. The "output" return
  1823  // value will be populated with the request's response once the request completes
  1824  // successfully.
  1825  //
  1826  // Use "Send" method on the returned Request to send the API call to the service.
  1827  // the "output" return value is not valid until after Send returns without error.
  1828  //
  1829  // See UpdateLedger for more information on using the UpdateLedger
  1830  // API call, and error handling.
  1831  //
  1832  // This method is useful when you want to inject custom logic or configuration
  1833  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1834  //
  1835  //
  1836  //    // Example sending a request using the UpdateLedgerRequest method.
  1837  //    req, resp := client.UpdateLedgerRequest(params)
  1838  //
  1839  //    err := req.Send()
  1840  //    if err == nil { // resp is now filled
  1841  //        fmt.Println(resp)
  1842  //    }
  1843  //
  1844  // See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/UpdateLedger
  1845  func (c *QLDB) UpdateLedgerRequest(input *UpdateLedgerInput) (req *request.Request, output *UpdateLedgerOutput) {
  1846  	op := &request.Operation{
  1847  		Name:       opUpdateLedger,
  1848  		HTTPMethod: "PATCH",
  1849  		HTTPPath:   "/ledgers/{name}",
  1850  	}
  1851  
  1852  	if input == nil {
  1853  		input = &UpdateLedgerInput{}
  1854  	}
  1855  
  1856  	output = &UpdateLedgerOutput{}
  1857  	req = c.newRequest(op, input, output)
  1858  	return
  1859  }
  1860  
  1861  // UpdateLedger API operation for Amazon QLDB.
  1862  //
  1863  // Updates properties on a ledger.
  1864  //
  1865  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1866  // with awserr.Error's Code and Message methods to get detailed information about
  1867  // the error.
  1868  //
  1869  // See the AWS API reference guide for Amazon QLDB's
  1870  // API operation UpdateLedger for usage and error information.
  1871  //
  1872  // Returned Error Types:
  1873  //   * InvalidParameterException
  1874  //   One or more parameters in the request aren't valid.
  1875  //
  1876  //   * ResourceNotFoundException
  1877  //   The specified resource doesn't exist.
  1878  //
  1879  // See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/UpdateLedger
  1880  func (c *QLDB) UpdateLedger(input *UpdateLedgerInput) (*UpdateLedgerOutput, error) {
  1881  	req, out := c.UpdateLedgerRequest(input)
  1882  	return out, req.Send()
  1883  }
  1884  
  1885  // UpdateLedgerWithContext is the same as UpdateLedger with the addition of
  1886  // the ability to pass a context and additional request options.
  1887  //
  1888  // See UpdateLedger for details on how to use this API operation.
  1889  //
  1890  // The context must be non-nil and will be used for request cancellation. If
  1891  // the context is nil a panic will occur. In the future the SDK may create
  1892  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1893  // for more information on using Contexts.
  1894  func (c *QLDB) UpdateLedgerWithContext(ctx aws.Context, input *UpdateLedgerInput, opts ...request.Option) (*UpdateLedgerOutput, error) {
  1895  	req, out := c.UpdateLedgerRequest(input)
  1896  	req.SetContext(ctx)
  1897  	req.ApplyOptions(opts...)
  1898  	return out, req.Send()
  1899  }
  1900  
  1901  const opUpdateLedgerPermissionsMode = "UpdateLedgerPermissionsMode"
  1902  
  1903  // UpdateLedgerPermissionsModeRequest generates a "aws/request.Request" representing the
  1904  // client's request for the UpdateLedgerPermissionsMode operation. The "output" return
  1905  // value will be populated with the request's response once the request completes
  1906  // successfully.
  1907  //
  1908  // Use "Send" method on the returned Request to send the API call to the service.
  1909  // the "output" return value is not valid until after Send returns without error.
  1910  //
  1911  // See UpdateLedgerPermissionsMode for more information on using the UpdateLedgerPermissionsMode
  1912  // API call, and error handling.
  1913  //
  1914  // This method is useful when you want to inject custom logic or configuration
  1915  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1916  //
  1917  //
  1918  //    // Example sending a request using the UpdateLedgerPermissionsModeRequest method.
  1919  //    req, resp := client.UpdateLedgerPermissionsModeRequest(params)
  1920  //
  1921  //    err := req.Send()
  1922  //    if err == nil { // resp is now filled
  1923  //        fmt.Println(resp)
  1924  //    }
  1925  //
  1926  // See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/UpdateLedgerPermissionsMode
  1927  func (c *QLDB) UpdateLedgerPermissionsModeRequest(input *UpdateLedgerPermissionsModeInput) (req *request.Request, output *UpdateLedgerPermissionsModeOutput) {
  1928  	op := &request.Operation{
  1929  		Name:       opUpdateLedgerPermissionsMode,
  1930  		HTTPMethod: "PATCH",
  1931  		HTTPPath:   "/ledgers/{name}/permissions-mode",
  1932  	}
  1933  
  1934  	if input == nil {
  1935  		input = &UpdateLedgerPermissionsModeInput{}
  1936  	}
  1937  
  1938  	output = &UpdateLedgerPermissionsModeOutput{}
  1939  	req = c.newRequest(op, input, output)
  1940  	return
  1941  }
  1942  
  1943  // UpdateLedgerPermissionsMode API operation for Amazon QLDB.
  1944  //
  1945  // Updates the permissions mode of a ledger.
  1946  //
  1947  // Before you switch to the STANDARD permissions mode, you must first create
  1948  // all required IAM policies and table tags to avoid disruption to your users.
  1949  // To learn more, see Migrating to the standard permissions mode (https://docs.aws.amazon.com/qldb/latest/developerguide/ledger-management.basics.html#ledger-mgmt.basics.update-permissions.migrating)
  1950  // in the Amazon QLDB Developer Guide.
  1951  //
  1952  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1953  // with awserr.Error's Code and Message methods to get detailed information about
  1954  // the error.
  1955  //
  1956  // See the AWS API reference guide for Amazon QLDB's
  1957  // API operation UpdateLedgerPermissionsMode for usage and error information.
  1958  //
  1959  // Returned Error Types:
  1960  //   * InvalidParameterException
  1961  //   One or more parameters in the request aren't valid.
  1962  //
  1963  //   * ResourceNotFoundException
  1964  //   The specified resource doesn't exist.
  1965  //
  1966  // See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/UpdateLedgerPermissionsMode
  1967  func (c *QLDB) UpdateLedgerPermissionsMode(input *UpdateLedgerPermissionsModeInput) (*UpdateLedgerPermissionsModeOutput, error) {
  1968  	req, out := c.UpdateLedgerPermissionsModeRequest(input)
  1969  	return out, req.Send()
  1970  }
  1971  
  1972  // UpdateLedgerPermissionsModeWithContext is the same as UpdateLedgerPermissionsMode with the addition of
  1973  // the ability to pass a context and additional request options.
  1974  //
  1975  // See UpdateLedgerPermissionsMode for details on how to use this API operation.
  1976  //
  1977  // The context must be non-nil and will be used for request cancellation. If
  1978  // the context is nil a panic will occur. In the future the SDK may create
  1979  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1980  // for more information on using Contexts.
  1981  func (c *QLDB) UpdateLedgerPermissionsModeWithContext(ctx aws.Context, input *UpdateLedgerPermissionsModeInput, opts ...request.Option) (*UpdateLedgerPermissionsModeOutput, error) {
  1982  	req, out := c.UpdateLedgerPermissionsModeRequest(input)
  1983  	req.SetContext(ctx)
  1984  	req.ApplyOptions(opts...)
  1985  	return out, req.Send()
  1986  }
  1987  
  1988  type CancelJournalKinesisStreamInput struct {
  1989  	_ struct{} `type:"structure" nopayload:"true"`
  1990  
  1991  	// The name of the ledger.
  1992  	//
  1993  	// LedgerName is a required field
  1994  	LedgerName *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
  1995  
  1996  	// The UUID (represented in Base62-encoded text) of the QLDB journal stream
  1997  	// to be canceled.
  1998  	//
  1999  	// StreamId is a required field
  2000  	StreamId *string `location:"uri" locationName:"streamId" min:"22" type:"string" required:"true"`
  2001  }
  2002  
  2003  // String returns the string representation.
  2004  //
  2005  // API parameter values that are decorated as "sensitive" in the API will not
  2006  // be included in the string output. The member name will be present, but the
  2007  // value will be replaced with "sensitive".
  2008  func (s CancelJournalKinesisStreamInput) String() string {
  2009  	return awsutil.Prettify(s)
  2010  }
  2011  
  2012  // GoString returns the string representation.
  2013  //
  2014  // API parameter values that are decorated as "sensitive" in the API will not
  2015  // be included in the string output. The member name will be present, but the
  2016  // value will be replaced with "sensitive".
  2017  func (s CancelJournalKinesisStreamInput) GoString() string {
  2018  	return s.String()
  2019  }
  2020  
  2021  // Validate inspects the fields of the type to determine if they are valid.
  2022  func (s *CancelJournalKinesisStreamInput) Validate() error {
  2023  	invalidParams := request.ErrInvalidParams{Context: "CancelJournalKinesisStreamInput"}
  2024  	if s.LedgerName == nil {
  2025  		invalidParams.Add(request.NewErrParamRequired("LedgerName"))
  2026  	}
  2027  	if s.LedgerName != nil && len(*s.LedgerName) < 1 {
  2028  		invalidParams.Add(request.NewErrParamMinLen("LedgerName", 1))
  2029  	}
  2030  	if s.StreamId == nil {
  2031  		invalidParams.Add(request.NewErrParamRequired("StreamId"))
  2032  	}
  2033  	if s.StreamId != nil && len(*s.StreamId) < 22 {
  2034  		invalidParams.Add(request.NewErrParamMinLen("StreamId", 22))
  2035  	}
  2036  
  2037  	if invalidParams.Len() > 0 {
  2038  		return invalidParams
  2039  	}
  2040  	return nil
  2041  }
  2042  
  2043  // SetLedgerName sets the LedgerName field's value.
  2044  func (s *CancelJournalKinesisStreamInput) SetLedgerName(v string) *CancelJournalKinesisStreamInput {
  2045  	s.LedgerName = &v
  2046  	return s
  2047  }
  2048  
  2049  // SetStreamId sets the StreamId field's value.
  2050  func (s *CancelJournalKinesisStreamInput) SetStreamId(v string) *CancelJournalKinesisStreamInput {
  2051  	s.StreamId = &v
  2052  	return s
  2053  }
  2054  
  2055  type CancelJournalKinesisStreamOutput struct {
  2056  	_ struct{} `type:"structure"`
  2057  
  2058  	// The UUID (Base62-encoded text) of the canceled QLDB journal stream.
  2059  	StreamId *string `min:"22" type:"string"`
  2060  }
  2061  
  2062  // String returns the string representation.
  2063  //
  2064  // API parameter values that are decorated as "sensitive" in the API will not
  2065  // be included in the string output. The member name will be present, but the
  2066  // value will be replaced with "sensitive".
  2067  func (s CancelJournalKinesisStreamOutput) String() string {
  2068  	return awsutil.Prettify(s)
  2069  }
  2070  
  2071  // GoString returns the string representation.
  2072  //
  2073  // API parameter values that are decorated as "sensitive" in the API will not
  2074  // be included in the string output. The member name will be present, but the
  2075  // value will be replaced with "sensitive".
  2076  func (s CancelJournalKinesisStreamOutput) GoString() string {
  2077  	return s.String()
  2078  }
  2079  
  2080  // SetStreamId sets the StreamId field's value.
  2081  func (s *CancelJournalKinesisStreamOutput) SetStreamId(v string) *CancelJournalKinesisStreamOutput {
  2082  	s.StreamId = &v
  2083  	return s
  2084  }
  2085  
  2086  type CreateLedgerInput struct {
  2087  	_ struct{} `type:"structure"`
  2088  
  2089  	// The flag that prevents a ledger from being deleted by any user. If not provided
  2090  	// on ledger creation, this feature is enabled (true) by default.
  2091  	//
  2092  	// If deletion protection is enabled, you must first disable it before you can
  2093  	// delete the ledger. You can disable it by calling the UpdateLedger operation
  2094  	// to set the flag to false.
  2095  	DeletionProtection *bool `type:"boolean"`
  2096  
  2097  	// The key in Key Management Service (KMS) to use for encryption of data at
  2098  	// rest in the ledger. For more information, see Encryption at rest (https://docs.aws.amazon.com/qldb/latest/developerguide/encryption-at-rest.html)
  2099  	// in the Amazon QLDB Developer Guide.
  2100  	//
  2101  	// Use one of the following options to specify this parameter:
  2102  	//
  2103  	//    * AWS_OWNED_KMS_KEY: Use an KMS key that is owned and managed by Amazon
  2104  	//    Web Services on your behalf.
  2105  	//
  2106  	//    * Undefined: By default, use an Amazon Web Services owned KMS key.
  2107  	//
  2108  	//    * A valid symmetric customer managed KMS key: Use the specified KMS key
  2109  	//    in your account that you create, own, and manage. Amazon QLDB does not
  2110  	//    support asymmetric keys. For more information, see Using symmetric and
  2111  	//    asymmetric keys (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html)
  2112  	//    in the Key Management Service Developer Guide.
  2113  	//
  2114  	// To specify a customer managed KMS key, you can use its key ID, Amazon Resource
  2115  	// Name (ARN), alias name, or alias ARN. When using an alias name, prefix it
  2116  	// with "alias/". To specify a key in a different account, you must use the
  2117  	// key ARN or alias ARN.
  2118  	//
  2119  	// For example:
  2120  	//
  2121  	//    * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
  2122  	//
  2123  	//    * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
  2124  	//
  2125  	//    * Alias name: alias/ExampleAlias
  2126  	//
  2127  	//    * Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias
  2128  	//
  2129  	// For more information, see Key identifiers (KeyId) (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id)
  2130  	// in the Key Management Service Developer Guide.
  2131  	KmsKey *string `type:"string"`
  2132  
  2133  	// The name of the ledger that you want to create. The name must be unique among
  2134  	// all of the ledgers in your account in the current Region.
  2135  	//
  2136  	// Naming constraints for ledger names are defined in Quotas in Amazon QLDB
  2137  	// (https://docs.aws.amazon.com/qldb/latest/developerguide/limits.html#limits.naming)
  2138  	// in the Amazon QLDB Developer Guide.
  2139  	//
  2140  	// Name is a required field
  2141  	Name *string `min:"1" type:"string" required:"true"`
  2142  
  2143  	// The permissions mode to assign to the ledger that you want to create. This
  2144  	// parameter can have one of the following values:
  2145  	//
  2146  	//    * ALLOW_ALL: A legacy permissions mode that enables access control with
  2147  	//    API-level granularity for ledgers. This mode allows users who have the
  2148  	//    SendCommand API permission for this ledger to run all PartiQL commands
  2149  	//    (hence, ALLOW_ALL) on any tables in the specified ledger. This mode disregards
  2150  	//    any table-level or command-level IAM permissions policies that you create
  2151  	//    for the ledger.
  2152  	//
  2153  	//    * STANDARD: (Recommended) A permissions mode that enables access control
  2154  	//    with finer granularity for ledgers, tables, and PartiQL commands. By default,
  2155  	//    this mode denies all user requests to run any PartiQL commands on any
  2156  	//    tables in this ledger. To allow PartiQL commands to run, you must create
  2157  	//    IAM permissions policies for specific table resources and PartiQL actions,
  2158  	//    in addition to the SendCommand API permission for the ledger. For information,
  2159  	//    see Getting started with the standard permissions mode (https://docs.aws.amazon.com/qldb/latest/developerguide/getting-started-standard-mode.html)
  2160  	//    in the Amazon QLDB Developer Guide.
  2161  	//
  2162  	// We strongly recommend using the STANDARD permissions mode to maximize the
  2163  	// security of your ledger data.
  2164  	//
  2165  	// PermissionsMode is a required field
  2166  	PermissionsMode *string `type:"string" required:"true" enum:"PermissionsMode"`
  2167  
  2168  	// The key-value pairs to add as tags to the ledger that you want to create.
  2169  	// Tag keys are case sensitive. Tag values are case sensitive and can be null.
  2170  	Tags map[string]*string `type:"map"`
  2171  }
  2172  
  2173  // String returns the string representation.
  2174  //
  2175  // API parameter values that are decorated as "sensitive" in the API will not
  2176  // be included in the string output. The member name will be present, but the
  2177  // value will be replaced with "sensitive".
  2178  func (s CreateLedgerInput) String() string {
  2179  	return awsutil.Prettify(s)
  2180  }
  2181  
  2182  // GoString returns the string representation.
  2183  //
  2184  // API parameter values that are decorated as "sensitive" in the API will not
  2185  // be included in the string output. The member name will be present, but the
  2186  // value will be replaced with "sensitive".
  2187  func (s CreateLedgerInput) GoString() string {
  2188  	return s.String()
  2189  }
  2190  
  2191  // Validate inspects the fields of the type to determine if they are valid.
  2192  func (s *CreateLedgerInput) Validate() error {
  2193  	invalidParams := request.ErrInvalidParams{Context: "CreateLedgerInput"}
  2194  	if s.Name == nil {
  2195  		invalidParams.Add(request.NewErrParamRequired("Name"))
  2196  	}
  2197  	if s.Name != nil && len(*s.Name) < 1 {
  2198  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  2199  	}
  2200  	if s.PermissionsMode == nil {
  2201  		invalidParams.Add(request.NewErrParamRequired("PermissionsMode"))
  2202  	}
  2203  
  2204  	if invalidParams.Len() > 0 {
  2205  		return invalidParams
  2206  	}
  2207  	return nil
  2208  }
  2209  
  2210  // SetDeletionProtection sets the DeletionProtection field's value.
  2211  func (s *CreateLedgerInput) SetDeletionProtection(v bool) *CreateLedgerInput {
  2212  	s.DeletionProtection = &v
  2213  	return s
  2214  }
  2215  
  2216  // SetKmsKey sets the KmsKey field's value.
  2217  func (s *CreateLedgerInput) SetKmsKey(v string) *CreateLedgerInput {
  2218  	s.KmsKey = &v
  2219  	return s
  2220  }
  2221  
  2222  // SetName sets the Name field's value.
  2223  func (s *CreateLedgerInput) SetName(v string) *CreateLedgerInput {
  2224  	s.Name = &v
  2225  	return s
  2226  }
  2227  
  2228  // SetPermissionsMode sets the PermissionsMode field's value.
  2229  func (s *CreateLedgerInput) SetPermissionsMode(v string) *CreateLedgerInput {
  2230  	s.PermissionsMode = &v
  2231  	return s
  2232  }
  2233  
  2234  // SetTags sets the Tags field's value.
  2235  func (s *CreateLedgerInput) SetTags(v map[string]*string) *CreateLedgerInput {
  2236  	s.Tags = v
  2237  	return s
  2238  }
  2239  
  2240  type CreateLedgerOutput struct {
  2241  	_ struct{} `type:"structure"`
  2242  
  2243  	// The Amazon Resource Name (ARN) for the ledger.
  2244  	Arn *string `min:"20" type:"string"`
  2245  
  2246  	// The date and time, in epoch time format, when the ledger was created. (Epoch
  2247  	// time format is the number of seconds elapsed since 12:00:00 AM January 1,
  2248  	// 1970 UTC.)
  2249  	CreationDateTime *time.Time `type:"timestamp"`
  2250  
  2251  	// The flag that prevents a ledger from being deleted by any user. If not provided
  2252  	// on ledger creation, this feature is enabled (true) by default.
  2253  	//
  2254  	// If deletion protection is enabled, you must first disable it before you can
  2255  	// delete the ledger. You can disable it by calling the UpdateLedger operation
  2256  	// to set the flag to false.
  2257  	DeletionProtection *bool `type:"boolean"`
  2258  
  2259  	// The ARN of the customer managed KMS key that the ledger uses for encryption
  2260  	// at rest. If this parameter is undefined, the ledger uses an Amazon Web Services
  2261  	// owned KMS key for encryption.
  2262  	KmsKeyArn *string `min:"20" type:"string"`
  2263  
  2264  	// The name of the ledger.
  2265  	Name *string `min:"1" type:"string"`
  2266  
  2267  	// The permissions mode of the ledger that you created.
  2268  	PermissionsMode *string `type:"string" enum:"PermissionsMode"`
  2269  
  2270  	// The current status of the ledger.
  2271  	State *string `type:"string" enum:"LedgerState"`
  2272  }
  2273  
  2274  // String returns the string representation.
  2275  //
  2276  // API parameter values that are decorated as "sensitive" in the API will not
  2277  // be included in the string output. The member name will be present, but the
  2278  // value will be replaced with "sensitive".
  2279  func (s CreateLedgerOutput) String() string {
  2280  	return awsutil.Prettify(s)
  2281  }
  2282  
  2283  // GoString returns the string representation.
  2284  //
  2285  // API parameter values that are decorated as "sensitive" in the API will not
  2286  // be included in the string output. The member name will be present, but the
  2287  // value will be replaced with "sensitive".
  2288  func (s CreateLedgerOutput) GoString() string {
  2289  	return s.String()
  2290  }
  2291  
  2292  // SetArn sets the Arn field's value.
  2293  func (s *CreateLedgerOutput) SetArn(v string) *CreateLedgerOutput {
  2294  	s.Arn = &v
  2295  	return s
  2296  }
  2297  
  2298  // SetCreationDateTime sets the CreationDateTime field's value.
  2299  func (s *CreateLedgerOutput) SetCreationDateTime(v time.Time) *CreateLedgerOutput {
  2300  	s.CreationDateTime = &v
  2301  	return s
  2302  }
  2303  
  2304  // SetDeletionProtection sets the DeletionProtection field's value.
  2305  func (s *CreateLedgerOutput) SetDeletionProtection(v bool) *CreateLedgerOutput {
  2306  	s.DeletionProtection = &v
  2307  	return s
  2308  }
  2309  
  2310  // SetKmsKeyArn sets the KmsKeyArn field's value.
  2311  func (s *CreateLedgerOutput) SetKmsKeyArn(v string) *CreateLedgerOutput {
  2312  	s.KmsKeyArn = &v
  2313  	return s
  2314  }
  2315  
  2316  // SetName sets the Name field's value.
  2317  func (s *CreateLedgerOutput) SetName(v string) *CreateLedgerOutput {
  2318  	s.Name = &v
  2319  	return s
  2320  }
  2321  
  2322  // SetPermissionsMode sets the PermissionsMode field's value.
  2323  func (s *CreateLedgerOutput) SetPermissionsMode(v string) *CreateLedgerOutput {
  2324  	s.PermissionsMode = &v
  2325  	return s
  2326  }
  2327  
  2328  // SetState sets the State field's value.
  2329  func (s *CreateLedgerOutput) SetState(v string) *CreateLedgerOutput {
  2330  	s.State = &v
  2331  	return s
  2332  }
  2333  
  2334  type DeleteLedgerInput struct {
  2335  	_ struct{} `type:"structure" nopayload:"true"`
  2336  
  2337  	// The name of the ledger that you want to delete.
  2338  	//
  2339  	// Name is a required field
  2340  	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
  2341  }
  2342  
  2343  // String returns the string representation.
  2344  //
  2345  // API parameter values that are decorated as "sensitive" in the API will not
  2346  // be included in the string output. The member name will be present, but the
  2347  // value will be replaced with "sensitive".
  2348  func (s DeleteLedgerInput) String() string {
  2349  	return awsutil.Prettify(s)
  2350  }
  2351  
  2352  // GoString returns the string representation.
  2353  //
  2354  // API parameter values that are decorated as "sensitive" in the API will not
  2355  // be included in the string output. The member name will be present, but the
  2356  // value will be replaced with "sensitive".
  2357  func (s DeleteLedgerInput) GoString() string {
  2358  	return s.String()
  2359  }
  2360  
  2361  // Validate inspects the fields of the type to determine if they are valid.
  2362  func (s *DeleteLedgerInput) Validate() error {
  2363  	invalidParams := request.ErrInvalidParams{Context: "DeleteLedgerInput"}
  2364  	if s.Name == nil {
  2365  		invalidParams.Add(request.NewErrParamRequired("Name"))
  2366  	}
  2367  	if s.Name != nil && len(*s.Name) < 1 {
  2368  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  2369  	}
  2370  
  2371  	if invalidParams.Len() > 0 {
  2372  		return invalidParams
  2373  	}
  2374  	return nil
  2375  }
  2376  
  2377  // SetName sets the Name field's value.
  2378  func (s *DeleteLedgerInput) SetName(v string) *DeleteLedgerInput {
  2379  	s.Name = &v
  2380  	return s
  2381  }
  2382  
  2383  type DeleteLedgerOutput struct {
  2384  	_ struct{} `type:"structure" nopayload:"true"`
  2385  }
  2386  
  2387  // String returns the string representation.
  2388  //
  2389  // API parameter values that are decorated as "sensitive" in the API will not
  2390  // be included in the string output. The member name will be present, but the
  2391  // value will be replaced with "sensitive".
  2392  func (s DeleteLedgerOutput) String() string {
  2393  	return awsutil.Prettify(s)
  2394  }
  2395  
  2396  // GoString returns the string representation.
  2397  //
  2398  // API parameter values that are decorated as "sensitive" in the API will not
  2399  // be included in the string output. The member name will be present, but the
  2400  // value will be replaced with "sensitive".
  2401  func (s DeleteLedgerOutput) GoString() string {
  2402  	return s.String()
  2403  }
  2404  
  2405  type DescribeJournalKinesisStreamInput struct {
  2406  	_ struct{} `type:"structure" nopayload:"true"`
  2407  
  2408  	// The name of the ledger.
  2409  	//
  2410  	// LedgerName is a required field
  2411  	LedgerName *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
  2412  
  2413  	// The UUID (represented in Base62-encoded text) of the QLDB journal stream
  2414  	// to describe.
  2415  	//
  2416  	// StreamId is a required field
  2417  	StreamId *string `location:"uri" locationName:"streamId" min:"22" type:"string" required:"true"`
  2418  }
  2419  
  2420  // String returns the string representation.
  2421  //
  2422  // API parameter values that are decorated as "sensitive" in the API will not
  2423  // be included in the string output. The member name will be present, but the
  2424  // value will be replaced with "sensitive".
  2425  func (s DescribeJournalKinesisStreamInput) String() string {
  2426  	return awsutil.Prettify(s)
  2427  }
  2428  
  2429  // GoString returns the string representation.
  2430  //
  2431  // API parameter values that are decorated as "sensitive" in the API will not
  2432  // be included in the string output. The member name will be present, but the
  2433  // value will be replaced with "sensitive".
  2434  func (s DescribeJournalKinesisStreamInput) GoString() string {
  2435  	return s.String()
  2436  }
  2437  
  2438  // Validate inspects the fields of the type to determine if they are valid.
  2439  func (s *DescribeJournalKinesisStreamInput) Validate() error {
  2440  	invalidParams := request.ErrInvalidParams{Context: "DescribeJournalKinesisStreamInput"}
  2441  	if s.LedgerName == nil {
  2442  		invalidParams.Add(request.NewErrParamRequired("LedgerName"))
  2443  	}
  2444  	if s.LedgerName != nil && len(*s.LedgerName) < 1 {
  2445  		invalidParams.Add(request.NewErrParamMinLen("LedgerName", 1))
  2446  	}
  2447  	if s.StreamId == nil {
  2448  		invalidParams.Add(request.NewErrParamRequired("StreamId"))
  2449  	}
  2450  	if s.StreamId != nil && len(*s.StreamId) < 22 {
  2451  		invalidParams.Add(request.NewErrParamMinLen("StreamId", 22))
  2452  	}
  2453  
  2454  	if invalidParams.Len() > 0 {
  2455  		return invalidParams
  2456  	}
  2457  	return nil
  2458  }
  2459  
  2460  // SetLedgerName sets the LedgerName field's value.
  2461  func (s *DescribeJournalKinesisStreamInput) SetLedgerName(v string) *DescribeJournalKinesisStreamInput {
  2462  	s.LedgerName = &v
  2463  	return s
  2464  }
  2465  
  2466  // SetStreamId sets the StreamId field's value.
  2467  func (s *DescribeJournalKinesisStreamInput) SetStreamId(v string) *DescribeJournalKinesisStreamInput {
  2468  	s.StreamId = &v
  2469  	return s
  2470  }
  2471  
  2472  type DescribeJournalKinesisStreamOutput struct {
  2473  	_ struct{} `type:"structure"`
  2474  
  2475  	// Information about the QLDB journal stream returned by a DescribeJournalS3Export
  2476  	// request.
  2477  	Stream *JournalKinesisStreamDescription `type:"structure"`
  2478  }
  2479  
  2480  // String returns the string representation.
  2481  //
  2482  // API parameter values that are decorated as "sensitive" in the API will not
  2483  // be included in the string output. The member name will be present, but the
  2484  // value will be replaced with "sensitive".
  2485  func (s DescribeJournalKinesisStreamOutput) String() string {
  2486  	return awsutil.Prettify(s)
  2487  }
  2488  
  2489  // GoString returns the string representation.
  2490  //
  2491  // API parameter values that are decorated as "sensitive" in the API will not
  2492  // be included in the string output. The member name will be present, but the
  2493  // value will be replaced with "sensitive".
  2494  func (s DescribeJournalKinesisStreamOutput) GoString() string {
  2495  	return s.String()
  2496  }
  2497  
  2498  // SetStream sets the Stream field's value.
  2499  func (s *DescribeJournalKinesisStreamOutput) SetStream(v *JournalKinesisStreamDescription) *DescribeJournalKinesisStreamOutput {
  2500  	s.Stream = v
  2501  	return s
  2502  }
  2503  
  2504  type DescribeJournalS3ExportInput struct {
  2505  	_ struct{} `type:"structure" nopayload:"true"`
  2506  
  2507  	// The UUID (represented in Base62-encoded text) of the journal export job to
  2508  	// describe.
  2509  	//
  2510  	// ExportId is a required field
  2511  	ExportId *string `location:"uri" locationName:"exportId" min:"22" type:"string" required:"true"`
  2512  
  2513  	// The name of the ledger.
  2514  	//
  2515  	// Name is a required field
  2516  	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
  2517  }
  2518  
  2519  // String returns the string representation.
  2520  //
  2521  // API parameter values that are decorated as "sensitive" in the API will not
  2522  // be included in the string output. The member name will be present, but the
  2523  // value will be replaced with "sensitive".
  2524  func (s DescribeJournalS3ExportInput) String() string {
  2525  	return awsutil.Prettify(s)
  2526  }
  2527  
  2528  // GoString returns the string representation.
  2529  //
  2530  // API parameter values that are decorated as "sensitive" in the API will not
  2531  // be included in the string output. The member name will be present, but the
  2532  // value will be replaced with "sensitive".
  2533  func (s DescribeJournalS3ExportInput) GoString() string {
  2534  	return s.String()
  2535  }
  2536  
  2537  // Validate inspects the fields of the type to determine if they are valid.
  2538  func (s *DescribeJournalS3ExportInput) Validate() error {
  2539  	invalidParams := request.ErrInvalidParams{Context: "DescribeJournalS3ExportInput"}
  2540  	if s.ExportId == nil {
  2541  		invalidParams.Add(request.NewErrParamRequired("ExportId"))
  2542  	}
  2543  	if s.ExportId != nil && len(*s.ExportId) < 22 {
  2544  		invalidParams.Add(request.NewErrParamMinLen("ExportId", 22))
  2545  	}
  2546  	if s.Name == nil {
  2547  		invalidParams.Add(request.NewErrParamRequired("Name"))
  2548  	}
  2549  	if s.Name != nil && len(*s.Name) < 1 {
  2550  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  2551  	}
  2552  
  2553  	if invalidParams.Len() > 0 {
  2554  		return invalidParams
  2555  	}
  2556  	return nil
  2557  }
  2558  
  2559  // SetExportId sets the ExportId field's value.
  2560  func (s *DescribeJournalS3ExportInput) SetExportId(v string) *DescribeJournalS3ExportInput {
  2561  	s.ExportId = &v
  2562  	return s
  2563  }
  2564  
  2565  // SetName sets the Name field's value.
  2566  func (s *DescribeJournalS3ExportInput) SetName(v string) *DescribeJournalS3ExportInput {
  2567  	s.Name = &v
  2568  	return s
  2569  }
  2570  
  2571  type DescribeJournalS3ExportOutput struct {
  2572  	_ struct{} `type:"structure"`
  2573  
  2574  	// Information about the journal export job returned by a DescribeJournalS3Export
  2575  	// request.
  2576  	//
  2577  	// ExportDescription is a required field
  2578  	ExportDescription *JournalS3ExportDescription `type:"structure" required:"true"`
  2579  }
  2580  
  2581  // String returns the string representation.
  2582  //
  2583  // API parameter values that are decorated as "sensitive" in the API will not
  2584  // be included in the string output. The member name will be present, but the
  2585  // value will be replaced with "sensitive".
  2586  func (s DescribeJournalS3ExportOutput) String() string {
  2587  	return awsutil.Prettify(s)
  2588  }
  2589  
  2590  // GoString returns the string representation.
  2591  //
  2592  // API parameter values that are decorated as "sensitive" in the API will not
  2593  // be included in the string output. The member name will be present, but the
  2594  // value will be replaced with "sensitive".
  2595  func (s DescribeJournalS3ExportOutput) GoString() string {
  2596  	return s.String()
  2597  }
  2598  
  2599  // SetExportDescription sets the ExportDescription field's value.
  2600  func (s *DescribeJournalS3ExportOutput) SetExportDescription(v *JournalS3ExportDescription) *DescribeJournalS3ExportOutput {
  2601  	s.ExportDescription = v
  2602  	return s
  2603  }
  2604  
  2605  type DescribeLedgerInput struct {
  2606  	_ struct{} `type:"structure" nopayload:"true"`
  2607  
  2608  	// The name of the ledger that you want to describe.
  2609  	//
  2610  	// Name is a required field
  2611  	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
  2612  }
  2613  
  2614  // String returns the string representation.
  2615  //
  2616  // API parameter values that are decorated as "sensitive" in the API will not
  2617  // be included in the string output. The member name will be present, but the
  2618  // value will be replaced with "sensitive".
  2619  func (s DescribeLedgerInput) String() string {
  2620  	return awsutil.Prettify(s)
  2621  }
  2622  
  2623  // GoString returns the string representation.
  2624  //
  2625  // API parameter values that are decorated as "sensitive" in the API will not
  2626  // be included in the string output. The member name will be present, but the
  2627  // value will be replaced with "sensitive".
  2628  func (s DescribeLedgerInput) GoString() string {
  2629  	return s.String()
  2630  }
  2631  
  2632  // Validate inspects the fields of the type to determine if they are valid.
  2633  func (s *DescribeLedgerInput) Validate() error {
  2634  	invalidParams := request.ErrInvalidParams{Context: "DescribeLedgerInput"}
  2635  	if s.Name == nil {
  2636  		invalidParams.Add(request.NewErrParamRequired("Name"))
  2637  	}
  2638  	if s.Name != nil && len(*s.Name) < 1 {
  2639  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  2640  	}
  2641  
  2642  	if invalidParams.Len() > 0 {
  2643  		return invalidParams
  2644  	}
  2645  	return nil
  2646  }
  2647  
  2648  // SetName sets the Name field's value.
  2649  func (s *DescribeLedgerInput) SetName(v string) *DescribeLedgerInput {
  2650  	s.Name = &v
  2651  	return s
  2652  }
  2653  
  2654  type DescribeLedgerOutput struct {
  2655  	_ struct{} `type:"structure"`
  2656  
  2657  	// The Amazon Resource Name (ARN) for the ledger.
  2658  	Arn *string `min:"20" type:"string"`
  2659  
  2660  	// The date and time, in epoch time format, when the ledger was created. (Epoch
  2661  	// time format is the number of seconds elapsed since 12:00:00 AM January 1,
  2662  	// 1970 UTC.)
  2663  	CreationDateTime *time.Time `type:"timestamp"`
  2664  
  2665  	// The flag that prevents a ledger from being deleted by any user. If not provided
  2666  	// on ledger creation, this feature is enabled (true) by default.
  2667  	//
  2668  	// If deletion protection is enabled, you must first disable it before you can
  2669  	// delete the ledger. You can disable it by calling the UpdateLedger operation
  2670  	// to set the flag to false.
  2671  	DeletionProtection *bool `type:"boolean"`
  2672  
  2673  	// Information about the encryption of data at rest in the ledger. This includes
  2674  	// the current status, the KMS key, and when the key became inaccessible (in
  2675  	// the case of an error).
  2676  	EncryptionDescription *LedgerEncryptionDescription `type:"structure"`
  2677  
  2678  	// The name of the ledger.
  2679  	Name *string `min:"1" type:"string"`
  2680  
  2681  	// The permissions mode of the ledger.
  2682  	PermissionsMode *string `type:"string" enum:"PermissionsMode"`
  2683  
  2684  	// The current status of the ledger.
  2685  	State *string `type:"string" enum:"LedgerState"`
  2686  }
  2687  
  2688  // String returns the string representation.
  2689  //
  2690  // API parameter values that are decorated as "sensitive" in the API will not
  2691  // be included in the string output. The member name will be present, but the
  2692  // value will be replaced with "sensitive".
  2693  func (s DescribeLedgerOutput) String() string {
  2694  	return awsutil.Prettify(s)
  2695  }
  2696  
  2697  // GoString returns the string representation.
  2698  //
  2699  // API parameter values that are decorated as "sensitive" in the API will not
  2700  // be included in the string output. The member name will be present, but the
  2701  // value will be replaced with "sensitive".
  2702  func (s DescribeLedgerOutput) GoString() string {
  2703  	return s.String()
  2704  }
  2705  
  2706  // SetArn sets the Arn field's value.
  2707  func (s *DescribeLedgerOutput) SetArn(v string) *DescribeLedgerOutput {
  2708  	s.Arn = &v
  2709  	return s
  2710  }
  2711  
  2712  // SetCreationDateTime sets the CreationDateTime field's value.
  2713  func (s *DescribeLedgerOutput) SetCreationDateTime(v time.Time) *DescribeLedgerOutput {
  2714  	s.CreationDateTime = &v
  2715  	return s
  2716  }
  2717  
  2718  // SetDeletionProtection sets the DeletionProtection field's value.
  2719  func (s *DescribeLedgerOutput) SetDeletionProtection(v bool) *DescribeLedgerOutput {
  2720  	s.DeletionProtection = &v
  2721  	return s
  2722  }
  2723  
  2724  // SetEncryptionDescription sets the EncryptionDescription field's value.
  2725  func (s *DescribeLedgerOutput) SetEncryptionDescription(v *LedgerEncryptionDescription) *DescribeLedgerOutput {
  2726  	s.EncryptionDescription = v
  2727  	return s
  2728  }
  2729  
  2730  // SetName sets the Name field's value.
  2731  func (s *DescribeLedgerOutput) SetName(v string) *DescribeLedgerOutput {
  2732  	s.Name = &v
  2733  	return s
  2734  }
  2735  
  2736  // SetPermissionsMode sets the PermissionsMode field's value.
  2737  func (s *DescribeLedgerOutput) SetPermissionsMode(v string) *DescribeLedgerOutput {
  2738  	s.PermissionsMode = &v
  2739  	return s
  2740  }
  2741  
  2742  // SetState sets the State field's value.
  2743  func (s *DescribeLedgerOutput) SetState(v string) *DescribeLedgerOutput {
  2744  	s.State = &v
  2745  	return s
  2746  }
  2747  
  2748  type ExportJournalToS3Input struct {
  2749  	_ struct{} `type:"structure"`
  2750  
  2751  	// The exclusive end date and time for the range of journal contents to export.
  2752  	//
  2753  	// The ExclusiveEndTime must be in ISO 8601 date and time format and in Universal
  2754  	// Coordinated Time (UTC). For example: 2019-06-13T21:36:34Z.
  2755  	//
  2756  	// The ExclusiveEndTime must be less than or equal to the current UTC date and
  2757  	// time.
  2758  	//
  2759  	// ExclusiveEndTime is a required field
  2760  	ExclusiveEndTime *time.Time `type:"timestamp" required:"true"`
  2761  
  2762  	// The inclusive start date and time for the range of journal contents to export.
  2763  	//
  2764  	// The InclusiveStartTime must be in ISO 8601 date and time format and in Universal
  2765  	// Coordinated Time (UTC). For example: 2019-06-13T21:36:34Z.
  2766  	//
  2767  	// The InclusiveStartTime must be before ExclusiveEndTime.
  2768  	//
  2769  	// If you provide an InclusiveStartTime that is before the ledger's CreationDateTime,
  2770  	// Amazon QLDB defaults it to the ledger's CreationDateTime.
  2771  	//
  2772  	// InclusiveStartTime is a required field
  2773  	InclusiveStartTime *time.Time `type:"timestamp" required:"true"`
  2774  
  2775  	// The name of the ledger.
  2776  	//
  2777  	// Name is a required field
  2778  	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
  2779  
  2780  	// The Amazon Resource Name (ARN) of the IAM role that grants QLDB permissions
  2781  	// for a journal export job to do the following:
  2782  	//
  2783  	//    * Write objects into your Amazon Simple Storage Service (Amazon S3) bucket.
  2784  	//
  2785  	//    * (Optional) Use your customer master key (CMK) in Key Management Service
  2786  	//    (KMS) for server-side encryption of your exported data.
  2787  	//
  2788  	// RoleArn is a required field
  2789  	RoleArn *string `min:"20" type:"string" required:"true"`
  2790  
  2791  	// The configuration settings of the Amazon S3 bucket destination for your export
  2792  	// request.
  2793  	//
  2794  	// S3ExportConfiguration is a required field
  2795  	S3ExportConfiguration *S3ExportConfiguration `type:"structure" required:"true"`
  2796  }
  2797  
  2798  // String returns the string representation.
  2799  //
  2800  // API parameter values that are decorated as "sensitive" in the API will not
  2801  // be included in the string output. The member name will be present, but the
  2802  // value will be replaced with "sensitive".
  2803  func (s ExportJournalToS3Input) String() string {
  2804  	return awsutil.Prettify(s)
  2805  }
  2806  
  2807  // GoString returns the string representation.
  2808  //
  2809  // API parameter values that are decorated as "sensitive" in the API will not
  2810  // be included in the string output. The member name will be present, but the
  2811  // value will be replaced with "sensitive".
  2812  func (s ExportJournalToS3Input) GoString() string {
  2813  	return s.String()
  2814  }
  2815  
  2816  // Validate inspects the fields of the type to determine if they are valid.
  2817  func (s *ExportJournalToS3Input) Validate() error {
  2818  	invalidParams := request.ErrInvalidParams{Context: "ExportJournalToS3Input"}
  2819  	if s.ExclusiveEndTime == nil {
  2820  		invalidParams.Add(request.NewErrParamRequired("ExclusiveEndTime"))
  2821  	}
  2822  	if s.InclusiveStartTime == nil {
  2823  		invalidParams.Add(request.NewErrParamRequired("InclusiveStartTime"))
  2824  	}
  2825  	if s.Name == nil {
  2826  		invalidParams.Add(request.NewErrParamRequired("Name"))
  2827  	}
  2828  	if s.Name != nil && len(*s.Name) < 1 {
  2829  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  2830  	}
  2831  	if s.RoleArn == nil {
  2832  		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
  2833  	}
  2834  	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
  2835  		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
  2836  	}
  2837  	if s.S3ExportConfiguration == nil {
  2838  		invalidParams.Add(request.NewErrParamRequired("S3ExportConfiguration"))
  2839  	}
  2840  	if s.S3ExportConfiguration != nil {
  2841  		if err := s.S3ExportConfiguration.Validate(); err != nil {
  2842  			invalidParams.AddNested("S3ExportConfiguration", err.(request.ErrInvalidParams))
  2843  		}
  2844  	}
  2845  
  2846  	if invalidParams.Len() > 0 {
  2847  		return invalidParams
  2848  	}
  2849  	return nil
  2850  }
  2851  
  2852  // SetExclusiveEndTime sets the ExclusiveEndTime field's value.
  2853  func (s *ExportJournalToS3Input) SetExclusiveEndTime(v time.Time) *ExportJournalToS3Input {
  2854  	s.ExclusiveEndTime = &v
  2855  	return s
  2856  }
  2857  
  2858  // SetInclusiveStartTime sets the InclusiveStartTime field's value.
  2859  func (s *ExportJournalToS3Input) SetInclusiveStartTime(v time.Time) *ExportJournalToS3Input {
  2860  	s.InclusiveStartTime = &v
  2861  	return s
  2862  }
  2863  
  2864  // SetName sets the Name field's value.
  2865  func (s *ExportJournalToS3Input) SetName(v string) *ExportJournalToS3Input {
  2866  	s.Name = &v
  2867  	return s
  2868  }
  2869  
  2870  // SetRoleArn sets the RoleArn field's value.
  2871  func (s *ExportJournalToS3Input) SetRoleArn(v string) *ExportJournalToS3Input {
  2872  	s.RoleArn = &v
  2873  	return s
  2874  }
  2875  
  2876  // SetS3ExportConfiguration sets the S3ExportConfiguration field's value.
  2877  func (s *ExportJournalToS3Input) SetS3ExportConfiguration(v *S3ExportConfiguration) *ExportJournalToS3Input {
  2878  	s.S3ExportConfiguration = v
  2879  	return s
  2880  }
  2881  
  2882  type ExportJournalToS3Output struct {
  2883  	_ struct{} `type:"structure"`
  2884  
  2885  	// The UUID (represented in Base62-encoded text) that QLDB assigns to each journal
  2886  	// export job.
  2887  	//
  2888  	// To describe your export request and check the status of the job, you can
  2889  	// use ExportId to call DescribeJournalS3Export.
  2890  	//
  2891  	// ExportId is a required field
  2892  	ExportId *string `min:"22" type:"string" required:"true"`
  2893  }
  2894  
  2895  // String returns the string representation.
  2896  //
  2897  // API parameter values that are decorated as "sensitive" in the API will not
  2898  // be included in the string output. The member name will be present, but the
  2899  // value will be replaced with "sensitive".
  2900  func (s ExportJournalToS3Output) String() string {
  2901  	return awsutil.Prettify(s)
  2902  }
  2903  
  2904  // GoString returns the string representation.
  2905  //
  2906  // API parameter values that are decorated as "sensitive" in the API will not
  2907  // be included in the string output. The member name will be present, but the
  2908  // value will be replaced with "sensitive".
  2909  func (s ExportJournalToS3Output) GoString() string {
  2910  	return s.String()
  2911  }
  2912  
  2913  // SetExportId sets the ExportId field's value.
  2914  func (s *ExportJournalToS3Output) SetExportId(v string) *ExportJournalToS3Output {
  2915  	s.ExportId = &v
  2916  	return s
  2917  }
  2918  
  2919  type GetBlockInput struct {
  2920  	_ struct{} `type:"structure"`
  2921  
  2922  	// The location of the block that you want to request. An address is an Amazon
  2923  	// Ion structure that has two fields: strandId and sequenceNo.
  2924  	//
  2925  	// For example: {strandId:"BlFTjlSXze9BIh1KOszcE3",sequenceNo:14}.
  2926  	//
  2927  	// BlockAddress is a sensitive parameter and its value will be
  2928  	// replaced with "sensitive" in string returned by GetBlockInput's
  2929  	// String and GoString methods.
  2930  	//
  2931  	// BlockAddress is a required field
  2932  	BlockAddress *ValueHolder `type:"structure" required:"true" sensitive:"true"`
  2933  
  2934  	// The latest block location covered by the digest for which to request a proof.
  2935  	// An address is an Amazon Ion structure that has two fields: strandId and sequenceNo.
  2936  	//
  2937  	// For example: {strandId:"BlFTjlSXze9BIh1KOszcE3",sequenceNo:49}.
  2938  	//
  2939  	// DigestTipAddress is a sensitive parameter and its value will be
  2940  	// replaced with "sensitive" in string returned by GetBlockInput's
  2941  	// String and GoString methods.
  2942  	DigestTipAddress *ValueHolder `type:"structure" sensitive:"true"`
  2943  
  2944  	// The name of the ledger.
  2945  	//
  2946  	// Name is a required field
  2947  	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
  2948  }
  2949  
  2950  // String returns the string representation.
  2951  //
  2952  // API parameter values that are decorated as "sensitive" in the API will not
  2953  // be included in the string output. The member name will be present, but the
  2954  // value will be replaced with "sensitive".
  2955  func (s GetBlockInput) String() string {
  2956  	return awsutil.Prettify(s)
  2957  }
  2958  
  2959  // GoString returns the string representation.
  2960  //
  2961  // API parameter values that are decorated as "sensitive" in the API will not
  2962  // be included in the string output. The member name will be present, but the
  2963  // value will be replaced with "sensitive".
  2964  func (s GetBlockInput) GoString() string {
  2965  	return s.String()
  2966  }
  2967  
  2968  // Validate inspects the fields of the type to determine if they are valid.
  2969  func (s *GetBlockInput) Validate() error {
  2970  	invalidParams := request.ErrInvalidParams{Context: "GetBlockInput"}
  2971  	if s.BlockAddress == nil {
  2972  		invalidParams.Add(request.NewErrParamRequired("BlockAddress"))
  2973  	}
  2974  	if s.Name == nil {
  2975  		invalidParams.Add(request.NewErrParamRequired("Name"))
  2976  	}
  2977  	if s.Name != nil && len(*s.Name) < 1 {
  2978  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  2979  	}
  2980  	if s.BlockAddress != nil {
  2981  		if err := s.BlockAddress.Validate(); err != nil {
  2982  			invalidParams.AddNested("BlockAddress", err.(request.ErrInvalidParams))
  2983  		}
  2984  	}
  2985  	if s.DigestTipAddress != nil {
  2986  		if err := s.DigestTipAddress.Validate(); err != nil {
  2987  			invalidParams.AddNested("DigestTipAddress", err.(request.ErrInvalidParams))
  2988  		}
  2989  	}
  2990  
  2991  	if invalidParams.Len() > 0 {
  2992  		return invalidParams
  2993  	}
  2994  	return nil
  2995  }
  2996  
  2997  // SetBlockAddress sets the BlockAddress field's value.
  2998  func (s *GetBlockInput) SetBlockAddress(v *ValueHolder) *GetBlockInput {
  2999  	s.BlockAddress = v
  3000  	return s
  3001  }
  3002  
  3003  // SetDigestTipAddress sets the DigestTipAddress field's value.
  3004  func (s *GetBlockInput) SetDigestTipAddress(v *ValueHolder) *GetBlockInput {
  3005  	s.DigestTipAddress = v
  3006  	return s
  3007  }
  3008  
  3009  // SetName sets the Name field's value.
  3010  func (s *GetBlockInput) SetName(v string) *GetBlockInput {
  3011  	s.Name = &v
  3012  	return s
  3013  }
  3014  
  3015  type GetBlockOutput struct {
  3016  	_ struct{} `type:"structure"`
  3017  
  3018  	// The block data object in Amazon Ion format.
  3019  	//
  3020  	// Block is a sensitive parameter and its value will be
  3021  	// replaced with "sensitive" in string returned by GetBlockOutput's
  3022  	// String and GoString methods.
  3023  	//
  3024  	// Block is a required field
  3025  	Block *ValueHolder `type:"structure" required:"true" sensitive:"true"`
  3026  
  3027  	// The proof object in Amazon Ion format returned by a GetBlock request. A proof
  3028  	// contains the list of hash values required to recalculate the specified digest
  3029  	// using a Merkle tree, starting with the specified block.
  3030  	//
  3031  	// Proof is a sensitive parameter and its value will be
  3032  	// replaced with "sensitive" in string returned by GetBlockOutput's
  3033  	// String and GoString methods.
  3034  	Proof *ValueHolder `type:"structure" sensitive:"true"`
  3035  }
  3036  
  3037  // String returns the string representation.
  3038  //
  3039  // API parameter values that are decorated as "sensitive" in the API will not
  3040  // be included in the string output. The member name will be present, but the
  3041  // value will be replaced with "sensitive".
  3042  func (s GetBlockOutput) String() string {
  3043  	return awsutil.Prettify(s)
  3044  }
  3045  
  3046  // GoString returns the string representation.
  3047  //
  3048  // API parameter values that are decorated as "sensitive" in the API will not
  3049  // be included in the string output. The member name will be present, but the
  3050  // value will be replaced with "sensitive".
  3051  func (s GetBlockOutput) GoString() string {
  3052  	return s.String()
  3053  }
  3054  
  3055  // SetBlock sets the Block field's value.
  3056  func (s *GetBlockOutput) SetBlock(v *ValueHolder) *GetBlockOutput {
  3057  	s.Block = v
  3058  	return s
  3059  }
  3060  
  3061  // SetProof sets the Proof field's value.
  3062  func (s *GetBlockOutput) SetProof(v *ValueHolder) *GetBlockOutput {
  3063  	s.Proof = v
  3064  	return s
  3065  }
  3066  
  3067  type GetDigestInput struct {
  3068  	_ struct{} `type:"structure" nopayload:"true"`
  3069  
  3070  	// The name of the ledger.
  3071  	//
  3072  	// Name is a required field
  3073  	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
  3074  }
  3075  
  3076  // String returns the string representation.
  3077  //
  3078  // API parameter values that are decorated as "sensitive" in the API will not
  3079  // be included in the string output. The member name will be present, but the
  3080  // value will be replaced with "sensitive".
  3081  func (s GetDigestInput) String() string {
  3082  	return awsutil.Prettify(s)
  3083  }
  3084  
  3085  // GoString returns the string representation.
  3086  //
  3087  // API parameter values that are decorated as "sensitive" in the API will not
  3088  // be included in the string output. The member name will be present, but the
  3089  // value will be replaced with "sensitive".
  3090  func (s GetDigestInput) GoString() string {
  3091  	return s.String()
  3092  }
  3093  
  3094  // Validate inspects the fields of the type to determine if they are valid.
  3095  func (s *GetDigestInput) Validate() error {
  3096  	invalidParams := request.ErrInvalidParams{Context: "GetDigestInput"}
  3097  	if s.Name == nil {
  3098  		invalidParams.Add(request.NewErrParamRequired("Name"))
  3099  	}
  3100  	if s.Name != nil && len(*s.Name) < 1 {
  3101  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  3102  	}
  3103  
  3104  	if invalidParams.Len() > 0 {
  3105  		return invalidParams
  3106  	}
  3107  	return nil
  3108  }
  3109  
  3110  // SetName sets the Name field's value.
  3111  func (s *GetDigestInput) SetName(v string) *GetDigestInput {
  3112  	s.Name = &v
  3113  	return s
  3114  }
  3115  
  3116  type GetDigestOutput struct {
  3117  	_ struct{} `type:"structure"`
  3118  
  3119  	// The 256-bit hash value representing the digest returned by a GetDigest request.
  3120  	// Digest is automatically base64 encoded/decoded by the SDK.
  3121  	//
  3122  	// Digest is a required field
  3123  	Digest []byte `min:"32" type:"blob" required:"true"`
  3124  
  3125  	// The latest block location covered by the digest that you requested. An address
  3126  	// is an Amazon Ion structure that has two fields: strandId and sequenceNo.
  3127  	//
  3128  	// DigestTipAddress is a sensitive parameter and its value will be
  3129  	// replaced with "sensitive" in string returned by GetDigestOutput's
  3130  	// String and GoString methods.
  3131  	//
  3132  	// DigestTipAddress is a required field
  3133  	DigestTipAddress *ValueHolder `type:"structure" required:"true" sensitive:"true"`
  3134  }
  3135  
  3136  // String returns the string representation.
  3137  //
  3138  // API parameter values that are decorated as "sensitive" in the API will not
  3139  // be included in the string output. The member name will be present, but the
  3140  // value will be replaced with "sensitive".
  3141  func (s GetDigestOutput) String() string {
  3142  	return awsutil.Prettify(s)
  3143  }
  3144  
  3145  // GoString returns the string representation.
  3146  //
  3147  // API parameter values that are decorated as "sensitive" in the API will not
  3148  // be included in the string output. The member name will be present, but the
  3149  // value will be replaced with "sensitive".
  3150  func (s GetDigestOutput) GoString() string {
  3151  	return s.String()
  3152  }
  3153  
  3154  // SetDigest sets the Digest field's value.
  3155  func (s *GetDigestOutput) SetDigest(v []byte) *GetDigestOutput {
  3156  	s.Digest = v
  3157  	return s
  3158  }
  3159  
  3160  // SetDigestTipAddress sets the DigestTipAddress field's value.
  3161  func (s *GetDigestOutput) SetDigestTipAddress(v *ValueHolder) *GetDigestOutput {
  3162  	s.DigestTipAddress = v
  3163  	return s
  3164  }
  3165  
  3166  type GetRevisionInput struct {
  3167  	_ struct{} `type:"structure"`
  3168  
  3169  	// The block location of the document revision to be verified. An address is
  3170  	// an Amazon Ion structure that has two fields: strandId and sequenceNo.
  3171  	//
  3172  	// For example: {strandId:"BlFTjlSXze9BIh1KOszcE3",sequenceNo:14}.
  3173  	//
  3174  	// BlockAddress is a sensitive parameter and its value will be
  3175  	// replaced with "sensitive" in string returned by GetRevisionInput's
  3176  	// String and GoString methods.
  3177  	//
  3178  	// BlockAddress is a required field
  3179  	BlockAddress *ValueHolder `type:"structure" required:"true" sensitive:"true"`
  3180  
  3181  	// The latest block location covered by the digest for which to request a proof.
  3182  	// An address is an Amazon Ion structure that has two fields: strandId and sequenceNo.
  3183  	//
  3184  	// For example: {strandId:"BlFTjlSXze9BIh1KOszcE3",sequenceNo:49}.
  3185  	//
  3186  	// DigestTipAddress is a sensitive parameter and its value will be
  3187  	// replaced with "sensitive" in string returned by GetRevisionInput's
  3188  	// String and GoString methods.
  3189  	DigestTipAddress *ValueHolder `type:"structure" sensitive:"true"`
  3190  
  3191  	// The UUID (represented in Base62-encoded text) of the document to be verified.
  3192  	//
  3193  	// DocumentId is a required field
  3194  	DocumentId *string `min:"22" type:"string" required:"true"`
  3195  
  3196  	// The name of the ledger.
  3197  	//
  3198  	// Name is a required field
  3199  	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
  3200  }
  3201  
  3202  // String returns the string representation.
  3203  //
  3204  // API parameter values that are decorated as "sensitive" in the API will not
  3205  // be included in the string output. The member name will be present, but the
  3206  // value will be replaced with "sensitive".
  3207  func (s GetRevisionInput) String() string {
  3208  	return awsutil.Prettify(s)
  3209  }
  3210  
  3211  // GoString returns the string representation.
  3212  //
  3213  // API parameter values that are decorated as "sensitive" in the API will not
  3214  // be included in the string output. The member name will be present, but the
  3215  // value will be replaced with "sensitive".
  3216  func (s GetRevisionInput) GoString() string {
  3217  	return s.String()
  3218  }
  3219  
  3220  // Validate inspects the fields of the type to determine if they are valid.
  3221  func (s *GetRevisionInput) Validate() error {
  3222  	invalidParams := request.ErrInvalidParams{Context: "GetRevisionInput"}
  3223  	if s.BlockAddress == nil {
  3224  		invalidParams.Add(request.NewErrParamRequired("BlockAddress"))
  3225  	}
  3226  	if s.DocumentId == nil {
  3227  		invalidParams.Add(request.NewErrParamRequired("DocumentId"))
  3228  	}
  3229  	if s.DocumentId != nil && len(*s.DocumentId) < 22 {
  3230  		invalidParams.Add(request.NewErrParamMinLen("DocumentId", 22))
  3231  	}
  3232  	if s.Name == nil {
  3233  		invalidParams.Add(request.NewErrParamRequired("Name"))
  3234  	}
  3235  	if s.Name != nil && len(*s.Name) < 1 {
  3236  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  3237  	}
  3238  	if s.BlockAddress != nil {
  3239  		if err := s.BlockAddress.Validate(); err != nil {
  3240  			invalidParams.AddNested("BlockAddress", err.(request.ErrInvalidParams))
  3241  		}
  3242  	}
  3243  	if s.DigestTipAddress != nil {
  3244  		if err := s.DigestTipAddress.Validate(); err != nil {
  3245  			invalidParams.AddNested("DigestTipAddress", err.(request.ErrInvalidParams))
  3246  		}
  3247  	}
  3248  
  3249  	if invalidParams.Len() > 0 {
  3250  		return invalidParams
  3251  	}
  3252  	return nil
  3253  }
  3254  
  3255  // SetBlockAddress sets the BlockAddress field's value.
  3256  func (s *GetRevisionInput) SetBlockAddress(v *ValueHolder) *GetRevisionInput {
  3257  	s.BlockAddress = v
  3258  	return s
  3259  }
  3260  
  3261  // SetDigestTipAddress sets the DigestTipAddress field's value.
  3262  func (s *GetRevisionInput) SetDigestTipAddress(v *ValueHolder) *GetRevisionInput {
  3263  	s.DigestTipAddress = v
  3264  	return s
  3265  }
  3266  
  3267  // SetDocumentId sets the DocumentId field's value.
  3268  func (s *GetRevisionInput) SetDocumentId(v string) *GetRevisionInput {
  3269  	s.DocumentId = &v
  3270  	return s
  3271  }
  3272  
  3273  // SetName sets the Name field's value.
  3274  func (s *GetRevisionInput) SetName(v string) *GetRevisionInput {
  3275  	s.Name = &v
  3276  	return s
  3277  }
  3278  
  3279  type GetRevisionOutput struct {
  3280  	_ struct{} `type:"structure"`
  3281  
  3282  	// The proof object in Amazon Ion format returned by a GetRevision request.
  3283  	// A proof contains the list of hash values that are required to recalculate
  3284  	// the specified digest using a Merkle tree, starting with the specified document
  3285  	// revision.
  3286  	//
  3287  	// Proof is a sensitive parameter and its value will be
  3288  	// replaced with "sensitive" in string returned by GetRevisionOutput's
  3289  	// String and GoString methods.
  3290  	Proof *ValueHolder `type:"structure" sensitive:"true"`
  3291  
  3292  	// The document revision data object in Amazon Ion format.
  3293  	//
  3294  	// Revision is a sensitive parameter and its value will be
  3295  	// replaced with "sensitive" in string returned by GetRevisionOutput's
  3296  	// String and GoString methods.
  3297  	//
  3298  	// Revision is a required field
  3299  	Revision *ValueHolder `type:"structure" required:"true" sensitive:"true"`
  3300  }
  3301  
  3302  // String returns the string representation.
  3303  //
  3304  // API parameter values that are decorated as "sensitive" in the API will not
  3305  // be included in the string output. The member name will be present, but the
  3306  // value will be replaced with "sensitive".
  3307  func (s GetRevisionOutput) String() string {
  3308  	return awsutil.Prettify(s)
  3309  }
  3310  
  3311  // GoString returns the string representation.
  3312  //
  3313  // API parameter values that are decorated as "sensitive" in the API will not
  3314  // be included in the string output. The member name will be present, but the
  3315  // value will be replaced with "sensitive".
  3316  func (s GetRevisionOutput) GoString() string {
  3317  	return s.String()
  3318  }
  3319  
  3320  // SetProof sets the Proof field's value.
  3321  func (s *GetRevisionOutput) SetProof(v *ValueHolder) *GetRevisionOutput {
  3322  	s.Proof = v
  3323  	return s
  3324  }
  3325  
  3326  // SetRevision sets the Revision field's value.
  3327  func (s *GetRevisionOutput) SetRevision(v *ValueHolder) *GetRevisionOutput {
  3328  	s.Revision = v
  3329  	return s
  3330  }
  3331  
  3332  // One or more parameters in the request aren't valid.
  3333  type InvalidParameterException struct {
  3334  	_            struct{}                  `type:"structure"`
  3335  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  3336  
  3337  	Message_ *string `locationName:"Message" type:"string"`
  3338  
  3339  	// The name of the invalid parameter.
  3340  	ParameterName *string `type:"string"`
  3341  }
  3342  
  3343  // String returns the string representation.
  3344  //
  3345  // API parameter values that are decorated as "sensitive" in the API will not
  3346  // be included in the string output. The member name will be present, but the
  3347  // value will be replaced with "sensitive".
  3348  func (s InvalidParameterException) String() string {
  3349  	return awsutil.Prettify(s)
  3350  }
  3351  
  3352  // GoString returns the string representation.
  3353  //
  3354  // API parameter values that are decorated as "sensitive" in the API will not
  3355  // be included in the string output. The member name will be present, but the
  3356  // value will be replaced with "sensitive".
  3357  func (s InvalidParameterException) GoString() string {
  3358  	return s.String()
  3359  }
  3360  
  3361  func newErrorInvalidParameterException(v protocol.ResponseMetadata) error {
  3362  	return &InvalidParameterException{
  3363  		RespMetadata: v,
  3364  	}
  3365  }
  3366  
  3367  // Code returns the exception type name.
  3368  func (s *InvalidParameterException) Code() string {
  3369  	return "InvalidParameterException"
  3370  }
  3371  
  3372  // Message returns the exception's message.
  3373  func (s *InvalidParameterException) Message() string {
  3374  	if s.Message_ != nil {
  3375  		return *s.Message_
  3376  	}
  3377  	return ""
  3378  }
  3379  
  3380  // OrigErr always returns nil, satisfies awserr.Error interface.
  3381  func (s *InvalidParameterException) OrigErr() error {
  3382  	return nil
  3383  }
  3384  
  3385  func (s *InvalidParameterException) Error() string {
  3386  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  3387  }
  3388  
  3389  // Status code returns the HTTP status code for the request's response error.
  3390  func (s *InvalidParameterException) StatusCode() int {
  3391  	return s.RespMetadata.StatusCode
  3392  }
  3393  
  3394  // RequestID returns the service's response RequestID for request.
  3395  func (s *InvalidParameterException) RequestID() string {
  3396  	return s.RespMetadata.RequestID
  3397  }
  3398  
  3399  // Information about an Amazon QLDB journal stream, including the Amazon Resource
  3400  // Name (ARN), stream name, creation time, current status, and the parameters
  3401  // of the original stream creation request.
  3402  type JournalKinesisStreamDescription struct {
  3403  	_ struct{} `type:"structure"`
  3404  
  3405  	// The Amazon Resource Name (ARN) of the QLDB journal stream.
  3406  	Arn *string `min:"20" type:"string"`
  3407  
  3408  	// The date and time, in epoch time format, when the QLDB journal stream was
  3409  	// created. (Epoch time format is the number of seconds elapsed since 12:00:00
  3410  	// AM January 1, 1970 UTC.)
  3411  	CreationTime *time.Time `type:"timestamp"`
  3412  
  3413  	// The error message that describes the reason that a stream has a status of
  3414  	// IMPAIRED or FAILED. This is not applicable to streams that have other status
  3415  	// values.
  3416  	ErrorCause *string `type:"string" enum:"ErrorCause"`
  3417  
  3418  	// The exclusive date and time that specifies when the stream ends. If this
  3419  	// parameter is undefined, the stream runs indefinitely until you cancel it.
  3420  	ExclusiveEndTime *time.Time `type:"timestamp"`
  3421  
  3422  	// The inclusive start date and time from which to start streaming journal data.
  3423  	InclusiveStartTime *time.Time `type:"timestamp"`
  3424  
  3425  	// The configuration settings of the Amazon Kinesis Data Streams destination
  3426  	// for a QLDB journal stream.
  3427  	//
  3428  	// KinesisConfiguration is a required field
  3429  	KinesisConfiguration *KinesisConfiguration `type:"structure" required:"true"`
  3430  
  3431  	// The name of the ledger.
  3432  	//
  3433  	// LedgerName is a required field
  3434  	LedgerName *string `min:"1" type:"string" required:"true"`
  3435  
  3436  	// The Amazon Resource Name (ARN) of the IAM role that grants QLDB permissions
  3437  	// for a journal stream to write data records to a Kinesis Data Streams resource.
  3438  	//
  3439  	// RoleArn is a required field
  3440  	RoleArn *string `min:"20" type:"string" required:"true"`
  3441  
  3442  	// The current state of the QLDB journal stream.
  3443  	//
  3444  	// Status is a required field
  3445  	Status *string `type:"string" required:"true" enum:"StreamStatus"`
  3446  
  3447  	// The UUID (represented in Base62-encoded text) of the QLDB journal stream.
  3448  	//
  3449  	// StreamId is a required field
  3450  	StreamId *string `min:"22" type:"string" required:"true"`
  3451  
  3452  	// The user-defined name of the QLDB journal stream.
  3453  	//
  3454  	// StreamName is a required field
  3455  	StreamName *string `min:"1" type:"string" required:"true"`
  3456  }
  3457  
  3458  // String returns the string representation.
  3459  //
  3460  // API parameter values that are decorated as "sensitive" in the API will not
  3461  // be included in the string output. The member name will be present, but the
  3462  // value will be replaced with "sensitive".
  3463  func (s JournalKinesisStreamDescription) String() string {
  3464  	return awsutil.Prettify(s)
  3465  }
  3466  
  3467  // GoString returns the string representation.
  3468  //
  3469  // API parameter values that are decorated as "sensitive" in the API will not
  3470  // be included in the string output. The member name will be present, but the
  3471  // value will be replaced with "sensitive".
  3472  func (s JournalKinesisStreamDescription) GoString() string {
  3473  	return s.String()
  3474  }
  3475  
  3476  // SetArn sets the Arn field's value.
  3477  func (s *JournalKinesisStreamDescription) SetArn(v string) *JournalKinesisStreamDescription {
  3478  	s.Arn = &v
  3479  	return s
  3480  }
  3481  
  3482  // SetCreationTime sets the CreationTime field's value.
  3483  func (s *JournalKinesisStreamDescription) SetCreationTime(v time.Time) *JournalKinesisStreamDescription {
  3484  	s.CreationTime = &v
  3485  	return s
  3486  }
  3487  
  3488  // SetErrorCause sets the ErrorCause field's value.
  3489  func (s *JournalKinesisStreamDescription) SetErrorCause(v string) *JournalKinesisStreamDescription {
  3490  	s.ErrorCause = &v
  3491  	return s
  3492  }
  3493  
  3494  // SetExclusiveEndTime sets the ExclusiveEndTime field's value.
  3495  func (s *JournalKinesisStreamDescription) SetExclusiveEndTime(v time.Time) *JournalKinesisStreamDescription {
  3496  	s.ExclusiveEndTime = &v
  3497  	return s
  3498  }
  3499  
  3500  // SetInclusiveStartTime sets the InclusiveStartTime field's value.
  3501  func (s *JournalKinesisStreamDescription) SetInclusiveStartTime(v time.Time) *JournalKinesisStreamDescription {
  3502  	s.InclusiveStartTime = &v
  3503  	return s
  3504  }
  3505  
  3506  // SetKinesisConfiguration sets the KinesisConfiguration field's value.
  3507  func (s *JournalKinesisStreamDescription) SetKinesisConfiguration(v *KinesisConfiguration) *JournalKinesisStreamDescription {
  3508  	s.KinesisConfiguration = v
  3509  	return s
  3510  }
  3511  
  3512  // SetLedgerName sets the LedgerName field's value.
  3513  func (s *JournalKinesisStreamDescription) SetLedgerName(v string) *JournalKinesisStreamDescription {
  3514  	s.LedgerName = &v
  3515  	return s
  3516  }
  3517  
  3518  // SetRoleArn sets the RoleArn field's value.
  3519  func (s *JournalKinesisStreamDescription) SetRoleArn(v string) *JournalKinesisStreamDescription {
  3520  	s.RoleArn = &v
  3521  	return s
  3522  }
  3523  
  3524  // SetStatus sets the Status field's value.
  3525  func (s *JournalKinesisStreamDescription) SetStatus(v string) *JournalKinesisStreamDescription {
  3526  	s.Status = &v
  3527  	return s
  3528  }
  3529  
  3530  // SetStreamId sets the StreamId field's value.
  3531  func (s *JournalKinesisStreamDescription) SetStreamId(v string) *JournalKinesisStreamDescription {
  3532  	s.StreamId = &v
  3533  	return s
  3534  }
  3535  
  3536  // SetStreamName sets the StreamName field's value.
  3537  func (s *JournalKinesisStreamDescription) SetStreamName(v string) *JournalKinesisStreamDescription {
  3538  	s.StreamName = &v
  3539  	return s
  3540  }
  3541  
  3542  // Information about a journal export job, including the ledger name, export
  3543  // ID, creation time, current status, and the parameters of the original export
  3544  // creation request.
  3545  type JournalS3ExportDescription struct {
  3546  	_ struct{} `type:"structure"`
  3547  
  3548  	// The exclusive end date and time for the range of journal contents that are
  3549  	// specified in the original export request.
  3550  	//
  3551  	// ExclusiveEndTime is a required field
  3552  	ExclusiveEndTime *time.Time `type:"timestamp" required:"true"`
  3553  
  3554  	// The date and time, in epoch time format, when the export job was created.
  3555  	// (Epoch time format is the number of seconds elapsed since 12:00:00 AM January
  3556  	// 1, 1970 UTC.)
  3557  	//
  3558  	// ExportCreationTime is a required field
  3559  	ExportCreationTime *time.Time `type:"timestamp" required:"true"`
  3560  
  3561  	// The UUID (represented in Base62-encoded text) of the journal export job.
  3562  	//
  3563  	// ExportId is a required field
  3564  	ExportId *string `min:"22" type:"string" required:"true"`
  3565  
  3566  	// The inclusive start date and time for the range of journal contents that
  3567  	// are specified in the original export request.
  3568  	//
  3569  	// InclusiveStartTime is a required field
  3570  	InclusiveStartTime *time.Time `type:"timestamp" required:"true"`
  3571  
  3572  	// The name of the ledger.
  3573  	//
  3574  	// LedgerName is a required field
  3575  	LedgerName *string `min:"1" type:"string" required:"true"`
  3576  
  3577  	// The Amazon Resource Name (ARN) of the IAM role that grants QLDB permissions
  3578  	// for a journal export job to do the following:
  3579  	//
  3580  	//    * Write objects into your Amazon Simple Storage Service (Amazon S3) bucket.
  3581  	//
  3582  	//    * (Optional) Use your customer master key (CMK) in Key Management Service
  3583  	//    (KMS) for server-side encryption of your exported data.
  3584  	//
  3585  	// RoleArn is a required field
  3586  	RoleArn *string `min:"20" type:"string" required:"true"`
  3587  
  3588  	// The Amazon Simple Storage Service (Amazon S3) bucket location in which a
  3589  	// journal export job writes the journal contents.
  3590  	//
  3591  	// S3ExportConfiguration is a required field
  3592  	S3ExportConfiguration *S3ExportConfiguration `type:"structure" required:"true"`
  3593  
  3594  	// The current state of the journal export job.
  3595  	//
  3596  	// Status is a required field
  3597  	Status *string `type:"string" required:"true" enum:"ExportStatus"`
  3598  }
  3599  
  3600  // String returns the string representation.
  3601  //
  3602  // API parameter values that are decorated as "sensitive" in the API will not
  3603  // be included in the string output. The member name will be present, but the
  3604  // value will be replaced with "sensitive".
  3605  func (s JournalS3ExportDescription) String() string {
  3606  	return awsutil.Prettify(s)
  3607  }
  3608  
  3609  // GoString returns the string representation.
  3610  //
  3611  // API parameter values that are decorated as "sensitive" in the API will not
  3612  // be included in the string output. The member name will be present, but the
  3613  // value will be replaced with "sensitive".
  3614  func (s JournalS3ExportDescription) GoString() string {
  3615  	return s.String()
  3616  }
  3617  
  3618  // SetExclusiveEndTime sets the ExclusiveEndTime field's value.
  3619  func (s *JournalS3ExportDescription) SetExclusiveEndTime(v time.Time) *JournalS3ExportDescription {
  3620  	s.ExclusiveEndTime = &v
  3621  	return s
  3622  }
  3623  
  3624  // SetExportCreationTime sets the ExportCreationTime field's value.
  3625  func (s *JournalS3ExportDescription) SetExportCreationTime(v time.Time) *JournalS3ExportDescription {
  3626  	s.ExportCreationTime = &v
  3627  	return s
  3628  }
  3629  
  3630  // SetExportId sets the ExportId field's value.
  3631  func (s *JournalS3ExportDescription) SetExportId(v string) *JournalS3ExportDescription {
  3632  	s.ExportId = &v
  3633  	return s
  3634  }
  3635  
  3636  // SetInclusiveStartTime sets the InclusiveStartTime field's value.
  3637  func (s *JournalS3ExportDescription) SetInclusiveStartTime(v time.Time) *JournalS3ExportDescription {
  3638  	s.InclusiveStartTime = &v
  3639  	return s
  3640  }
  3641  
  3642  // SetLedgerName sets the LedgerName field's value.
  3643  func (s *JournalS3ExportDescription) SetLedgerName(v string) *JournalS3ExportDescription {
  3644  	s.LedgerName = &v
  3645  	return s
  3646  }
  3647  
  3648  // SetRoleArn sets the RoleArn field's value.
  3649  func (s *JournalS3ExportDescription) SetRoleArn(v string) *JournalS3ExportDescription {
  3650  	s.RoleArn = &v
  3651  	return s
  3652  }
  3653  
  3654  // SetS3ExportConfiguration sets the S3ExportConfiguration field's value.
  3655  func (s *JournalS3ExportDescription) SetS3ExportConfiguration(v *S3ExportConfiguration) *JournalS3ExportDescription {
  3656  	s.S3ExportConfiguration = v
  3657  	return s
  3658  }
  3659  
  3660  // SetStatus sets the Status field's value.
  3661  func (s *JournalS3ExportDescription) SetStatus(v string) *JournalS3ExportDescription {
  3662  	s.Status = &v
  3663  	return s
  3664  }
  3665  
  3666  // The configuration settings of the Amazon Kinesis Data Streams destination
  3667  // for an Amazon QLDB journal stream.
  3668  type KinesisConfiguration struct {
  3669  	_ struct{} `type:"structure"`
  3670  
  3671  	// Enables QLDB to publish multiple data records in a single Kinesis Data Streams
  3672  	// record, increasing the number of records sent per API call.
  3673  	//
  3674  	// This option is enabled by default. Record aggregation has important implications
  3675  	// for processing records and requires de-aggregation in your stream consumer.
  3676  	// To learn more, see KPL Key Concepts (https://docs.aws.amazon.com/streams/latest/dev/kinesis-kpl-concepts.html)
  3677  	// and Consumer De-aggregation (https://docs.aws.amazon.com/streams/latest/dev/kinesis-kpl-consumer-deaggregation.html)
  3678  	// in the Amazon Kinesis Data Streams Developer Guide.
  3679  	AggregationEnabled *bool `type:"boolean"`
  3680  
  3681  	// The Amazon Resource Name (ARN) of the Kinesis Data Streams resource.
  3682  	//
  3683  	// StreamArn is a required field
  3684  	StreamArn *string `min:"20" type:"string" required:"true"`
  3685  }
  3686  
  3687  // String returns the string representation.
  3688  //
  3689  // API parameter values that are decorated as "sensitive" in the API will not
  3690  // be included in the string output. The member name will be present, but the
  3691  // value will be replaced with "sensitive".
  3692  func (s KinesisConfiguration) String() string {
  3693  	return awsutil.Prettify(s)
  3694  }
  3695  
  3696  // GoString returns the string representation.
  3697  //
  3698  // API parameter values that are decorated as "sensitive" in the API will not
  3699  // be included in the string output. The member name will be present, but the
  3700  // value will be replaced with "sensitive".
  3701  func (s KinesisConfiguration) GoString() string {
  3702  	return s.String()
  3703  }
  3704  
  3705  // Validate inspects the fields of the type to determine if they are valid.
  3706  func (s *KinesisConfiguration) Validate() error {
  3707  	invalidParams := request.ErrInvalidParams{Context: "KinesisConfiguration"}
  3708  	if s.StreamArn == nil {
  3709  		invalidParams.Add(request.NewErrParamRequired("StreamArn"))
  3710  	}
  3711  	if s.StreamArn != nil && len(*s.StreamArn) < 20 {
  3712  		invalidParams.Add(request.NewErrParamMinLen("StreamArn", 20))
  3713  	}
  3714  
  3715  	if invalidParams.Len() > 0 {
  3716  		return invalidParams
  3717  	}
  3718  	return nil
  3719  }
  3720  
  3721  // SetAggregationEnabled sets the AggregationEnabled field's value.
  3722  func (s *KinesisConfiguration) SetAggregationEnabled(v bool) *KinesisConfiguration {
  3723  	s.AggregationEnabled = &v
  3724  	return s
  3725  }
  3726  
  3727  // SetStreamArn sets the StreamArn field's value.
  3728  func (s *KinesisConfiguration) SetStreamArn(v string) *KinesisConfiguration {
  3729  	s.StreamArn = &v
  3730  	return s
  3731  }
  3732  
  3733  // Information about the encryption of data at rest in an Amazon QLDB ledger.
  3734  // This includes the current status, the key in Key Management Service (KMS),
  3735  // and when the key became inaccessible (in the case of an error).
  3736  //
  3737  // For more information, see Encryption at rest (https://docs.aws.amazon.com/qldb/latest/developerguide/encryption-at-rest.html)
  3738  // in the Amazon QLDB Developer Guide.
  3739  type LedgerEncryptionDescription struct {
  3740  	_ struct{} `type:"structure"`
  3741  
  3742  	// The current state of encryption at rest for the ledger. This can be one of
  3743  	// the following values:
  3744  	//
  3745  	//    * ENABLED: Encryption is fully enabled using the specified key.
  3746  	//
  3747  	//    * UPDATING: The ledger is actively processing the specified key change.
  3748  	//    Key changes in QLDB are asynchronous. The ledger is fully accessible without
  3749  	//    any performance impact while the key change is being processed. The amount
  3750  	//    of time it takes to update a key varies depending on the ledger size.
  3751  	//
  3752  	//    * KMS_KEY_INACCESSIBLE: The specified customer managed KMS key is not
  3753  	//    accessible, and the ledger is impaired. Either the key was disabled or
  3754  	//    deleted, or the grants on the key were revoked. When a ledger is impaired,
  3755  	//    it is not accessible and does not accept any read or write requests. An
  3756  	//    impaired ledger automatically returns to an active state after you restore
  3757  	//    the grants on the key, or re-enable the key that was disabled. However,
  3758  	//    deleting a customer managed KMS key is irreversible. After a key is deleted,
  3759  	//    you can no longer access the ledgers that are protected with that key,
  3760  	//    and the data becomes unrecoverable permanently.
  3761  	//
  3762  	// EncryptionStatus is a required field
  3763  	EncryptionStatus *string `type:"string" required:"true" enum:"EncryptionStatus"`
  3764  
  3765  	// The date and time, in epoch time format, when the KMS key first became inaccessible,
  3766  	// in the case of an error. (Epoch time format is the number of seconds that
  3767  	// have elapsed since 12:00:00 AM January 1, 1970 UTC.)
  3768  	//
  3769  	// This parameter is undefined if the KMS key is accessible.
  3770  	InaccessibleKmsKeyDateTime *time.Time `type:"timestamp"`
  3771  
  3772  	// The Amazon Resource Name (ARN) of the customer managed KMS key that the ledger
  3773  	// uses for encryption at rest. If this parameter is undefined, the ledger uses
  3774  	// an Amazon Web Services owned KMS key for encryption.
  3775  	//
  3776  	// KmsKeyArn is a required field
  3777  	KmsKeyArn *string `min:"20" type:"string" required:"true"`
  3778  }
  3779  
  3780  // String returns the string representation.
  3781  //
  3782  // API parameter values that are decorated as "sensitive" in the API will not
  3783  // be included in the string output. The member name will be present, but the
  3784  // value will be replaced with "sensitive".
  3785  func (s LedgerEncryptionDescription) String() string {
  3786  	return awsutil.Prettify(s)
  3787  }
  3788  
  3789  // GoString returns the string representation.
  3790  //
  3791  // API parameter values that are decorated as "sensitive" in the API will not
  3792  // be included in the string output. The member name will be present, but the
  3793  // value will be replaced with "sensitive".
  3794  func (s LedgerEncryptionDescription) GoString() string {
  3795  	return s.String()
  3796  }
  3797  
  3798  // SetEncryptionStatus sets the EncryptionStatus field's value.
  3799  func (s *LedgerEncryptionDescription) SetEncryptionStatus(v string) *LedgerEncryptionDescription {
  3800  	s.EncryptionStatus = &v
  3801  	return s
  3802  }
  3803  
  3804  // SetInaccessibleKmsKeyDateTime sets the InaccessibleKmsKeyDateTime field's value.
  3805  func (s *LedgerEncryptionDescription) SetInaccessibleKmsKeyDateTime(v time.Time) *LedgerEncryptionDescription {
  3806  	s.InaccessibleKmsKeyDateTime = &v
  3807  	return s
  3808  }
  3809  
  3810  // SetKmsKeyArn sets the KmsKeyArn field's value.
  3811  func (s *LedgerEncryptionDescription) SetKmsKeyArn(v string) *LedgerEncryptionDescription {
  3812  	s.KmsKeyArn = &v
  3813  	return s
  3814  }
  3815  
  3816  // Information about a ledger, including its name, state, and when it was created.
  3817  type LedgerSummary struct {
  3818  	_ struct{} `type:"structure"`
  3819  
  3820  	// The date and time, in epoch time format, when the ledger was created. (Epoch
  3821  	// time format is the number of seconds elapsed since 12:00:00 AM January 1,
  3822  	// 1970 UTC.)
  3823  	CreationDateTime *time.Time `type:"timestamp"`
  3824  
  3825  	// The name of the ledger.
  3826  	Name *string `min:"1" type:"string"`
  3827  
  3828  	// The current status of the ledger.
  3829  	State *string `type:"string" enum:"LedgerState"`
  3830  }
  3831  
  3832  // String returns the string representation.
  3833  //
  3834  // API parameter values that are decorated as "sensitive" in the API will not
  3835  // be included in the string output. The member name will be present, but the
  3836  // value will be replaced with "sensitive".
  3837  func (s LedgerSummary) String() string {
  3838  	return awsutil.Prettify(s)
  3839  }
  3840  
  3841  // GoString returns the string representation.
  3842  //
  3843  // API parameter values that are decorated as "sensitive" in the API will not
  3844  // be included in the string output. The member name will be present, but the
  3845  // value will be replaced with "sensitive".
  3846  func (s LedgerSummary) GoString() string {
  3847  	return s.String()
  3848  }
  3849  
  3850  // SetCreationDateTime sets the CreationDateTime field's value.
  3851  func (s *LedgerSummary) SetCreationDateTime(v time.Time) *LedgerSummary {
  3852  	s.CreationDateTime = &v
  3853  	return s
  3854  }
  3855  
  3856  // SetName sets the Name field's value.
  3857  func (s *LedgerSummary) SetName(v string) *LedgerSummary {
  3858  	s.Name = &v
  3859  	return s
  3860  }
  3861  
  3862  // SetState sets the State field's value.
  3863  func (s *LedgerSummary) SetState(v string) *LedgerSummary {
  3864  	s.State = &v
  3865  	return s
  3866  }
  3867  
  3868  // You have reached the limit on the maximum number of resources allowed.
  3869  type LimitExceededException struct {
  3870  	_            struct{}                  `type:"structure"`
  3871  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  3872  
  3873  	Message_ *string `locationName:"Message" type:"string"`
  3874  
  3875  	// The type of resource.
  3876  	ResourceType *string `type:"string"`
  3877  }
  3878  
  3879  // String returns the string representation.
  3880  //
  3881  // API parameter values that are decorated as "sensitive" in the API will not
  3882  // be included in the string output. The member name will be present, but the
  3883  // value will be replaced with "sensitive".
  3884  func (s LimitExceededException) String() string {
  3885  	return awsutil.Prettify(s)
  3886  }
  3887  
  3888  // GoString returns the string representation.
  3889  //
  3890  // API parameter values that are decorated as "sensitive" in the API will not
  3891  // be included in the string output. The member name will be present, but the
  3892  // value will be replaced with "sensitive".
  3893  func (s LimitExceededException) GoString() string {
  3894  	return s.String()
  3895  }
  3896  
  3897  func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
  3898  	return &LimitExceededException{
  3899  		RespMetadata: v,
  3900  	}
  3901  }
  3902  
  3903  // Code returns the exception type name.
  3904  func (s *LimitExceededException) Code() string {
  3905  	return "LimitExceededException"
  3906  }
  3907  
  3908  // Message returns the exception's message.
  3909  func (s *LimitExceededException) Message() string {
  3910  	if s.Message_ != nil {
  3911  		return *s.Message_
  3912  	}
  3913  	return ""
  3914  }
  3915  
  3916  // OrigErr always returns nil, satisfies awserr.Error interface.
  3917  func (s *LimitExceededException) OrigErr() error {
  3918  	return nil
  3919  }
  3920  
  3921  func (s *LimitExceededException) Error() string {
  3922  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  3923  }
  3924  
  3925  // Status code returns the HTTP status code for the request's response error.
  3926  func (s *LimitExceededException) StatusCode() int {
  3927  	return s.RespMetadata.StatusCode
  3928  }
  3929  
  3930  // RequestID returns the service's response RequestID for request.
  3931  func (s *LimitExceededException) RequestID() string {
  3932  	return s.RespMetadata.RequestID
  3933  }
  3934  
  3935  type ListJournalKinesisStreamsForLedgerInput struct {
  3936  	_ struct{} `type:"structure" nopayload:"true"`
  3937  
  3938  	// The name of the ledger.
  3939  	//
  3940  	// LedgerName is a required field
  3941  	LedgerName *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
  3942  
  3943  	// The maximum number of results to return in a single ListJournalKinesisStreamsForLedger
  3944  	// request. (The actual number of results returned might be fewer.)
  3945  	MaxResults *int64 `location:"querystring" locationName:"max_results" min:"1" type:"integer"`
  3946  
  3947  	// A pagination token, indicating that you want to retrieve the next page of
  3948  	// results. If you received a value for NextToken in the response from a previous
  3949  	// ListJournalKinesisStreamsForLedger call, you should use that value as input
  3950  	// here.
  3951  	NextToken *string `location:"querystring" locationName:"next_token" min:"4" type:"string"`
  3952  }
  3953  
  3954  // String returns the string representation.
  3955  //
  3956  // API parameter values that are decorated as "sensitive" in the API will not
  3957  // be included in the string output. The member name will be present, but the
  3958  // value will be replaced with "sensitive".
  3959  func (s ListJournalKinesisStreamsForLedgerInput) String() string {
  3960  	return awsutil.Prettify(s)
  3961  }
  3962  
  3963  // GoString returns the string representation.
  3964  //
  3965  // API parameter values that are decorated as "sensitive" in the API will not
  3966  // be included in the string output. The member name will be present, but the
  3967  // value will be replaced with "sensitive".
  3968  func (s ListJournalKinesisStreamsForLedgerInput) GoString() string {
  3969  	return s.String()
  3970  }
  3971  
  3972  // Validate inspects the fields of the type to determine if they are valid.
  3973  func (s *ListJournalKinesisStreamsForLedgerInput) Validate() error {
  3974  	invalidParams := request.ErrInvalidParams{Context: "ListJournalKinesisStreamsForLedgerInput"}
  3975  	if s.LedgerName == nil {
  3976  		invalidParams.Add(request.NewErrParamRequired("LedgerName"))
  3977  	}
  3978  	if s.LedgerName != nil && len(*s.LedgerName) < 1 {
  3979  		invalidParams.Add(request.NewErrParamMinLen("LedgerName", 1))
  3980  	}
  3981  	if s.MaxResults != nil && *s.MaxResults < 1 {
  3982  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  3983  	}
  3984  	if s.NextToken != nil && len(*s.NextToken) < 4 {
  3985  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
  3986  	}
  3987  
  3988  	if invalidParams.Len() > 0 {
  3989  		return invalidParams
  3990  	}
  3991  	return nil
  3992  }
  3993  
  3994  // SetLedgerName sets the LedgerName field's value.
  3995  func (s *ListJournalKinesisStreamsForLedgerInput) SetLedgerName(v string) *ListJournalKinesisStreamsForLedgerInput {
  3996  	s.LedgerName = &v
  3997  	return s
  3998  }
  3999  
  4000  // SetMaxResults sets the MaxResults field's value.
  4001  func (s *ListJournalKinesisStreamsForLedgerInput) SetMaxResults(v int64) *ListJournalKinesisStreamsForLedgerInput {
  4002  	s.MaxResults = &v
  4003  	return s
  4004  }
  4005  
  4006  // SetNextToken sets the NextToken field's value.
  4007  func (s *ListJournalKinesisStreamsForLedgerInput) SetNextToken(v string) *ListJournalKinesisStreamsForLedgerInput {
  4008  	s.NextToken = &v
  4009  	return s
  4010  }
  4011  
  4012  type ListJournalKinesisStreamsForLedgerOutput struct {
  4013  	_ struct{} `type:"structure"`
  4014  
  4015  	//    * If NextToken is empty, the last page of results has been processed and
  4016  	//    there are no more results to be retrieved.
  4017  	//
  4018  	//    * If NextToken is not empty, more results are available. To retrieve the
  4019  	//    next page of results, use the value of NextToken in a subsequent ListJournalKinesisStreamsForLedger
  4020  	//    call.
  4021  	NextToken *string `min:"4" type:"string"`
  4022  
  4023  	// The array of QLDB journal stream descriptors that are associated with the
  4024  	// given ledger.
  4025  	Streams []*JournalKinesisStreamDescription `type:"list"`
  4026  }
  4027  
  4028  // String returns the string representation.
  4029  //
  4030  // API parameter values that are decorated as "sensitive" in the API will not
  4031  // be included in the string output. The member name will be present, but the
  4032  // value will be replaced with "sensitive".
  4033  func (s ListJournalKinesisStreamsForLedgerOutput) String() string {
  4034  	return awsutil.Prettify(s)
  4035  }
  4036  
  4037  // GoString returns the string representation.
  4038  //
  4039  // API parameter values that are decorated as "sensitive" in the API will not
  4040  // be included in the string output. The member name will be present, but the
  4041  // value will be replaced with "sensitive".
  4042  func (s ListJournalKinesisStreamsForLedgerOutput) GoString() string {
  4043  	return s.String()
  4044  }
  4045  
  4046  // SetNextToken sets the NextToken field's value.
  4047  func (s *ListJournalKinesisStreamsForLedgerOutput) SetNextToken(v string) *ListJournalKinesisStreamsForLedgerOutput {
  4048  	s.NextToken = &v
  4049  	return s
  4050  }
  4051  
  4052  // SetStreams sets the Streams field's value.
  4053  func (s *ListJournalKinesisStreamsForLedgerOutput) SetStreams(v []*JournalKinesisStreamDescription) *ListJournalKinesisStreamsForLedgerOutput {
  4054  	s.Streams = v
  4055  	return s
  4056  }
  4057  
  4058  type ListJournalS3ExportsForLedgerInput struct {
  4059  	_ struct{} `type:"structure" nopayload:"true"`
  4060  
  4061  	// The maximum number of results to return in a single ListJournalS3ExportsForLedger
  4062  	// request. (The actual number of results returned might be fewer.)
  4063  	MaxResults *int64 `location:"querystring" locationName:"max_results" min:"1" type:"integer"`
  4064  
  4065  	// The name of the ledger.
  4066  	//
  4067  	// Name is a required field
  4068  	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
  4069  
  4070  	// A pagination token, indicating that you want to retrieve the next page of
  4071  	// results. If you received a value for NextToken in the response from a previous
  4072  	// ListJournalS3ExportsForLedger call, then you should use that value as input
  4073  	// here.
  4074  	NextToken *string `location:"querystring" locationName:"next_token" min:"4" type:"string"`
  4075  }
  4076  
  4077  // String returns the string representation.
  4078  //
  4079  // API parameter values that are decorated as "sensitive" in the API will not
  4080  // be included in the string output. The member name will be present, but the
  4081  // value will be replaced with "sensitive".
  4082  func (s ListJournalS3ExportsForLedgerInput) String() string {
  4083  	return awsutil.Prettify(s)
  4084  }
  4085  
  4086  // GoString returns the string representation.
  4087  //
  4088  // API parameter values that are decorated as "sensitive" in the API will not
  4089  // be included in the string output. The member name will be present, but the
  4090  // value will be replaced with "sensitive".
  4091  func (s ListJournalS3ExportsForLedgerInput) GoString() string {
  4092  	return s.String()
  4093  }
  4094  
  4095  // Validate inspects the fields of the type to determine if they are valid.
  4096  func (s *ListJournalS3ExportsForLedgerInput) Validate() error {
  4097  	invalidParams := request.ErrInvalidParams{Context: "ListJournalS3ExportsForLedgerInput"}
  4098  	if s.MaxResults != nil && *s.MaxResults < 1 {
  4099  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  4100  	}
  4101  	if s.Name == nil {
  4102  		invalidParams.Add(request.NewErrParamRequired("Name"))
  4103  	}
  4104  	if s.Name != nil && len(*s.Name) < 1 {
  4105  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  4106  	}
  4107  	if s.NextToken != nil && len(*s.NextToken) < 4 {
  4108  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
  4109  	}
  4110  
  4111  	if invalidParams.Len() > 0 {
  4112  		return invalidParams
  4113  	}
  4114  	return nil
  4115  }
  4116  
  4117  // SetMaxResults sets the MaxResults field's value.
  4118  func (s *ListJournalS3ExportsForLedgerInput) SetMaxResults(v int64) *ListJournalS3ExportsForLedgerInput {
  4119  	s.MaxResults = &v
  4120  	return s
  4121  }
  4122  
  4123  // SetName sets the Name field's value.
  4124  func (s *ListJournalS3ExportsForLedgerInput) SetName(v string) *ListJournalS3ExportsForLedgerInput {
  4125  	s.Name = &v
  4126  	return s
  4127  }
  4128  
  4129  // SetNextToken sets the NextToken field's value.
  4130  func (s *ListJournalS3ExportsForLedgerInput) SetNextToken(v string) *ListJournalS3ExportsForLedgerInput {
  4131  	s.NextToken = &v
  4132  	return s
  4133  }
  4134  
  4135  type ListJournalS3ExportsForLedgerOutput struct {
  4136  	_ struct{} `type:"structure"`
  4137  
  4138  	// The array of journal export job descriptions that are associated with the
  4139  	// specified ledger.
  4140  	JournalS3Exports []*JournalS3ExportDescription `type:"list"`
  4141  
  4142  	//    * If NextToken is empty, then the last page of results has been processed
  4143  	//    and there are no more results to be retrieved.
  4144  	//
  4145  	//    * If NextToken is not empty, then there are more results available. To
  4146  	//    retrieve the next page of results, use the value of NextToken in a subsequent
  4147  	//    ListJournalS3ExportsForLedger call.
  4148  	NextToken *string `min:"4" type:"string"`
  4149  }
  4150  
  4151  // String returns the string representation.
  4152  //
  4153  // API parameter values that are decorated as "sensitive" in the API will not
  4154  // be included in the string output. The member name will be present, but the
  4155  // value will be replaced with "sensitive".
  4156  func (s ListJournalS3ExportsForLedgerOutput) String() string {
  4157  	return awsutil.Prettify(s)
  4158  }
  4159  
  4160  // GoString returns the string representation.
  4161  //
  4162  // API parameter values that are decorated as "sensitive" in the API will not
  4163  // be included in the string output. The member name will be present, but the
  4164  // value will be replaced with "sensitive".
  4165  func (s ListJournalS3ExportsForLedgerOutput) GoString() string {
  4166  	return s.String()
  4167  }
  4168  
  4169  // SetJournalS3Exports sets the JournalS3Exports field's value.
  4170  func (s *ListJournalS3ExportsForLedgerOutput) SetJournalS3Exports(v []*JournalS3ExportDescription) *ListJournalS3ExportsForLedgerOutput {
  4171  	s.JournalS3Exports = v
  4172  	return s
  4173  }
  4174  
  4175  // SetNextToken sets the NextToken field's value.
  4176  func (s *ListJournalS3ExportsForLedgerOutput) SetNextToken(v string) *ListJournalS3ExportsForLedgerOutput {
  4177  	s.NextToken = &v
  4178  	return s
  4179  }
  4180  
  4181  type ListJournalS3ExportsInput struct {
  4182  	_ struct{} `type:"structure" nopayload:"true"`
  4183  
  4184  	// The maximum number of results to return in a single ListJournalS3Exports
  4185  	// request. (The actual number of results returned might be fewer.)
  4186  	MaxResults *int64 `location:"querystring" locationName:"max_results" min:"1" type:"integer"`
  4187  
  4188  	// A pagination token, indicating that you want to retrieve the next page of
  4189  	// results. If you received a value for NextToken in the response from a previous
  4190  	// ListJournalS3Exports call, then you should use that value as input here.
  4191  	NextToken *string `location:"querystring" locationName:"next_token" min:"4" type:"string"`
  4192  }
  4193  
  4194  // String returns the string representation.
  4195  //
  4196  // API parameter values that are decorated as "sensitive" in the API will not
  4197  // be included in the string output. The member name will be present, but the
  4198  // value will be replaced with "sensitive".
  4199  func (s ListJournalS3ExportsInput) String() string {
  4200  	return awsutil.Prettify(s)
  4201  }
  4202  
  4203  // GoString returns the string representation.
  4204  //
  4205  // API parameter values that are decorated as "sensitive" in the API will not
  4206  // be included in the string output. The member name will be present, but the
  4207  // value will be replaced with "sensitive".
  4208  func (s ListJournalS3ExportsInput) GoString() string {
  4209  	return s.String()
  4210  }
  4211  
  4212  // Validate inspects the fields of the type to determine if they are valid.
  4213  func (s *ListJournalS3ExportsInput) Validate() error {
  4214  	invalidParams := request.ErrInvalidParams{Context: "ListJournalS3ExportsInput"}
  4215  	if s.MaxResults != nil && *s.MaxResults < 1 {
  4216  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  4217  	}
  4218  	if s.NextToken != nil && len(*s.NextToken) < 4 {
  4219  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
  4220  	}
  4221  
  4222  	if invalidParams.Len() > 0 {
  4223  		return invalidParams
  4224  	}
  4225  	return nil
  4226  }
  4227  
  4228  // SetMaxResults sets the MaxResults field's value.
  4229  func (s *ListJournalS3ExportsInput) SetMaxResults(v int64) *ListJournalS3ExportsInput {
  4230  	s.MaxResults = &v
  4231  	return s
  4232  }
  4233  
  4234  // SetNextToken sets the NextToken field's value.
  4235  func (s *ListJournalS3ExportsInput) SetNextToken(v string) *ListJournalS3ExportsInput {
  4236  	s.NextToken = &v
  4237  	return s
  4238  }
  4239  
  4240  type ListJournalS3ExportsOutput struct {
  4241  	_ struct{} `type:"structure"`
  4242  
  4243  	// The array of journal export job descriptions for all ledgers that are associated
  4244  	// with the current account and Region.
  4245  	JournalS3Exports []*JournalS3ExportDescription `type:"list"`
  4246  
  4247  	//    * If NextToken is empty, then the last page of results has been processed
  4248  	//    and there are no more results to be retrieved.
  4249  	//
  4250  	//    * If NextToken is not empty, then there are more results available. To
  4251  	//    retrieve the next page of results, use the value of NextToken in a subsequent
  4252  	//    ListJournalS3Exports call.
  4253  	NextToken *string `min:"4" type:"string"`
  4254  }
  4255  
  4256  // String returns the string representation.
  4257  //
  4258  // API parameter values that are decorated as "sensitive" in the API will not
  4259  // be included in the string output. The member name will be present, but the
  4260  // value will be replaced with "sensitive".
  4261  func (s ListJournalS3ExportsOutput) String() string {
  4262  	return awsutil.Prettify(s)
  4263  }
  4264  
  4265  // GoString returns the string representation.
  4266  //
  4267  // API parameter values that are decorated as "sensitive" in the API will not
  4268  // be included in the string output. The member name will be present, but the
  4269  // value will be replaced with "sensitive".
  4270  func (s ListJournalS3ExportsOutput) GoString() string {
  4271  	return s.String()
  4272  }
  4273  
  4274  // SetJournalS3Exports sets the JournalS3Exports field's value.
  4275  func (s *ListJournalS3ExportsOutput) SetJournalS3Exports(v []*JournalS3ExportDescription) *ListJournalS3ExportsOutput {
  4276  	s.JournalS3Exports = v
  4277  	return s
  4278  }
  4279  
  4280  // SetNextToken sets the NextToken field's value.
  4281  func (s *ListJournalS3ExportsOutput) SetNextToken(v string) *ListJournalS3ExportsOutput {
  4282  	s.NextToken = &v
  4283  	return s
  4284  }
  4285  
  4286  type ListLedgersInput struct {
  4287  	_ struct{} `type:"structure" nopayload:"true"`
  4288  
  4289  	// The maximum number of results to return in a single ListLedgers request.
  4290  	// (The actual number of results returned might be fewer.)
  4291  	MaxResults *int64 `location:"querystring" locationName:"max_results" min:"1" type:"integer"`
  4292  
  4293  	// A pagination token, indicating that you want to retrieve the next page of
  4294  	// results. If you received a value for NextToken in the response from a previous
  4295  	// ListLedgers call, then you should use that value as input here.
  4296  	NextToken *string `location:"querystring" locationName:"next_token" min:"4" type:"string"`
  4297  }
  4298  
  4299  // String returns the string representation.
  4300  //
  4301  // API parameter values that are decorated as "sensitive" in the API will not
  4302  // be included in the string output. The member name will be present, but the
  4303  // value will be replaced with "sensitive".
  4304  func (s ListLedgersInput) String() string {
  4305  	return awsutil.Prettify(s)
  4306  }
  4307  
  4308  // GoString returns the string representation.
  4309  //
  4310  // API parameter values that are decorated as "sensitive" in the API will not
  4311  // be included in the string output. The member name will be present, but the
  4312  // value will be replaced with "sensitive".
  4313  func (s ListLedgersInput) GoString() string {
  4314  	return s.String()
  4315  }
  4316  
  4317  // Validate inspects the fields of the type to determine if they are valid.
  4318  func (s *ListLedgersInput) Validate() error {
  4319  	invalidParams := request.ErrInvalidParams{Context: "ListLedgersInput"}
  4320  	if s.MaxResults != nil && *s.MaxResults < 1 {
  4321  		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
  4322  	}
  4323  	if s.NextToken != nil && len(*s.NextToken) < 4 {
  4324  		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
  4325  	}
  4326  
  4327  	if invalidParams.Len() > 0 {
  4328  		return invalidParams
  4329  	}
  4330  	return nil
  4331  }
  4332  
  4333  // SetMaxResults sets the MaxResults field's value.
  4334  func (s *ListLedgersInput) SetMaxResults(v int64) *ListLedgersInput {
  4335  	s.MaxResults = &v
  4336  	return s
  4337  }
  4338  
  4339  // SetNextToken sets the NextToken field's value.
  4340  func (s *ListLedgersInput) SetNextToken(v string) *ListLedgersInput {
  4341  	s.NextToken = &v
  4342  	return s
  4343  }
  4344  
  4345  type ListLedgersOutput struct {
  4346  	_ struct{} `type:"structure"`
  4347  
  4348  	// The array of ledger summaries that are associated with the current account
  4349  	// and Region.
  4350  	Ledgers []*LedgerSummary `type:"list"`
  4351  
  4352  	// A pagination token, indicating whether there are more results available:
  4353  	//
  4354  	//    * If NextToken is empty, then the last page of results has been processed
  4355  	//    and there are no more results to be retrieved.
  4356  	//
  4357  	//    * If NextToken is not empty, then there are more results available. To
  4358  	//    retrieve the next page of results, use the value of NextToken in a subsequent
  4359  	//    ListLedgers call.
  4360  	NextToken *string `min:"4" type:"string"`
  4361  }
  4362  
  4363  // String returns the string representation.
  4364  //
  4365  // API parameter values that are decorated as "sensitive" in the API will not
  4366  // be included in the string output. The member name will be present, but the
  4367  // value will be replaced with "sensitive".
  4368  func (s ListLedgersOutput) String() string {
  4369  	return awsutil.Prettify(s)
  4370  }
  4371  
  4372  // GoString returns the string representation.
  4373  //
  4374  // API parameter values that are decorated as "sensitive" in the API will not
  4375  // be included in the string output. The member name will be present, but the
  4376  // value will be replaced with "sensitive".
  4377  func (s ListLedgersOutput) GoString() string {
  4378  	return s.String()
  4379  }
  4380  
  4381  // SetLedgers sets the Ledgers field's value.
  4382  func (s *ListLedgersOutput) SetLedgers(v []*LedgerSummary) *ListLedgersOutput {
  4383  	s.Ledgers = v
  4384  	return s
  4385  }
  4386  
  4387  // SetNextToken sets the NextToken field's value.
  4388  func (s *ListLedgersOutput) SetNextToken(v string) *ListLedgersOutput {
  4389  	s.NextToken = &v
  4390  	return s
  4391  }
  4392  
  4393  type ListTagsForResourceInput struct {
  4394  	_ struct{} `type:"structure" nopayload:"true"`
  4395  
  4396  	// The Amazon Resource Name (ARN) for which to list the tags. For example:
  4397  	//
  4398  	// arn:aws:qldb:us-east-1:123456789012:ledger/exampleLedger
  4399  	//
  4400  	// ResourceArn is a required field
  4401  	ResourceArn *string `location:"uri" locationName:"resourceArn" min:"20" type:"string" required:"true"`
  4402  }
  4403  
  4404  // String returns the string representation.
  4405  //
  4406  // API parameter values that are decorated as "sensitive" in the API will not
  4407  // be included in the string output. The member name will be present, but the
  4408  // value will be replaced with "sensitive".
  4409  func (s ListTagsForResourceInput) String() string {
  4410  	return awsutil.Prettify(s)
  4411  }
  4412  
  4413  // GoString returns the string representation.
  4414  //
  4415  // API parameter values that are decorated as "sensitive" in the API will not
  4416  // be included in the string output. The member name will be present, but the
  4417  // value will be replaced with "sensitive".
  4418  func (s ListTagsForResourceInput) GoString() string {
  4419  	return s.String()
  4420  }
  4421  
  4422  // Validate inspects the fields of the type to determine if they are valid.
  4423  func (s *ListTagsForResourceInput) Validate() error {
  4424  	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
  4425  	if s.ResourceArn == nil {
  4426  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
  4427  	}
  4428  	if s.ResourceArn != nil && len(*s.ResourceArn) < 20 {
  4429  		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 20))
  4430  	}
  4431  
  4432  	if invalidParams.Len() > 0 {
  4433  		return invalidParams
  4434  	}
  4435  	return nil
  4436  }
  4437  
  4438  // SetResourceArn sets the ResourceArn field's value.
  4439  func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
  4440  	s.ResourceArn = &v
  4441  	return s
  4442  }
  4443  
  4444  type ListTagsForResourceOutput struct {
  4445  	_ struct{} `type:"structure"`
  4446  
  4447  	// The tags that are currently associated with the specified Amazon QLDB resource.
  4448  	Tags map[string]*string `type:"map"`
  4449  }
  4450  
  4451  // String returns the string representation.
  4452  //
  4453  // API parameter values that are decorated as "sensitive" in the API will not
  4454  // be included in the string output. The member name will be present, but the
  4455  // value will be replaced with "sensitive".
  4456  func (s ListTagsForResourceOutput) String() string {
  4457  	return awsutil.Prettify(s)
  4458  }
  4459  
  4460  // GoString returns the string representation.
  4461  //
  4462  // API parameter values that are decorated as "sensitive" in the API will not
  4463  // be included in the string output. The member name will be present, but the
  4464  // value will be replaced with "sensitive".
  4465  func (s ListTagsForResourceOutput) GoString() string {
  4466  	return s.String()
  4467  }
  4468  
  4469  // SetTags sets the Tags field's value.
  4470  func (s *ListTagsForResourceOutput) SetTags(v map[string]*string) *ListTagsForResourceOutput {
  4471  	s.Tags = v
  4472  	return s
  4473  }
  4474  
  4475  // The specified resource already exists.
  4476  type ResourceAlreadyExistsException struct {
  4477  	_            struct{}                  `type:"structure"`
  4478  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  4479  
  4480  	Message_ *string `locationName:"Message" type:"string"`
  4481  
  4482  	// The name of the resource.
  4483  	ResourceName *string `type:"string"`
  4484  
  4485  	// The type of resource.
  4486  	ResourceType *string `type:"string"`
  4487  }
  4488  
  4489  // String returns the string representation.
  4490  //
  4491  // API parameter values that are decorated as "sensitive" in the API will not
  4492  // be included in the string output. The member name will be present, but the
  4493  // value will be replaced with "sensitive".
  4494  func (s ResourceAlreadyExistsException) String() string {
  4495  	return awsutil.Prettify(s)
  4496  }
  4497  
  4498  // GoString returns the string representation.
  4499  //
  4500  // API parameter values that are decorated as "sensitive" in the API will not
  4501  // be included in the string output. The member name will be present, but the
  4502  // value will be replaced with "sensitive".
  4503  func (s ResourceAlreadyExistsException) GoString() string {
  4504  	return s.String()
  4505  }
  4506  
  4507  func newErrorResourceAlreadyExistsException(v protocol.ResponseMetadata) error {
  4508  	return &ResourceAlreadyExistsException{
  4509  		RespMetadata: v,
  4510  	}
  4511  }
  4512  
  4513  // Code returns the exception type name.
  4514  func (s *ResourceAlreadyExistsException) Code() string {
  4515  	return "ResourceAlreadyExistsException"
  4516  }
  4517  
  4518  // Message returns the exception's message.
  4519  func (s *ResourceAlreadyExistsException) Message() string {
  4520  	if s.Message_ != nil {
  4521  		return *s.Message_
  4522  	}
  4523  	return ""
  4524  }
  4525  
  4526  // OrigErr always returns nil, satisfies awserr.Error interface.
  4527  func (s *ResourceAlreadyExistsException) OrigErr() error {
  4528  	return nil
  4529  }
  4530  
  4531  func (s *ResourceAlreadyExistsException) Error() string {
  4532  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  4533  }
  4534  
  4535  // Status code returns the HTTP status code for the request's response error.
  4536  func (s *ResourceAlreadyExistsException) StatusCode() int {
  4537  	return s.RespMetadata.StatusCode
  4538  }
  4539  
  4540  // RequestID returns the service's response RequestID for request.
  4541  func (s *ResourceAlreadyExistsException) RequestID() string {
  4542  	return s.RespMetadata.RequestID
  4543  }
  4544  
  4545  // The specified resource can't be modified at this time.
  4546  type ResourceInUseException struct {
  4547  	_            struct{}                  `type:"structure"`
  4548  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  4549  
  4550  	Message_ *string `locationName:"Message" type:"string"`
  4551  
  4552  	// The name of the resource.
  4553  	ResourceName *string `type:"string"`
  4554  
  4555  	// The type of resource.
  4556  	ResourceType *string `type:"string"`
  4557  }
  4558  
  4559  // String returns the string representation.
  4560  //
  4561  // API parameter values that are decorated as "sensitive" in the API will not
  4562  // be included in the string output. The member name will be present, but the
  4563  // value will be replaced with "sensitive".
  4564  func (s ResourceInUseException) String() string {
  4565  	return awsutil.Prettify(s)
  4566  }
  4567  
  4568  // GoString returns the string representation.
  4569  //
  4570  // API parameter values that are decorated as "sensitive" in the API will not
  4571  // be included in the string output. The member name will be present, but the
  4572  // value will be replaced with "sensitive".
  4573  func (s ResourceInUseException) GoString() string {
  4574  	return s.String()
  4575  }
  4576  
  4577  func newErrorResourceInUseException(v protocol.ResponseMetadata) error {
  4578  	return &ResourceInUseException{
  4579  		RespMetadata: v,
  4580  	}
  4581  }
  4582  
  4583  // Code returns the exception type name.
  4584  func (s *ResourceInUseException) Code() string {
  4585  	return "ResourceInUseException"
  4586  }
  4587  
  4588  // Message returns the exception's message.
  4589  func (s *ResourceInUseException) Message() string {
  4590  	if s.Message_ != nil {
  4591  		return *s.Message_
  4592  	}
  4593  	return ""
  4594  }
  4595  
  4596  // OrigErr always returns nil, satisfies awserr.Error interface.
  4597  func (s *ResourceInUseException) OrigErr() error {
  4598  	return nil
  4599  }
  4600  
  4601  func (s *ResourceInUseException) Error() string {
  4602  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  4603  }
  4604  
  4605  // Status code returns the HTTP status code for the request's response error.
  4606  func (s *ResourceInUseException) StatusCode() int {
  4607  	return s.RespMetadata.StatusCode
  4608  }
  4609  
  4610  // RequestID returns the service's response RequestID for request.
  4611  func (s *ResourceInUseException) RequestID() string {
  4612  	return s.RespMetadata.RequestID
  4613  }
  4614  
  4615  // The specified resource doesn't exist.
  4616  type ResourceNotFoundException struct {
  4617  	_            struct{}                  `type:"structure"`
  4618  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  4619  
  4620  	Message_ *string `locationName:"Message" type:"string"`
  4621  
  4622  	// The name of the resource.
  4623  	ResourceName *string `type:"string"`
  4624  
  4625  	// The type of resource.
  4626  	ResourceType *string `type:"string"`
  4627  }
  4628  
  4629  // String returns the string representation.
  4630  //
  4631  // API parameter values that are decorated as "sensitive" in the API will not
  4632  // be included in the string output. The member name will be present, but the
  4633  // value will be replaced with "sensitive".
  4634  func (s ResourceNotFoundException) String() string {
  4635  	return awsutil.Prettify(s)
  4636  }
  4637  
  4638  // GoString returns the string representation.
  4639  //
  4640  // API parameter values that are decorated as "sensitive" in the API will not
  4641  // be included in the string output. The member name will be present, but the
  4642  // value will be replaced with "sensitive".
  4643  func (s ResourceNotFoundException) GoString() string {
  4644  	return s.String()
  4645  }
  4646  
  4647  func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
  4648  	return &ResourceNotFoundException{
  4649  		RespMetadata: v,
  4650  	}
  4651  }
  4652  
  4653  // Code returns the exception type name.
  4654  func (s *ResourceNotFoundException) Code() string {
  4655  	return "ResourceNotFoundException"
  4656  }
  4657  
  4658  // Message returns the exception's message.
  4659  func (s *ResourceNotFoundException) Message() string {
  4660  	if s.Message_ != nil {
  4661  		return *s.Message_
  4662  	}
  4663  	return ""
  4664  }
  4665  
  4666  // OrigErr always returns nil, satisfies awserr.Error interface.
  4667  func (s *ResourceNotFoundException) OrigErr() error {
  4668  	return nil
  4669  }
  4670  
  4671  func (s *ResourceNotFoundException) Error() string {
  4672  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  4673  }
  4674  
  4675  // Status code returns the HTTP status code for the request's response error.
  4676  func (s *ResourceNotFoundException) StatusCode() int {
  4677  	return s.RespMetadata.StatusCode
  4678  }
  4679  
  4680  // RequestID returns the service's response RequestID for request.
  4681  func (s *ResourceNotFoundException) RequestID() string {
  4682  	return s.RespMetadata.RequestID
  4683  }
  4684  
  4685  // The operation failed because a condition wasn't satisfied in advance.
  4686  type ResourcePreconditionNotMetException struct {
  4687  	_            struct{}                  `type:"structure"`
  4688  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  4689  
  4690  	Message_ *string `locationName:"Message" type:"string"`
  4691  
  4692  	// The name of the resource.
  4693  	ResourceName *string `type:"string"`
  4694  
  4695  	// The type of resource.
  4696  	ResourceType *string `type:"string"`
  4697  }
  4698  
  4699  // String returns the string representation.
  4700  //
  4701  // API parameter values that are decorated as "sensitive" in the API will not
  4702  // be included in the string output. The member name will be present, but the
  4703  // value will be replaced with "sensitive".
  4704  func (s ResourcePreconditionNotMetException) String() string {
  4705  	return awsutil.Prettify(s)
  4706  }
  4707  
  4708  // GoString returns the string representation.
  4709  //
  4710  // API parameter values that are decorated as "sensitive" in the API will not
  4711  // be included in the string output. The member name will be present, but the
  4712  // value will be replaced with "sensitive".
  4713  func (s ResourcePreconditionNotMetException) GoString() string {
  4714  	return s.String()
  4715  }
  4716  
  4717  func newErrorResourcePreconditionNotMetException(v protocol.ResponseMetadata) error {
  4718  	return &ResourcePreconditionNotMetException{
  4719  		RespMetadata: v,
  4720  	}
  4721  }
  4722  
  4723  // Code returns the exception type name.
  4724  func (s *ResourcePreconditionNotMetException) Code() string {
  4725  	return "ResourcePreconditionNotMetException"
  4726  }
  4727  
  4728  // Message returns the exception's message.
  4729  func (s *ResourcePreconditionNotMetException) Message() string {
  4730  	if s.Message_ != nil {
  4731  		return *s.Message_
  4732  	}
  4733  	return ""
  4734  }
  4735  
  4736  // OrigErr always returns nil, satisfies awserr.Error interface.
  4737  func (s *ResourcePreconditionNotMetException) OrigErr() error {
  4738  	return nil
  4739  }
  4740  
  4741  func (s *ResourcePreconditionNotMetException) Error() string {
  4742  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  4743  }
  4744  
  4745  // Status code returns the HTTP status code for the request's response error.
  4746  func (s *ResourcePreconditionNotMetException) StatusCode() int {
  4747  	return s.RespMetadata.StatusCode
  4748  }
  4749  
  4750  // RequestID returns the service's response RequestID for request.
  4751  func (s *ResourcePreconditionNotMetException) RequestID() string {
  4752  	return s.RespMetadata.RequestID
  4753  }
  4754  
  4755  // The encryption settings that are used by a journal export job to write data
  4756  // in an Amazon Simple Storage Service (Amazon S3) bucket.
  4757  type S3EncryptionConfiguration struct {
  4758  	_ struct{} `type:"structure"`
  4759  
  4760  	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) in
  4761  	// Key Management Service (KMS). Amazon S3 does not support asymmetric CMKs.
  4762  	//
  4763  	// You must provide a KmsKeyArn if you specify SSE_KMS as the ObjectEncryptionType.
  4764  	//
  4765  	// KmsKeyArn is not required if you specify SSE_S3 as the ObjectEncryptionType.
  4766  	KmsKeyArn *string `min:"20" type:"string"`
  4767  
  4768  	// The Amazon S3 object encryption type.
  4769  	//
  4770  	// To learn more about server-side encryption options in Amazon S3, see Protecting
  4771  	// Data Using Server-Side Encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html)
  4772  	// in the Amazon S3 Developer Guide.
  4773  	//
  4774  	// ObjectEncryptionType is a required field
  4775  	ObjectEncryptionType *string `type:"string" required:"true" enum:"S3ObjectEncryptionType"`
  4776  }
  4777  
  4778  // String returns the string representation.
  4779  //
  4780  // API parameter values that are decorated as "sensitive" in the API will not
  4781  // be included in the string output. The member name will be present, but the
  4782  // value will be replaced with "sensitive".
  4783  func (s S3EncryptionConfiguration) String() string {
  4784  	return awsutil.Prettify(s)
  4785  }
  4786  
  4787  // GoString returns the string representation.
  4788  //
  4789  // API parameter values that are decorated as "sensitive" in the API will not
  4790  // be included in the string output. The member name will be present, but the
  4791  // value will be replaced with "sensitive".
  4792  func (s S3EncryptionConfiguration) GoString() string {
  4793  	return s.String()
  4794  }
  4795  
  4796  // Validate inspects the fields of the type to determine if they are valid.
  4797  func (s *S3EncryptionConfiguration) Validate() error {
  4798  	invalidParams := request.ErrInvalidParams{Context: "S3EncryptionConfiguration"}
  4799  	if s.KmsKeyArn != nil && len(*s.KmsKeyArn) < 20 {
  4800  		invalidParams.Add(request.NewErrParamMinLen("KmsKeyArn", 20))
  4801  	}
  4802  	if s.ObjectEncryptionType == nil {
  4803  		invalidParams.Add(request.NewErrParamRequired("ObjectEncryptionType"))
  4804  	}
  4805  
  4806  	if invalidParams.Len() > 0 {
  4807  		return invalidParams
  4808  	}
  4809  	return nil
  4810  }
  4811  
  4812  // SetKmsKeyArn sets the KmsKeyArn field's value.
  4813  func (s *S3EncryptionConfiguration) SetKmsKeyArn(v string) *S3EncryptionConfiguration {
  4814  	s.KmsKeyArn = &v
  4815  	return s
  4816  }
  4817  
  4818  // SetObjectEncryptionType sets the ObjectEncryptionType field's value.
  4819  func (s *S3EncryptionConfiguration) SetObjectEncryptionType(v string) *S3EncryptionConfiguration {
  4820  	s.ObjectEncryptionType = &v
  4821  	return s
  4822  }
  4823  
  4824  // The Amazon Simple Storage Service (Amazon S3) bucket location in which a
  4825  // journal export job writes the journal contents.
  4826  type S3ExportConfiguration struct {
  4827  	_ struct{} `type:"structure"`
  4828  
  4829  	// The Amazon S3 bucket name in which a journal export job writes the journal
  4830  	// contents.
  4831  	//
  4832  	// The bucket name must comply with the Amazon S3 bucket naming conventions.
  4833  	// For more information, see Bucket Restrictions and Limitations (https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html)
  4834  	// in the Amazon S3 Developer Guide.
  4835  	//
  4836  	// Bucket is a required field
  4837  	Bucket *string `min:"3" type:"string" required:"true"`
  4838  
  4839  	// The encryption settings that are used by a journal export job to write data
  4840  	// in an Amazon S3 bucket.
  4841  	//
  4842  	// EncryptionConfiguration is a required field
  4843  	EncryptionConfiguration *S3EncryptionConfiguration `type:"structure" required:"true"`
  4844  
  4845  	// The prefix for the Amazon S3 bucket in which a journal export job writes
  4846  	// the journal contents.
  4847  	//
  4848  	// The prefix must comply with Amazon S3 key naming rules and restrictions.
  4849  	// For more information, see Object Key and Metadata (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html)
  4850  	// in the Amazon S3 Developer Guide.
  4851  	//
  4852  	// The following are examples of valid Prefix values:
  4853  	//
  4854  	//    * JournalExports-ForMyLedger/Testing/
  4855  	//
  4856  	//    * JournalExports
  4857  	//
  4858  	//    * My:Tests/
  4859  	//
  4860  	// Prefix is a required field
  4861  	Prefix *string `type:"string" required:"true"`
  4862  }
  4863  
  4864  // String returns the string representation.
  4865  //
  4866  // API parameter values that are decorated as "sensitive" in the API will not
  4867  // be included in the string output. The member name will be present, but the
  4868  // value will be replaced with "sensitive".
  4869  func (s S3ExportConfiguration) String() string {
  4870  	return awsutil.Prettify(s)
  4871  }
  4872  
  4873  // GoString returns the string representation.
  4874  //
  4875  // API parameter values that are decorated as "sensitive" in the API will not
  4876  // be included in the string output. The member name will be present, but the
  4877  // value will be replaced with "sensitive".
  4878  func (s S3ExportConfiguration) GoString() string {
  4879  	return s.String()
  4880  }
  4881  
  4882  // Validate inspects the fields of the type to determine if they are valid.
  4883  func (s *S3ExportConfiguration) Validate() error {
  4884  	invalidParams := request.ErrInvalidParams{Context: "S3ExportConfiguration"}
  4885  	if s.Bucket == nil {
  4886  		invalidParams.Add(request.NewErrParamRequired("Bucket"))
  4887  	}
  4888  	if s.Bucket != nil && len(*s.Bucket) < 3 {
  4889  		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
  4890  	}
  4891  	if s.EncryptionConfiguration == nil {
  4892  		invalidParams.Add(request.NewErrParamRequired("EncryptionConfiguration"))
  4893  	}
  4894  	if s.Prefix == nil {
  4895  		invalidParams.Add(request.NewErrParamRequired("Prefix"))
  4896  	}
  4897  	if s.EncryptionConfiguration != nil {
  4898  		if err := s.EncryptionConfiguration.Validate(); err != nil {
  4899  			invalidParams.AddNested("EncryptionConfiguration", err.(request.ErrInvalidParams))
  4900  		}
  4901  	}
  4902  
  4903  	if invalidParams.Len() > 0 {
  4904  		return invalidParams
  4905  	}
  4906  	return nil
  4907  }
  4908  
  4909  // SetBucket sets the Bucket field's value.
  4910  func (s *S3ExportConfiguration) SetBucket(v string) *S3ExportConfiguration {
  4911  	s.Bucket = &v
  4912  	return s
  4913  }
  4914  
  4915  // SetEncryptionConfiguration sets the EncryptionConfiguration field's value.
  4916  func (s *S3ExportConfiguration) SetEncryptionConfiguration(v *S3EncryptionConfiguration) *S3ExportConfiguration {
  4917  	s.EncryptionConfiguration = v
  4918  	return s
  4919  }
  4920  
  4921  // SetPrefix sets the Prefix field's value.
  4922  func (s *S3ExportConfiguration) SetPrefix(v string) *S3ExportConfiguration {
  4923  	s.Prefix = &v
  4924  	return s
  4925  }
  4926  
  4927  type StreamJournalToKinesisInput struct {
  4928  	_ struct{} `type:"structure"`
  4929  
  4930  	// The exclusive date and time that specifies when the stream ends. If you don't
  4931  	// define this parameter, the stream runs indefinitely until you cancel it.
  4932  	//
  4933  	// The ExclusiveEndTime must be in ISO 8601 date and time format and in Universal
  4934  	// Coordinated Time (UTC). For example: 2019-06-13T21:36:34Z.
  4935  	ExclusiveEndTime *time.Time `type:"timestamp"`
  4936  
  4937  	// The inclusive start date and time from which to start streaming journal data.
  4938  	// This parameter must be in ISO 8601 date and time format and in Universal
  4939  	// Coordinated Time (UTC). For example: 2019-06-13T21:36:34Z.
  4940  	//
  4941  	// The InclusiveStartTime cannot be in the future and must be before ExclusiveEndTime.
  4942  	//
  4943  	// If you provide an InclusiveStartTime that is before the ledger's CreationDateTime,
  4944  	// QLDB effectively defaults it to the ledger's CreationDateTime.
  4945  	//
  4946  	// InclusiveStartTime is a required field
  4947  	InclusiveStartTime *time.Time `type:"timestamp" required:"true"`
  4948  
  4949  	// The configuration settings of the Kinesis Data Streams destination for your
  4950  	// stream request.
  4951  	//
  4952  	// KinesisConfiguration is a required field
  4953  	KinesisConfiguration *KinesisConfiguration `type:"structure" required:"true"`
  4954  
  4955  	// The name of the ledger.
  4956  	//
  4957  	// LedgerName is a required field
  4958  	LedgerName *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
  4959  
  4960  	// The Amazon Resource Name (ARN) of the IAM role that grants QLDB permissions
  4961  	// for a journal stream to write data records to a Kinesis Data Streams resource.
  4962  	//
  4963  	// RoleArn is a required field
  4964  	RoleArn *string `min:"20" type:"string" required:"true"`
  4965  
  4966  	// The name that you want to assign to the QLDB journal stream. User-defined
  4967  	// names can help identify and indicate the purpose of a stream.
  4968  	//
  4969  	// Your stream name must be unique among other active streams for a given ledger.
  4970  	// Stream names have the same naming constraints as ledger names, as defined
  4971  	// in Quotas in Amazon QLDB (https://docs.aws.amazon.com/qldb/latest/developerguide/limits.html#limits.naming)
  4972  	// in the Amazon QLDB Developer Guide.
  4973  	//
  4974  	// StreamName is a required field
  4975  	StreamName *string `min:"1" type:"string" required:"true"`
  4976  
  4977  	// The key-value pairs to add as tags to the stream that you want to create.
  4978  	// Tag keys are case sensitive. Tag values are case sensitive and can be null.
  4979  	Tags map[string]*string `type:"map"`
  4980  }
  4981  
  4982  // String returns the string representation.
  4983  //
  4984  // API parameter values that are decorated as "sensitive" in the API will not
  4985  // be included in the string output. The member name will be present, but the
  4986  // value will be replaced with "sensitive".
  4987  func (s StreamJournalToKinesisInput) String() string {
  4988  	return awsutil.Prettify(s)
  4989  }
  4990  
  4991  // GoString returns the string representation.
  4992  //
  4993  // API parameter values that are decorated as "sensitive" in the API will not
  4994  // be included in the string output. The member name will be present, but the
  4995  // value will be replaced with "sensitive".
  4996  func (s StreamJournalToKinesisInput) GoString() string {
  4997  	return s.String()
  4998  }
  4999  
  5000  // Validate inspects the fields of the type to determine if they are valid.
  5001  func (s *StreamJournalToKinesisInput) Validate() error {
  5002  	invalidParams := request.ErrInvalidParams{Context: "StreamJournalToKinesisInput"}
  5003  	if s.InclusiveStartTime == nil {
  5004  		invalidParams.Add(request.NewErrParamRequired("InclusiveStartTime"))
  5005  	}
  5006  	if s.KinesisConfiguration == nil {
  5007  		invalidParams.Add(request.NewErrParamRequired("KinesisConfiguration"))
  5008  	}
  5009  	if s.LedgerName == nil {
  5010  		invalidParams.Add(request.NewErrParamRequired("LedgerName"))
  5011  	}
  5012  	if s.LedgerName != nil && len(*s.LedgerName) < 1 {
  5013  		invalidParams.Add(request.NewErrParamMinLen("LedgerName", 1))
  5014  	}
  5015  	if s.RoleArn == nil {
  5016  		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
  5017  	}
  5018  	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
  5019  		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
  5020  	}
  5021  	if s.StreamName == nil {
  5022  		invalidParams.Add(request.NewErrParamRequired("StreamName"))
  5023  	}
  5024  	if s.StreamName != nil && len(*s.StreamName) < 1 {
  5025  		invalidParams.Add(request.NewErrParamMinLen("StreamName", 1))
  5026  	}
  5027  	if s.KinesisConfiguration != nil {
  5028  		if err := s.KinesisConfiguration.Validate(); err != nil {
  5029  			invalidParams.AddNested("KinesisConfiguration", err.(request.ErrInvalidParams))
  5030  		}
  5031  	}
  5032  
  5033  	if invalidParams.Len() > 0 {
  5034  		return invalidParams
  5035  	}
  5036  	return nil
  5037  }
  5038  
  5039  // SetExclusiveEndTime sets the ExclusiveEndTime field's value.
  5040  func (s *StreamJournalToKinesisInput) SetExclusiveEndTime(v time.Time) *StreamJournalToKinesisInput {
  5041  	s.ExclusiveEndTime = &v
  5042  	return s
  5043  }
  5044  
  5045  // SetInclusiveStartTime sets the InclusiveStartTime field's value.
  5046  func (s *StreamJournalToKinesisInput) SetInclusiveStartTime(v time.Time) *StreamJournalToKinesisInput {
  5047  	s.InclusiveStartTime = &v
  5048  	return s
  5049  }
  5050  
  5051  // SetKinesisConfiguration sets the KinesisConfiguration field's value.
  5052  func (s *StreamJournalToKinesisInput) SetKinesisConfiguration(v *KinesisConfiguration) *StreamJournalToKinesisInput {
  5053  	s.KinesisConfiguration = v
  5054  	return s
  5055  }
  5056  
  5057  // SetLedgerName sets the LedgerName field's value.
  5058  func (s *StreamJournalToKinesisInput) SetLedgerName(v string) *StreamJournalToKinesisInput {
  5059  	s.LedgerName = &v
  5060  	return s
  5061  }
  5062  
  5063  // SetRoleArn sets the RoleArn field's value.
  5064  func (s *StreamJournalToKinesisInput) SetRoleArn(v string) *StreamJournalToKinesisInput {
  5065  	s.RoleArn = &v
  5066  	return s
  5067  }
  5068  
  5069  // SetStreamName sets the StreamName field's value.
  5070  func (s *StreamJournalToKinesisInput) SetStreamName(v string) *StreamJournalToKinesisInput {
  5071  	s.StreamName = &v
  5072  	return s
  5073  }
  5074  
  5075  // SetTags sets the Tags field's value.
  5076  func (s *StreamJournalToKinesisInput) SetTags(v map[string]*string) *StreamJournalToKinesisInput {
  5077  	s.Tags = v
  5078  	return s
  5079  }
  5080  
  5081  type StreamJournalToKinesisOutput struct {
  5082  	_ struct{} `type:"structure"`
  5083  
  5084  	// The UUID (represented in Base62-encoded text) that QLDB assigns to each QLDB
  5085  	// journal stream.
  5086  	StreamId *string `min:"22" type:"string"`
  5087  }
  5088  
  5089  // String returns the string representation.
  5090  //
  5091  // API parameter values that are decorated as "sensitive" in the API will not
  5092  // be included in the string output. The member name will be present, but the
  5093  // value will be replaced with "sensitive".
  5094  func (s StreamJournalToKinesisOutput) String() string {
  5095  	return awsutil.Prettify(s)
  5096  }
  5097  
  5098  // GoString returns the string representation.
  5099  //
  5100  // API parameter values that are decorated as "sensitive" in the API will not
  5101  // be included in the string output. The member name will be present, but the
  5102  // value will be replaced with "sensitive".
  5103  func (s StreamJournalToKinesisOutput) GoString() string {
  5104  	return s.String()
  5105  }
  5106  
  5107  // SetStreamId sets the StreamId field's value.
  5108  func (s *StreamJournalToKinesisOutput) SetStreamId(v string) *StreamJournalToKinesisOutput {
  5109  	s.StreamId = &v
  5110  	return s
  5111  }
  5112  
  5113  type TagResourceInput struct {
  5114  	_ struct{} `type:"structure"`
  5115  
  5116  	// The Amazon Resource Name (ARN) to which you want to add the tags. For example:
  5117  	//
  5118  	// arn:aws:qldb:us-east-1:123456789012:ledger/exampleLedger
  5119  	//
  5120  	// ResourceArn is a required field
  5121  	ResourceArn *string `location:"uri" locationName:"resourceArn" min:"20" type:"string" required:"true"`
  5122  
  5123  	// The key-value pairs to add as tags to the specified QLDB resource. Tag keys
  5124  	// are case sensitive. If you specify a key that already exists for the resource,
  5125  	// your request fails and returns an error. Tag values are case sensitive and
  5126  	// can be null.
  5127  	//
  5128  	// Tags is a required field
  5129  	Tags map[string]*string `type:"map" required:"true"`
  5130  }
  5131  
  5132  // String returns the string representation.
  5133  //
  5134  // API parameter values that are decorated as "sensitive" in the API will not
  5135  // be included in the string output. The member name will be present, but the
  5136  // value will be replaced with "sensitive".
  5137  func (s TagResourceInput) String() string {
  5138  	return awsutil.Prettify(s)
  5139  }
  5140  
  5141  // GoString returns the string representation.
  5142  //
  5143  // API parameter values that are decorated as "sensitive" in the API will not
  5144  // be included in the string output. The member name will be present, but the
  5145  // value will be replaced with "sensitive".
  5146  func (s TagResourceInput) GoString() string {
  5147  	return s.String()
  5148  }
  5149  
  5150  // Validate inspects the fields of the type to determine if they are valid.
  5151  func (s *TagResourceInput) Validate() error {
  5152  	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
  5153  	if s.ResourceArn == nil {
  5154  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
  5155  	}
  5156  	if s.ResourceArn != nil && len(*s.ResourceArn) < 20 {
  5157  		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 20))
  5158  	}
  5159  	if s.Tags == nil {
  5160  		invalidParams.Add(request.NewErrParamRequired("Tags"))
  5161  	}
  5162  
  5163  	if invalidParams.Len() > 0 {
  5164  		return invalidParams
  5165  	}
  5166  	return nil
  5167  }
  5168  
  5169  // SetResourceArn sets the ResourceArn field's value.
  5170  func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
  5171  	s.ResourceArn = &v
  5172  	return s
  5173  }
  5174  
  5175  // SetTags sets the Tags field's value.
  5176  func (s *TagResourceInput) SetTags(v map[string]*string) *TagResourceInput {
  5177  	s.Tags = v
  5178  	return s
  5179  }
  5180  
  5181  type TagResourceOutput struct {
  5182  	_ struct{} `type:"structure" nopayload:"true"`
  5183  }
  5184  
  5185  // String returns the string representation.
  5186  //
  5187  // API parameter values that are decorated as "sensitive" in the API will not
  5188  // be included in the string output. The member name will be present, but the
  5189  // value will be replaced with "sensitive".
  5190  func (s TagResourceOutput) String() string {
  5191  	return awsutil.Prettify(s)
  5192  }
  5193  
  5194  // GoString returns the string representation.
  5195  //
  5196  // API parameter values that are decorated as "sensitive" in the API will not
  5197  // be included in the string output. The member name will be present, but the
  5198  // value will be replaced with "sensitive".
  5199  func (s TagResourceOutput) GoString() string {
  5200  	return s.String()
  5201  }
  5202  
  5203  type UntagResourceInput struct {
  5204  	_ struct{} `type:"structure" nopayload:"true"`
  5205  
  5206  	// The Amazon Resource Name (ARN) from which to remove the tags. For example:
  5207  	//
  5208  	// arn:aws:qldb:us-east-1:123456789012:ledger/exampleLedger
  5209  	//
  5210  	// ResourceArn is a required field
  5211  	ResourceArn *string `location:"uri" locationName:"resourceArn" min:"20" type:"string" required:"true"`
  5212  
  5213  	// The list of tag keys to remove.
  5214  	//
  5215  	// TagKeys is a required field
  5216  	TagKeys []*string `location:"querystring" locationName:"tagKeys" type:"list" required:"true"`
  5217  }
  5218  
  5219  // String returns the string representation.
  5220  //
  5221  // API parameter values that are decorated as "sensitive" in the API will not
  5222  // be included in the string output. The member name will be present, but the
  5223  // value will be replaced with "sensitive".
  5224  func (s UntagResourceInput) String() string {
  5225  	return awsutil.Prettify(s)
  5226  }
  5227  
  5228  // GoString returns the string representation.
  5229  //
  5230  // API parameter values that are decorated as "sensitive" in the API will not
  5231  // be included in the string output. The member name will be present, but the
  5232  // value will be replaced with "sensitive".
  5233  func (s UntagResourceInput) GoString() string {
  5234  	return s.String()
  5235  }
  5236  
  5237  // Validate inspects the fields of the type to determine if they are valid.
  5238  func (s *UntagResourceInput) Validate() error {
  5239  	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
  5240  	if s.ResourceArn == nil {
  5241  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
  5242  	}
  5243  	if s.ResourceArn != nil && len(*s.ResourceArn) < 20 {
  5244  		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 20))
  5245  	}
  5246  	if s.TagKeys == nil {
  5247  		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
  5248  	}
  5249  
  5250  	if invalidParams.Len() > 0 {
  5251  		return invalidParams
  5252  	}
  5253  	return nil
  5254  }
  5255  
  5256  // SetResourceArn sets the ResourceArn field's value.
  5257  func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
  5258  	s.ResourceArn = &v
  5259  	return s
  5260  }
  5261  
  5262  // SetTagKeys sets the TagKeys field's value.
  5263  func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
  5264  	s.TagKeys = v
  5265  	return s
  5266  }
  5267  
  5268  type UntagResourceOutput struct {
  5269  	_ struct{} `type:"structure" nopayload:"true"`
  5270  }
  5271  
  5272  // String returns the string representation.
  5273  //
  5274  // API parameter values that are decorated as "sensitive" in the API will not
  5275  // be included in the string output. The member name will be present, but the
  5276  // value will be replaced with "sensitive".
  5277  func (s UntagResourceOutput) String() string {
  5278  	return awsutil.Prettify(s)
  5279  }
  5280  
  5281  // GoString returns the string representation.
  5282  //
  5283  // API parameter values that are decorated as "sensitive" in the API will not
  5284  // be included in the string output. The member name will be present, but the
  5285  // value will be replaced with "sensitive".
  5286  func (s UntagResourceOutput) GoString() string {
  5287  	return s.String()
  5288  }
  5289  
  5290  type UpdateLedgerInput struct {
  5291  	_ struct{} `type:"structure"`
  5292  
  5293  	// The flag that prevents a ledger from being deleted by any user. If not provided
  5294  	// on ledger creation, this feature is enabled (true) by default.
  5295  	//
  5296  	// If deletion protection is enabled, you must first disable it before you can
  5297  	// delete the ledger. You can disable it by calling the UpdateLedger operation
  5298  	// to set the flag to false.
  5299  	DeletionProtection *bool `type:"boolean"`
  5300  
  5301  	// The key in Key Management Service (KMS) to use for encryption of data at
  5302  	// rest in the ledger. For more information, see Encryption at rest (https://docs.aws.amazon.com/qldb/latest/developerguide/encryption-at-rest.html)
  5303  	// in the Amazon QLDB Developer Guide.
  5304  	//
  5305  	// Use one of the following options to specify this parameter:
  5306  	//
  5307  	//    * AWS_OWNED_KMS_KEY: Use an KMS key that is owned and managed by Amazon
  5308  	//    Web Services on your behalf.
  5309  	//
  5310  	//    * Undefined: Make no changes to the KMS key of the ledger.
  5311  	//
  5312  	//    * A valid symmetric customer managed KMS key: Use the specified KMS key
  5313  	//    in your account that you create, own, and manage. Amazon QLDB does not
  5314  	//    support asymmetric keys. For more information, see Using symmetric and
  5315  	//    asymmetric keys (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html)
  5316  	//    in the Key Management Service Developer Guide.
  5317  	//
  5318  	// To specify a customer managed KMS key, you can use its key ID, Amazon Resource
  5319  	// Name (ARN), alias name, or alias ARN. When using an alias name, prefix it
  5320  	// with "alias/". To specify a key in a different account, you must use the
  5321  	// key ARN or alias ARN.
  5322  	//
  5323  	// For example:
  5324  	//
  5325  	//    * Key ID: 1234abcd-12ab-34cd-56ef-1234567890ab
  5326  	//
  5327  	//    * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
  5328  	//
  5329  	//    * Alias name: alias/ExampleAlias
  5330  	//
  5331  	//    * Alias ARN: arn:aws:kms:us-east-2:111122223333:alias/ExampleAlias
  5332  	//
  5333  	// For more information, see Key identifiers (KeyId) (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id)
  5334  	// in the Key Management Service Developer Guide.
  5335  	KmsKey *string `type:"string"`
  5336  
  5337  	// The name of the ledger.
  5338  	//
  5339  	// Name is a required field
  5340  	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
  5341  }
  5342  
  5343  // String returns the string representation.
  5344  //
  5345  // API parameter values that are decorated as "sensitive" in the API will not
  5346  // be included in the string output. The member name will be present, but the
  5347  // value will be replaced with "sensitive".
  5348  func (s UpdateLedgerInput) String() string {
  5349  	return awsutil.Prettify(s)
  5350  }
  5351  
  5352  // GoString returns the string representation.
  5353  //
  5354  // API parameter values that are decorated as "sensitive" in the API will not
  5355  // be included in the string output. The member name will be present, but the
  5356  // value will be replaced with "sensitive".
  5357  func (s UpdateLedgerInput) GoString() string {
  5358  	return s.String()
  5359  }
  5360  
  5361  // Validate inspects the fields of the type to determine if they are valid.
  5362  func (s *UpdateLedgerInput) Validate() error {
  5363  	invalidParams := request.ErrInvalidParams{Context: "UpdateLedgerInput"}
  5364  	if s.Name == nil {
  5365  		invalidParams.Add(request.NewErrParamRequired("Name"))
  5366  	}
  5367  	if s.Name != nil && len(*s.Name) < 1 {
  5368  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  5369  	}
  5370  
  5371  	if invalidParams.Len() > 0 {
  5372  		return invalidParams
  5373  	}
  5374  	return nil
  5375  }
  5376  
  5377  // SetDeletionProtection sets the DeletionProtection field's value.
  5378  func (s *UpdateLedgerInput) SetDeletionProtection(v bool) *UpdateLedgerInput {
  5379  	s.DeletionProtection = &v
  5380  	return s
  5381  }
  5382  
  5383  // SetKmsKey sets the KmsKey field's value.
  5384  func (s *UpdateLedgerInput) SetKmsKey(v string) *UpdateLedgerInput {
  5385  	s.KmsKey = &v
  5386  	return s
  5387  }
  5388  
  5389  // SetName sets the Name field's value.
  5390  func (s *UpdateLedgerInput) SetName(v string) *UpdateLedgerInput {
  5391  	s.Name = &v
  5392  	return s
  5393  }
  5394  
  5395  type UpdateLedgerOutput struct {
  5396  	_ struct{} `type:"structure"`
  5397  
  5398  	// The Amazon Resource Name (ARN) for the ledger.
  5399  	Arn *string `min:"20" type:"string"`
  5400  
  5401  	// The date and time, in epoch time format, when the ledger was created. (Epoch
  5402  	// time format is the number of seconds elapsed since 12:00:00 AM January 1,
  5403  	// 1970 UTC.)
  5404  	CreationDateTime *time.Time `type:"timestamp"`
  5405  
  5406  	// The flag that prevents a ledger from being deleted by any user. If not provided
  5407  	// on ledger creation, this feature is enabled (true) by default.
  5408  	//
  5409  	// If deletion protection is enabled, you must first disable it before you can
  5410  	// delete the ledger. You can disable it by calling the UpdateLedger operation
  5411  	// to set the flag to false.
  5412  	DeletionProtection *bool `type:"boolean"`
  5413  
  5414  	// Information about the encryption of data at rest in the ledger. This includes
  5415  	// the current status, the KMS key, and when the key became inaccessible (in
  5416  	// the case of an error).
  5417  	EncryptionDescription *LedgerEncryptionDescription `type:"structure"`
  5418  
  5419  	// The name of the ledger.
  5420  	Name *string `min:"1" type:"string"`
  5421  
  5422  	// The current status of the ledger.
  5423  	State *string `type:"string" enum:"LedgerState"`
  5424  }
  5425  
  5426  // String returns the string representation.
  5427  //
  5428  // API parameter values that are decorated as "sensitive" in the API will not
  5429  // be included in the string output. The member name will be present, but the
  5430  // value will be replaced with "sensitive".
  5431  func (s UpdateLedgerOutput) String() string {
  5432  	return awsutil.Prettify(s)
  5433  }
  5434  
  5435  // GoString returns the string representation.
  5436  //
  5437  // API parameter values that are decorated as "sensitive" in the API will not
  5438  // be included in the string output. The member name will be present, but the
  5439  // value will be replaced with "sensitive".
  5440  func (s UpdateLedgerOutput) GoString() string {
  5441  	return s.String()
  5442  }
  5443  
  5444  // SetArn sets the Arn field's value.
  5445  func (s *UpdateLedgerOutput) SetArn(v string) *UpdateLedgerOutput {
  5446  	s.Arn = &v
  5447  	return s
  5448  }
  5449  
  5450  // SetCreationDateTime sets the CreationDateTime field's value.
  5451  func (s *UpdateLedgerOutput) SetCreationDateTime(v time.Time) *UpdateLedgerOutput {
  5452  	s.CreationDateTime = &v
  5453  	return s
  5454  }
  5455  
  5456  // SetDeletionProtection sets the DeletionProtection field's value.
  5457  func (s *UpdateLedgerOutput) SetDeletionProtection(v bool) *UpdateLedgerOutput {
  5458  	s.DeletionProtection = &v
  5459  	return s
  5460  }
  5461  
  5462  // SetEncryptionDescription sets the EncryptionDescription field's value.
  5463  func (s *UpdateLedgerOutput) SetEncryptionDescription(v *LedgerEncryptionDescription) *UpdateLedgerOutput {
  5464  	s.EncryptionDescription = v
  5465  	return s
  5466  }
  5467  
  5468  // SetName sets the Name field's value.
  5469  func (s *UpdateLedgerOutput) SetName(v string) *UpdateLedgerOutput {
  5470  	s.Name = &v
  5471  	return s
  5472  }
  5473  
  5474  // SetState sets the State field's value.
  5475  func (s *UpdateLedgerOutput) SetState(v string) *UpdateLedgerOutput {
  5476  	s.State = &v
  5477  	return s
  5478  }
  5479  
  5480  type UpdateLedgerPermissionsModeInput struct {
  5481  	_ struct{} `type:"structure"`
  5482  
  5483  	// The name of the ledger.
  5484  	//
  5485  	// Name is a required field
  5486  	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
  5487  
  5488  	// The permissions mode to assign to the ledger. This parameter can have one
  5489  	// of the following values:
  5490  	//
  5491  	//    * ALLOW_ALL: A legacy permissions mode that enables access control with
  5492  	//    API-level granularity for ledgers. This mode allows users who have the
  5493  	//    SendCommand API permission for this ledger to run all PartiQL commands
  5494  	//    (hence, ALLOW_ALL) on any tables in the specified ledger. This mode disregards
  5495  	//    any table-level or command-level IAM permissions policies that you create
  5496  	//    for the ledger.
  5497  	//
  5498  	//    * STANDARD: (Recommended) A permissions mode that enables access control
  5499  	//    with finer granularity for ledgers, tables, and PartiQL commands. By default,
  5500  	//    this mode denies all user requests to run any PartiQL commands on any
  5501  	//    tables in this ledger. To allow PartiQL commands to run, you must create
  5502  	//    IAM permissions policies for specific table resources and PartiQL actions,
  5503  	//    in addition to the SendCommand API permission for the ledger. For information,
  5504  	//    see Getting started with the standard permissions mode (https://docs.aws.amazon.com/qldb/latest/developerguide/getting-started-standard-mode.html)
  5505  	//    in the Amazon QLDB Developer Guide.
  5506  	//
  5507  	// We strongly recommend using the STANDARD permissions mode to maximize the
  5508  	// security of your ledger data.
  5509  	//
  5510  	// PermissionsMode is a required field
  5511  	PermissionsMode *string `type:"string" required:"true" enum:"PermissionsMode"`
  5512  }
  5513  
  5514  // String returns the string representation.
  5515  //
  5516  // API parameter values that are decorated as "sensitive" in the API will not
  5517  // be included in the string output. The member name will be present, but the
  5518  // value will be replaced with "sensitive".
  5519  func (s UpdateLedgerPermissionsModeInput) String() string {
  5520  	return awsutil.Prettify(s)
  5521  }
  5522  
  5523  // GoString returns the string representation.
  5524  //
  5525  // API parameter values that are decorated as "sensitive" in the API will not
  5526  // be included in the string output. The member name will be present, but the
  5527  // value will be replaced with "sensitive".
  5528  func (s UpdateLedgerPermissionsModeInput) GoString() string {
  5529  	return s.String()
  5530  }
  5531  
  5532  // Validate inspects the fields of the type to determine if they are valid.
  5533  func (s *UpdateLedgerPermissionsModeInput) Validate() error {
  5534  	invalidParams := request.ErrInvalidParams{Context: "UpdateLedgerPermissionsModeInput"}
  5535  	if s.Name == nil {
  5536  		invalidParams.Add(request.NewErrParamRequired("Name"))
  5537  	}
  5538  	if s.Name != nil && len(*s.Name) < 1 {
  5539  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  5540  	}
  5541  	if s.PermissionsMode == nil {
  5542  		invalidParams.Add(request.NewErrParamRequired("PermissionsMode"))
  5543  	}
  5544  
  5545  	if invalidParams.Len() > 0 {
  5546  		return invalidParams
  5547  	}
  5548  	return nil
  5549  }
  5550  
  5551  // SetName sets the Name field's value.
  5552  func (s *UpdateLedgerPermissionsModeInput) SetName(v string) *UpdateLedgerPermissionsModeInput {
  5553  	s.Name = &v
  5554  	return s
  5555  }
  5556  
  5557  // SetPermissionsMode sets the PermissionsMode field's value.
  5558  func (s *UpdateLedgerPermissionsModeInput) SetPermissionsMode(v string) *UpdateLedgerPermissionsModeInput {
  5559  	s.PermissionsMode = &v
  5560  	return s
  5561  }
  5562  
  5563  type UpdateLedgerPermissionsModeOutput struct {
  5564  	_ struct{} `type:"structure"`
  5565  
  5566  	// The Amazon Resource Name (ARN) for the ledger.
  5567  	Arn *string `min:"20" type:"string"`
  5568  
  5569  	// The name of the ledger.
  5570  	Name *string `min:"1" type:"string"`
  5571  
  5572  	// The current permissions mode of the ledger.
  5573  	PermissionsMode *string `type:"string" enum:"PermissionsMode"`
  5574  }
  5575  
  5576  // String returns the string representation.
  5577  //
  5578  // API parameter values that are decorated as "sensitive" in the API will not
  5579  // be included in the string output. The member name will be present, but the
  5580  // value will be replaced with "sensitive".
  5581  func (s UpdateLedgerPermissionsModeOutput) String() string {
  5582  	return awsutil.Prettify(s)
  5583  }
  5584  
  5585  // GoString returns the string representation.
  5586  //
  5587  // API parameter values that are decorated as "sensitive" in the API will not
  5588  // be included in the string output. The member name will be present, but the
  5589  // value will be replaced with "sensitive".
  5590  func (s UpdateLedgerPermissionsModeOutput) GoString() string {
  5591  	return s.String()
  5592  }
  5593  
  5594  // SetArn sets the Arn field's value.
  5595  func (s *UpdateLedgerPermissionsModeOutput) SetArn(v string) *UpdateLedgerPermissionsModeOutput {
  5596  	s.Arn = &v
  5597  	return s
  5598  }
  5599  
  5600  // SetName sets the Name field's value.
  5601  func (s *UpdateLedgerPermissionsModeOutput) SetName(v string) *UpdateLedgerPermissionsModeOutput {
  5602  	s.Name = &v
  5603  	return s
  5604  }
  5605  
  5606  // SetPermissionsMode sets the PermissionsMode field's value.
  5607  func (s *UpdateLedgerPermissionsModeOutput) SetPermissionsMode(v string) *UpdateLedgerPermissionsModeOutput {
  5608  	s.PermissionsMode = &v
  5609  	return s
  5610  }
  5611  
  5612  // A structure that can contain a value in multiple encoding formats.
  5613  type ValueHolder struct {
  5614  	_ struct{} `type:"structure" sensitive:"true"`
  5615  
  5616  	// An Amazon Ion plaintext value contained in a ValueHolder structure.
  5617  	//
  5618  	// IonText is a sensitive parameter and its value will be
  5619  	// replaced with "sensitive" in string returned by ValueHolder's
  5620  	// String and GoString methods.
  5621  	IonText *string `min:"1" type:"string" sensitive:"true"`
  5622  }
  5623  
  5624  // String returns the string representation.
  5625  //
  5626  // API parameter values that are decorated as "sensitive" in the API will not
  5627  // be included in the string output. The member name will be present, but the
  5628  // value will be replaced with "sensitive".
  5629  func (s ValueHolder) String() string {
  5630  	return awsutil.Prettify(s)
  5631  }
  5632  
  5633  // GoString returns the string representation.
  5634  //
  5635  // API parameter values that are decorated as "sensitive" in the API will not
  5636  // be included in the string output. The member name will be present, but the
  5637  // value will be replaced with "sensitive".
  5638  func (s ValueHolder) GoString() string {
  5639  	return s.String()
  5640  }
  5641  
  5642  // Validate inspects the fields of the type to determine if they are valid.
  5643  func (s *ValueHolder) Validate() error {
  5644  	invalidParams := request.ErrInvalidParams{Context: "ValueHolder"}
  5645  	if s.IonText != nil && len(*s.IonText) < 1 {
  5646  		invalidParams.Add(request.NewErrParamMinLen("IonText", 1))
  5647  	}
  5648  
  5649  	if invalidParams.Len() > 0 {
  5650  		return invalidParams
  5651  	}
  5652  	return nil
  5653  }
  5654  
  5655  // SetIonText sets the IonText field's value.
  5656  func (s *ValueHolder) SetIonText(v string) *ValueHolder {
  5657  	s.IonText = &v
  5658  	return s
  5659  }
  5660  
  5661  const (
  5662  	// EncryptionStatusEnabled is a EncryptionStatus enum value
  5663  	EncryptionStatusEnabled = "ENABLED"
  5664  
  5665  	// EncryptionStatusUpdating is a EncryptionStatus enum value
  5666  	EncryptionStatusUpdating = "UPDATING"
  5667  
  5668  	// EncryptionStatusKmsKeyInaccessible is a EncryptionStatus enum value
  5669  	EncryptionStatusKmsKeyInaccessible = "KMS_KEY_INACCESSIBLE"
  5670  )
  5671  
  5672  // EncryptionStatus_Values returns all elements of the EncryptionStatus enum
  5673  func EncryptionStatus_Values() []string {
  5674  	return []string{
  5675  		EncryptionStatusEnabled,
  5676  		EncryptionStatusUpdating,
  5677  		EncryptionStatusKmsKeyInaccessible,
  5678  	}
  5679  }
  5680  
  5681  const (
  5682  	// ErrorCauseKinesisStreamNotFound is a ErrorCause enum value
  5683  	ErrorCauseKinesisStreamNotFound = "KINESIS_STREAM_NOT_FOUND"
  5684  
  5685  	// ErrorCauseIamPermissionRevoked is a ErrorCause enum value
  5686  	ErrorCauseIamPermissionRevoked = "IAM_PERMISSION_REVOKED"
  5687  )
  5688  
  5689  // ErrorCause_Values returns all elements of the ErrorCause enum
  5690  func ErrorCause_Values() []string {
  5691  	return []string{
  5692  		ErrorCauseKinesisStreamNotFound,
  5693  		ErrorCauseIamPermissionRevoked,
  5694  	}
  5695  }
  5696  
  5697  const (
  5698  	// ExportStatusInProgress is a ExportStatus enum value
  5699  	ExportStatusInProgress = "IN_PROGRESS"
  5700  
  5701  	// ExportStatusCompleted is a ExportStatus enum value
  5702  	ExportStatusCompleted = "COMPLETED"
  5703  
  5704  	// ExportStatusCancelled is a ExportStatus enum value
  5705  	ExportStatusCancelled = "CANCELLED"
  5706  )
  5707  
  5708  // ExportStatus_Values returns all elements of the ExportStatus enum
  5709  func ExportStatus_Values() []string {
  5710  	return []string{
  5711  		ExportStatusInProgress,
  5712  		ExportStatusCompleted,
  5713  		ExportStatusCancelled,
  5714  	}
  5715  }
  5716  
  5717  const (
  5718  	// LedgerStateCreating is a LedgerState enum value
  5719  	LedgerStateCreating = "CREATING"
  5720  
  5721  	// LedgerStateActive is a LedgerState enum value
  5722  	LedgerStateActive = "ACTIVE"
  5723  
  5724  	// LedgerStateDeleting is a LedgerState enum value
  5725  	LedgerStateDeleting = "DELETING"
  5726  
  5727  	// LedgerStateDeleted is a LedgerState enum value
  5728  	LedgerStateDeleted = "DELETED"
  5729  )
  5730  
  5731  // LedgerState_Values returns all elements of the LedgerState enum
  5732  func LedgerState_Values() []string {
  5733  	return []string{
  5734  		LedgerStateCreating,
  5735  		LedgerStateActive,
  5736  		LedgerStateDeleting,
  5737  		LedgerStateDeleted,
  5738  	}
  5739  }
  5740  
  5741  const (
  5742  	// PermissionsModeAllowAll is a PermissionsMode enum value
  5743  	PermissionsModeAllowAll = "ALLOW_ALL"
  5744  
  5745  	// PermissionsModeStandard is a PermissionsMode enum value
  5746  	PermissionsModeStandard = "STANDARD"
  5747  )
  5748  
  5749  // PermissionsMode_Values returns all elements of the PermissionsMode enum
  5750  func PermissionsMode_Values() []string {
  5751  	return []string{
  5752  		PermissionsModeAllowAll,
  5753  		PermissionsModeStandard,
  5754  	}
  5755  }
  5756  
  5757  const (
  5758  	// S3ObjectEncryptionTypeSseKms is a S3ObjectEncryptionType enum value
  5759  	S3ObjectEncryptionTypeSseKms = "SSE_KMS"
  5760  
  5761  	// S3ObjectEncryptionTypeSseS3 is a S3ObjectEncryptionType enum value
  5762  	S3ObjectEncryptionTypeSseS3 = "SSE_S3"
  5763  
  5764  	// S3ObjectEncryptionTypeNoEncryption is a S3ObjectEncryptionType enum value
  5765  	S3ObjectEncryptionTypeNoEncryption = "NO_ENCRYPTION"
  5766  )
  5767  
  5768  // S3ObjectEncryptionType_Values returns all elements of the S3ObjectEncryptionType enum
  5769  func S3ObjectEncryptionType_Values() []string {
  5770  	return []string{
  5771  		S3ObjectEncryptionTypeSseKms,
  5772  		S3ObjectEncryptionTypeSseS3,
  5773  		S3ObjectEncryptionTypeNoEncryption,
  5774  	}
  5775  }
  5776  
  5777  const (
  5778  	// StreamStatusActive is a StreamStatus enum value
  5779  	StreamStatusActive = "ACTIVE"
  5780  
  5781  	// StreamStatusCompleted is a StreamStatus enum value
  5782  	StreamStatusCompleted = "COMPLETED"
  5783  
  5784  	// StreamStatusCanceled is a StreamStatus enum value
  5785  	StreamStatusCanceled = "CANCELED"
  5786  
  5787  	// StreamStatusFailed is a StreamStatus enum value
  5788  	StreamStatusFailed = "FAILED"
  5789  
  5790  	// StreamStatusImpaired is a StreamStatus enum value
  5791  	StreamStatusImpaired = "IMPAIRED"
  5792  )
  5793  
  5794  // StreamStatus_Values returns all elements of the StreamStatus enum
  5795  func StreamStatus_Values() []string {
  5796  	return []string{
  5797  		StreamStatusActive,
  5798  		StreamStatusCompleted,
  5799  		StreamStatusCanceled,
  5800  		StreamStatusFailed,
  5801  		StreamStatusImpaired,
  5802  	}
  5803  }