1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package qldb
4
5import (
6	"fmt"
7	"time"
8
9	"github.com/aws/aws-sdk-go/aws"
10	"github.com/aws/aws-sdk-go/aws/awsutil"
11	"github.com/aws/aws-sdk-go/aws/request"
12	"github.com/aws/aws-sdk-go/private/protocol"
13	"github.com/aws/aws-sdk-go/private/protocol/restjson"
14)
15
16const 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
42func (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
85func (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.
99func (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
106const 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
132func (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 AWS account.
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
173func (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.
187func (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
194const 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
220func (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 using the QLDB API or the AWS Command Line Interface (AWS
243// CLI). You can disable it by calling the UpdateLedger operation to set the
244// flag to false. The QLDB console disables deletion protection for you when
245// you use it to delete a ledger.
246//
247// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
248// with awserr.Error's Code and Message methods to get detailed information about
249// the error.
250//
251// See the AWS API reference guide for Amazon QLDB's
252// API operation DeleteLedger for usage and error information.
253//
254// Returned Error Types:
255//   * InvalidParameterException
256//   One or more parameters in the request aren't valid.
257//
258//   * ResourceNotFoundException
259//   The specified resource doesn't exist.
260//
261//   * ResourceInUseException
262//   The specified resource can't be modified at this time.
263//
264//   * ResourcePreconditionNotMetException
265//   The operation failed because a condition wasn't satisfied in advance.
266//
267// See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/DeleteLedger
268func (c *QLDB) DeleteLedger(input *DeleteLedgerInput) (*DeleteLedgerOutput, error) {
269	req, out := c.DeleteLedgerRequest(input)
270	return out, req.Send()
271}
272
273// DeleteLedgerWithContext is the same as DeleteLedger with the addition of
274// the ability to pass a context and additional request options.
275//
276// See DeleteLedger for details on how to use this API operation.
277//
278// The context must be non-nil and will be used for request cancellation. If
279// the context is nil a panic will occur. In the future the SDK may create
280// sub-contexts for http.Requests. See https://golang.org/pkg/context/
281// for more information on using Contexts.
282func (c *QLDB) DeleteLedgerWithContext(ctx aws.Context, input *DeleteLedgerInput, opts ...request.Option) (*DeleteLedgerOutput, error) {
283	req, out := c.DeleteLedgerRequest(input)
284	req.SetContext(ctx)
285	req.ApplyOptions(opts...)
286	return out, req.Send()
287}
288
289const opDescribeJournalKinesisStream = "DescribeJournalKinesisStream"
290
291// DescribeJournalKinesisStreamRequest generates a "aws/request.Request" representing the
292// client's request for the DescribeJournalKinesisStream operation. The "output" return
293// value will be populated with the request's response once the request completes
294// successfully.
295//
296// Use "Send" method on the returned Request to send the API call to the service.
297// the "output" return value is not valid until after Send returns without error.
298//
299// See DescribeJournalKinesisStream for more information on using the DescribeJournalKinesisStream
300// API call, and error handling.
301//
302// This method is useful when you want to inject custom logic or configuration
303// into the SDK's request lifecycle. Such as custom headers, or retry logic.
304//
305//
306//    // Example sending a request using the DescribeJournalKinesisStreamRequest method.
307//    req, resp := client.DescribeJournalKinesisStreamRequest(params)
308//
309//    err := req.Send()
310//    if err == nil { // resp is now filled
311//        fmt.Println(resp)
312//    }
313//
314// See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/DescribeJournalKinesisStream
315func (c *QLDB) DescribeJournalKinesisStreamRequest(input *DescribeJournalKinesisStreamInput) (req *request.Request, output *DescribeJournalKinesisStreamOutput) {
316	op := &request.Operation{
317		Name:       opDescribeJournalKinesisStream,
318		HTTPMethod: "GET",
319		HTTPPath:   "/ledgers/{name}/journal-kinesis-streams/{streamId}",
320	}
321
322	if input == nil {
323		input = &DescribeJournalKinesisStreamInput{}
324	}
325
326	output = &DescribeJournalKinesisStreamOutput{}
327	req = c.newRequest(op, input, output)
328	return
329}
330
331// DescribeJournalKinesisStream API operation for Amazon QLDB.
332//
333// Returns detailed information about a given Amazon QLDB journal stream. The
334// output includes the Amazon Resource Name (ARN), stream name, current status,
335// creation time, and the parameters of your original stream creation request.
336//
337// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
338// with awserr.Error's Code and Message methods to get detailed information about
339// the error.
340//
341// See the AWS API reference guide for Amazon QLDB's
342// API operation DescribeJournalKinesisStream for usage and error information.
343//
344// Returned Error Types:
345//   * InvalidParameterException
346//   One or more parameters in the request aren't valid.
347//
348//   * ResourceNotFoundException
349//   The specified resource doesn't exist.
350//
351//   * ResourcePreconditionNotMetException
352//   The operation failed because a condition wasn't satisfied in advance.
353//
354// See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/DescribeJournalKinesisStream
355func (c *QLDB) DescribeJournalKinesisStream(input *DescribeJournalKinesisStreamInput) (*DescribeJournalKinesisStreamOutput, error) {
356	req, out := c.DescribeJournalKinesisStreamRequest(input)
357	return out, req.Send()
358}
359
360// DescribeJournalKinesisStreamWithContext is the same as DescribeJournalKinesisStream with the addition of
361// the ability to pass a context and additional request options.
362//
363// See DescribeJournalKinesisStream for details on how to use this API operation.
364//
365// The context must be non-nil and will be used for request cancellation. If
366// the context is nil a panic will occur. In the future the SDK may create
367// sub-contexts for http.Requests. See https://golang.org/pkg/context/
368// for more information on using Contexts.
369func (c *QLDB) DescribeJournalKinesisStreamWithContext(ctx aws.Context, input *DescribeJournalKinesisStreamInput, opts ...request.Option) (*DescribeJournalKinesisStreamOutput, error) {
370	req, out := c.DescribeJournalKinesisStreamRequest(input)
371	req.SetContext(ctx)
372	req.ApplyOptions(opts...)
373	return out, req.Send()
374}
375
376const opDescribeJournalS3Export = "DescribeJournalS3Export"
377
378// DescribeJournalS3ExportRequest generates a "aws/request.Request" representing the
379// client's request for the DescribeJournalS3Export operation. The "output" return
380// value will be populated with the request's response once the request completes
381// successfully.
382//
383// Use "Send" method on the returned Request to send the API call to the service.
384// the "output" return value is not valid until after Send returns without error.
385//
386// See DescribeJournalS3Export for more information on using the DescribeJournalS3Export
387// API call, and error handling.
388//
389// This method is useful when you want to inject custom logic or configuration
390// into the SDK's request lifecycle. Such as custom headers, or retry logic.
391//
392//
393//    // Example sending a request using the DescribeJournalS3ExportRequest method.
394//    req, resp := client.DescribeJournalS3ExportRequest(params)
395//
396//    err := req.Send()
397//    if err == nil { // resp is now filled
398//        fmt.Println(resp)
399//    }
400//
401// See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/DescribeJournalS3Export
402func (c *QLDB) DescribeJournalS3ExportRequest(input *DescribeJournalS3ExportInput) (req *request.Request, output *DescribeJournalS3ExportOutput) {
403	op := &request.Operation{
404		Name:       opDescribeJournalS3Export,
405		HTTPMethod: "GET",
406		HTTPPath:   "/ledgers/{name}/journal-s3-exports/{exportId}",
407	}
408
409	if input == nil {
410		input = &DescribeJournalS3ExportInput{}
411	}
412
413	output = &DescribeJournalS3ExportOutput{}
414	req = c.newRequest(op, input, output)
415	return
416}
417
418// DescribeJournalS3Export API operation for Amazon QLDB.
419//
420// Returns information about a journal export job, including the ledger name,
421// export ID, when it was created, current status, and its start and end time
422// export parameters.
423//
424// This action does not return any expired export jobs. For more information,
425// see Export Job Expiration (https://docs.aws.amazon.com/qldb/latest/developerguide/export-journal.request.html#export-journal.request.expiration)
426// in the Amazon QLDB Developer Guide.
427//
428// If the export job with the given ExportId doesn't exist, then throws ResourceNotFoundException.
429//
430// If the ledger with the given Name doesn't exist, then throws ResourceNotFoundException.
431//
432// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
433// with awserr.Error's Code and Message methods to get detailed information about
434// the error.
435//
436// See the AWS API reference guide for Amazon QLDB's
437// API operation DescribeJournalS3Export for usage and error information.
438//
439// Returned Error Types:
440//   * ResourceNotFoundException
441//   The specified resource doesn't exist.
442//
443// See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/DescribeJournalS3Export
444func (c *QLDB) DescribeJournalS3Export(input *DescribeJournalS3ExportInput) (*DescribeJournalS3ExportOutput, error) {
445	req, out := c.DescribeJournalS3ExportRequest(input)
446	return out, req.Send()
447}
448
449// DescribeJournalS3ExportWithContext is the same as DescribeJournalS3Export with the addition of
450// the ability to pass a context and additional request options.
451//
452// See DescribeJournalS3Export for details on how to use this API operation.
453//
454// The context must be non-nil and will be used for request cancellation. If
455// the context is nil a panic will occur. In the future the SDK may create
456// sub-contexts for http.Requests. See https://golang.org/pkg/context/
457// for more information on using Contexts.
458func (c *QLDB) DescribeJournalS3ExportWithContext(ctx aws.Context, input *DescribeJournalS3ExportInput, opts ...request.Option) (*DescribeJournalS3ExportOutput, error) {
459	req, out := c.DescribeJournalS3ExportRequest(input)
460	req.SetContext(ctx)
461	req.ApplyOptions(opts...)
462	return out, req.Send()
463}
464
465const opDescribeLedger = "DescribeLedger"
466
467// DescribeLedgerRequest generates a "aws/request.Request" representing the
468// client's request for the DescribeLedger operation. The "output" return
469// value will be populated with the request's response once the request completes
470// successfully.
471//
472// Use "Send" method on the returned Request to send the API call to the service.
473// the "output" return value is not valid until after Send returns without error.
474//
475// See DescribeLedger for more information on using the DescribeLedger
476// API call, and error handling.
477//
478// This method is useful when you want to inject custom logic or configuration
479// into the SDK's request lifecycle. Such as custom headers, or retry logic.
480//
481//
482//    // Example sending a request using the DescribeLedgerRequest method.
483//    req, resp := client.DescribeLedgerRequest(params)
484//
485//    err := req.Send()
486//    if err == nil { // resp is now filled
487//        fmt.Println(resp)
488//    }
489//
490// See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/DescribeLedger
491func (c *QLDB) DescribeLedgerRequest(input *DescribeLedgerInput) (req *request.Request, output *DescribeLedgerOutput) {
492	op := &request.Operation{
493		Name:       opDescribeLedger,
494		HTTPMethod: "GET",
495		HTTPPath:   "/ledgers/{name}",
496	}
497
498	if input == nil {
499		input = &DescribeLedgerInput{}
500	}
501
502	output = &DescribeLedgerOutput{}
503	req = c.newRequest(op, input, output)
504	return
505}
506
507// DescribeLedger API operation for Amazon QLDB.
508//
509// Returns information about a ledger, including its state and when it was created.
510//
511// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
512// with awserr.Error's Code and Message methods to get detailed information about
513// the error.
514//
515// See the AWS API reference guide for Amazon QLDB's
516// API operation DescribeLedger for usage and error information.
517//
518// Returned Error Types:
519//   * InvalidParameterException
520//   One or more parameters in the request aren't valid.
521//
522//   * ResourceNotFoundException
523//   The specified resource doesn't exist.
524//
525// See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/DescribeLedger
526func (c *QLDB) DescribeLedger(input *DescribeLedgerInput) (*DescribeLedgerOutput, error) {
527	req, out := c.DescribeLedgerRequest(input)
528	return out, req.Send()
529}
530
531// DescribeLedgerWithContext is the same as DescribeLedger with the addition of
532// the ability to pass a context and additional request options.
533//
534// See DescribeLedger for details on how to use this API operation.
535//
536// The context must be non-nil and will be used for request cancellation. If
537// the context is nil a panic will occur. In the future the SDK may create
538// sub-contexts for http.Requests. See https://golang.org/pkg/context/
539// for more information on using Contexts.
540func (c *QLDB) DescribeLedgerWithContext(ctx aws.Context, input *DescribeLedgerInput, opts ...request.Option) (*DescribeLedgerOutput, error) {
541	req, out := c.DescribeLedgerRequest(input)
542	req.SetContext(ctx)
543	req.ApplyOptions(opts...)
544	return out, req.Send()
545}
546
547const opExportJournalToS3 = "ExportJournalToS3"
548
549// ExportJournalToS3Request generates a "aws/request.Request" representing the
550// client's request for the ExportJournalToS3 operation. The "output" return
551// value will be populated with the request's response once the request completes
552// successfully.
553//
554// Use "Send" method on the returned Request to send the API call to the service.
555// the "output" return value is not valid until after Send returns without error.
556//
557// See ExportJournalToS3 for more information on using the ExportJournalToS3
558// API call, and error handling.
559//
560// This method is useful when you want to inject custom logic or configuration
561// into the SDK's request lifecycle. Such as custom headers, or retry logic.
562//
563//
564//    // Example sending a request using the ExportJournalToS3Request method.
565//    req, resp := client.ExportJournalToS3Request(params)
566//
567//    err := req.Send()
568//    if err == nil { // resp is now filled
569//        fmt.Println(resp)
570//    }
571//
572// See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/ExportJournalToS3
573func (c *QLDB) ExportJournalToS3Request(input *ExportJournalToS3Input) (req *request.Request, output *ExportJournalToS3Output) {
574	op := &request.Operation{
575		Name:       opExportJournalToS3,
576		HTTPMethod: "POST",
577		HTTPPath:   "/ledgers/{name}/journal-s3-exports",
578	}
579
580	if input == nil {
581		input = &ExportJournalToS3Input{}
582	}
583
584	output = &ExportJournalToS3Output{}
585	req = c.newRequest(op, input, output)
586	return
587}
588
589// ExportJournalToS3 API operation for Amazon QLDB.
590//
591// Exports journal contents within a date and time range from a ledger into
592// a specified Amazon Simple Storage Service (Amazon S3) bucket. The data is
593// written as files in Amazon Ion format.
594//
595// If the ledger with the given Name doesn't exist, then throws ResourceNotFoundException.
596//
597// If the ledger with the given Name is in CREATING status, then throws ResourcePreconditionNotMetException.
598//
599// You can initiate up to two concurrent journal export requests for each ledger.
600// Beyond this limit, journal export requests throw LimitExceededException.
601//
602// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
603// with awserr.Error's Code and Message methods to get detailed information about
604// the error.
605//
606// See the AWS API reference guide for Amazon QLDB's
607// API operation ExportJournalToS3 for usage and error information.
608//
609// Returned Error Types:
610//   * ResourceNotFoundException
611//   The specified resource doesn't exist.
612//
613//   * ResourcePreconditionNotMetException
614//   The operation failed because a condition wasn't satisfied in advance.
615//
616// See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/ExportJournalToS3
617func (c *QLDB) ExportJournalToS3(input *ExportJournalToS3Input) (*ExportJournalToS3Output, error) {
618	req, out := c.ExportJournalToS3Request(input)
619	return out, req.Send()
620}
621
622// ExportJournalToS3WithContext is the same as ExportJournalToS3 with the addition of
623// the ability to pass a context and additional request options.
624//
625// See ExportJournalToS3 for details on how to use this API operation.
626//
627// The context must be non-nil and will be used for request cancellation. If
628// the context is nil a panic will occur. In the future the SDK may create
629// sub-contexts for http.Requests. See https://golang.org/pkg/context/
630// for more information on using Contexts.
631func (c *QLDB) ExportJournalToS3WithContext(ctx aws.Context, input *ExportJournalToS3Input, opts ...request.Option) (*ExportJournalToS3Output, error) {
632	req, out := c.ExportJournalToS3Request(input)
633	req.SetContext(ctx)
634	req.ApplyOptions(opts...)
635	return out, req.Send()
636}
637
638const opGetBlock = "GetBlock"
639
640// GetBlockRequest generates a "aws/request.Request" representing the
641// client's request for the GetBlock operation. The "output" return
642// value will be populated with the request's response once the request completes
643// successfully.
644//
645// Use "Send" method on the returned Request to send the API call to the service.
646// the "output" return value is not valid until after Send returns without error.
647//
648// See GetBlock for more information on using the GetBlock
649// API call, and error handling.
650//
651// This method is useful when you want to inject custom logic or configuration
652// into the SDK's request lifecycle. Such as custom headers, or retry logic.
653//
654//
655//    // Example sending a request using the GetBlockRequest method.
656//    req, resp := client.GetBlockRequest(params)
657//
658//    err := req.Send()
659//    if err == nil { // resp is now filled
660//        fmt.Println(resp)
661//    }
662//
663// See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/GetBlock
664func (c *QLDB) GetBlockRequest(input *GetBlockInput) (req *request.Request, output *GetBlockOutput) {
665	op := &request.Operation{
666		Name:       opGetBlock,
667		HTTPMethod: "POST",
668		HTTPPath:   "/ledgers/{name}/block",
669	}
670
671	if input == nil {
672		input = &GetBlockInput{}
673	}
674
675	output = &GetBlockOutput{}
676	req = c.newRequest(op, input, output)
677	return
678}
679
680// GetBlock API operation for Amazon QLDB.
681//
682// Returns a journal block object at a specified address in a ledger. Also returns
683// a proof of the specified block for verification if DigestTipAddress is provided.
684//
685// If the specified ledger doesn't exist or is in DELETING status, then throws
686// ResourceNotFoundException.
687//
688// If the specified ledger is in CREATING status, then throws ResourcePreconditionNotMetException.
689//
690// If no block exists with the specified address, then throws InvalidParameterException.
691//
692// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
693// with awserr.Error's Code and Message methods to get detailed information about
694// the error.
695//
696// See the AWS API reference guide for Amazon QLDB's
697// API operation GetBlock for usage and error information.
698//
699// Returned Error Types:
700//   * InvalidParameterException
701//   One or more parameters in the request aren't valid.
702//
703//   * ResourceNotFoundException
704//   The specified resource doesn't exist.
705//
706//   * ResourcePreconditionNotMetException
707//   The operation failed because a condition wasn't satisfied in advance.
708//
709// See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/GetBlock
710func (c *QLDB) GetBlock(input *GetBlockInput) (*GetBlockOutput, error) {
711	req, out := c.GetBlockRequest(input)
712	return out, req.Send()
713}
714
715// GetBlockWithContext is the same as GetBlock with the addition of
716// the ability to pass a context and additional request options.
717//
718// See GetBlock for details on how to use this API operation.
719//
720// The context must be non-nil and will be used for request cancellation. If
721// the context is nil a panic will occur. In the future the SDK may create
722// sub-contexts for http.Requests. See https://golang.org/pkg/context/
723// for more information on using Contexts.
724func (c *QLDB) GetBlockWithContext(ctx aws.Context, input *GetBlockInput, opts ...request.Option) (*GetBlockOutput, error) {
725	req, out := c.GetBlockRequest(input)
726	req.SetContext(ctx)
727	req.ApplyOptions(opts...)
728	return out, req.Send()
729}
730
731const opGetDigest = "GetDigest"
732
733// GetDigestRequest generates a "aws/request.Request" representing the
734// client's request for the GetDigest operation. The "output" return
735// value will be populated with the request's response once the request completes
736// successfully.
737//
738// Use "Send" method on the returned Request to send the API call to the service.
739// the "output" return value is not valid until after Send returns without error.
740//
741// See GetDigest for more information on using the GetDigest
742// API call, and error handling.
743//
744// This method is useful when you want to inject custom logic or configuration
745// into the SDK's request lifecycle. Such as custom headers, or retry logic.
746//
747//
748//    // Example sending a request using the GetDigestRequest method.
749//    req, resp := client.GetDigestRequest(params)
750//
751//    err := req.Send()
752//    if err == nil { // resp is now filled
753//        fmt.Println(resp)
754//    }
755//
756// See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/GetDigest
757func (c *QLDB) GetDigestRequest(input *GetDigestInput) (req *request.Request, output *GetDigestOutput) {
758	op := &request.Operation{
759		Name:       opGetDigest,
760		HTTPMethod: "POST",
761		HTTPPath:   "/ledgers/{name}/digest",
762	}
763
764	if input == nil {
765		input = &GetDigestInput{}
766	}
767
768	output = &GetDigestOutput{}
769	req = c.newRequest(op, input, output)
770	return
771}
772
773// GetDigest API operation for Amazon QLDB.
774//
775// Returns the digest of a ledger at the latest committed block in the journal.
776// The response includes a 256-bit hash value and a block address.
777//
778// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
779// with awserr.Error's Code and Message methods to get detailed information about
780// the error.
781//
782// See the AWS API reference guide for Amazon QLDB's
783// API operation GetDigest for usage and error information.
784//
785// Returned Error Types:
786//   * InvalidParameterException
787//   One or more parameters in the request aren't valid.
788//
789//   * ResourceNotFoundException
790//   The specified resource doesn't exist.
791//
792//   * ResourcePreconditionNotMetException
793//   The operation failed because a condition wasn't satisfied in advance.
794//
795// See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/GetDigest
796func (c *QLDB) GetDigest(input *GetDigestInput) (*GetDigestOutput, error) {
797	req, out := c.GetDigestRequest(input)
798	return out, req.Send()
799}
800
801// GetDigestWithContext is the same as GetDigest with the addition of
802// the ability to pass a context and additional request options.
803//
804// See GetDigest for details on how to use this API operation.
805//
806// The context must be non-nil and will be used for request cancellation. If
807// the context is nil a panic will occur. In the future the SDK may create
808// sub-contexts for http.Requests. See https://golang.org/pkg/context/
809// for more information on using Contexts.
810func (c *QLDB) GetDigestWithContext(ctx aws.Context, input *GetDigestInput, opts ...request.Option) (*GetDigestOutput, error) {
811	req, out := c.GetDigestRequest(input)
812	req.SetContext(ctx)
813	req.ApplyOptions(opts...)
814	return out, req.Send()
815}
816
817const opGetRevision = "GetRevision"
818
819// GetRevisionRequest generates a "aws/request.Request" representing the
820// client's request for the GetRevision operation. The "output" return
821// value will be populated with the request's response once the request completes
822// successfully.
823//
824// Use "Send" method on the returned Request to send the API call to the service.
825// the "output" return value is not valid until after Send returns without error.
826//
827// See GetRevision for more information on using the GetRevision
828// API call, and error handling.
829//
830// This method is useful when you want to inject custom logic or configuration
831// into the SDK's request lifecycle. Such as custom headers, or retry logic.
832//
833//
834//    // Example sending a request using the GetRevisionRequest method.
835//    req, resp := client.GetRevisionRequest(params)
836//
837//    err := req.Send()
838//    if err == nil { // resp is now filled
839//        fmt.Println(resp)
840//    }
841//
842// See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/GetRevision
843func (c *QLDB) GetRevisionRequest(input *GetRevisionInput) (req *request.Request, output *GetRevisionOutput) {
844	op := &request.Operation{
845		Name:       opGetRevision,
846		HTTPMethod: "POST",
847		HTTPPath:   "/ledgers/{name}/revision",
848	}
849
850	if input == nil {
851		input = &GetRevisionInput{}
852	}
853
854	output = &GetRevisionOutput{}
855	req = c.newRequest(op, input, output)
856	return
857}
858
859// GetRevision API operation for Amazon QLDB.
860//
861// Returns a revision data object for a specified document ID and block address.
862// Also returns a proof of the specified revision for verification if DigestTipAddress
863// is provided.
864//
865// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
866// with awserr.Error's Code and Message methods to get detailed information about
867// the error.
868//
869// See the AWS API reference guide for Amazon QLDB's
870// API operation GetRevision for usage and error information.
871//
872// Returned Error Types:
873//   * InvalidParameterException
874//   One or more parameters in the request aren't valid.
875//
876//   * ResourceNotFoundException
877//   The specified resource doesn't exist.
878//
879//   * ResourcePreconditionNotMetException
880//   The operation failed because a condition wasn't satisfied in advance.
881//
882// See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/GetRevision
883func (c *QLDB) GetRevision(input *GetRevisionInput) (*GetRevisionOutput, error) {
884	req, out := c.GetRevisionRequest(input)
885	return out, req.Send()
886}
887
888// GetRevisionWithContext is the same as GetRevision with the addition of
889// the ability to pass a context and additional request options.
890//
891// See GetRevision for details on how to use this API operation.
892//
893// The context must be non-nil and will be used for request cancellation. If
894// the context is nil a panic will occur. In the future the SDK may create
895// sub-contexts for http.Requests. See https://golang.org/pkg/context/
896// for more information on using Contexts.
897func (c *QLDB) GetRevisionWithContext(ctx aws.Context, input *GetRevisionInput, opts ...request.Option) (*GetRevisionOutput, error) {
898	req, out := c.GetRevisionRequest(input)
899	req.SetContext(ctx)
900	req.ApplyOptions(opts...)
901	return out, req.Send()
902}
903
904const opListJournalKinesisStreamsForLedger = "ListJournalKinesisStreamsForLedger"
905
906// ListJournalKinesisStreamsForLedgerRequest generates a "aws/request.Request" representing the
907// client's request for the ListJournalKinesisStreamsForLedger operation. The "output" return
908// value will be populated with the request's response once the request completes
909// successfully.
910//
911// Use "Send" method on the returned Request to send the API call to the service.
912// the "output" return value is not valid until after Send returns without error.
913//
914// See ListJournalKinesisStreamsForLedger for more information on using the ListJournalKinesisStreamsForLedger
915// API call, and error handling.
916//
917// This method is useful when you want to inject custom logic or configuration
918// into the SDK's request lifecycle. Such as custom headers, or retry logic.
919//
920//
921//    // Example sending a request using the ListJournalKinesisStreamsForLedgerRequest method.
922//    req, resp := client.ListJournalKinesisStreamsForLedgerRequest(params)
923//
924//    err := req.Send()
925//    if err == nil { // resp is now filled
926//        fmt.Println(resp)
927//    }
928//
929// See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/ListJournalKinesisStreamsForLedger
930func (c *QLDB) ListJournalKinesisStreamsForLedgerRequest(input *ListJournalKinesisStreamsForLedgerInput) (req *request.Request, output *ListJournalKinesisStreamsForLedgerOutput) {
931	op := &request.Operation{
932		Name:       opListJournalKinesisStreamsForLedger,
933		HTTPMethod: "GET",
934		HTTPPath:   "/ledgers/{name}/journal-kinesis-streams",
935		Paginator: &request.Paginator{
936			InputTokens:     []string{"NextToken"},
937			OutputTokens:    []string{"NextToken"},
938			LimitToken:      "MaxResults",
939			TruncationToken: "",
940		},
941	}
942
943	if input == nil {
944		input = &ListJournalKinesisStreamsForLedgerInput{}
945	}
946
947	output = &ListJournalKinesisStreamsForLedgerOutput{}
948	req = c.newRequest(op, input, output)
949	return
950}
951
952// ListJournalKinesisStreamsForLedger API operation for Amazon QLDB.
953//
954// Returns an array of all Amazon QLDB journal stream descriptors for a given
955// ledger. The output of each stream descriptor includes the same details that
956// are returned by DescribeJournalKinesisStream.
957//
958// This action returns a maximum of MaxResults items. It is paginated so that
959// you can retrieve all the items by calling ListJournalKinesisStreamsForLedger
960// multiple times.
961//
962// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
963// with awserr.Error's Code and Message methods to get detailed information about
964// the error.
965//
966// See the AWS API reference guide for Amazon QLDB's
967// API operation ListJournalKinesisStreamsForLedger for usage and error information.
968//
969// Returned Error Types:
970//   * InvalidParameterException
971//   One or more parameters in the request aren't valid.
972//
973//   * ResourceNotFoundException
974//   The specified resource doesn't exist.
975//
976//   * ResourcePreconditionNotMetException
977//   The operation failed because a condition wasn't satisfied in advance.
978//
979// See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/ListJournalKinesisStreamsForLedger
980func (c *QLDB) ListJournalKinesisStreamsForLedger(input *ListJournalKinesisStreamsForLedgerInput) (*ListJournalKinesisStreamsForLedgerOutput, error) {
981	req, out := c.ListJournalKinesisStreamsForLedgerRequest(input)
982	return out, req.Send()
983}
984
985// ListJournalKinesisStreamsForLedgerWithContext is the same as ListJournalKinesisStreamsForLedger with the addition of
986// the ability to pass a context and additional request options.
987//
988// See ListJournalKinesisStreamsForLedger for details on how to use this API operation.
989//
990// The context must be non-nil and will be used for request cancellation. If
991// the context is nil a panic will occur. In the future the SDK may create
992// sub-contexts for http.Requests. See https://golang.org/pkg/context/
993// for more information on using Contexts.
994func (c *QLDB) ListJournalKinesisStreamsForLedgerWithContext(ctx aws.Context, input *ListJournalKinesisStreamsForLedgerInput, opts ...request.Option) (*ListJournalKinesisStreamsForLedgerOutput, error) {
995	req, out := c.ListJournalKinesisStreamsForLedgerRequest(input)
996	req.SetContext(ctx)
997	req.ApplyOptions(opts...)
998	return out, req.Send()
999}
1000
1001// ListJournalKinesisStreamsForLedgerPages iterates over the pages of a ListJournalKinesisStreamsForLedger operation,
1002// calling the "fn" function with the response data for each page. To stop
1003// iterating, return false from the fn function.
1004//
1005// See ListJournalKinesisStreamsForLedger method for more information on how to use this operation.
1006//
1007// Note: This operation can generate multiple requests to a service.
1008//
1009//    // Example iterating over at most 3 pages of a ListJournalKinesisStreamsForLedger operation.
1010//    pageNum := 0
1011//    err := client.ListJournalKinesisStreamsForLedgerPages(params,
1012//        func(page *qldb.ListJournalKinesisStreamsForLedgerOutput, lastPage bool) bool {
1013//            pageNum++
1014//            fmt.Println(page)
1015//            return pageNum <= 3
1016//        })
1017//
1018func (c *QLDB) ListJournalKinesisStreamsForLedgerPages(input *ListJournalKinesisStreamsForLedgerInput, fn func(*ListJournalKinesisStreamsForLedgerOutput, bool) bool) error {
1019	return c.ListJournalKinesisStreamsForLedgerPagesWithContext(aws.BackgroundContext(), input, fn)
1020}
1021
1022// ListJournalKinesisStreamsForLedgerPagesWithContext same as ListJournalKinesisStreamsForLedgerPages except
1023// it takes a Context and allows setting request options on the pages.
1024//
1025// The context must be non-nil and will be used for request cancellation. If
1026// the context is nil a panic will occur. In the future the SDK may create
1027// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1028// for more information on using Contexts.
1029func (c *QLDB) ListJournalKinesisStreamsForLedgerPagesWithContext(ctx aws.Context, input *ListJournalKinesisStreamsForLedgerInput, fn func(*ListJournalKinesisStreamsForLedgerOutput, bool) bool, opts ...request.Option) error {
1030	p := request.Pagination{
1031		NewRequest: func() (*request.Request, error) {
1032			var inCpy *ListJournalKinesisStreamsForLedgerInput
1033			if input != nil {
1034				tmp := *input
1035				inCpy = &tmp
1036			}
1037			req, _ := c.ListJournalKinesisStreamsForLedgerRequest(inCpy)
1038			req.SetContext(ctx)
1039			req.ApplyOptions(opts...)
1040			return req, nil
1041		},
1042	}
1043
1044	for p.Next() {
1045		if !fn(p.Page().(*ListJournalKinesisStreamsForLedgerOutput), !p.HasNextPage()) {
1046			break
1047		}
1048	}
1049
1050	return p.Err()
1051}
1052
1053const opListJournalS3Exports = "ListJournalS3Exports"
1054
1055// ListJournalS3ExportsRequest generates a "aws/request.Request" representing the
1056// client's request for the ListJournalS3Exports operation. The "output" return
1057// value will be populated with the request's response once the request completes
1058// successfully.
1059//
1060// Use "Send" method on the returned Request to send the API call to the service.
1061// the "output" return value is not valid until after Send returns without error.
1062//
1063// See ListJournalS3Exports for more information on using the ListJournalS3Exports
1064// API call, and error handling.
1065//
1066// This method is useful when you want to inject custom logic or configuration
1067// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1068//
1069//
1070//    // Example sending a request using the ListJournalS3ExportsRequest method.
1071//    req, resp := client.ListJournalS3ExportsRequest(params)
1072//
1073//    err := req.Send()
1074//    if err == nil { // resp is now filled
1075//        fmt.Println(resp)
1076//    }
1077//
1078// See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/ListJournalS3Exports
1079func (c *QLDB) ListJournalS3ExportsRequest(input *ListJournalS3ExportsInput) (req *request.Request, output *ListJournalS3ExportsOutput) {
1080	op := &request.Operation{
1081		Name:       opListJournalS3Exports,
1082		HTTPMethod: "GET",
1083		HTTPPath:   "/journal-s3-exports",
1084		Paginator: &request.Paginator{
1085			InputTokens:     []string{"NextToken"},
1086			OutputTokens:    []string{"NextToken"},
1087			LimitToken:      "MaxResults",
1088			TruncationToken: "",
1089		},
1090	}
1091
1092	if input == nil {
1093		input = &ListJournalS3ExportsInput{}
1094	}
1095
1096	output = &ListJournalS3ExportsOutput{}
1097	req = c.newRequest(op, input, output)
1098	return
1099}
1100
1101// ListJournalS3Exports API operation for Amazon QLDB.
1102//
1103// Returns an array of journal export job descriptions for all ledgers that
1104// are associated with the current AWS account and Region.
1105//
1106// This action returns a maximum of MaxResults items, and is paginated so that
1107// you can retrieve all the items by calling ListJournalS3Exports multiple times.
1108//
1109// This action does not return any expired export jobs. For more information,
1110// see Export Job Expiration (https://docs.aws.amazon.com/qldb/latest/developerguide/export-journal.request.html#export-journal.request.expiration)
1111// in the Amazon QLDB Developer Guide.
1112//
1113// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1114// with awserr.Error's Code and Message methods to get detailed information about
1115// the error.
1116//
1117// See the AWS API reference guide for Amazon QLDB's
1118// API operation ListJournalS3Exports for usage and error information.
1119// See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/ListJournalS3Exports
1120func (c *QLDB) ListJournalS3Exports(input *ListJournalS3ExportsInput) (*ListJournalS3ExportsOutput, error) {
1121	req, out := c.ListJournalS3ExportsRequest(input)
1122	return out, req.Send()
1123}
1124
1125// ListJournalS3ExportsWithContext is the same as ListJournalS3Exports with the addition of
1126// the ability to pass a context and additional request options.
1127//
1128// See ListJournalS3Exports for details on how to use this API operation.
1129//
1130// The context must be non-nil and will be used for request cancellation. If
1131// the context is nil a panic will occur. In the future the SDK may create
1132// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1133// for more information on using Contexts.
1134func (c *QLDB) ListJournalS3ExportsWithContext(ctx aws.Context, input *ListJournalS3ExportsInput, opts ...request.Option) (*ListJournalS3ExportsOutput, error) {
1135	req, out := c.ListJournalS3ExportsRequest(input)
1136	req.SetContext(ctx)
1137	req.ApplyOptions(opts...)
1138	return out, req.Send()
1139}
1140
1141// ListJournalS3ExportsPages iterates over the pages of a ListJournalS3Exports operation,
1142// calling the "fn" function with the response data for each page. To stop
1143// iterating, return false from the fn function.
1144//
1145// See ListJournalS3Exports method for more information on how to use this operation.
1146//
1147// Note: This operation can generate multiple requests to a service.
1148//
1149//    // Example iterating over at most 3 pages of a ListJournalS3Exports operation.
1150//    pageNum := 0
1151//    err := client.ListJournalS3ExportsPages(params,
1152//        func(page *qldb.ListJournalS3ExportsOutput, lastPage bool) bool {
1153//            pageNum++
1154//            fmt.Println(page)
1155//            return pageNum <= 3
1156//        })
1157//
1158func (c *QLDB) ListJournalS3ExportsPages(input *ListJournalS3ExportsInput, fn func(*ListJournalS3ExportsOutput, bool) bool) error {
1159	return c.ListJournalS3ExportsPagesWithContext(aws.BackgroundContext(), input, fn)
1160}
1161
1162// ListJournalS3ExportsPagesWithContext same as ListJournalS3ExportsPages except
1163// it takes a Context and allows setting request options on the pages.
1164//
1165// The context must be non-nil and will be used for request cancellation. If
1166// the context is nil a panic will occur. In the future the SDK may create
1167// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1168// for more information on using Contexts.
1169func (c *QLDB) ListJournalS3ExportsPagesWithContext(ctx aws.Context, input *ListJournalS3ExportsInput, fn func(*ListJournalS3ExportsOutput, bool) bool, opts ...request.Option) error {
1170	p := request.Pagination{
1171		NewRequest: func() (*request.Request, error) {
1172			var inCpy *ListJournalS3ExportsInput
1173			if input != nil {
1174				tmp := *input
1175				inCpy = &tmp
1176			}
1177			req, _ := c.ListJournalS3ExportsRequest(inCpy)
1178			req.SetContext(ctx)
1179			req.ApplyOptions(opts...)
1180			return req, nil
1181		},
1182	}
1183
1184	for p.Next() {
1185		if !fn(p.Page().(*ListJournalS3ExportsOutput), !p.HasNextPage()) {
1186			break
1187		}
1188	}
1189
1190	return p.Err()
1191}
1192
1193const opListJournalS3ExportsForLedger = "ListJournalS3ExportsForLedger"
1194
1195// ListJournalS3ExportsForLedgerRequest generates a "aws/request.Request" representing the
1196// client's request for the ListJournalS3ExportsForLedger operation. The "output" return
1197// value will be populated with the request's response once the request completes
1198// successfully.
1199//
1200// Use "Send" method on the returned Request to send the API call to the service.
1201// the "output" return value is not valid until after Send returns without error.
1202//
1203// See ListJournalS3ExportsForLedger for more information on using the ListJournalS3ExportsForLedger
1204// API call, and error handling.
1205//
1206// This method is useful when you want to inject custom logic or configuration
1207// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1208//
1209//
1210//    // Example sending a request using the ListJournalS3ExportsForLedgerRequest method.
1211//    req, resp := client.ListJournalS3ExportsForLedgerRequest(params)
1212//
1213//    err := req.Send()
1214//    if err == nil { // resp is now filled
1215//        fmt.Println(resp)
1216//    }
1217//
1218// See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/ListJournalS3ExportsForLedger
1219func (c *QLDB) ListJournalS3ExportsForLedgerRequest(input *ListJournalS3ExportsForLedgerInput) (req *request.Request, output *ListJournalS3ExportsForLedgerOutput) {
1220	op := &request.Operation{
1221		Name:       opListJournalS3ExportsForLedger,
1222		HTTPMethod: "GET",
1223		HTTPPath:   "/ledgers/{name}/journal-s3-exports",
1224		Paginator: &request.Paginator{
1225			InputTokens:     []string{"NextToken"},
1226			OutputTokens:    []string{"NextToken"},
1227			LimitToken:      "MaxResults",
1228			TruncationToken: "",
1229		},
1230	}
1231
1232	if input == nil {
1233		input = &ListJournalS3ExportsForLedgerInput{}
1234	}
1235
1236	output = &ListJournalS3ExportsForLedgerOutput{}
1237	req = c.newRequest(op, input, output)
1238	return
1239}
1240
1241// ListJournalS3ExportsForLedger API operation for Amazon QLDB.
1242//
1243// Returns an array of journal export job descriptions for a specified ledger.
1244//
1245// This action returns a maximum of MaxResults items, and is paginated so that
1246// you can retrieve all the items by calling ListJournalS3ExportsForLedger multiple
1247// times.
1248//
1249// This action does not return any expired export jobs. For more information,
1250// see Export Job Expiration (https://docs.aws.amazon.com/qldb/latest/developerguide/export-journal.request.html#export-journal.request.expiration)
1251// in the Amazon QLDB Developer Guide.
1252//
1253// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1254// with awserr.Error's Code and Message methods to get detailed information about
1255// the error.
1256//
1257// See the AWS API reference guide for Amazon QLDB's
1258// API operation ListJournalS3ExportsForLedger for usage and error information.
1259// See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/ListJournalS3ExportsForLedger
1260func (c *QLDB) ListJournalS3ExportsForLedger(input *ListJournalS3ExportsForLedgerInput) (*ListJournalS3ExportsForLedgerOutput, error) {
1261	req, out := c.ListJournalS3ExportsForLedgerRequest(input)
1262	return out, req.Send()
1263}
1264
1265// ListJournalS3ExportsForLedgerWithContext is the same as ListJournalS3ExportsForLedger with the addition of
1266// the ability to pass a context and additional request options.
1267//
1268// See ListJournalS3ExportsForLedger for details on how to use this API operation.
1269//
1270// The context must be non-nil and will be used for request cancellation. If
1271// the context is nil a panic will occur. In the future the SDK may create
1272// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1273// for more information on using Contexts.
1274func (c *QLDB) ListJournalS3ExportsForLedgerWithContext(ctx aws.Context, input *ListJournalS3ExportsForLedgerInput, opts ...request.Option) (*ListJournalS3ExportsForLedgerOutput, error) {
1275	req, out := c.ListJournalS3ExportsForLedgerRequest(input)
1276	req.SetContext(ctx)
1277	req.ApplyOptions(opts...)
1278	return out, req.Send()
1279}
1280
1281// ListJournalS3ExportsForLedgerPages iterates over the pages of a ListJournalS3ExportsForLedger operation,
1282// calling the "fn" function with the response data for each page. To stop
1283// iterating, return false from the fn function.
1284//
1285// See ListJournalS3ExportsForLedger method for more information on how to use this operation.
1286//
1287// Note: This operation can generate multiple requests to a service.
1288//
1289//    // Example iterating over at most 3 pages of a ListJournalS3ExportsForLedger operation.
1290//    pageNum := 0
1291//    err := client.ListJournalS3ExportsForLedgerPages(params,
1292//        func(page *qldb.ListJournalS3ExportsForLedgerOutput, lastPage bool) bool {
1293//            pageNum++
1294//            fmt.Println(page)
1295//            return pageNum <= 3
1296//        })
1297//
1298func (c *QLDB) ListJournalS3ExportsForLedgerPages(input *ListJournalS3ExportsForLedgerInput, fn func(*ListJournalS3ExportsForLedgerOutput, bool) bool) error {
1299	return c.ListJournalS3ExportsForLedgerPagesWithContext(aws.BackgroundContext(), input, fn)
1300}
1301
1302// ListJournalS3ExportsForLedgerPagesWithContext same as ListJournalS3ExportsForLedgerPages except
1303// it takes a Context and allows setting request options on the pages.
1304//
1305// The context must be non-nil and will be used for request cancellation. If
1306// the context is nil a panic will occur. In the future the SDK may create
1307// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1308// for more information on using Contexts.
1309func (c *QLDB) ListJournalS3ExportsForLedgerPagesWithContext(ctx aws.Context, input *ListJournalS3ExportsForLedgerInput, fn func(*ListJournalS3ExportsForLedgerOutput, bool) bool, opts ...request.Option) error {
1310	p := request.Pagination{
1311		NewRequest: func() (*request.Request, error) {
1312			var inCpy *ListJournalS3ExportsForLedgerInput
1313			if input != nil {
1314				tmp := *input
1315				inCpy = &tmp
1316			}
1317			req, _ := c.ListJournalS3ExportsForLedgerRequest(inCpy)
1318			req.SetContext(ctx)
1319			req.ApplyOptions(opts...)
1320			return req, nil
1321		},
1322	}
1323
1324	for p.Next() {
1325		if !fn(p.Page().(*ListJournalS3ExportsForLedgerOutput), !p.HasNextPage()) {
1326			break
1327		}
1328	}
1329
1330	return p.Err()
1331}
1332
1333const opListLedgers = "ListLedgers"
1334
1335// ListLedgersRequest generates a "aws/request.Request" representing the
1336// client's request for the ListLedgers operation. The "output" return
1337// value will be populated with the request's response once the request completes
1338// successfully.
1339//
1340// Use "Send" method on the returned Request to send the API call to the service.
1341// the "output" return value is not valid until after Send returns without error.
1342//
1343// See ListLedgers for more information on using the ListLedgers
1344// API call, and error handling.
1345//
1346// This method is useful when you want to inject custom logic or configuration
1347// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1348//
1349//
1350//    // Example sending a request using the ListLedgersRequest method.
1351//    req, resp := client.ListLedgersRequest(params)
1352//
1353//    err := req.Send()
1354//    if err == nil { // resp is now filled
1355//        fmt.Println(resp)
1356//    }
1357//
1358// See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/ListLedgers
1359func (c *QLDB) ListLedgersRequest(input *ListLedgersInput) (req *request.Request, output *ListLedgersOutput) {
1360	op := &request.Operation{
1361		Name:       opListLedgers,
1362		HTTPMethod: "GET",
1363		HTTPPath:   "/ledgers",
1364		Paginator: &request.Paginator{
1365			InputTokens:     []string{"NextToken"},
1366			OutputTokens:    []string{"NextToken"},
1367			LimitToken:      "MaxResults",
1368			TruncationToken: "",
1369		},
1370	}
1371
1372	if input == nil {
1373		input = &ListLedgersInput{}
1374	}
1375
1376	output = &ListLedgersOutput{}
1377	req = c.newRequest(op, input, output)
1378	return
1379}
1380
1381// ListLedgers API operation for Amazon QLDB.
1382//
1383// Returns an array of ledger summaries that are associated with the current
1384// AWS account and Region.
1385//
1386// This action returns a maximum of 100 items and is paginated so that you can
1387// retrieve all the items by calling ListLedgers multiple times.
1388//
1389// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1390// with awserr.Error's Code and Message methods to get detailed information about
1391// the error.
1392//
1393// See the AWS API reference guide for Amazon QLDB's
1394// API operation ListLedgers for usage and error information.
1395// See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/ListLedgers
1396func (c *QLDB) ListLedgers(input *ListLedgersInput) (*ListLedgersOutput, error) {
1397	req, out := c.ListLedgersRequest(input)
1398	return out, req.Send()
1399}
1400
1401// ListLedgersWithContext is the same as ListLedgers with the addition of
1402// the ability to pass a context and additional request options.
1403//
1404// See ListLedgers for details on how to use this API operation.
1405//
1406// The context must be non-nil and will be used for request cancellation. If
1407// the context is nil a panic will occur. In the future the SDK may create
1408// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1409// for more information on using Contexts.
1410func (c *QLDB) ListLedgersWithContext(ctx aws.Context, input *ListLedgersInput, opts ...request.Option) (*ListLedgersOutput, error) {
1411	req, out := c.ListLedgersRequest(input)
1412	req.SetContext(ctx)
1413	req.ApplyOptions(opts...)
1414	return out, req.Send()
1415}
1416
1417// ListLedgersPages iterates over the pages of a ListLedgers operation,
1418// calling the "fn" function with the response data for each page. To stop
1419// iterating, return false from the fn function.
1420//
1421// See ListLedgers method for more information on how to use this operation.
1422//
1423// Note: This operation can generate multiple requests to a service.
1424//
1425//    // Example iterating over at most 3 pages of a ListLedgers operation.
1426//    pageNum := 0
1427//    err := client.ListLedgersPages(params,
1428//        func(page *qldb.ListLedgersOutput, lastPage bool) bool {
1429//            pageNum++
1430//            fmt.Println(page)
1431//            return pageNum <= 3
1432//        })
1433//
1434func (c *QLDB) ListLedgersPages(input *ListLedgersInput, fn func(*ListLedgersOutput, bool) bool) error {
1435	return c.ListLedgersPagesWithContext(aws.BackgroundContext(), input, fn)
1436}
1437
1438// ListLedgersPagesWithContext same as ListLedgersPages except
1439// it takes a Context and allows setting request options on the pages.
1440//
1441// The context must be non-nil and will be used for request cancellation. If
1442// the context is nil a panic will occur. In the future the SDK may create
1443// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1444// for more information on using Contexts.
1445func (c *QLDB) ListLedgersPagesWithContext(ctx aws.Context, input *ListLedgersInput, fn func(*ListLedgersOutput, bool) bool, opts ...request.Option) error {
1446	p := request.Pagination{
1447		NewRequest: func() (*request.Request, error) {
1448			var inCpy *ListLedgersInput
1449			if input != nil {
1450				tmp := *input
1451				inCpy = &tmp
1452			}
1453			req, _ := c.ListLedgersRequest(inCpy)
1454			req.SetContext(ctx)
1455			req.ApplyOptions(opts...)
1456			return req, nil
1457		},
1458	}
1459
1460	for p.Next() {
1461		if !fn(p.Page().(*ListLedgersOutput), !p.HasNextPage()) {
1462			break
1463		}
1464	}
1465
1466	return p.Err()
1467}
1468
1469const opListTagsForResource = "ListTagsForResource"
1470
1471// ListTagsForResourceRequest generates a "aws/request.Request" representing the
1472// client's request for the ListTagsForResource operation. The "output" return
1473// value will be populated with the request's response once the request completes
1474// successfully.
1475//
1476// Use "Send" method on the returned Request to send the API call to the service.
1477// the "output" return value is not valid until after Send returns without error.
1478//
1479// See ListTagsForResource for more information on using the ListTagsForResource
1480// API call, and error handling.
1481//
1482// This method is useful when you want to inject custom logic or configuration
1483// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1484//
1485//
1486//    // Example sending a request using the ListTagsForResourceRequest method.
1487//    req, resp := client.ListTagsForResourceRequest(params)
1488//
1489//    err := req.Send()
1490//    if err == nil { // resp is now filled
1491//        fmt.Println(resp)
1492//    }
1493//
1494// See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/ListTagsForResource
1495func (c *QLDB) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
1496	op := &request.Operation{
1497		Name:       opListTagsForResource,
1498		HTTPMethod: "GET",
1499		HTTPPath:   "/tags/{resourceArn}",
1500	}
1501
1502	if input == nil {
1503		input = &ListTagsForResourceInput{}
1504	}
1505
1506	output = &ListTagsForResourceOutput{}
1507	req = c.newRequest(op, input, output)
1508	return
1509}
1510
1511// ListTagsForResource API operation for Amazon QLDB.
1512//
1513// Returns all tags for a specified Amazon QLDB resource.
1514//
1515// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1516// with awserr.Error's Code and Message methods to get detailed information about
1517// the error.
1518//
1519// See the AWS API reference guide for Amazon QLDB's
1520// API operation ListTagsForResource for usage and error information.
1521//
1522// Returned Error Types:
1523//   * InvalidParameterException
1524//   One or more parameters in the request aren't valid.
1525//
1526//   * ResourceNotFoundException
1527//   The specified resource doesn't exist.
1528//
1529// See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/ListTagsForResource
1530func (c *QLDB) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
1531	req, out := c.ListTagsForResourceRequest(input)
1532	return out, req.Send()
1533}
1534
1535// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
1536// the ability to pass a context and additional request options.
1537//
1538// See ListTagsForResource for details on how to use this API operation.
1539//
1540// The context must be non-nil and will be used for request cancellation. If
1541// the context is nil a panic will occur. In the future the SDK may create
1542// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1543// for more information on using Contexts.
1544func (c *QLDB) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
1545	req, out := c.ListTagsForResourceRequest(input)
1546	req.SetContext(ctx)
1547	req.ApplyOptions(opts...)
1548	return out, req.Send()
1549}
1550
1551const opStreamJournalToKinesis = "StreamJournalToKinesis"
1552
1553// StreamJournalToKinesisRequest generates a "aws/request.Request" representing the
1554// client's request for the StreamJournalToKinesis operation. The "output" return
1555// value will be populated with the request's response once the request completes
1556// successfully.
1557//
1558// Use "Send" method on the returned Request to send the API call to the service.
1559// the "output" return value is not valid until after Send returns without error.
1560//
1561// See StreamJournalToKinesis for more information on using the StreamJournalToKinesis
1562// API call, and error handling.
1563//
1564// This method is useful when you want to inject custom logic or configuration
1565// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1566//
1567//
1568//    // Example sending a request using the StreamJournalToKinesisRequest method.
1569//    req, resp := client.StreamJournalToKinesisRequest(params)
1570//
1571//    err := req.Send()
1572//    if err == nil { // resp is now filled
1573//        fmt.Println(resp)
1574//    }
1575//
1576// See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/StreamJournalToKinesis
1577func (c *QLDB) StreamJournalToKinesisRequest(input *StreamJournalToKinesisInput) (req *request.Request, output *StreamJournalToKinesisOutput) {
1578	op := &request.Operation{
1579		Name:       opStreamJournalToKinesis,
1580		HTTPMethod: "POST",
1581		HTTPPath:   "/ledgers/{name}/journal-kinesis-streams",
1582	}
1583
1584	if input == nil {
1585		input = &StreamJournalToKinesisInput{}
1586	}
1587
1588	output = &StreamJournalToKinesisOutput{}
1589	req = c.newRequest(op, input, output)
1590	return
1591}
1592
1593// StreamJournalToKinesis API operation for Amazon QLDB.
1594//
1595// Creates a stream for a given Amazon QLDB ledger that delivers the journal
1596// data to a specified Amazon Kinesis Data Streams resource. The stream captures
1597// every document revision that is committed to your journal and sends it to
1598// the Kinesis data stream.
1599//
1600// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1601// with awserr.Error's Code and Message methods to get detailed information about
1602// the error.
1603//
1604// See the AWS API reference guide for Amazon QLDB's
1605// API operation StreamJournalToKinesis for usage and error information.
1606//
1607// Returned Error Types:
1608//   * InvalidParameterException
1609//   One or more parameters in the request aren't valid.
1610//
1611//   * ResourceNotFoundException
1612//   The specified resource doesn't exist.
1613//
1614//   * ResourcePreconditionNotMetException
1615//   The operation failed because a condition wasn't satisfied in advance.
1616//
1617// See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/StreamJournalToKinesis
1618func (c *QLDB) StreamJournalToKinesis(input *StreamJournalToKinesisInput) (*StreamJournalToKinesisOutput, error) {
1619	req, out := c.StreamJournalToKinesisRequest(input)
1620	return out, req.Send()
1621}
1622
1623// StreamJournalToKinesisWithContext is the same as StreamJournalToKinesis with the addition of
1624// the ability to pass a context and additional request options.
1625//
1626// See StreamJournalToKinesis for details on how to use this API operation.
1627//
1628// The context must be non-nil and will be used for request cancellation. If
1629// the context is nil a panic will occur. In the future the SDK may create
1630// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1631// for more information on using Contexts.
1632func (c *QLDB) StreamJournalToKinesisWithContext(ctx aws.Context, input *StreamJournalToKinesisInput, opts ...request.Option) (*StreamJournalToKinesisOutput, error) {
1633	req, out := c.StreamJournalToKinesisRequest(input)
1634	req.SetContext(ctx)
1635	req.ApplyOptions(opts...)
1636	return out, req.Send()
1637}
1638
1639const opTagResource = "TagResource"
1640
1641// TagResourceRequest generates a "aws/request.Request" representing the
1642// client's request for the TagResource operation. The "output" return
1643// value will be populated with the request's response once the request completes
1644// successfully.
1645//
1646// Use "Send" method on the returned Request to send the API call to the service.
1647// the "output" return value is not valid until after Send returns without error.
1648//
1649// See TagResource for more information on using the TagResource
1650// API call, and error handling.
1651//
1652// This method is useful when you want to inject custom logic or configuration
1653// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1654//
1655//
1656//    // Example sending a request using the TagResourceRequest method.
1657//    req, resp := client.TagResourceRequest(params)
1658//
1659//    err := req.Send()
1660//    if err == nil { // resp is now filled
1661//        fmt.Println(resp)
1662//    }
1663//
1664// See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/TagResource
1665func (c *QLDB) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
1666	op := &request.Operation{
1667		Name:       opTagResource,
1668		HTTPMethod: "POST",
1669		HTTPPath:   "/tags/{resourceArn}",
1670	}
1671
1672	if input == nil {
1673		input = &TagResourceInput{}
1674	}
1675
1676	output = &TagResourceOutput{}
1677	req = c.newRequest(op, input, output)
1678	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1679	return
1680}
1681
1682// TagResource API operation for Amazon QLDB.
1683//
1684// Adds one or more tags to a specified Amazon QLDB resource.
1685//
1686// A resource can have up to 50 tags. If you try to create more than 50 tags
1687// for a resource, your request fails and returns an error.
1688//
1689// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1690// with awserr.Error's Code and Message methods to get detailed information about
1691// the error.
1692//
1693// See the AWS API reference guide for Amazon QLDB's
1694// API operation TagResource for usage and error information.
1695//
1696// Returned Error Types:
1697//   * InvalidParameterException
1698//   One or more parameters in the request aren't valid.
1699//
1700//   * ResourceNotFoundException
1701//   The specified resource doesn't exist.
1702//
1703// See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/TagResource
1704func (c *QLDB) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
1705	req, out := c.TagResourceRequest(input)
1706	return out, req.Send()
1707}
1708
1709// TagResourceWithContext is the same as TagResource with the addition of
1710// the ability to pass a context and additional request options.
1711//
1712// See TagResource for details on how to use this API operation.
1713//
1714// The context must be non-nil and will be used for request cancellation. If
1715// the context is nil a panic will occur. In the future the SDK may create
1716// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1717// for more information on using Contexts.
1718func (c *QLDB) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
1719	req, out := c.TagResourceRequest(input)
1720	req.SetContext(ctx)
1721	req.ApplyOptions(opts...)
1722	return out, req.Send()
1723}
1724
1725const opUntagResource = "UntagResource"
1726
1727// UntagResourceRequest generates a "aws/request.Request" representing the
1728// client's request for the UntagResource operation. The "output" return
1729// value will be populated with the request's response once the request completes
1730// successfully.
1731//
1732// Use "Send" method on the returned Request to send the API call to the service.
1733// the "output" return value is not valid until after Send returns without error.
1734//
1735// See UntagResource for more information on using the UntagResource
1736// API call, and error handling.
1737//
1738// This method is useful when you want to inject custom logic or configuration
1739// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1740//
1741//
1742//    // Example sending a request using the UntagResourceRequest method.
1743//    req, resp := client.UntagResourceRequest(params)
1744//
1745//    err := req.Send()
1746//    if err == nil { // resp is now filled
1747//        fmt.Println(resp)
1748//    }
1749//
1750// See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/UntagResource
1751func (c *QLDB) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
1752	op := &request.Operation{
1753		Name:       opUntagResource,
1754		HTTPMethod: "DELETE",
1755		HTTPPath:   "/tags/{resourceArn}",
1756	}
1757
1758	if input == nil {
1759		input = &UntagResourceInput{}
1760	}
1761
1762	output = &UntagResourceOutput{}
1763	req = c.newRequest(op, input, output)
1764	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1765	return
1766}
1767
1768// UntagResource API operation for Amazon QLDB.
1769//
1770// Removes one or more tags from a specified Amazon QLDB resource. You can specify
1771// up to 50 tag keys to remove.
1772//
1773// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1774// with awserr.Error's Code and Message methods to get detailed information about
1775// the error.
1776//
1777// See the AWS API reference guide for Amazon QLDB's
1778// API operation UntagResource for usage and error information.
1779//
1780// Returned Error Types:
1781//   * InvalidParameterException
1782//   One or more parameters in the request aren't valid.
1783//
1784//   * ResourceNotFoundException
1785//   The specified resource doesn't exist.
1786//
1787// See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/UntagResource
1788func (c *QLDB) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
1789	req, out := c.UntagResourceRequest(input)
1790	return out, req.Send()
1791}
1792
1793// UntagResourceWithContext is the same as UntagResource with the addition of
1794// the ability to pass a context and additional request options.
1795//
1796// See UntagResource for details on how to use this API operation.
1797//
1798// The context must be non-nil and will be used for request cancellation. If
1799// the context is nil a panic will occur. In the future the SDK may create
1800// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1801// for more information on using Contexts.
1802func (c *QLDB) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
1803	req, out := c.UntagResourceRequest(input)
1804	req.SetContext(ctx)
1805	req.ApplyOptions(opts...)
1806	return out, req.Send()
1807}
1808
1809const opUpdateLedger = "UpdateLedger"
1810
1811// UpdateLedgerRequest generates a "aws/request.Request" representing the
1812// client's request for the UpdateLedger operation. The "output" return
1813// value will be populated with the request's response once the request completes
1814// successfully.
1815//
1816// Use "Send" method on the returned Request to send the API call to the service.
1817// the "output" return value is not valid until after Send returns without error.
1818//
1819// See UpdateLedger for more information on using the UpdateLedger
1820// API call, and error handling.
1821//
1822// This method is useful when you want to inject custom logic or configuration
1823// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1824//
1825//
1826//    // Example sending a request using the UpdateLedgerRequest method.
1827//    req, resp := client.UpdateLedgerRequest(params)
1828//
1829//    err := req.Send()
1830//    if err == nil { // resp is now filled
1831//        fmt.Println(resp)
1832//    }
1833//
1834// See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/UpdateLedger
1835func (c *QLDB) UpdateLedgerRequest(input *UpdateLedgerInput) (req *request.Request, output *UpdateLedgerOutput) {
1836	op := &request.Operation{
1837		Name:       opUpdateLedger,
1838		HTTPMethod: "PATCH",
1839		HTTPPath:   "/ledgers/{name}",
1840	}
1841
1842	if input == nil {
1843		input = &UpdateLedgerInput{}
1844	}
1845
1846	output = &UpdateLedgerOutput{}
1847	req = c.newRequest(op, input, output)
1848	return
1849}
1850
1851// UpdateLedger API operation for Amazon QLDB.
1852//
1853// Updates properties on a ledger.
1854//
1855// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1856// with awserr.Error's Code and Message methods to get detailed information about
1857// the error.
1858//
1859// See the AWS API reference guide for Amazon QLDB's
1860// API operation UpdateLedger for usage and error information.
1861//
1862// Returned Error Types:
1863//   * InvalidParameterException
1864//   One or more parameters in the request aren't valid.
1865//
1866//   * ResourceNotFoundException
1867//   The specified resource doesn't exist.
1868//
1869// See also, https://docs.aws.amazon.com/goto/WebAPI/qldb-2019-01-02/UpdateLedger
1870func (c *QLDB) UpdateLedger(input *UpdateLedgerInput) (*UpdateLedgerOutput, error) {
1871	req, out := c.UpdateLedgerRequest(input)
1872	return out, req.Send()
1873}
1874
1875// UpdateLedgerWithContext is the same as UpdateLedger with the addition of
1876// the ability to pass a context and additional request options.
1877//
1878// See UpdateLedger for details on how to use this API operation.
1879//
1880// The context must be non-nil and will be used for request cancellation. If
1881// the context is nil a panic will occur. In the future the SDK may create
1882// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1883// for more information on using Contexts.
1884func (c *QLDB) UpdateLedgerWithContext(ctx aws.Context, input *UpdateLedgerInput, opts ...request.Option) (*UpdateLedgerOutput, error) {
1885	req, out := c.UpdateLedgerRequest(input)
1886	req.SetContext(ctx)
1887	req.ApplyOptions(opts...)
1888	return out, req.Send()
1889}
1890
1891type CancelJournalKinesisStreamInput struct {
1892	_ struct{} `type:"structure"`
1893
1894	// The name of the ledger.
1895	//
1896	// LedgerName is a required field
1897	LedgerName *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
1898
1899	// The unique ID that QLDB assigns to each QLDB journal stream.
1900	//
1901	// StreamId is a required field
1902	StreamId *string `location:"uri" locationName:"streamId" min:"22" type:"string" required:"true"`
1903}
1904
1905// String returns the string representation
1906func (s CancelJournalKinesisStreamInput) String() string {
1907	return awsutil.Prettify(s)
1908}
1909
1910// GoString returns the string representation
1911func (s CancelJournalKinesisStreamInput) GoString() string {
1912	return s.String()
1913}
1914
1915// Validate inspects the fields of the type to determine if they are valid.
1916func (s *CancelJournalKinesisStreamInput) Validate() error {
1917	invalidParams := request.ErrInvalidParams{Context: "CancelJournalKinesisStreamInput"}
1918	if s.LedgerName == nil {
1919		invalidParams.Add(request.NewErrParamRequired("LedgerName"))
1920	}
1921	if s.LedgerName != nil && len(*s.LedgerName) < 1 {
1922		invalidParams.Add(request.NewErrParamMinLen("LedgerName", 1))
1923	}
1924	if s.StreamId == nil {
1925		invalidParams.Add(request.NewErrParamRequired("StreamId"))
1926	}
1927	if s.StreamId != nil && len(*s.StreamId) < 22 {
1928		invalidParams.Add(request.NewErrParamMinLen("StreamId", 22))
1929	}
1930
1931	if invalidParams.Len() > 0 {
1932		return invalidParams
1933	}
1934	return nil
1935}
1936
1937// SetLedgerName sets the LedgerName field's value.
1938func (s *CancelJournalKinesisStreamInput) SetLedgerName(v string) *CancelJournalKinesisStreamInput {
1939	s.LedgerName = &v
1940	return s
1941}
1942
1943// SetStreamId sets the StreamId field's value.
1944func (s *CancelJournalKinesisStreamInput) SetStreamId(v string) *CancelJournalKinesisStreamInput {
1945	s.StreamId = &v
1946	return s
1947}
1948
1949type CancelJournalKinesisStreamOutput struct {
1950	_ struct{} `type:"structure"`
1951
1952	// The unique ID that QLDB assigns to each QLDB journal stream.
1953	StreamId *string `min:"22" type:"string"`
1954}
1955
1956// String returns the string representation
1957func (s CancelJournalKinesisStreamOutput) String() string {
1958	return awsutil.Prettify(s)
1959}
1960
1961// GoString returns the string representation
1962func (s CancelJournalKinesisStreamOutput) GoString() string {
1963	return s.String()
1964}
1965
1966// SetStreamId sets the StreamId field's value.
1967func (s *CancelJournalKinesisStreamOutput) SetStreamId(v string) *CancelJournalKinesisStreamOutput {
1968	s.StreamId = &v
1969	return s
1970}
1971
1972type CreateLedgerInput struct {
1973	_ struct{} `type:"structure"`
1974
1975	// The flag that prevents a ledger from being deleted by any user. If not provided
1976	// on ledger creation, this feature is enabled (true) by default.
1977	//
1978	// If deletion protection is enabled, you must first disable it before you can
1979	// delete the ledger using the QLDB API or the AWS Command Line Interface (AWS
1980	// CLI). You can disable it by calling the UpdateLedger operation to set the
1981	// flag to false. The QLDB console disables deletion protection for you when
1982	// you use it to delete a ledger.
1983	DeletionProtection *bool `type:"boolean"`
1984
1985	// The name of the ledger that you want to create. The name must be unique among
1986	// all of your ledgers in the current AWS Region.
1987	//
1988	// Name is a required field
1989	Name *string `min:"1" type:"string" required:"true"`
1990
1991	// The permissions mode to assign to the ledger that you want to create.
1992	//
1993	// PermissionsMode is a required field
1994	PermissionsMode *string `type:"string" required:"true" enum:"PermissionsMode"`
1995
1996	// The key-value pairs to add as tags to the ledger that you want to create.
1997	// Tag keys are case sensitive. Tag values are case sensitive and can be null.
1998	Tags map[string]*string `type:"map"`
1999}
2000
2001// String returns the string representation
2002func (s CreateLedgerInput) String() string {
2003	return awsutil.Prettify(s)
2004}
2005
2006// GoString returns the string representation
2007func (s CreateLedgerInput) GoString() string {
2008	return s.String()
2009}
2010
2011// Validate inspects the fields of the type to determine if they are valid.
2012func (s *CreateLedgerInput) Validate() error {
2013	invalidParams := request.ErrInvalidParams{Context: "CreateLedgerInput"}
2014	if s.Name == nil {
2015		invalidParams.Add(request.NewErrParamRequired("Name"))
2016	}
2017	if s.Name != nil && len(*s.Name) < 1 {
2018		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
2019	}
2020	if s.PermissionsMode == nil {
2021		invalidParams.Add(request.NewErrParamRequired("PermissionsMode"))
2022	}
2023
2024	if invalidParams.Len() > 0 {
2025		return invalidParams
2026	}
2027	return nil
2028}
2029
2030// SetDeletionProtection sets the DeletionProtection field's value.
2031func (s *CreateLedgerInput) SetDeletionProtection(v bool) *CreateLedgerInput {
2032	s.DeletionProtection = &v
2033	return s
2034}
2035
2036// SetName sets the Name field's value.
2037func (s *CreateLedgerInput) SetName(v string) *CreateLedgerInput {
2038	s.Name = &v
2039	return s
2040}
2041
2042// SetPermissionsMode sets the PermissionsMode field's value.
2043func (s *CreateLedgerInput) SetPermissionsMode(v string) *CreateLedgerInput {
2044	s.PermissionsMode = &v
2045	return s
2046}
2047
2048// SetTags sets the Tags field's value.
2049func (s *CreateLedgerInput) SetTags(v map[string]*string) *CreateLedgerInput {
2050	s.Tags = v
2051	return s
2052}
2053
2054type CreateLedgerOutput struct {
2055	_ struct{} `type:"structure"`
2056
2057	// The Amazon Resource Name (ARN) for the ledger.
2058	Arn *string `min:"20" type:"string"`
2059
2060	// The date and time, in epoch time format, when the ledger was created. (Epoch
2061	// time format is the number of seconds elapsed since 12:00:00 AM January 1,
2062	// 1970 UTC.)
2063	CreationDateTime *time.Time `type:"timestamp"`
2064
2065	// The flag that prevents a ledger from being deleted by any user. If not provided
2066	// on ledger creation, this feature is enabled (true) by default.
2067	//
2068	// If deletion protection is enabled, you must first disable it before you can
2069	// delete the ledger using the QLDB API or the AWS Command Line Interface (AWS
2070	// CLI). You can disable it by calling the UpdateLedger operation to set the
2071	// flag to false. The QLDB console disables deletion protection for you when
2072	// you use it to delete a ledger.
2073	DeletionProtection *bool `type:"boolean"`
2074
2075	// The name of the ledger.
2076	Name *string `min:"1" type:"string"`
2077
2078	// The current status of the ledger.
2079	State *string `type:"string" enum:"LedgerState"`
2080}
2081
2082// String returns the string representation
2083func (s CreateLedgerOutput) String() string {
2084	return awsutil.Prettify(s)
2085}
2086
2087// GoString returns the string representation
2088func (s CreateLedgerOutput) GoString() string {
2089	return s.String()
2090}
2091
2092// SetArn sets the Arn field's value.
2093func (s *CreateLedgerOutput) SetArn(v string) *CreateLedgerOutput {
2094	s.Arn = &v
2095	return s
2096}
2097
2098// SetCreationDateTime sets the CreationDateTime field's value.
2099func (s *CreateLedgerOutput) SetCreationDateTime(v time.Time) *CreateLedgerOutput {
2100	s.CreationDateTime = &v
2101	return s
2102}
2103
2104// SetDeletionProtection sets the DeletionProtection field's value.
2105func (s *CreateLedgerOutput) SetDeletionProtection(v bool) *CreateLedgerOutput {
2106	s.DeletionProtection = &v
2107	return s
2108}
2109
2110// SetName sets the Name field's value.
2111func (s *CreateLedgerOutput) SetName(v string) *CreateLedgerOutput {
2112	s.Name = &v
2113	return s
2114}
2115
2116// SetState sets the State field's value.
2117func (s *CreateLedgerOutput) SetState(v string) *CreateLedgerOutput {
2118	s.State = &v
2119	return s
2120}
2121
2122type DeleteLedgerInput struct {
2123	_ struct{} `type:"structure"`
2124
2125	// The name of the ledger that you want to delete.
2126	//
2127	// Name is a required field
2128	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
2129}
2130
2131// String returns the string representation
2132func (s DeleteLedgerInput) String() string {
2133	return awsutil.Prettify(s)
2134}
2135
2136// GoString returns the string representation
2137func (s DeleteLedgerInput) GoString() string {
2138	return s.String()
2139}
2140
2141// Validate inspects the fields of the type to determine if they are valid.
2142func (s *DeleteLedgerInput) Validate() error {
2143	invalidParams := request.ErrInvalidParams{Context: "DeleteLedgerInput"}
2144	if s.Name == nil {
2145		invalidParams.Add(request.NewErrParamRequired("Name"))
2146	}
2147	if s.Name != nil && len(*s.Name) < 1 {
2148		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
2149	}
2150
2151	if invalidParams.Len() > 0 {
2152		return invalidParams
2153	}
2154	return nil
2155}
2156
2157// SetName sets the Name field's value.
2158func (s *DeleteLedgerInput) SetName(v string) *DeleteLedgerInput {
2159	s.Name = &v
2160	return s
2161}
2162
2163type DeleteLedgerOutput struct {
2164	_ struct{} `type:"structure"`
2165}
2166
2167// String returns the string representation
2168func (s DeleteLedgerOutput) String() string {
2169	return awsutil.Prettify(s)
2170}
2171
2172// GoString returns the string representation
2173func (s DeleteLedgerOutput) GoString() string {
2174	return s.String()
2175}
2176
2177type DescribeJournalKinesisStreamInput struct {
2178	_ struct{} `type:"structure"`
2179
2180	// The name of the ledger.
2181	//
2182	// LedgerName is a required field
2183	LedgerName *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
2184
2185	// The unique ID that QLDB assigns to each QLDB journal stream.
2186	//
2187	// StreamId is a required field
2188	StreamId *string `location:"uri" locationName:"streamId" min:"22" type:"string" required:"true"`
2189}
2190
2191// String returns the string representation
2192func (s DescribeJournalKinesisStreamInput) String() string {
2193	return awsutil.Prettify(s)
2194}
2195
2196// GoString returns the string representation
2197func (s DescribeJournalKinesisStreamInput) GoString() string {
2198	return s.String()
2199}
2200
2201// Validate inspects the fields of the type to determine if they are valid.
2202func (s *DescribeJournalKinesisStreamInput) Validate() error {
2203	invalidParams := request.ErrInvalidParams{Context: "DescribeJournalKinesisStreamInput"}
2204	if s.LedgerName == nil {
2205		invalidParams.Add(request.NewErrParamRequired("LedgerName"))
2206	}
2207	if s.LedgerName != nil && len(*s.LedgerName) < 1 {
2208		invalidParams.Add(request.NewErrParamMinLen("LedgerName", 1))
2209	}
2210	if s.StreamId == nil {
2211		invalidParams.Add(request.NewErrParamRequired("StreamId"))
2212	}
2213	if s.StreamId != nil && len(*s.StreamId) < 22 {
2214		invalidParams.Add(request.NewErrParamMinLen("StreamId", 22))
2215	}
2216
2217	if invalidParams.Len() > 0 {
2218		return invalidParams
2219	}
2220	return nil
2221}
2222
2223// SetLedgerName sets the LedgerName field's value.
2224func (s *DescribeJournalKinesisStreamInput) SetLedgerName(v string) *DescribeJournalKinesisStreamInput {
2225	s.LedgerName = &v
2226	return s
2227}
2228
2229// SetStreamId sets the StreamId field's value.
2230func (s *DescribeJournalKinesisStreamInput) SetStreamId(v string) *DescribeJournalKinesisStreamInput {
2231	s.StreamId = &v
2232	return s
2233}
2234
2235type DescribeJournalKinesisStreamOutput struct {
2236	_ struct{} `type:"structure"`
2237
2238	// Information about the QLDB journal stream returned by a DescribeJournalS3Export
2239	// request.
2240	Stream *JournalKinesisStreamDescription `type:"structure"`
2241}
2242
2243// String returns the string representation
2244func (s DescribeJournalKinesisStreamOutput) String() string {
2245	return awsutil.Prettify(s)
2246}
2247
2248// GoString returns the string representation
2249func (s DescribeJournalKinesisStreamOutput) GoString() string {
2250	return s.String()
2251}
2252
2253// SetStream sets the Stream field's value.
2254func (s *DescribeJournalKinesisStreamOutput) SetStream(v *JournalKinesisStreamDescription) *DescribeJournalKinesisStreamOutput {
2255	s.Stream = v
2256	return s
2257}
2258
2259type DescribeJournalS3ExportInput struct {
2260	_ struct{} `type:"structure"`
2261
2262	// The unique ID of the journal export job that you want to describe.
2263	//
2264	// ExportId is a required field
2265	ExportId *string `location:"uri" locationName:"exportId" min:"22" type:"string" required:"true"`
2266
2267	// The name of the ledger.
2268	//
2269	// Name is a required field
2270	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
2271}
2272
2273// String returns the string representation
2274func (s DescribeJournalS3ExportInput) String() string {
2275	return awsutil.Prettify(s)
2276}
2277
2278// GoString returns the string representation
2279func (s DescribeJournalS3ExportInput) GoString() string {
2280	return s.String()
2281}
2282
2283// Validate inspects the fields of the type to determine if they are valid.
2284func (s *DescribeJournalS3ExportInput) Validate() error {
2285	invalidParams := request.ErrInvalidParams{Context: "DescribeJournalS3ExportInput"}
2286	if s.ExportId == nil {
2287		invalidParams.Add(request.NewErrParamRequired("ExportId"))
2288	}
2289	if s.ExportId != nil && len(*s.ExportId) < 22 {
2290		invalidParams.Add(request.NewErrParamMinLen("ExportId", 22))
2291	}
2292	if s.Name == nil {
2293		invalidParams.Add(request.NewErrParamRequired("Name"))
2294	}
2295	if s.Name != nil && len(*s.Name) < 1 {
2296		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
2297	}
2298
2299	if invalidParams.Len() > 0 {
2300		return invalidParams
2301	}
2302	return nil
2303}
2304
2305// SetExportId sets the ExportId field's value.
2306func (s *DescribeJournalS3ExportInput) SetExportId(v string) *DescribeJournalS3ExportInput {
2307	s.ExportId = &v
2308	return s
2309}
2310
2311// SetName sets the Name field's value.
2312func (s *DescribeJournalS3ExportInput) SetName(v string) *DescribeJournalS3ExportInput {
2313	s.Name = &v
2314	return s
2315}
2316
2317type DescribeJournalS3ExportOutput struct {
2318	_ struct{} `type:"structure"`
2319
2320	// Information about the journal export job returned by a DescribeJournalS3Export
2321	// request.
2322	//
2323	// ExportDescription is a required field
2324	ExportDescription *JournalS3ExportDescription `type:"structure" required:"true"`
2325}
2326
2327// String returns the string representation
2328func (s DescribeJournalS3ExportOutput) String() string {
2329	return awsutil.Prettify(s)
2330}
2331
2332// GoString returns the string representation
2333func (s DescribeJournalS3ExportOutput) GoString() string {
2334	return s.String()
2335}
2336
2337// SetExportDescription sets the ExportDescription field's value.
2338func (s *DescribeJournalS3ExportOutput) SetExportDescription(v *JournalS3ExportDescription) *DescribeJournalS3ExportOutput {
2339	s.ExportDescription = v
2340	return s
2341}
2342
2343type DescribeLedgerInput struct {
2344	_ struct{} `type:"structure"`
2345
2346	// The name of the ledger that you want to describe.
2347	//
2348	// Name is a required field
2349	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
2350}
2351
2352// String returns the string representation
2353func (s DescribeLedgerInput) String() string {
2354	return awsutil.Prettify(s)
2355}
2356
2357// GoString returns the string representation
2358func (s DescribeLedgerInput) GoString() string {
2359	return s.String()
2360}
2361
2362// Validate inspects the fields of the type to determine if they are valid.
2363func (s *DescribeLedgerInput) Validate() error {
2364	invalidParams := request.ErrInvalidParams{Context: "DescribeLedgerInput"}
2365	if s.Name == nil {
2366		invalidParams.Add(request.NewErrParamRequired("Name"))
2367	}
2368	if s.Name != nil && len(*s.Name) < 1 {
2369		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
2370	}
2371
2372	if invalidParams.Len() > 0 {
2373		return invalidParams
2374	}
2375	return nil
2376}
2377
2378// SetName sets the Name field's value.
2379func (s *DescribeLedgerInput) SetName(v string) *DescribeLedgerInput {
2380	s.Name = &v
2381	return s
2382}
2383
2384type DescribeLedgerOutput struct {
2385	_ struct{} `type:"structure"`
2386
2387	// The Amazon Resource Name (ARN) for the ledger.
2388	Arn *string `min:"20" type:"string"`
2389
2390	// The date and time, in epoch time format, when the ledger was created. (Epoch
2391	// time format is the number of seconds elapsed since 12:00:00 AM January 1,
2392	// 1970 UTC.)
2393	CreationDateTime *time.Time `type:"timestamp"`
2394
2395	// The flag that prevents a ledger from being deleted by any user. If not provided
2396	// on ledger creation, this feature is enabled (true) by default.
2397	//
2398	// If deletion protection is enabled, you must first disable it before you can
2399	// delete the ledger using the QLDB API or the AWS Command Line Interface (AWS
2400	// CLI). You can disable it by calling the UpdateLedger operation to set the
2401	// flag to false. The QLDB console disables deletion protection for you when
2402	// you use it to delete a ledger.
2403	DeletionProtection *bool `type:"boolean"`
2404
2405	// The name of the ledger.
2406	Name *string `min:"1" type:"string"`
2407
2408	// The current status of the ledger.
2409	State *string `type:"string" enum:"LedgerState"`
2410}
2411
2412// String returns the string representation
2413func (s DescribeLedgerOutput) String() string {
2414	return awsutil.Prettify(s)
2415}
2416
2417// GoString returns the string representation
2418func (s DescribeLedgerOutput) GoString() string {
2419	return s.String()
2420}
2421
2422// SetArn sets the Arn field's value.
2423func (s *DescribeLedgerOutput) SetArn(v string) *DescribeLedgerOutput {
2424	s.Arn = &v
2425	return s
2426}
2427
2428// SetCreationDateTime sets the CreationDateTime field's value.
2429func (s *DescribeLedgerOutput) SetCreationDateTime(v time.Time) *DescribeLedgerOutput {
2430	s.CreationDateTime = &v
2431	return s
2432}
2433
2434// SetDeletionProtection sets the DeletionProtection field's value.
2435func (s *DescribeLedgerOutput) SetDeletionProtection(v bool) *DescribeLedgerOutput {
2436	s.DeletionProtection = &v
2437	return s
2438}
2439
2440// SetName sets the Name field's value.
2441func (s *DescribeLedgerOutput) SetName(v string) *DescribeLedgerOutput {
2442	s.Name = &v
2443	return s
2444}
2445
2446// SetState sets the State field's value.
2447func (s *DescribeLedgerOutput) SetState(v string) *DescribeLedgerOutput {
2448	s.State = &v
2449	return s
2450}
2451
2452type ExportJournalToS3Input struct {
2453	_ struct{} `type:"structure"`
2454
2455	// The exclusive end date and time for the range of journal contents that you
2456	// want to export.
2457	//
2458	// The ExclusiveEndTime must be in ISO 8601 date and time format and in Universal
2459	// Coordinated Time (UTC). For example: 2019-06-13T21:36:34Z
2460	//
2461	// The ExclusiveEndTime must be less than or equal to the current UTC date and
2462	// time.
2463	//
2464	// ExclusiveEndTime is a required field
2465	ExclusiveEndTime *time.Time `type:"timestamp" required:"true"`
2466
2467	// The inclusive start date and time for the range of journal contents that
2468	// you want to export.
2469	//
2470	// The InclusiveStartTime must be in ISO 8601 date and time format and in Universal
2471	// Coordinated Time (UTC). For example: 2019-06-13T21:36:34Z
2472	//
2473	// The InclusiveStartTime must be before ExclusiveEndTime.
2474	//
2475	// If you provide an InclusiveStartTime that is before the ledger's CreationDateTime,
2476	// Amazon QLDB defaults it to the ledger's CreationDateTime.
2477	//
2478	// InclusiveStartTime is a required field
2479	InclusiveStartTime *time.Time `type:"timestamp" required:"true"`
2480
2481	// The name of the ledger.
2482	//
2483	// Name is a required field
2484	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
2485
2486	// The Amazon Resource Name (ARN) of the IAM role that grants QLDB permissions
2487	// for a journal export job to do the following:
2488	//
2489	//    * Write objects into your Amazon Simple Storage Service (Amazon S3) bucket.
2490	//
2491	//    * (Optional) Use your customer master key (CMK) in AWS Key Management
2492	//    Service (AWS KMS) for server-side encryption of your exported data.
2493	//
2494	// RoleArn is a required field
2495	RoleArn *string `min:"20" type:"string" required:"true"`
2496
2497	// The configuration settings of the Amazon S3 bucket destination for your export
2498	// request.
2499	//
2500	// S3ExportConfiguration is a required field
2501	S3ExportConfiguration *S3ExportConfiguration `type:"structure" required:"true"`
2502}
2503
2504// String returns the string representation
2505func (s ExportJournalToS3Input) String() string {
2506	return awsutil.Prettify(s)
2507}
2508
2509// GoString returns the string representation
2510func (s ExportJournalToS3Input) GoString() string {
2511	return s.String()
2512}
2513
2514// Validate inspects the fields of the type to determine if they are valid.
2515func (s *ExportJournalToS3Input) Validate() error {
2516	invalidParams := request.ErrInvalidParams{Context: "ExportJournalToS3Input"}
2517	if s.ExclusiveEndTime == nil {
2518		invalidParams.Add(request.NewErrParamRequired("ExclusiveEndTime"))
2519	}
2520	if s.InclusiveStartTime == nil {
2521		invalidParams.Add(request.NewErrParamRequired("InclusiveStartTime"))
2522	}
2523	if s.Name == nil {
2524		invalidParams.Add(request.NewErrParamRequired("Name"))
2525	}
2526	if s.Name != nil && len(*s.Name) < 1 {
2527		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
2528	}
2529	if s.RoleArn == nil {
2530		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
2531	}
2532	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
2533		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
2534	}
2535	if s.S3ExportConfiguration == nil {
2536		invalidParams.Add(request.NewErrParamRequired("S3ExportConfiguration"))
2537	}
2538	if s.S3ExportConfiguration != nil {
2539		if err := s.S3ExportConfiguration.Validate(); err != nil {
2540			invalidParams.AddNested("S3ExportConfiguration", err.(request.ErrInvalidParams))
2541		}
2542	}
2543
2544	if invalidParams.Len() > 0 {
2545		return invalidParams
2546	}
2547	return nil
2548}
2549
2550// SetExclusiveEndTime sets the ExclusiveEndTime field's value.
2551func (s *ExportJournalToS3Input) SetExclusiveEndTime(v time.Time) *ExportJournalToS3Input {
2552	s.ExclusiveEndTime = &v
2553	return s
2554}
2555
2556// SetInclusiveStartTime sets the InclusiveStartTime field's value.
2557func (s *ExportJournalToS3Input) SetInclusiveStartTime(v time.Time) *ExportJournalToS3Input {
2558	s.InclusiveStartTime = &v
2559	return s
2560}
2561
2562// SetName sets the Name field's value.
2563func (s *ExportJournalToS3Input) SetName(v string) *ExportJournalToS3Input {
2564	s.Name = &v
2565	return s
2566}
2567
2568// SetRoleArn sets the RoleArn field's value.
2569func (s *ExportJournalToS3Input) SetRoleArn(v string) *ExportJournalToS3Input {
2570	s.RoleArn = &v
2571	return s
2572}
2573
2574// SetS3ExportConfiguration sets the S3ExportConfiguration field's value.
2575func (s *ExportJournalToS3Input) SetS3ExportConfiguration(v *S3ExportConfiguration) *ExportJournalToS3Input {
2576	s.S3ExportConfiguration = v
2577	return s
2578}
2579
2580type ExportJournalToS3Output struct {
2581	_ struct{} `type:"structure"`
2582
2583	// The unique ID that QLDB assigns to each journal export job.
2584	//
2585	// To describe your export request and check the status of the job, you can
2586	// use ExportId to call DescribeJournalS3Export.
2587	//
2588	// ExportId is a required field
2589	ExportId *string `min:"22" type:"string" required:"true"`
2590}
2591
2592// String returns the string representation
2593func (s ExportJournalToS3Output) String() string {
2594	return awsutil.Prettify(s)
2595}
2596
2597// GoString returns the string representation
2598func (s ExportJournalToS3Output) GoString() string {
2599	return s.String()
2600}
2601
2602// SetExportId sets the ExportId field's value.
2603func (s *ExportJournalToS3Output) SetExportId(v string) *ExportJournalToS3Output {
2604	s.ExportId = &v
2605	return s
2606}
2607
2608type GetBlockInput struct {
2609	_ struct{} `type:"structure"`
2610
2611	// The location of the block that you want to request. An address is an Amazon
2612	// Ion structure that has two fields: strandId and sequenceNo.
2613	//
2614	// For example: {strandId:"BlFTjlSXze9BIh1KOszcE3",sequenceNo:14}
2615	//
2616	// BlockAddress is a required field
2617	BlockAddress *ValueHolder `type:"structure" required:"true" sensitive:"true"`
2618
2619	// The latest block location covered by the digest for which to request a proof.
2620	// An address is an Amazon Ion structure that has two fields: strandId and sequenceNo.
2621	//
2622	// For example: {strandId:"BlFTjlSXze9BIh1KOszcE3",sequenceNo:49}
2623	DigestTipAddress *ValueHolder `type:"structure" sensitive:"true"`
2624
2625	// The name of the ledger.
2626	//
2627	// Name is a required field
2628	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
2629}
2630
2631// String returns the string representation
2632func (s GetBlockInput) String() string {
2633	return awsutil.Prettify(s)
2634}
2635
2636// GoString returns the string representation
2637func (s GetBlockInput) GoString() string {
2638	return s.String()
2639}
2640
2641// Validate inspects the fields of the type to determine if they are valid.
2642func (s *GetBlockInput) Validate() error {
2643	invalidParams := request.ErrInvalidParams{Context: "GetBlockInput"}
2644	if s.BlockAddress == nil {
2645		invalidParams.Add(request.NewErrParamRequired("BlockAddress"))
2646	}
2647	if s.Name == nil {
2648		invalidParams.Add(request.NewErrParamRequired("Name"))
2649	}
2650	if s.Name != nil && len(*s.Name) < 1 {
2651		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
2652	}
2653	if s.BlockAddress != nil {
2654		if err := s.BlockAddress.Validate(); err != nil {
2655			invalidParams.AddNested("BlockAddress", err.(request.ErrInvalidParams))
2656		}
2657	}
2658	if s.DigestTipAddress != nil {
2659		if err := s.DigestTipAddress.Validate(); err != nil {
2660			invalidParams.AddNested("DigestTipAddress", err.(request.ErrInvalidParams))
2661		}
2662	}
2663
2664	if invalidParams.Len() > 0 {
2665		return invalidParams
2666	}
2667	return nil
2668}
2669
2670// SetBlockAddress sets the BlockAddress field's value.
2671func (s *GetBlockInput) SetBlockAddress(v *ValueHolder) *GetBlockInput {
2672	s.BlockAddress = v
2673	return s
2674}
2675
2676// SetDigestTipAddress sets the DigestTipAddress field's value.
2677func (s *GetBlockInput) SetDigestTipAddress(v *ValueHolder) *GetBlockInput {
2678	s.DigestTipAddress = v
2679	return s
2680}
2681
2682// SetName sets the Name field's value.
2683func (s *GetBlockInput) SetName(v string) *GetBlockInput {
2684	s.Name = &v
2685	return s
2686}
2687
2688type GetBlockOutput struct {
2689	_ struct{} `type:"structure"`
2690
2691	// The block data object in Amazon Ion format.
2692	//
2693	// Block is a required field
2694	Block *ValueHolder `type:"structure" required:"true" sensitive:"true"`
2695
2696	// The proof object in Amazon Ion format returned by a GetBlock request. A proof
2697	// contains the list of hash values required to recalculate the specified digest
2698	// using a Merkle tree, starting with the specified block.
2699	Proof *ValueHolder `type:"structure" sensitive:"true"`
2700}
2701
2702// String returns the string representation
2703func (s GetBlockOutput) String() string {
2704	return awsutil.Prettify(s)
2705}
2706
2707// GoString returns the string representation
2708func (s GetBlockOutput) GoString() string {
2709	return s.String()
2710}
2711
2712// SetBlock sets the Block field's value.
2713func (s *GetBlockOutput) SetBlock(v *ValueHolder) *GetBlockOutput {
2714	s.Block = v
2715	return s
2716}
2717
2718// SetProof sets the Proof field's value.
2719func (s *GetBlockOutput) SetProof(v *ValueHolder) *GetBlockOutput {
2720	s.Proof = v
2721	return s
2722}
2723
2724type GetDigestInput struct {
2725	_ struct{} `type:"structure"`
2726
2727	// The name of the ledger.
2728	//
2729	// Name is a required field
2730	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
2731}
2732
2733// String returns the string representation
2734func (s GetDigestInput) String() string {
2735	return awsutil.Prettify(s)
2736}
2737
2738// GoString returns the string representation
2739func (s GetDigestInput) GoString() string {
2740	return s.String()
2741}
2742
2743// Validate inspects the fields of the type to determine if they are valid.
2744func (s *GetDigestInput) Validate() error {
2745	invalidParams := request.ErrInvalidParams{Context: "GetDigestInput"}
2746	if s.Name == nil {
2747		invalidParams.Add(request.NewErrParamRequired("Name"))
2748	}
2749	if s.Name != nil && len(*s.Name) < 1 {
2750		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
2751	}
2752
2753	if invalidParams.Len() > 0 {
2754		return invalidParams
2755	}
2756	return nil
2757}
2758
2759// SetName sets the Name field's value.
2760func (s *GetDigestInput) SetName(v string) *GetDigestInput {
2761	s.Name = &v
2762	return s
2763}
2764
2765type GetDigestOutput struct {
2766	_ struct{} `type:"structure"`
2767
2768	// The 256-bit hash value representing the digest returned by a GetDigest request.
2769	//
2770	// Digest is automatically base64 encoded/decoded by the SDK.
2771	//
2772	// Digest is a required field
2773	Digest []byte `min:"32" type:"blob" required:"true"`
2774
2775	// The latest block location covered by the digest that you requested. An address
2776	// is an Amazon Ion structure that has two fields: strandId and sequenceNo.
2777	//
2778	// DigestTipAddress is a required field
2779	DigestTipAddress *ValueHolder `type:"structure" required:"true" sensitive:"true"`
2780}
2781
2782// String returns the string representation
2783func (s GetDigestOutput) String() string {
2784	return awsutil.Prettify(s)
2785}
2786
2787// GoString returns the string representation
2788func (s GetDigestOutput) GoString() string {
2789	return s.String()
2790}
2791
2792// SetDigest sets the Digest field's value.
2793func (s *GetDigestOutput) SetDigest(v []byte) *GetDigestOutput {
2794	s.Digest = v
2795	return s
2796}
2797
2798// SetDigestTipAddress sets the DigestTipAddress field's value.
2799func (s *GetDigestOutput) SetDigestTipAddress(v *ValueHolder) *GetDigestOutput {
2800	s.DigestTipAddress = v
2801	return s
2802}
2803
2804type GetRevisionInput struct {
2805	_ struct{} `type:"structure"`
2806
2807	// The block location of the document revision to be verified. An address is
2808	// an Amazon Ion structure that has two fields: strandId and sequenceNo.
2809	//
2810	// For example: {strandId:"BlFTjlSXze9BIh1KOszcE3",sequenceNo:14}
2811	//
2812	// BlockAddress is a required field
2813	BlockAddress *ValueHolder `type:"structure" required:"true" sensitive:"true"`
2814
2815	// The latest block location covered by the digest for which to request a proof.
2816	// An address is an Amazon Ion structure that has two fields: strandId and sequenceNo.
2817	//
2818	// For example: {strandId:"BlFTjlSXze9BIh1KOszcE3",sequenceNo:49}
2819	DigestTipAddress *ValueHolder `type:"structure" sensitive:"true"`
2820
2821	// The unique ID of the document to be verified.
2822	//
2823	// DocumentId is a required field
2824	DocumentId *string `min:"22" type:"string" required:"true"`
2825
2826	// The name of the ledger.
2827	//
2828	// Name is a required field
2829	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
2830}
2831
2832// String returns the string representation
2833func (s GetRevisionInput) String() string {
2834	return awsutil.Prettify(s)
2835}
2836
2837// GoString returns the string representation
2838func (s GetRevisionInput) GoString() string {
2839	return s.String()
2840}
2841
2842// Validate inspects the fields of the type to determine if they are valid.
2843func (s *GetRevisionInput) Validate() error {
2844	invalidParams := request.ErrInvalidParams{Context: "GetRevisionInput"}
2845	if s.BlockAddress == nil {
2846		invalidParams.Add(request.NewErrParamRequired("BlockAddress"))
2847	}
2848	if s.DocumentId == nil {
2849		invalidParams.Add(request.NewErrParamRequired("DocumentId"))
2850	}
2851	if s.DocumentId != nil && len(*s.DocumentId) < 22 {
2852		invalidParams.Add(request.NewErrParamMinLen("DocumentId", 22))
2853	}
2854	if s.Name == nil {
2855		invalidParams.Add(request.NewErrParamRequired("Name"))
2856	}
2857	if s.Name != nil && len(*s.Name) < 1 {
2858		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
2859	}
2860	if s.BlockAddress != nil {
2861		if err := s.BlockAddress.Validate(); err != nil {
2862			invalidParams.AddNested("BlockAddress", err.(request.ErrInvalidParams))
2863		}
2864	}
2865	if s.DigestTipAddress != nil {
2866		if err := s.DigestTipAddress.Validate(); err != nil {
2867			invalidParams.AddNested("DigestTipAddress", err.(request.ErrInvalidParams))
2868		}
2869	}
2870
2871	if invalidParams.Len() > 0 {
2872		return invalidParams
2873	}
2874	return nil
2875}
2876
2877// SetBlockAddress sets the BlockAddress field's value.
2878func (s *GetRevisionInput) SetBlockAddress(v *ValueHolder) *GetRevisionInput {
2879	s.BlockAddress = v
2880	return s
2881}
2882
2883// SetDigestTipAddress sets the DigestTipAddress field's value.
2884func (s *GetRevisionInput) SetDigestTipAddress(v *ValueHolder) *GetRevisionInput {
2885	s.DigestTipAddress = v
2886	return s
2887}
2888
2889// SetDocumentId sets the DocumentId field's value.
2890func (s *GetRevisionInput) SetDocumentId(v string) *GetRevisionInput {
2891	s.DocumentId = &v
2892	return s
2893}
2894
2895// SetName sets the Name field's value.
2896func (s *GetRevisionInput) SetName(v string) *GetRevisionInput {
2897	s.Name = &v
2898	return s
2899}
2900
2901type GetRevisionOutput struct {
2902	_ struct{} `type:"structure"`
2903
2904	// The proof object in Amazon Ion format returned by a GetRevision request.
2905	// A proof contains the list of hash values that are required to recalculate
2906	// the specified digest using a Merkle tree, starting with the specified document
2907	// revision.
2908	Proof *ValueHolder `type:"structure" sensitive:"true"`
2909
2910	// The document revision data object in Amazon Ion format.
2911	//
2912	// Revision is a required field
2913	Revision *ValueHolder `type:"structure" required:"true" sensitive:"true"`
2914}
2915
2916// String returns the string representation
2917func (s GetRevisionOutput) String() string {
2918	return awsutil.Prettify(s)
2919}
2920
2921// GoString returns the string representation
2922func (s GetRevisionOutput) GoString() string {
2923	return s.String()
2924}
2925
2926// SetProof sets the Proof field's value.
2927func (s *GetRevisionOutput) SetProof(v *ValueHolder) *GetRevisionOutput {
2928	s.Proof = v
2929	return s
2930}
2931
2932// SetRevision sets the Revision field's value.
2933func (s *GetRevisionOutput) SetRevision(v *ValueHolder) *GetRevisionOutput {
2934	s.Revision = v
2935	return s
2936}
2937
2938// One or more parameters in the request aren't valid.
2939type InvalidParameterException struct {
2940	_            struct{}                  `type:"structure"`
2941	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
2942
2943	Message_ *string `locationName:"Message" type:"string"`
2944
2945	// The name of the invalid parameter.
2946	ParameterName *string `type:"string"`
2947}
2948
2949// String returns the string representation
2950func (s InvalidParameterException) String() string {
2951	return awsutil.Prettify(s)
2952}
2953
2954// GoString returns the string representation
2955func (s InvalidParameterException) GoString() string {
2956	return s.String()
2957}
2958
2959func newErrorInvalidParameterException(v protocol.ResponseMetadata) error {
2960	return &InvalidParameterException{
2961		RespMetadata: v,
2962	}
2963}
2964
2965// Code returns the exception type name.
2966func (s *InvalidParameterException) Code() string {
2967	return "InvalidParameterException"
2968}
2969
2970// Message returns the exception's message.
2971func (s *InvalidParameterException) Message() string {
2972	if s.Message_ != nil {
2973		return *s.Message_
2974	}
2975	return ""
2976}
2977
2978// OrigErr always returns nil, satisfies awserr.Error interface.
2979func (s *InvalidParameterException) OrigErr() error {
2980	return nil
2981}
2982
2983func (s *InvalidParameterException) Error() string {
2984	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
2985}
2986
2987// Status code returns the HTTP status code for the request's response error.
2988func (s *InvalidParameterException) StatusCode() int {
2989	return s.RespMetadata.StatusCode
2990}
2991
2992// RequestID returns the service's response RequestID for request.
2993func (s *InvalidParameterException) RequestID() string {
2994	return s.RespMetadata.RequestID
2995}
2996
2997// The information about an Amazon QLDB journal stream, including the Amazon
2998// Resource Name (ARN), stream name, creation time, current status, and the
2999// parameters of your original stream creation request.
3000type JournalKinesisStreamDescription struct {
3001	_ struct{} `type:"structure"`
3002
3003	// The Amazon Resource Name (ARN) of the QLDB journal stream.
3004	Arn *string `min:"20" type:"string"`
3005
3006	// The date and time, in epoch time format, when the QLDB journal stream was
3007	// created. (Epoch time format is the number of seconds elapsed since 12:00:00
3008	// AM January 1, 1970 UTC.)
3009	CreationTime *time.Time `type:"timestamp"`
3010
3011	// The error message that describes the reason that a stream has a status of
3012	// IMPAIRED or FAILED. This is not applicable to streams that have other status
3013	// values.
3014	ErrorCause *string `type:"string" enum:"ErrorCause"`
3015
3016	// The exclusive date and time that specifies when the stream ends. If this
3017	// parameter is blank, the stream runs indefinitely until you cancel it.
3018	ExclusiveEndTime *time.Time `type:"timestamp"`
3019
3020	// The inclusive start date and time from which to start streaming journal data.
3021	InclusiveStartTime *time.Time `type:"timestamp"`
3022
3023	// The configuration settings of the Amazon Kinesis Data Streams destination
3024	// for your QLDB journal stream.
3025	//
3026	// KinesisConfiguration is a required field
3027	KinesisConfiguration *KinesisConfiguration `type:"structure" required:"true"`
3028
3029	// The name of the ledger.
3030	//
3031	// LedgerName is a required field
3032	LedgerName *string `min:"1" type:"string" required:"true"`
3033
3034	// The Amazon Resource Name (ARN) of the IAM role that grants QLDB permissions
3035	// for a journal stream to write data records to a Kinesis Data Streams resource.
3036	//
3037	// RoleArn is a required field
3038	RoleArn *string `min:"20" type:"string" required:"true"`
3039
3040	// The current state of the QLDB journal stream.
3041	//
3042	// Status is a required field
3043	Status *string `type:"string" required:"true" enum:"StreamStatus"`
3044
3045	// The unique ID that QLDB assigns to each QLDB journal stream.
3046	//
3047	// StreamId is a required field
3048	StreamId *string `min:"22" type:"string" required:"true"`
3049
3050	// The user-defined name of the QLDB journal stream.
3051	//
3052	// StreamName is a required field
3053	StreamName *string `min:"1" type:"string" required:"true"`
3054}
3055
3056// String returns the string representation
3057func (s JournalKinesisStreamDescription) String() string {
3058	return awsutil.Prettify(s)
3059}
3060
3061// GoString returns the string representation
3062func (s JournalKinesisStreamDescription) GoString() string {
3063	return s.String()
3064}
3065
3066// SetArn sets the Arn field's value.
3067func (s *JournalKinesisStreamDescription) SetArn(v string) *JournalKinesisStreamDescription {
3068	s.Arn = &v
3069	return s
3070}
3071
3072// SetCreationTime sets the CreationTime field's value.
3073func (s *JournalKinesisStreamDescription) SetCreationTime(v time.Time) *JournalKinesisStreamDescription {
3074	s.CreationTime = &v
3075	return s
3076}
3077
3078// SetErrorCause sets the ErrorCause field's value.
3079func (s *JournalKinesisStreamDescription) SetErrorCause(v string) *JournalKinesisStreamDescription {
3080	s.ErrorCause = &v
3081	return s
3082}
3083
3084// SetExclusiveEndTime sets the ExclusiveEndTime field's value.
3085func (s *JournalKinesisStreamDescription) SetExclusiveEndTime(v time.Time) *JournalKinesisStreamDescription {
3086	s.ExclusiveEndTime = &v
3087	return s
3088}
3089
3090// SetInclusiveStartTime sets the InclusiveStartTime field's value.
3091func (s *JournalKinesisStreamDescription) SetInclusiveStartTime(v time.Time) *JournalKinesisStreamDescription {
3092	s.InclusiveStartTime = &v
3093	return s
3094}
3095
3096// SetKinesisConfiguration sets the KinesisConfiguration field's value.
3097func (s *JournalKinesisStreamDescription) SetKinesisConfiguration(v *KinesisConfiguration) *JournalKinesisStreamDescription {
3098	s.KinesisConfiguration = v
3099	return s
3100}
3101
3102// SetLedgerName sets the LedgerName field's value.
3103func (s *JournalKinesisStreamDescription) SetLedgerName(v string) *JournalKinesisStreamDescription {
3104	s.LedgerName = &v
3105	return s
3106}
3107
3108// SetRoleArn sets the RoleArn field's value.
3109func (s *JournalKinesisStreamDescription) SetRoleArn(v string) *JournalKinesisStreamDescription {
3110	s.RoleArn = &v
3111	return s
3112}
3113
3114// SetStatus sets the Status field's value.
3115func (s *JournalKinesisStreamDescription) SetStatus(v string) *JournalKinesisStreamDescription {
3116	s.Status = &v
3117	return s
3118}
3119
3120// SetStreamId sets the StreamId field's value.
3121func (s *JournalKinesisStreamDescription) SetStreamId(v string) *JournalKinesisStreamDescription {
3122	s.StreamId = &v
3123	return s
3124}
3125
3126// SetStreamName sets the StreamName field's value.
3127func (s *JournalKinesisStreamDescription) SetStreamName(v string) *JournalKinesisStreamDescription {
3128	s.StreamName = &v
3129	return s
3130}
3131
3132// The information about a journal export job, including the ledger name, export
3133// ID, when it was created, current status, and its start and end time export
3134// parameters.
3135type JournalS3ExportDescription struct {
3136	_ struct{} `type:"structure"`
3137
3138	// The exclusive end date and time for the range of journal contents that are
3139	// specified in the original export request.
3140	//
3141	// ExclusiveEndTime is a required field
3142	ExclusiveEndTime *time.Time `type:"timestamp" required:"true"`
3143
3144	// The date and time, in epoch time format, when the export job was created.
3145	// (Epoch time format is the number of seconds elapsed since 12:00:00 AM January
3146	// 1, 1970 UTC.)
3147	//
3148	// ExportCreationTime is a required field
3149	ExportCreationTime *time.Time `type:"timestamp" required:"true"`
3150
3151	// The unique ID of the journal export job.
3152	//
3153	// ExportId is a required field
3154	ExportId *string `min:"22" type:"string" required:"true"`
3155
3156	// The inclusive start date and time for the range of journal contents that
3157	// are specified in the original export request.
3158	//
3159	// InclusiveStartTime is a required field
3160	InclusiveStartTime *time.Time `type:"timestamp" required:"true"`
3161
3162	// The name of the ledger.
3163	//
3164	// LedgerName is a required field
3165	LedgerName *string `min:"1" type:"string" required:"true"`
3166
3167	// The Amazon Resource Name (ARN) of the IAM role that grants QLDB permissions
3168	// for a journal export job to do the following:
3169	//
3170	//    * Write objects into your Amazon Simple Storage Service (Amazon S3) bucket.
3171	//
3172	//    * (Optional) Use your customer master key (CMK) in AWS Key Management
3173	//    Service (AWS KMS) for server-side encryption of your exported data.
3174	//
3175	// RoleArn is a required field
3176	RoleArn *string `min:"20" type:"string" required:"true"`
3177
3178	// The Amazon Simple Storage Service (Amazon S3) bucket location in which a
3179	// journal export job writes the journal contents.
3180	//
3181	// S3ExportConfiguration is a required field
3182	S3ExportConfiguration *S3ExportConfiguration `type:"structure" required:"true"`
3183
3184	// The current state of the journal export job.
3185	//
3186	// Status is a required field
3187	Status *string `type:"string" required:"true" enum:"ExportStatus"`
3188}
3189
3190// String returns the string representation
3191func (s JournalS3ExportDescription) String() string {
3192	return awsutil.Prettify(s)
3193}
3194
3195// GoString returns the string representation
3196func (s JournalS3ExportDescription) GoString() string {
3197	return s.String()
3198}
3199
3200// SetExclusiveEndTime sets the ExclusiveEndTime field's value.
3201func (s *JournalS3ExportDescription) SetExclusiveEndTime(v time.Time) *JournalS3ExportDescription {
3202	s.ExclusiveEndTime = &v
3203	return s
3204}
3205
3206// SetExportCreationTime sets the ExportCreationTime field's value.
3207func (s *JournalS3ExportDescription) SetExportCreationTime(v time.Time) *JournalS3ExportDescription {
3208	s.ExportCreationTime = &v
3209	return s
3210}
3211
3212// SetExportId sets the ExportId field's value.
3213func (s *JournalS3ExportDescription) SetExportId(v string) *JournalS3ExportDescription {
3214	s.ExportId = &v
3215	return s
3216}
3217
3218// SetInclusiveStartTime sets the InclusiveStartTime field's value.
3219func (s *JournalS3ExportDescription) SetInclusiveStartTime(v time.Time) *JournalS3ExportDescription {
3220	s.InclusiveStartTime = &v
3221	return s
3222}
3223
3224// SetLedgerName sets the LedgerName field's value.
3225func (s *JournalS3ExportDescription) SetLedgerName(v string) *JournalS3ExportDescription {
3226	s.LedgerName = &v
3227	return s
3228}
3229
3230// SetRoleArn sets the RoleArn field's value.
3231func (s *JournalS3ExportDescription) SetRoleArn(v string) *JournalS3ExportDescription {
3232	s.RoleArn = &v
3233	return s
3234}
3235
3236// SetS3ExportConfiguration sets the S3ExportConfiguration field's value.
3237func (s *JournalS3ExportDescription) SetS3ExportConfiguration(v *S3ExportConfiguration) *JournalS3ExportDescription {
3238	s.S3ExportConfiguration = v
3239	return s
3240}
3241
3242// SetStatus sets the Status field's value.
3243func (s *JournalS3ExportDescription) SetStatus(v string) *JournalS3ExportDescription {
3244	s.Status = &v
3245	return s
3246}
3247
3248// The configuration settings of the Amazon Kinesis Data Streams destination
3249// for your Amazon QLDB journal stream.
3250type KinesisConfiguration struct {
3251	_ struct{} `type:"structure"`
3252
3253	// Enables QLDB to publish multiple stream records in a single Kinesis Data
3254	// Streams record. To learn more, see KPL Key Concepts (https://docs.aws.amazon.com/streams/latest/dev/kinesis-kpl-concepts.html)
3255	// in the Amazon Kinesis Data Streams Developer Guide.
3256	AggregationEnabled *bool `type:"boolean"`
3257
3258	// The Amazon Resource Name (ARN) of the Kinesis data stream resource.
3259	//
3260	// StreamArn is a required field
3261	StreamArn *string `min:"20" type:"string" required:"true"`
3262}
3263
3264// String returns the string representation
3265func (s KinesisConfiguration) String() string {
3266	return awsutil.Prettify(s)
3267}
3268
3269// GoString returns the string representation
3270func (s KinesisConfiguration) GoString() string {
3271	return s.String()
3272}
3273
3274// Validate inspects the fields of the type to determine if they are valid.
3275func (s *KinesisConfiguration) Validate() error {
3276	invalidParams := request.ErrInvalidParams{Context: "KinesisConfiguration"}
3277	if s.StreamArn == nil {
3278		invalidParams.Add(request.NewErrParamRequired("StreamArn"))
3279	}
3280	if s.StreamArn != nil && len(*s.StreamArn) < 20 {
3281		invalidParams.Add(request.NewErrParamMinLen("StreamArn", 20))
3282	}
3283
3284	if invalidParams.Len() > 0 {
3285		return invalidParams
3286	}
3287	return nil
3288}
3289
3290// SetAggregationEnabled sets the AggregationEnabled field's value.
3291func (s *KinesisConfiguration) SetAggregationEnabled(v bool) *KinesisConfiguration {
3292	s.AggregationEnabled = &v
3293	return s
3294}
3295
3296// SetStreamArn sets the StreamArn field's value.
3297func (s *KinesisConfiguration) SetStreamArn(v string) *KinesisConfiguration {
3298	s.StreamArn = &v
3299	return s
3300}
3301
3302// Information about a ledger, including its name, state, and when it was created.
3303type LedgerSummary struct {
3304	_ struct{} `type:"structure"`
3305
3306	// The date and time, in epoch time format, when the ledger was created. (Epoch
3307	// time format is the number of seconds elapsed since 12:00:00 AM January 1,
3308	// 1970 UTC.)
3309	CreationDateTime *time.Time `type:"timestamp"`
3310
3311	// The name of the ledger.
3312	Name *string `min:"1" type:"string"`
3313
3314	// The current status of the ledger.
3315	State *string `type:"string" enum:"LedgerState"`
3316}
3317
3318// String returns the string representation
3319func (s LedgerSummary) String() string {
3320	return awsutil.Prettify(s)
3321}
3322
3323// GoString returns the string representation
3324func (s LedgerSummary) GoString() string {
3325	return s.String()
3326}
3327
3328// SetCreationDateTime sets the CreationDateTime field's value.
3329func (s *LedgerSummary) SetCreationDateTime(v time.Time) *LedgerSummary {
3330	s.CreationDateTime = &v
3331	return s
3332}
3333
3334// SetName sets the Name field's value.
3335func (s *LedgerSummary) SetName(v string) *LedgerSummary {
3336	s.Name = &v
3337	return s
3338}
3339
3340// SetState sets the State field's value.
3341func (s *LedgerSummary) SetState(v string) *LedgerSummary {
3342	s.State = &v
3343	return s
3344}
3345
3346// You have reached the limit on the maximum number of resources allowed.
3347type LimitExceededException struct {
3348	_            struct{}                  `type:"structure"`
3349	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3350
3351	Message_ *string `locationName:"Message" type:"string"`
3352
3353	// The type of resource.
3354	ResourceType *string `type:"string"`
3355}
3356
3357// String returns the string representation
3358func (s LimitExceededException) String() string {
3359	return awsutil.Prettify(s)
3360}
3361
3362// GoString returns the string representation
3363func (s LimitExceededException) GoString() string {
3364	return s.String()
3365}
3366
3367func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
3368	return &LimitExceededException{
3369		RespMetadata: v,
3370	}
3371}
3372
3373// Code returns the exception type name.
3374func (s *LimitExceededException) Code() string {
3375	return "LimitExceededException"
3376}
3377
3378// Message returns the exception's message.
3379func (s *LimitExceededException) Message() string {
3380	if s.Message_ != nil {
3381		return *s.Message_
3382	}
3383	return ""
3384}
3385
3386// OrigErr always returns nil, satisfies awserr.Error interface.
3387func (s *LimitExceededException) OrigErr() error {
3388	return nil
3389}
3390
3391func (s *LimitExceededException) Error() string {
3392	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
3393}
3394
3395// Status code returns the HTTP status code for the request's response error.
3396func (s *LimitExceededException) StatusCode() int {
3397	return s.RespMetadata.StatusCode
3398}
3399
3400// RequestID returns the service's response RequestID for request.
3401func (s *LimitExceededException) RequestID() string {
3402	return s.RespMetadata.RequestID
3403}
3404
3405type ListJournalKinesisStreamsForLedgerInput struct {
3406	_ struct{} `type:"structure"`
3407
3408	// The name of the ledger.
3409	//
3410	// LedgerName is a required field
3411	LedgerName *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
3412
3413	// The maximum number of results to return in a single ListJournalKinesisStreamsForLedger
3414	// request. (The actual number of results returned might be fewer.)
3415	MaxResults *int64 `location:"querystring" locationName:"max_results" min:"1" type:"integer"`
3416
3417	// A pagination token, indicating that you want to retrieve the next page of
3418	// results. If you received a value for NextToken in the response from a previous
3419	// ListJournalKinesisStreamsForLedger call, you should use that value as input
3420	// here.
3421	NextToken *string `location:"querystring" locationName:"next_token" min:"4" type:"string"`
3422}
3423
3424// String returns the string representation
3425func (s ListJournalKinesisStreamsForLedgerInput) String() string {
3426	return awsutil.Prettify(s)
3427}
3428
3429// GoString returns the string representation
3430func (s ListJournalKinesisStreamsForLedgerInput) GoString() string {
3431	return s.String()
3432}
3433
3434// Validate inspects the fields of the type to determine if they are valid.
3435func (s *ListJournalKinesisStreamsForLedgerInput) Validate() error {
3436	invalidParams := request.ErrInvalidParams{Context: "ListJournalKinesisStreamsForLedgerInput"}
3437	if s.LedgerName == nil {
3438		invalidParams.Add(request.NewErrParamRequired("LedgerName"))
3439	}
3440	if s.LedgerName != nil && len(*s.LedgerName) < 1 {
3441		invalidParams.Add(request.NewErrParamMinLen("LedgerName", 1))
3442	}
3443	if s.MaxResults != nil && *s.MaxResults < 1 {
3444		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
3445	}
3446	if s.NextToken != nil && len(*s.NextToken) < 4 {
3447		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
3448	}
3449
3450	if invalidParams.Len() > 0 {
3451		return invalidParams
3452	}
3453	return nil
3454}
3455
3456// SetLedgerName sets the LedgerName field's value.
3457func (s *ListJournalKinesisStreamsForLedgerInput) SetLedgerName(v string) *ListJournalKinesisStreamsForLedgerInput {
3458	s.LedgerName = &v
3459	return s
3460}
3461
3462// SetMaxResults sets the MaxResults field's value.
3463func (s *ListJournalKinesisStreamsForLedgerInput) SetMaxResults(v int64) *ListJournalKinesisStreamsForLedgerInput {
3464	s.MaxResults = &v
3465	return s
3466}
3467
3468// SetNextToken sets the NextToken field's value.
3469func (s *ListJournalKinesisStreamsForLedgerInput) SetNextToken(v string) *ListJournalKinesisStreamsForLedgerInput {
3470	s.NextToken = &v
3471	return s
3472}
3473
3474type ListJournalKinesisStreamsForLedgerOutput struct {
3475	_ struct{} `type:"structure"`
3476
3477	//    * If NextToken is empty, the last page of results has been processed and
3478	//    there are no more results to be retrieved.
3479	//
3480	//    * If NextToken is not empty, more results are available. To retrieve the
3481	//    next page of results, use the value of NextToken in a subsequent ListJournalKinesisStreamsForLedger
3482	//    call.
3483	NextToken *string `min:"4" type:"string"`
3484
3485	// The array of QLDB journal stream descriptors that are associated with the
3486	// given ledger.
3487	Streams []*JournalKinesisStreamDescription `type:"list"`
3488}
3489
3490// String returns the string representation
3491func (s ListJournalKinesisStreamsForLedgerOutput) String() string {
3492	return awsutil.Prettify(s)
3493}
3494
3495// GoString returns the string representation
3496func (s ListJournalKinesisStreamsForLedgerOutput) GoString() string {
3497	return s.String()
3498}
3499
3500// SetNextToken sets the NextToken field's value.
3501func (s *ListJournalKinesisStreamsForLedgerOutput) SetNextToken(v string) *ListJournalKinesisStreamsForLedgerOutput {
3502	s.NextToken = &v
3503	return s
3504}
3505
3506// SetStreams sets the Streams field's value.
3507func (s *ListJournalKinesisStreamsForLedgerOutput) SetStreams(v []*JournalKinesisStreamDescription) *ListJournalKinesisStreamsForLedgerOutput {
3508	s.Streams = v
3509	return s
3510}
3511
3512type ListJournalS3ExportsForLedgerInput struct {
3513	_ struct{} `type:"structure"`
3514
3515	// The maximum number of results to return in a single ListJournalS3ExportsForLedger
3516	// request. (The actual number of results returned might be fewer.)
3517	MaxResults *int64 `location:"querystring" locationName:"max_results" min:"1" type:"integer"`
3518
3519	// The name of the ledger.
3520	//
3521	// Name is a required field
3522	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
3523
3524	// A pagination token, indicating that you want to retrieve the next page of
3525	// results. If you received a value for NextToken in the response from a previous
3526	// ListJournalS3ExportsForLedger call, then you should use that value as input
3527	// here.
3528	NextToken *string `location:"querystring" locationName:"next_token" min:"4" type:"string"`
3529}
3530
3531// String returns the string representation
3532func (s ListJournalS3ExportsForLedgerInput) String() string {
3533	return awsutil.Prettify(s)
3534}
3535
3536// GoString returns the string representation
3537func (s ListJournalS3ExportsForLedgerInput) GoString() string {
3538	return s.String()
3539}
3540
3541// Validate inspects the fields of the type to determine if they are valid.
3542func (s *ListJournalS3ExportsForLedgerInput) Validate() error {
3543	invalidParams := request.ErrInvalidParams{Context: "ListJournalS3ExportsForLedgerInput"}
3544	if s.MaxResults != nil && *s.MaxResults < 1 {
3545		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
3546	}
3547	if s.Name == nil {
3548		invalidParams.Add(request.NewErrParamRequired("Name"))
3549	}
3550	if s.Name != nil && len(*s.Name) < 1 {
3551		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
3552	}
3553	if s.NextToken != nil && len(*s.NextToken) < 4 {
3554		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
3555	}
3556
3557	if invalidParams.Len() > 0 {
3558		return invalidParams
3559	}
3560	return nil
3561}
3562
3563// SetMaxResults sets the MaxResults field's value.
3564func (s *ListJournalS3ExportsForLedgerInput) SetMaxResults(v int64) *ListJournalS3ExportsForLedgerInput {
3565	s.MaxResults = &v
3566	return s
3567}
3568
3569// SetName sets the Name field's value.
3570func (s *ListJournalS3ExportsForLedgerInput) SetName(v string) *ListJournalS3ExportsForLedgerInput {
3571	s.Name = &v
3572	return s
3573}
3574
3575// SetNextToken sets the NextToken field's value.
3576func (s *ListJournalS3ExportsForLedgerInput) SetNextToken(v string) *ListJournalS3ExportsForLedgerInput {
3577	s.NextToken = &v
3578	return s
3579}
3580
3581type ListJournalS3ExportsForLedgerOutput struct {
3582	_ struct{} `type:"structure"`
3583
3584	// The array of journal export job descriptions that are associated with the
3585	// specified ledger.
3586	JournalS3Exports []*JournalS3ExportDescription `type:"list"`
3587
3588	//    * If NextToken is empty, then the last page of results has been processed
3589	//    and there are no more results to be retrieved.
3590	//
3591	//    * If NextToken is not empty, then there are more results available. To
3592	//    retrieve the next page of results, use the value of NextToken in a subsequent
3593	//    ListJournalS3ExportsForLedger call.
3594	NextToken *string `min:"4" type:"string"`
3595}
3596
3597// String returns the string representation
3598func (s ListJournalS3ExportsForLedgerOutput) String() string {
3599	return awsutil.Prettify(s)
3600}
3601
3602// GoString returns the string representation
3603func (s ListJournalS3ExportsForLedgerOutput) GoString() string {
3604	return s.String()
3605}
3606
3607// SetJournalS3Exports sets the JournalS3Exports field's value.
3608func (s *ListJournalS3ExportsForLedgerOutput) SetJournalS3Exports(v []*JournalS3ExportDescription) *ListJournalS3ExportsForLedgerOutput {
3609	s.JournalS3Exports = v
3610	return s
3611}
3612
3613// SetNextToken sets the NextToken field's value.
3614func (s *ListJournalS3ExportsForLedgerOutput) SetNextToken(v string) *ListJournalS3ExportsForLedgerOutput {
3615	s.NextToken = &v
3616	return s
3617}
3618
3619type ListJournalS3ExportsInput struct {
3620	_ struct{} `type:"structure"`
3621
3622	// The maximum number of results to return in a single ListJournalS3Exports
3623	// request. (The actual number of results returned might be fewer.)
3624	MaxResults *int64 `location:"querystring" locationName:"max_results" min:"1" type:"integer"`
3625
3626	// A pagination token, indicating that you want to retrieve the next page of
3627	// results. If you received a value for NextToken in the response from a previous
3628	// ListJournalS3Exports call, then you should use that value as input here.
3629	NextToken *string `location:"querystring" locationName:"next_token" min:"4" type:"string"`
3630}
3631
3632// String returns the string representation
3633func (s ListJournalS3ExportsInput) String() string {
3634	return awsutil.Prettify(s)
3635}
3636
3637// GoString returns the string representation
3638func (s ListJournalS3ExportsInput) GoString() string {
3639	return s.String()
3640}
3641
3642// Validate inspects the fields of the type to determine if they are valid.
3643func (s *ListJournalS3ExportsInput) Validate() error {
3644	invalidParams := request.ErrInvalidParams{Context: "ListJournalS3ExportsInput"}
3645	if s.MaxResults != nil && *s.MaxResults < 1 {
3646		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
3647	}
3648	if s.NextToken != nil && len(*s.NextToken) < 4 {
3649		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
3650	}
3651
3652	if invalidParams.Len() > 0 {
3653		return invalidParams
3654	}
3655	return nil
3656}
3657
3658// SetMaxResults sets the MaxResults field's value.
3659func (s *ListJournalS3ExportsInput) SetMaxResults(v int64) *ListJournalS3ExportsInput {
3660	s.MaxResults = &v
3661	return s
3662}
3663
3664// SetNextToken sets the NextToken field's value.
3665func (s *ListJournalS3ExportsInput) SetNextToken(v string) *ListJournalS3ExportsInput {
3666	s.NextToken = &v
3667	return s
3668}
3669
3670type ListJournalS3ExportsOutput struct {
3671	_ struct{} `type:"structure"`
3672
3673	// The array of journal export job descriptions for all ledgers that are associated
3674	// with the current AWS account and Region.
3675	JournalS3Exports []*JournalS3ExportDescription `type:"list"`
3676
3677	//    * If NextToken is empty, then the last page of results has been processed
3678	//    and there are no more results to be retrieved.
3679	//
3680	//    * If NextToken is not empty, then there are more results available. To
3681	//    retrieve the next page of results, use the value of NextToken in a subsequent
3682	//    ListJournalS3Exports call.
3683	NextToken *string `min:"4" type:"string"`
3684}
3685
3686// String returns the string representation
3687func (s ListJournalS3ExportsOutput) String() string {
3688	return awsutil.Prettify(s)
3689}
3690
3691// GoString returns the string representation
3692func (s ListJournalS3ExportsOutput) GoString() string {
3693	return s.String()
3694}
3695
3696// SetJournalS3Exports sets the JournalS3Exports field's value.
3697func (s *ListJournalS3ExportsOutput) SetJournalS3Exports(v []*JournalS3ExportDescription) *ListJournalS3ExportsOutput {
3698	s.JournalS3Exports = v
3699	return s
3700}
3701
3702// SetNextToken sets the NextToken field's value.
3703func (s *ListJournalS3ExportsOutput) SetNextToken(v string) *ListJournalS3ExportsOutput {
3704	s.NextToken = &v
3705	return s
3706}
3707
3708type ListLedgersInput struct {
3709	_ struct{} `type:"structure"`
3710
3711	// The maximum number of results to return in a single ListLedgers request.
3712	// (The actual number of results returned might be fewer.)
3713	MaxResults *int64 `location:"querystring" locationName:"max_results" min:"1" type:"integer"`
3714
3715	// A pagination token, indicating that you want to retrieve the next page of
3716	// results. If you received a value for NextToken in the response from a previous
3717	// ListLedgers call, then you should use that value as input here.
3718	NextToken *string `location:"querystring" locationName:"next_token" min:"4" type:"string"`
3719}
3720
3721// String returns the string representation
3722func (s ListLedgersInput) String() string {
3723	return awsutil.Prettify(s)
3724}
3725
3726// GoString returns the string representation
3727func (s ListLedgersInput) GoString() string {
3728	return s.String()
3729}
3730
3731// Validate inspects the fields of the type to determine if they are valid.
3732func (s *ListLedgersInput) Validate() error {
3733	invalidParams := request.ErrInvalidParams{Context: "ListLedgersInput"}
3734	if s.MaxResults != nil && *s.MaxResults < 1 {
3735		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
3736	}
3737	if s.NextToken != nil && len(*s.NextToken) < 4 {
3738		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
3739	}
3740
3741	if invalidParams.Len() > 0 {
3742		return invalidParams
3743	}
3744	return nil
3745}
3746
3747// SetMaxResults sets the MaxResults field's value.
3748func (s *ListLedgersInput) SetMaxResults(v int64) *ListLedgersInput {
3749	s.MaxResults = &v
3750	return s
3751}
3752
3753// SetNextToken sets the NextToken field's value.
3754func (s *ListLedgersInput) SetNextToken(v string) *ListLedgersInput {
3755	s.NextToken = &v
3756	return s
3757}
3758
3759type ListLedgersOutput struct {
3760	_ struct{} `type:"structure"`
3761
3762	// The array of ledger summaries that are associated with the current AWS account
3763	// and Region.
3764	Ledgers []*LedgerSummary `type:"list"`
3765
3766	// A pagination token, indicating whether there are more results available:
3767	//
3768	//    * If NextToken is empty, then the last page of results has been processed
3769	//    and there are no more results to be retrieved.
3770	//
3771	//    * If NextToken is not empty, then there are more results available. To
3772	//    retrieve the next page of results, use the value of NextToken in a subsequent
3773	//    ListLedgers call.
3774	NextToken *string `min:"4" type:"string"`
3775}
3776
3777// String returns the string representation
3778func (s ListLedgersOutput) String() string {
3779	return awsutil.Prettify(s)
3780}
3781
3782// GoString returns the string representation
3783func (s ListLedgersOutput) GoString() string {
3784	return s.String()
3785}
3786
3787// SetLedgers sets the Ledgers field's value.
3788func (s *ListLedgersOutput) SetLedgers(v []*LedgerSummary) *ListLedgersOutput {
3789	s.Ledgers = v
3790	return s
3791}
3792
3793// SetNextToken sets the NextToken field's value.
3794func (s *ListLedgersOutput) SetNextToken(v string) *ListLedgersOutput {
3795	s.NextToken = &v
3796	return s
3797}
3798
3799type ListTagsForResourceInput struct {
3800	_ struct{} `type:"structure"`
3801
3802	// The Amazon Resource Name (ARN) for which you want to list the tags. For example:
3803	//
3804	// arn:aws:qldb:us-east-1:123456789012:ledger/exampleLedger
3805	//
3806	// ResourceArn is a required field
3807	ResourceArn *string `location:"uri" locationName:"resourceArn" min:"20" type:"string" required:"true"`
3808}
3809
3810// String returns the string representation
3811func (s ListTagsForResourceInput) String() string {
3812	return awsutil.Prettify(s)
3813}
3814
3815// GoString returns the string representation
3816func (s ListTagsForResourceInput) GoString() string {
3817	return s.String()
3818}
3819
3820// Validate inspects the fields of the type to determine if they are valid.
3821func (s *ListTagsForResourceInput) Validate() error {
3822	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
3823	if s.ResourceArn == nil {
3824		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
3825	}
3826	if s.ResourceArn != nil && len(*s.ResourceArn) < 20 {
3827		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 20))
3828	}
3829
3830	if invalidParams.Len() > 0 {
3831		return invalidParams
3832	}
3833	return nil
3834}
3835
3836// SetResourceArn sets the ResourceArn field's value.
3837func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
3838	s.ResourceArn = &v
3839	return s
3840}
3841
3842type ListTagsForResourceOutput struct {
3843	_ struct{} `type:"structure"`
3844
3845	// The tags that are currently associated with the specified Amazon QLDB resource.
3846	Tags map[string]*string `type:"map"`
3847}
3848
3849// String returns the string representation
3850func (s ListTagsForResourceOutput) String() string {
3851	return awsutil.Prettify(s)
3852}
3853
3854// GoString returns the string representation
3855func (s ListTagsForResourceOutput) GoString() string {
3856	return s.String()
3857}
3858
3859// SetTags sets the Tags field's value.
3860func (s *ListTagsForResourceOutput) SetTags(v map[string]*string) *ListTagsForResourceOutput {
3861	s.Tags = v
3862	return s
3863}
3864
3865// The specified resource already exists.
3866type ResourceAlreadyExistsException struct {
3867	_            struct{}                  `type:"structure"`
3868	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3869
3870	Message_ *string `locationName:"Message" type:"string"`
3871
3872	// The name of the resource.
3873	ResourceName *string `type:"string"`
3874
3875	// The type of resource.
3876	ResourceType *string `type:"string"`
3877}
3878
3879// String returns the string representation
3880func (s ResourceAlreadyExistsException) String() string {
3881	return awsutil.Prettify(s)
3882}
3883
3884// GoString returns the string representation
3885func (s ResourceAlreadyExistsException) GoString() string {
3886	return s.String()
3887}
3888
3889func newErrorResourceAlreadyExistsException(v protocol.ResponseMetadata) error {
3890	return &ResourceAlreadyExistsException{
3891		RespMetadata: v,
3892	}
3893}
3894
3895// Code returns the exception type name.
3896func (s *ResourceAlreadyExistsException) Code() string {
3897	return "ResourceAlreadyExistsException"
3898}
3899
3900// Message returns the exception's message.
3901func (s *ResourceAlreadyExistsException) Message() string {
3902	if s.Message_ != nil {
3903		return *s.Message_
3904	}
3905	return ""
3906}
3907
3908// OrigErr always returns nil, satisfies awserr.Error interface.
3909func (s *ResourceAlreadyExistsException) OrigErr() error {
3910	return nil
3911}
3912
3913func (s *ResourceAlreadyExistsException) Error() string {
3914	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
3915}
3916
3917// Status code returns the HTTP status code for the request's response error.
3918func (s *ResourceAlreadyExistsException) StatusCode() int {
3919	return s.RespMetadata.StatusCode
3920}
3921
3922// RequestID returns the service's response RequestID for request.
3923func (s *ResourceAlreadyExistsException) RequestID() string {
3924	return s.RespMetadata.RequestID
3925}
3926
3927// The specified resource can't be modified at this time.
3928type ResourceInUseException struct {
3929	_            struct{}                  `type:"structure"`
3930	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3931
3932	Message_ *string `locationName:"Message" type:"string"`
3933
3934	// The name of the resource.
3935	ResourceName *string `type:"string"`
3936
3937	// The type of resource.
3938	ResourceType *string `type:"string"`
3939}
3940
3941// String returns the string representation
3942func (s ResourceInUseException) String() string {
3943	return awsutil.Prettify(s)
3944}
3945
3946// GoString returns the string representation
3947func (s ResourceInUseException) GoString() string {
3948	return s.String()
3949}
3950
3951func newErrorResourceInUseException(v protocol.ResponseMetadata) error {
3952	return &ResourceInUseException{
3953		RespMetadata: v,
3954	}
3955}
3956
3957// Code returns the exception type name.
3958func (s *ResourceInUseException) Code() string {
3959	return "ResourceInUseException"
3960}
3961
3962// Message returns the exception's message.
3963func (s *ResourceInUseException) Message() string {
3964	if s.Message_ != nil {
3965		return *s.Message_
3966	}
3967	return ""
3968}
3969
3970// OrigErr always returns nil, satisfies awserr.Error interface.
3971func (s *ResourceInUseException) OrigErr() error {
3972	return nil
3973}
3974
3975func (s *ResourceInUseException) Error() string {
3976	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
3977}
3978
3979// Status code returns the HTTP status code for the request's response error.
3980func (s *ResourceInUseException) StatusCode() int {
3981	return s.RespMetadata.StatusCode
3982}
3983
3984// RequestID returns the service's response RequestID for request.
3985func (s *ResourceInUseException) RequestID() string {
3986	return s.RespMetadata.RequestID
3987}
3988
3989// The specified resource doesn't exist.
3990type ResourceNotFoundException struct {
3991	_            struct{}                  `type:"structure"`
3992	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3993
3994	Message_ *string `locationName:"Message" type:"string"`
3995
3996	// The name of the resource.
3997	ResourceName *string `type:"string"`
3998
3999	// The type of resource.
4000	ResourceType *string `type:"string"`
4001}
4002
4003// String returns the string representation
4004func (s ResourceNotFoundException) String() string {
4005	return awsutil.Prettify(s)
4006}
4007
4008// GoString returns the string representation
4009func (s ResourceNotFoundException) GoString() string {
4010	return s.String()
4011}
4012
4013func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
4014	return &ResourceNotFoundException{
4015		RespMetadata: v,
4016	}
4017}
4018
4019// Code returns the exception type name.
4020func (s *ResourceNotFoundException) Code() string {
4021	return "ResourceNotFoundException"
4022}
4023
4024// Message returns the exception's message.
4025func (s *ResourceNotFoundException) Message() string {
4026	if s.Message_ != nil {
4027		return *s.Message_
4028	}
4029	return ""
4030}
4031
4032// OrigErr always returns nil, satisfies awserr.Error interface.
4033func (s *ResourceNotFoundException) OrigErr() error {
4034	return nil
4035}
4036
4037func (s *ResourceNotFoundException) Error() string {
4038	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
4039}
4040
4041// Status code returns the HTTP status code for the request's response error.
4042func (s *ResourceNotFoundException) StatusCode() int {
4043	return s.RespMetadata.StatusCode
4044}
4045
4046// RequestID returns the service's response RequestID for request.
4047func (s *ResourceNotFoundException) RequestID() string {
4048	return s.RespMetadata.RequestID
4049}
4050
4051// The operation failed because a condition wasn't satisfied in advance.
4052type ResourcePreconditionNotMetException struct {
4053	_            struct{}                  `type:"structure"`
4054	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4055
4056	Message_ *string `locationName:"Message" type:"string"`
4057
4058	// The name of the resource.
4059	ResourceName *string `type:"string"`
4060
4061	// The type of resource.
4062	ResourceType *string `type:"string"`
4063}
4064
4065// String returns the string representation
4066func (s ResourcePreconditionNotMetException) String() string {
4067	return awsutil.Prettify(s)
4068}
4069
4070// GoString returns the string representation
4071func (s ResourcePreconditionNotMetException) GoString() string {
4072	return s.String()
4073}
4074
4075func newErrorResourcePreconditionNotMetException(v protocol.ResponseMetadata) error {
4076	return &ResourcePreconditionNotMetException{
4077		RespMetadata: v,
4078	}
4079}
4080
4081// Code returns the exception type name.
4082func (s *ResourcePreconditionNotMetException) Code() string {
4083	return "ResourcePreconditionNotMetException"
4084}
4085
4086// Message returns the exception's message.
4087func (s *ResourcePreconditionNotMetException) Message() string {
4088	if s.Message_ != nil {
4089		return *s.Message_
4090	}
4091	return ""
4092}
4093
4094// OrigErr always returns nil, satisfies awserr.Error interface.
4095func (s *ResourcePreconditionNotMetException) OrigErr() error {
4096	return nil
4097}
4098
4099func (s *ResourcePreconditionNotMetException) Error() string {
4100	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
4101}
4102
4103// Status code returns the HTTP status code for the request's response error.
4104func (s *ResourcePreconditionNotMetException) StatusCode() int {
4105	return s.RespMetadata.StatusCode
4106}
4107
4108// RequestID returns the service's response RequestID for request.
4109func (s *ResourcePreconditionNotMetException) RequestID() string {
4110	return s.RespMetadata.RequestID
4111}
4112
4113// The encryption settings that are used by a journal export job to write data
4114// in an Amazon Simple Storage Service (Amazon S3) bucket.
4115type S3EncryptionConfiguration struct {
4116	_ struct{} `type:"structure"`
4117
4118	// The Amazon Resource Name (ARN) for a symmetric customer master key (CMK)
4119	// in AWS Key Management Service (AWS KMS). Amazon QLDB does not support asymmetric
4120	// CMKs.
4121	//
4122	// You must provide a KmsKeyArn if you specify SSE_KMS as the ObjectEncryptionType.
4123	//
4124	// KmsKeyArn is not required if you specify SSE_S3 as the ObjectEncryptionType.
4125	KmsKeyArn *string `min:"20" type:"string"`
4126
4127	// The Amazon S3 object encryption type.
4128	//
4129	// To learn more about server-side encryption options in Amazon S3, see Protecting
4130	// Data Using Server-Side Encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html)
4131	// in the Amazon S3 Developer Guide.
4132	//
4133	// ObjectEncryptionType is a required field
4134	ObjectEncryptionType *string `type:"string" required:"true" enum:"S3ObjectEncryptionType"`
4135}
4136
4137// String returns the string representation
4138func (s S3EncryptionConfiguration) String() string {
4139	return awsutil.Prettify(s)
4140}
4141
4142// GoString returns the string representation
4143func (s S3EncryptionConfiguration) GoString() string {
4144	return s.String()
4145}
4146
4147// Validate inspects the fields of the type to determine if they are valid.
4148func (s *S3EncryptionConfiguration) Validate() error {
4149	invalidParams := request.ErrInvalidParams{Context: "S3EncryptionConfiguration"}
4150	if s.KmsKeyArn != nil && len(*s.KmsKeyArn) < 20 {
4151		invalidParams.Add(request.NewErrParamMinLen("KmsKeyArn", 20))
4152	}
4153	if s.ObjectEncryptionType == nil {
4154		invalidParams.Add(request.NewErrParamRequired("ObjectEncryptionType"))
4155	}
4156
4157	if invalidParams.Len() > 0 {
4158		return invalidParams
4159	}
4160	return nil
4161}
4162
4163// SetKmsKeyArn sets the KmsKeyArn field's value.
4164func (s *S3EncryptionConfiguration) SetKmsKeyArn(v string) *S3EncryptionConfiguration {
4165	s.KmsKeyArn = &v
4166	return s
4167}
4168
4169// SetObjectEncryptionType sets the ObjectEncryptionType field's value.
4170func (s *S3EncryptionConfiguration) SetObjectEncryptionType(v string) *S3EncryptionConfiguration {
4171	s.ObjectEncryptionType = &v
4172	return s
4173}
4174
4175// The Amazon Simple Storage Service (Amazon S3) bucket location in which a
4176// journal export job writes the journal contents.
4177type S3ExportConfiguration struct {
4178	_ struct{} `type:"structure"`
4179
4180	// The Amazon S3 bucket name in which a journal export job writes the journal
4181	// contents.
4182	//
4183	// The bucket name must comply with the Amazon S3 bucket naming conventions.
4184	// For more information, see Bucket Restrictions and Limitations (https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html)
4185	// in the Amazon S3 Developer Guide.
4186	//
4187	// Bucket is a required field
4188	Bucket *string `min:"3" type:"string" required:"true"`
4189
4190	// The encryption settings that are used by a journal export job to write data
4191	// in an Amazon S3 bucket.
4192	//
4193	// EncryptionConfiguration is a required field
4194	EncryptionConfiguration *S3EncryptionConfiguration `type:"structure" required:"true"`
4195
4196	// The prefix for the Amazon S3 bucket in which a journal export job writes
4197	// the journal contents.
4198	//
4199	// The prefix must comply with Amazon S3 key naming rules and restrictions.
4200	// For more information, see Object Key and Metadata (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html)
4201	// in the Amazon S3 Developer Guide.
4202	//
4203	// The following are examples of valid Prefix values:
4204	//
4205	//    * JournalExports-ForMyLedger/Testing/
4206	//
4207	//    * JournalExports
4208	//
4209	//    * My:Tests/
4210	//
4211	// Prefix is a required field
4212	Prefix *string `type:"string" required:"true"`
4213}
4214
4215// String returns the string representation
4216func (s S3ExportConfiguration) String() string {
4217	return awsutil.Prettify(s)
4218}
4219
4220// GoString returns the string representation
4221func (s S3ExportConfiguration) GoString() string {
4222	return s.String()
4223}
4224
4225// Validate inspects the fields of the type to determine if they are valid.
4226func (s *S3ExportConfiguration) Validate() error {
4227	invalidParams := request.ErrInvalidParams{Context: "S3ExportConfiguration"}
4228	if s.Bucket == nil {
4229		invalidParams.Add(request.NewErrParamRequired("Bucket"))
4230	}
4231	if s.Bucket != nil && len(*s.Bucket) < 3 {
4232		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
4233	}
4234	if s.EncryptionConfiguration == nil {
4235		invalidParams.Add(request.NewErrParamRequired("EncryptionConfiguration"))
4236	}
4237	if s.Prefix == nil {
4238		invalidParams.Add(request.NewErrParamRequired("Prefix"))
4239	}
4240	if s.EncryptionConfiguration != nil {
4241		if err := s.EncryptionConfiguration.Validate(); err != nil {
4242			invalidParams.AddNested("EncryptionConfiguration", err.(request.ErrInvalidParams))
4243		}
4244	}
4245
4246	if invalidParams.Len() > 0 {
4247		return invalidParams
4248	}
4249	return nil
4250}
4251
4252// SetBucket sets the Bucket field's value.
4253func (s *S3ExportConfiguration) SetBucket(v string) *S3ExportConfiguration {
4254	s.Bucket = &v
4255	return s
4256}
4257
4258// SetEncryptionConfiguration sets the EncryptionConfiguration field's value.
4259func (s *S3ExportConfiguration) SetEncryptionConfiguration(v *S3EncryptionConfiguration) *S3ExportConfiguration {
4260	s.EncryptionConfiguration = v
4261	return s
4262}
4263
4264// SetPrefix sets the Prefix field's value.
4265func (s *S3ExportConfiguration) SetPrefix(v string) *S3ExportConfiguration {
4266	s.Prefix = &v
4267	return s
4268}
4269
4270type StreamJournalToKinesisInput struct {
4271	_ struct{} `type:"structure"`
4272
4273	// The exclusive date and time that specifies when the stream ends. If you keep
4274	// this parameter blank, the stream runs indefinitely until you cancel it.
4275	//
4276	// The ExclusiveEndTime must be in ISO 8601 date and time format and in Universal
4277	// Coordinated Time (UTC). For example: 2019-06-13T21:36:34Z
4278	ExclusiveEndTime *time.Time `type:"timestamp"`
4279
4280	// The inclusive start date and time from which to start streaming journal data.
4281	// This parameter must be in ISO 8601 date and time format and in Universal
4282	// Coordinated Time (UTC). For example: 2019-06-13T21:36:34Z
4283	//
4284	// The InclusiveStartTime cannot be in the future and must be before ExclusiveEndTime.
4285	//
4286	// If you provide an InclusiveStartTime that is before the ledger's CreationDateTime,
4287	// QLDB effectively defaults it to the ledger's CreationDateTime.
4288	//
4289	// InclusiveStartTime is a required field
4290	InclusiveStartTime *time.Time `type:"timestamp" required:"true"`
4291
4292	// The configuration settings of the Kinesis Data Streams destination for your
4293	// stream request.
4294	//
4295	// KinesisConfiguration is a required field
4296	KinesisConfiguration *KinesisConfiguration `type:"structure" required:"true"`
4297
4298	// The name of the ledger.
4299	//
4300	// LedgerName is a required field
4301	LedgerName *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
4302
4303	// The Amazon Resource Name (ARN) of the IAM role that grants QLDB permissions
4304	// for a journal stream to write data records to a Kinesis Data Streams resource.
4305	//
4306	// RoleArn is a required field
4307	RoleArn *string `min:"20" type:"string" required:"true"`
4308
4309	// The name that you want to assign to the QLDB journal stream. User-defined
4310	// names can help identify and indicate the purpose of a stream.
4311	//
4312	// Your stream name must be unique among other active streams for a given ledger.
4313	// If you try to create a stream with the same name and configuration of an
4314	// active, existing stream for the same ledger, QLDB simply returns the existing
4315	// stream. Stream names have the same naming constraints as ledger names, as
4316	// defined in Quotas in Amazon QLDB (https://docs.aws.amazon.com/qldb/latest/developerguide/limits.html#limits.naming)
4317	// in the Amazon QLDB Developer Guide.
4318	//
4319	// StreamName is a required field
4320	StreamName *string `min:"1" type:"string" required:"true"`
4321
4322	// The key-value pairs to add as tags to the stream that you want to create.
4323	// Tag keys are case sensitive. Tag values are case sensitive and can be null.
4324	Tags map[string]*string `type:"map"`
4325}
4326
4327// String returns the string representation
4328func (s StreamJournalToKinesisInput) String() string {
4329	return awsutil.Prettify(s)
4330}
4331
4332// GoString returns the string representation
4333func (s StreamJournalToKinesisInput) GoString() string {
4334	return s.String()
4335}
4336
4337// Validate inspects the fields of the type to determine if they are valid.
4338func (s *StreamJournalToKinesisInput) Validate() error {
4339	invalidParams := request.ErrInvalidParams{Context: "StreamJournalToKinesisInput"}
4340	if s.InclusiveStartTime == nil {
4341		invalidParams.Add(request.NewErrParamRequired("InclusiveStartTime"))
4342	}
4343	if s.KinesisConfiguration == nil {
4344		invalidParams.Add(request.NewErrParamRequired("KinesisConfiguration"))
4345	}
4346	if s.LedgerName == nil {
4347		invalidParams.Add(request.NewErrParamRequired("LedgerName"))
4348	}
4349	if s.LedgerName != nil && len(*s.LedgerName) < 1 {
4350		invalidParams.Add(request.NewErrParamMinLen("LedgerName", 1))
4351	}
4352	if s.RoleArn == nil {
4353		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
4354	}
4355	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
4356		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
4357	}
4358	if s.StreamName == nil {
4359		invalidParams.Add(request.NewErrParamRequired("StreamName"))
4360	}
4361	if s.StreamName != nil && len(*s.StreamName) < 1 {
4362		invalidParams.Add(request.NewErrParamMinLen("StreamName", 1))
4363	}
4364	if s.KinesisConfiguration != nil {
4365		if err := s.KinesisConfiguration.Validate(); err != nil {
4366			invalidParams.AddNested("KinesisConfiguration", err.(request.ErrInvalidParams))
4367		}
4368	}
4369
4370	if invalidParams.Len() > 0 {
4371		return invalidParams
4372	}
4373	return nil
4374}
4375
4376// SetExclusiveEndTime sets the ExclusiveEndTime field's value.
4377func (s *StreamJournalToKinesisInput) SetExclusiveEndTime(v time.Time) *StreamJournalToKinesisInput {
4378	s.ExclusiveEndTime = &v
4379	return s
4380}
4381
4382// SetInclusiveStartTime sets the InclusiveStartTime field's value.
4383func (s *StreamJournalToKinesisInput) SetInclusiveStartTime(v time.Time) *StreamJournalToKinesisInput {
4384	s.InclusiveStartTime = &v
4385	return s
4386}
4387
4388// SetKinesisConfiguration sets the KinesisConfiguration field's value.
4389func (s *StreamJournalToKinesisInput) SetKinesisConfiguration(v *KinesisConfiguration) *StreamJournalToKinesisInput {
4390	s.KinesisConfiguration = v
4391	return s
4392}
4393
4394// SetLedgerName sets the LedgerName field's value.
4395func (s *StreamJournalToKinesisInput) SetLedgerName(v string) *StreamJournalToKinesisInput {
4396	s.LedgerName = &v
4397	return s
4398}
4399
4400// SetRoleArn sets the RoleArn field's value.
4401func (s *StreamJournalToKinesisInput) SetRoleArn(v string) *StreamJournalToKinesisInput {
4402	s.RoleArn = &v
4403	return s
4404}
4405
4406// SetStreamName sets the StreamName field's value.
4407func (s *StreamJournalToKinesisInput) SetStreamName(v string) *StreamJournalToKinesisInput {
4408	s.StreamName = &v
4409	return s
4410}
4411
4412// SetTags sets the Tags field's value.
4413func (s *StreamJournalToKinesisInput) SetTags(v map[string]*string) *StreamJournalToKinesisInput {
4414	s.Tags = v
4415	return s
4416}
4417
4418type StreamJournalToKinesisOutput struct {
4419	_ struct{} `type:"structure"`
4420
4421	// The unique ID that QLDB assigns to each QLDB journal stream.
4422	StreamId *string `min:"22" type:"string"`
4423}
4424
4425// String returns the string representation
4426func (s StreamJournalToKinesisOutput) String() string {
4427	return awsutil.Prettify(s)
4428}
4429
4430// GoString returns the string representation
4431func (s StreamJournalToKinesisOutput) GoString() string {
4432	return s.String()
4433}
4434
4435// SetStreamId sets the StreamId field's value.
4436func (s *StreamJournalToKinesisOutput) SetStreamId(v string) *StreamJournalToKinesisOutput {
4437	s.StreamId = &v
4438	return s
4439}
4440
4441type TagResourceInput struct {
4442	_ struct{} `type:"structure"`
4443
4444	// The Amazon Resource Name (ARN) to which you want to add the tags. For example:
4445	//
4446	// arn:aws:qldb:us-east-1:123456789012:ledger/exampleLedger
4447	//
4448	// ResourceArn is a required field
4449	ResourceArn *string `location:"uri" locationName:"resourceArn" min:"20" type:"string" required:"true"`
4450
4451	// The key-value pairs to add as tags to the specified QLDB resource. Tag keys
4452	// are case sensitive. If you specify a key that already exists for the resource,
4453	// your request fails and returns an error. Tag values are case sensitive and
4454	// can be null.
4455	//
4456	// Tags is a required field
4457	Tags map[string]*string `type:"map" required:"true"`
4458}
4459
4460// String returns the string representation
4461func (s TagResourceInput) String() string {
4462	return awsutil.Prettify(s)
4463}
4464
4465// GoString returns the string representation
4466func (s TagResourceInput) GoString() string {
4467	return s.String()
4468}
4469
4470// Validate inspects the fields of the type to determine if they are valid.
4471func (s *TagResourceInput) Validate() error {
4472	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
4473	if s.ResourceArn == nil {
4474		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
4475	}
4476	if s.ResourceArn != nil && len(*s.ResourceArn) < 20 {
4477		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 20))
4478	}
4479	if s.Tags == nil {
4480		invalidParams.Add(request.NewErrParamRequired("Tags"))
4481	}
4482
4483	if invalidParams.Len() > 0 {
4484		return invalidParams
4485	}
4486	return nil
4487}
4488
4489// SetResourceArn sets the ResourceArn field's value.
4490func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
4491	s.ResourceArn = &v
4492	return s
4493}
4494
4495// SetTags sets the Tags field's value.
4496func (s *TagResourceInput) SetTags(v map[string]*string) *TagResourceInput {
4497	s.Tags = v
4498	return s
4499}
4500
4501type TagResourceOutput struct {
4502	_ struct{} `type:"structure"`
4503}
4504
4505// String returns the string representation
4506func (s TagResourceOutput) String() string {
4507	return awsutil.Prettify(s)
4508}
4509
4510// GoString returns the string representation
4511func (s TagResourceOutput) GoString() string {
4512	return s.String()
4513}
4514
4515type UntagResourceInput struct {
4516	_ struct{} `type:"structure"`
4517
4518	// The Amazon Resource Name (ARN) from which you want to remove the tags. For
4519	// example:
4520	//
4521	// arn:aws:qldb:us-east-1:123456789012:ledger/exampleLedger
4522	//
4523	// ResourceArn is a required field
4524	ResourceArn *string `location:"uri" locationName:"resourceArn" min:"20" type:"string" required:"true"`
4525
4526	// The list of tag keys that you want to remove.
4527	//
4528	// TagKeys is a required field
4529	TagKeys []*string `location:"querystring" locationName:"tagKeys" type:"list" required:"true"`
4530}
4531
4532// String returns the string representation
4533func (s UntagResourceInput) String() string {
4534	return awsutil.Prettify(s)
4535}
4536
4537// GoString returns the string representation
4538func (s UntagResourceInput) GoString() string {
4539	return s.String()
4540}
4541
4542// Validate inspects the fields of the type to determine if they are valid.
4543func (s *UntagResourceInput) Validate() error {
4544	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
4545	if s.ResourceArn == nil {
4546		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
4547	}
4548	if s.ResourceArn != nil && len(*s.ResourceArn) < 20 {
4549		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 20))
4550	}
4551	if s.TagKeys == nil {
4552		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
4553	}
4554
4555	if invalidParams.Len() > 0 {
4556		return invalidParams
4557	}
4558	return nil
4559}
4560
4561// SetResourceArn sets the ResourceArn field's value.
4562func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
4563	s.ResourceArn = &v
4564	return s
4565}
4566
4567// SetTagKeys sets the TagKeys field's value.
4568func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
4569	s.TagKeys = v
4570	return s
4571}
4572
4573type UntagResourceOutput struct {
4574	_ struct{} `type:"structure"`
4575}
4576
4577// String returns the string representation
4578func (s UntagResourceOutput) String() string {
4579	return awsutil.Prettify(s)
4580}
4581
4582// GoString returns the string representation
4583func (s UntagResourceOutput) GoString() string {
4584	return s.String()
4585}
4586
4587type UpdateLedgerInput struct {
4588	_ struct{} `type:"structure"`
4589
4590	// The flag that prevents a ledger from being deleted by any user. If not provided
4591	// on ledger creation, this feature is enabled (true) by default.
4592	//
4593	// If deletion protection is enabled, you must first disable it before you can
4594	// delete the ledger using the QLDB API or the AWS Command Line Interface (AWS
4595	// CLI). You can disable it by calling the UpdateLedger operation to set the
4596	// flag to false. The QLDB console disables deletion protection for you when
4597	// you use it to delete a ledger.
4598	DeletionProtection *bool `type:"boolean"`
4599
4600	// The name of the ledger.
4601	//
4602	// Name is a required field
4603	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
4604}
4605
4606// String returns the string representation
4607func (s UpdateLedgerInput) String() string {
4608	return awsutil.Prettify(s)
4609}
4610
4611// GoString returns the string representation
4612func (s UpdateLedgerInput) GoString() string {
4613	return s.String()
4614}
4615
4616// Validate inspects the fields of the type to determine if they are valid.
4617func (s *UpdateLedgerInput) Validate() error {
4618	invalidParams := request.ErrInvalidParams{Context: "UpdateLedgerInput"}
4619	if s.Name == nil {
4620		invalidParams.Add(request.NewErrParamRequired("Name"))
4621	}
4622	if s.Name != nil && len(*s.Name) < 1 {
4623		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
4624	}
4625
4626	if invalidParams.Len() > 0 {
4627		return invalidParams
4628	}
4629	return nil
4630}
4631
4632// SetDeletionProtection sets the DeletionProtection field's value.
4633func (s *UpdateLedgerInput) SetDeletionProtection(v bool) *UpdateLedgerInput {
4634	s.DeletionProtection = &v
4635	return s
4636}
4637
4638// SetName sets the Name field's value.
4639func (s *UpdateLedgerInput) SetName(v string) *UpdateLedgerInput {
4640	s.Name = &v
4641	return s
4642}
4643
4644type UpdateLedgerOutput struct {
4645	_ struct{} `type:"structure"`
4646
4647	// The Amazon Resource Name (ARN) for the ledger.
4648	Arn *string `min:"20" type:"string"`
4649
4650	// The date and time, in epoch time format, when the ledger was created. (Epoch
4651	// time format is the number of seconds elapsed since 12:00:00 AM January 1,
4652	// 1970 UTC.)
4653	CreationDateTime *time.Time `type:"timestamp"`
4654
4655	// The flag that prevents a ledger from being deleted by any user. If not provided
4656	// on ledger creation, this feature is enabled (true) by default.
4657	//
4658	// If deletion protection is enabled, you must first disable it before you can
4659	// delete the ledger using the QLDB API or the AWS Command Line Interface (AWS
4660	// CLI). You can disable it by calling the UpdateLedger operation to set the
4661	// flag to false. The QLDB console disables deletion protection for you when
4662	// you use it to delete a ledger.
4663	DeletionProtection *bool `type:"boolean"`
4664
4665	// The name of the ledger.
4666	Name *string `min:"1" type:"string"`
4667
4668	// The current status of the ledger.
4669	State *string `type:"string" enum:"LedgerState"`
4670}
4671
4672// String returns the string representation
4673func (s UpdateLedgerOutput) String() string {
4674	return awsutil.Prettify(s)
4675}
4676
4677// GoString returns the string representation
4678func (s UpdateLedgerOutput) GoString() string {
4679	return s.String()
4680}
4681
4682// SetArn sets the Arn field's value.
4683func (s *UpdateLedgerOutput) SetArn(v string) *UpdateLedgerOutput {
4684	s.Arn = &v
4685	return s
4686}
4687
4688// SetCreationDateTime sets the CreationDateTime field's value.
4689func (s *UpdateLedgerOutput) SetCreationDateTime(v time.Time) *UpdateLedgerOutput {
4690	s.CreationDateTime = &v
4691	return s
4692}
4693
4694// SetDeletionProtection sets the DeletionProtection field's value.
4695func (s *UpdateLedgerOutput) SetDeletionProtection(v bool) *UpdateLedgerOutput {
4696	s.DeletionProtection = &v
4697	return s
4698}
4699
4700// SetName sets the Name field's value.
4701func (s *UpdateLedgerOutput) SetName(v string) *UpdateLedgerOutput {
4702	s.Name = &v
4703	return s
4704}
4705
4706// SetState sets the State field's value.
4707func (s *UpdateLedgerOutput) SetState(v string) *UpdateLedgerOutput {
4708	s.State = &v
4709	return s
4710}
4711
4712// A structure that can contain an Amazon Ion value in multiple encoding formats.
4713type ValueHolder struct {
4714	_ struct{} `type:"structure" sensitive:"true"`
4715
4716	// An Amazon Ion plaintext value contained in a ValueHolder structure.
4717	IonText *string `min:"1" type:"string" sensitive:"true"`
4718}
4719
4720// String returns the string representation
4721func (s ValueHolder) String() string {
4722	return awsutil.Prettify(s)
4723}
4724
4725// GoString returns the string representation
4726func (s ValueHolder) GoString() string {
4727	return s.String()
4728}
4729
4730// Validate inspects the fields of the type to determine if they are valid.
4731func (s *ValueHolder) Validate() error {
4732	invalidParams := request.ErrInvalidParams{Context: "ValueHolder"}
4733	if s.IonText != nil && len(*s.IonText) < 1 {
4734		invalidParams.Add(request.NewErrParamMinLen("IonText", 1))
4735	}
4736
4737	if invalidParams.Len() > 0 {
4738		return invalidParams
4739	}
4740	return nil
4741}
4742
4743// SetIonText sets the IonText field's value.
4744func (s *ValueHolder) SetIonText(v string) *ValueHolder {
4745	s.IonText = &v
4746	return s
4747}
4748
4749const (
4750	// ErrorCauseKinesisStreamNotFound is a ErrorCause enum value
4751	ErrorCauseKinesisStreamNotFound = "KINESIS_STREAM_NOT_FOUND"
4752
4753	// ErrorCauseIamPermissionRevoked is a ErrorCause enum value
4754	ErrorCauseIamPermissionRevoked = "IAM_PERMISSION_REVOKED"
4755)
4756
4757const (
4758	// ExportStatusInProgress is a ExportStatus enum value
4759	ExportStatusInProgress = "IN_PROGRESS"
4760
4761	// ExportStatusCompleted is a ExportStatus enum value
4762	ExportStatusCompleted = "COMPLETED"
4763
4764	// ExportStatusCancelled is a ExportStatus enum value
4765	ExportStatusCancelled = "CANCELLED"
4766)
4767
4768const (
4769	// LedgerStateCreating is a LedgerState enum value
4770	LedgerStateCreating = "CREATING"
4771
4772	// LedgerStateActive is a LedgerState enum value
4773	LedgerStateActive = "ACTIVE"
4774
4775	// LedgerStateDeleting is a LedgerState enum value
4776	LedgerStateDeleting = "DELETING"
4777
4778	// LedgerStateDeleted is a LedgerState enum value
4779	LedgerStateDeleted = "DELETED"
4780)
4781
4782const (
4783	// PermissionsModeAllowAll is a PermissionsMode enum value
4784	PermissionsModeAllowAll = "ALLOW_ALL"
4785)
4786
4787const (
4788	// S3ObjectEncryptionTypeSseKms is a S3ObjectEncryptionType enum value
4789	S3ObjectEncryptionTypeSseKms = "SSE_KMS"
4790
4791	// S3ObjectEncryptionTypeSseS3 is a S3ObjectEncryptionType enum value
4792	S3ObjectEncryptionTypeSseS3 = "SSE_S3"
4793
4794	// S3ObjectEncryptionTypeNoEncryption is a S3ObjectEncryptionType enum value
4795	S3ObjectEncryptionTypeNoEncryption = "NO_ENCRYPTION"
4796)
4797
4798const (
4799	// StreamStatusActive is a StreamStatus enum value
4800	StreamStatusActive = "ACTIVE"
4801
4802	// StreamStatusCompleted is a StreamStatus enum value
4803	StreamStatusCompleted = "COMPLETED"
4804
4805	// StreamStatusCanceled is a StreamStatus enum value
4806	StreamStatusCanceled = "CANCELED"
4807
4808	// StreamStatusFailed is a StreamStatus enum value
4809	StreamStatusFailed = "FAILED"
4810
4811	// StreamStatusImpaired is a StreamStatus enum value
4812	StreamStatusImpaired = "IMPAIRED"
4813)
4814