/
types.go
276 lines (223 loc) · 9.94 KB
/
types.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
// Code generated by smithy-go-codegen DO NOT EDIT.
package types
import (
smithydocument "github.com/aws/smithy-go/document"
"time"
)
// Information about an Amazon QLDB journal stream, including the Amazon Resource
// Name (ARN), stream name, creation time, current status, and the parameters of
// the original stream creation request.
type JournalKinesisStreamDescription struct {
// The configuration settings of the Amazon Kinesis Data Streams destination for a
// QLDB journal stream.
//
// This member is required.
KinesisConfiguration *KinesisConfiguration
// The name of the ledger.
//
// This member is required.
LedgerName *string
// The Amazon Resource Name (ARN) of the IAM role that grants QLDB permissions for
// a journal stream to write data records to a Kinesis Data Streams resource.
//
// This member is required.
RoleArn *string
// The current state of the QLDB journal stream.
//
// This member is required.
Status StreamStatus
// The UUID (represented in Base62-encoded text) of the QLDB journal stream.
//
// This member is required.
StreamId *string
// The user-defined name of the QLDB journal stream.
//
// This member is required.
StreamName *string
// The Amazon Resource Name (ARN) of the QLDB journal stream.
Arn *string
// The date and time, in epoch time format, when the QLDB journal stream was
// created. (Epoch time format is the number of seconds elapsed since 12:00:00 AM
// January 1, 1970 UTC.)
CreationTime *time.Time
// The error message that describes the reason that a stream has a status of
// IMPAIRED or FAILED . This is not applicable to streams that have other status
// values.
ErrorCause ErrorCause
// The exclusive date and time that specifies when the stream ends. If this
// parameter is undefined, the stream runs indefinitely until you cancel it.
ExclusiveEndTime *time.Time
// The inclusive start date and time from which to start streaming journal data.
InclusiveStartTime *time.Time
noSmithyDocumentSerde
}
// Information about a journal export job, including the ledger name, export ID,
// creation time, current status, and the parameters of the original export
// creation request.
type JournalS3ExportDescription struct {
// The exclusive end date and time for the range of journal contents that was
// specified in the original export request.
//
// This member is required.
ExclusiveEndTime *time.Time
// The date and time, in epoch time format, when the export job was created.
// (Epoch time format is the number of seconds elapsed since 12:00:00 AM January 1,
// 1970 UTC.)
//
// This member is required.
ExportCreationTime *time.Time
// The UUID (represented in Base62-encoded text) of the journal export job.
//
// This member is required.
ExportId *string
// The inclusive start date and time for the range of journal contents that was
// specified in the original export request.
//
// This member is required.
InclusiveStartTime *time.Time
// The name of the ledger.
//
// This member is required.
LedgerName *string
// The Amazon Resource Name (ARN) of the IAM role that grants QLDB permissions for
// a journal export job to do the following:
// - Write objects into your Amazon Simple Storage Service (Amazon S3) bucket.
// - (Optional) Use your customer managed key in Key Management Service (KMS)
// for server-side encryption of your exported data.
//
// This member is required.
RoleArn *string
// The Amazon Simple Storage Service (Amazon S3) bucket location in which a
// journal export job writes the journal contents.
//
// This member is required.
S3ExportConfiguration *S3ExportConfiguration
// The current state of the journal export job.
//
// This member is required.
Status ExportStatus
// The output format of the exported journal data.
OutputFormat OutputFormat
noSmithyDocumentSerde
}
// The configuration settings of the Amazon Kinesis Data Streams destination for
// an Amazon QLDB journal stream.
type KinesisConfiguration struct {
// The Amazon Resource Name (ARN) of the Kinesis Data Streams resource.
//
// This member is required.
StreamArn *string
// Enables QLDB to publish multiple data records in a single Kinesis Data Streams
// record, increasing the number of records sent per API call. Default: True
// Record aggregation has important implications for processing records and
// requires de-aggregation in your stream consumer. To learn more, see KPL Key
// Concepts (https://docs.aws.amazon.com/streams/latest/dev/kinesis-kpl-concepts.html)
// and Consumer De-aggregation (https://docs.aws.amazon.com/streams/latest/dev/kinesis-kpl-consumer-deaggregation.html)
// in the Amazon Kinesis Data Streams Developer Guide.
AggregationEnabled *bool
noSmithyDocumentSerde
}
// Information about the encryption of data at rest in an Amazon QLDB ledger. This
// includes the current status, the key in Key Management Service (KMS), and when
// the key became inaccessible (in the case of an error). For more information, see
// Encryption at rest (https://docs.aws.amazon.com/qldb/latest/developerguide/encryption-at-rest.html)
// in the Amazon QLDB Developer Guide.
type LedgerEncryptionDescription struct {
// The current state of encryption at rest for the ledger. This can be one of the
// following values:
// - ENABLED : Encryption is fully enabled using the specified key.
// - UPDATING : The ledger is actively processing the specified key change. Key
// changes in QLDB are asynchronous. The ledger is fully accessible without any
// performance impact while the key change is being processed. The amount of time
// it takes to update a key varies depending on the ledger size.
// - KMS_KEY_INACCESSIBLE : The specified customer managed KMS key is not
// accessible, and the ledger is impaired. Either the key was disabled or deleted,
// or the grants on the key were revoked. When a ledger is impaired, it is not
// accessible and does not accept any read or write requests. An impaired ledger
// automatically returns to an active state after you restore the grants on the
// key, or re-enable the key that was disabled. However, deleting a customer
// managed KMS key is irreversible. After a key is deleted, you can no longer
// access the ledgers that are protected with that key, and the data becomes
// unrecoverable permanently.
//
// This member is required.
EncryptionStatus EncryptionStatus
// The Amazon Resource Name (ARN) of the customer managed KMS key that the ledger
// uses for encryption at rest. If this parameter is undefined, the ledger uses an
// Amazon Web Services owned KMS key for encryption. It will display
// AWS_OWNED_KMS_KEY when updating the ledger's encryption configuration to the
// Amazon Web Services owned KMS key.
//
// This member is required.
KmsKeyArn *string
// The date and time, in epoch time format, when the KMS key first became
// inaccessible, in the case of an error. (Epoch time format is the number of
// seconds that have elapsed since 12:00:00 AM January 1, 1970 UTC.) This parameter
// is undefined if the KMS key is accessible.
InaccessibleKmsKeyDateTime *time.Time
noSmithyDocumentSerde
}
// Information about a ledger, including its name, state, and when it was created.
type LedgerSummary struct {
// The date and time, in epoch time format, when the ledger was created. (Epoch
// time format is the number of seconds elapsed since 12:00:00 AM January 1, 1970
// UTC.)
CreationDateTime *time.Time
// The name of the ledger.
Name *string
// The current status of the ledger.
State LedgerState
noSmithyDocumentSerde
}
// The encryption settings that are used by a journal export job to write data in
// an Amazon Simple Storage Service (Amazon S3) bucket.
type S3EncryptionConfiguration struct {
// The Amazon S3 object encryption type. To learn more about server-side
// encryption options in Amazon S3, see Protecting Data Using Server-Side
// Encryption (https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html)
// in the Amazon S3 Developer Guide.
//
// This member is required.
ObjectEncryptionType S3ObjectEncryptionType
// The Amazon Resource Name (ARN) of a symmetric encryption key in Key Management
// Service (KMS). Amazon S3 does not support asymmetric KMS keys. You must provide
// a KmsKeyArn if you specify SSE_KMS as the ObjectEncryptionType . KmsKeyArn is
// not required if you specify SSE_S3 as the ObjectEncryptionType .
KmsKeyArn *string
noSmithyDocumentSerde
}
// The Amazon Simple Storage Service (Amazon S3) bucket location in which a
// journal export job writes the journal contents.
type S3ExportConfiguration struct {
// The Amazon S3 bucket name in which a journal export job writes the journal
// contents. The bucket name must comply with the Amazon S3 bucket naming
// conventions. For more information, see Bucket Restrictions and Limitations (https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html)
// in the Amazon S3 Developer Guide.
//
// This member is required.
Bucket *string
// The encryption settings that are used by a journal export job to write data in
// an Amazon S3 bucket.
//
// This member is required.
EncryptionConfiguration *S3EncryptionConfiguration
// The prefix for the Amazon S3 bucket in which a journal export job writes the
// journal contents. The prefix must comply with Amazon S3 key naming rules and
// restrictions. For more information, see Object Key and Metadata (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html)
// in the Amazon S3 Developer Guide. The following are examples of valid Prefix
// values:
// - JournalExports-ForMyLedger/Testing/
// - JournalExports
// - My:Tests/
//
// This member is required.
Prefix *string
noSmithyDocumentSerde
}
// A structure that can contain a value in multiple encoding formats.
type ValueHolder struct {
// An Amazon Ion plaintext value contained in a ValueHolder structure.
IonText *string
noSmithyDocumentSerde
}
type noSmithyDocumentSerde = smithydocument.NoSerde