/
types.go
554 lines (406 loc) · 17.2 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
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
// Code generated by smithy-go-codegen DO NOT EDIT.
package types
import (
smithydocument "github.com/aws/smithy-go/document"
)
// Contains information about the comma-separated value (CSV) file to select from.
type CSVInput struct {
// A single character used to indicate that a row should be ignored when the
// character is present at the start of that row.
Comments *string
// A value used to separate individual fields from each other within a record.
FieldDelimiter *string
// Describes the first line of input. Valid values are None, Ignore, and Use.
FileHeaderInfo FileHeaderInfo
// A value used as an escape character where the field delimiter is part of the
// value.
QuoteCharacter *string
// A single character used for escaping the quotation-mark character inside an
// already escaped value.
QuoteEscapeCharacter *string
// A value used to separate individual records from each other.
RecordDelimiter *string
noSmithyDocumentSerde
}
// Contains information about the comma-separated value (CSV) file that the job
// results are stored in.
type CSVOutput struct {
// A value used to separate individual fields from each other within a record.
FieldDelimiter *string
// A value used as an escape character where the field delimiter is part of the
// value.
QuoteCharacter *string
// A single character used for escaping the quotation-mark character inside an
// already escaped value.
QuoteEscapeCharacter *string
// A value that indicates whether all output fields should be contained within
// quotation marks.
QuoteFields QuoteFields
// A value used to separate individual records from each other.
RecordDelimiter *string
noSmithyDocumentSerde
}
// Data retrieval policy.
type DataRetrievalPolicy struct {
// The policy rule. Although this is a list type, currently there must be only one
// rule, which contains a Strategy field and optionally a BytesPerHour field.
Rules []DataRetrievalRule
noSmithyDocumentSerde
}
// Data retrieval policy rule.
type DataRetrievalRule struct {
// The maximum number of bytes that can be retrieved in an hour. This field is
// required only if the value of the Strategy field is BytesPerHour. Your PUT
// operation will be rejected if the Strategy field is not set to BytesPerHour and
// you set this field.
BytesPerHour *int64
// The type of data retrieval policy to set. Valid values:
// BytesPerHour|FreeTier|None
Strategy *string
noSmithyDocumentSerde
}
// Contains the Amazon S3 Glacier response to your request.
type DescribeVaultOutput struct {
// The Universal Coordinated Time (UTC) date when the vault was created. This value
// should be a string in the ISO 8601 date format, for example
// 2012-03-20T17:03:43.221Z.
CreationDate *string
// The Universal Coordinated Time (UTC) date when Amazon S3 Glacier completed the
// last vault inventory. This value should be a string in the ISO 8601 date format,
// for example 2012-03-20T17:03:43.221Z.
LastInventoryDate *string
// The number of archives in the vault as of the last inventory date. This field
// will return null if an inventory has not yet run on the vault, for example if
// you just created the vault.
NumberOfArchives int64
// Total size, in bytes, of the archives in the vault as of the last inventory
// date. This field will return null if an inventory has not yet run on the vault,
// for example if you just created the vault.
SizeInBytes int64
// The Amazon Resource Name (ARN) of the vault.
VaultARN *string
// The name of the vault.
VaultName *string
noSmithyDocumentSerde
}
// Contains information about the encryption used to store the job results in
// Amazon S3.
type Encryption struct {
// The server-side encryption algorithm used when storing job results in Amazon S3,
// for example AES256 or aws:kms.
EncryptionType EncryptionType
// Optional. If the encryption type is aws:kms, you can use this value to specify
// the encryption context for the job results.
KMSContext *string
// The AWS KMS key ID to use for object encryption. All GET and PUT requests for an
// object protected by AWS KMS fail if not made by using Secure Sockets Layer (SSL)
// or Signature Version 4.
KMSKeyId *string
noSmithyDocumentSerde
}
// Contains the description of an Amazon S3 Glacier job.
type GlacierJobDescription struct {
// The job type. This value is either ArchiveRetrieval, InventoryRetrieval, or
// Select.
Action ActionCode
// The archive ID requested for a select job or archive retrieval. Otherwise, this
// field is null.
ArchiveId *string
// The SHA256 tree hash of the entire archive for an archive retrieval. For
// inventory retrieval or select jobs, this field is null.
ArchiveSHA256TreeHash *string
// For an archive retrieval job, this value is the size in bytes of the archive
// being requested for download. For an inventory retrieval or select job, this
// value is null.
ArchiveSizeInBytes *int64
// The job status. When a job is completed, you get the job's output using Get Job
// Output (GET output).
Completed bool
// The UTC time that the job request completed. While the job is in progress, the
// value is null.
CompletionDate *string
// The UTC date when the job was created. This value is a string representation of
// ISO 8601 date format, for example "2012-03-20T17:03:43.221Z".
CreationDate *string
// Parameters used for range inventory retrieval.
InventoryRetrievalParameters *InventoryRetrievalJobDescription
// For an inventory retrieval job, this value is the size in bytes of the inventory
// requested for download. For an archive retrieval or select job, this value is
// null.
InventorySizeInBytes *int64
// The job description provided when initiating the job.
JobDescription *string
// An opaque string that identifies an Amazon S3 Glacier job.
JobId *string
// Contains the job output location.
JobOutputPath *string
// Contains the location where the data from the select job is stored.
OutputLocation *OutputLocation
// The retrieved byte range for archive retrieval jobs in the form
// StartByteValue-EndByteValue. If no range was specified in the archive retrieval,
// then the whole archive is retrieved. In this case, StartByteValue equals 0 and
// EndByteValue equals the size of the archive minus 1. For inventory retrieval or
// select jobs, this field is null.
RetrievalByteRange *string
// For an archive retrieval job, this value is the checksum of the archive.
// Otherwise, this value is null. The SHA256 tree hash value for the requested
// range of an archive. If the InitiateJob request for an archive specified a
// tree-hash aligned range, then this field returns a value. If the whole archive
// is retrieved, this value is the same as the ArchiveSHA256TreeHash value. This
// field is null for the following:
//
// * Archive retrieval jobs that specify a range
// that is not tree-hash aligned
//
// * Archival jobs that specify a range that is
// equal to the whole archive, when the job status is InProgress
//
// * Inventory
// jobs
//
// * Select jobs
SHA256TreeHash *string
// An Amazon SNS topic that receives notification.
SNSTopic *string
// Contains the parameters used for a select.
SelectParameters *SelectParameters
// The status code can be InProgress, Succeeded, or Failed, and indicates the
// status of the job.
StatusCode StatusCode
// A friendly message that describes the job status.
StatusMessage *string
// The tier to use for a select or an archive retrieval. Valid values are
// Expedited, Standard, or Bulk. Standard is the default.
Tier *string
// The Amazon Resource Name (ARN) of the vault from which an archive retrieval was
// requested.
VaultARN *string
noSmithyDocumentSerde
}
// Contains information about a grant.
type Grant struct {
// The grantee.
Grantee *Grantee
// Specifies the permission given to the grantee.
Permission Permission
noSmithyDocumentSerde
}
// Contains information about the grantee.
type Grantee struct {
// Type of grantee
//
// This member is required.
Type Type
// Screen name of the grantee.
DisplayName *string
// Email address of the grantee.
EmailAddress *string
// The canonical user ID of the grantee.
ID *string
// URI of the grantee group.
URI *string
noSmithyDocumentSerde
}
// Describes how the archive is serialized.
type InputSerialization struct {
// Describes the serialization of a CSV-encoded object.
Csv *CSVInput
noSmithyDocumentSerde
}
// Describes the options for a range inventory retrieval job.
type InventoryRetrievalJobDescription struct {
// The end of the date range in UTC for vault inventory retrieval that includes
// archives created before this date. This value should be a string in the ISO 8601
// date format, for example 2013-03-20T17:03:43Z.
EndDate *string
// The output format for the vault inventory list, which is set by the InitiateJob
// request when initiating a job to retrieve a vault inventory. Valid values are
// CSV and JSON.
Format *string
// The maximum number of inventory items returned per vault inventory retrieval
// request. This limit is set when initiating the job with the a InitiateJob
// request.
Limit *string
// An opaque string that represents where to continue pagination of the vault
// inventory retrieval results. You use the marker in a new InitiateJob request to
// obtain additional inventory items. If there are no more inventory items, this
// value is null. For more information, see Range Inventory Retrieval
// (https://docs.aws.amazon.com/amazonglacier/latest/dev/api-initiate-job-post.html#api-initiate-job-post-vault-inventory-list-filtering).
Marker *string
// The start of the date range in Universal Coordinated Time (UTC) for vault
// inventory retrieval that includes archives created on or after this date. This
// value should be a string in the ISO 8601 date format, for example
// 2013-03-20T17:03:43Z.
StartDate *string
noSmithyDocumentSerde
}
// Provides options for specifying a range inventory retrieval job.
type InventoryRetrievalJobInput struct {
// The end of the date range in UTC for vault inventory retrieval that includes
// archives created before this date. This value should be a string in the ISO 8601
// date format, for example 2013-03-20T17:03:43Z.
EndDate *string
// Specifies the maximum number of inventory items returned per vault inventory
// retrieval request. Valid values are greater than or equal to 1.
Limit *string
// An opaque string that represents where to continue pagination of the vault
// inventory retrieval results. You use the marker in a new InitiateJob request to
// obtain additional inventory items. If there are no more inventory items, this
// value is null.
Marker *string
// The start of the date range in UTC for vault inventory retrieval that includes
// archives created on or after this date. This value should be a string in the ISO
// 8601 date format, for example 2013-03-20T17:03:43Z.
StartDate *string
noSmithyDocumentSerde
}
// Provides options for defining a job.
type JobParameters struct {
// The ID of the archive that you want to retrieve. This field is required only if
// Type is set to select or archive-retrievalcode>. An error occurs if you specify
// this request parameter for an inventory retrieval job request.
ArchiveId *string
// The optional description for the job. The description must be less than or equal
// to 1,024 bytes. The allowable characters are 7-bit ASCII without control
// codes-specifically, ASCII values 32-126 decimal or 0x20-0x7E hexadecimal.
Description *string
// When initiating a job to retrieve a vault inventory, you can optionally add this
// parameter to your request to specify the output format. If you are initiating an
// inventory job and do not specify a Format field, JSON is the default format.
// Valid values are "CSV" and "JSON".
Format *string
// Input parameters used for range inventory retrieval.
InventoryRetrievalParameters *InventoryRetrievalJobInput
// Contains information about the location where the select job results are stored.
OutputLocation *OutputLocation
// The byte range to retrieve for an archive retrieval. in the form
// "StartByteValue-EndByteValue" If not specified, the whole archive is retrieved.
// If specified, the byte range must be megabyte (1024*1024) aligned which means
// that StartByteValue must be divisible by 1 MB and EndByteValue plus 1 must be
// divisible by 1 MB or be the end of the archive specified as the archive byte
// size value minus 1. If RetrievalByteRange is not megabyte aligned, this
// operation returns a 400 response. An error occurs if you specify this field for
// an inventory retrieval job request.
RetrievalByteRange *string
// The Amazon SNS topic ARN to which Amazon S3 Glacier sends a notification when
// the job is completed and the output is ready for you to download. The specified
// topic publishes the notification to its subscribers. The SNS topic must exist.
SNSTopic *string
// Contains the parameters that define a job.
SelectParameters *SelectParameters
// The tier to use for a select or an archive retrieval job. Valid values are
// Expedited, Standard, or Bulk. Standard is the default.
Tier *string
// The job type. You can initiate a job to perform a select query on an archive,
// retrieve an archive, or get an inventory of a vault. Valid values are "select",
// "archive-retrieval" and "inventory-retrieval".
Type *string
noSmithyDocumentSerde
}
// Contains information about the location where the select job results are stored.
type OutputLocation struct {
// Describes an S3 location that will receive the results of the job request.
S3 *S3Location
noSmithyDocumentSerde
}
// Describes how the select output is serialized.
type OutputSerialization struct {
// Describes the serialization of CSV-encoded query results.
Csv *CSVOutput
noSmithyDocumentSerde
}
// A list of the part sizes of the multipart upload.
type PartListElement struct {
// The byte range of a part, inclusive of the upper value of the range.
RangeInBytes *string
// The SHA256 tree hash value that Amazon S3 Glacier calculated for the part. This
// field is never null.
SHA256TreeHash *string
noSmithyDocumentSerde
}
// The definition for a provisioned capacity unit.
type ProvisionedCapacityDescription struct {
// The ID that identifies the provisioned capacity unit.
CapacityId *string
// The date that the provisioned capacity unit expires, in Universal Coordinated
// Time (UTC).
ExpirationDate *string
// The date that the provisioned capacity unit was purchased, in Universal
// Coordinated Time (UTC).
StartDate *string
noSmithyDocumentSerde
}
// Contains information about the location in Amazon S3 where the select job
// results are stored.
type S3Location struct {
// A list of grants that control access to the staged results.
AccessControlList []Grant
// The name of the Amazon S3 bucket where the job results are stored.
BucketName *string
// The canned access control list (ACL) to apply to the job results.
CannedACL CannedACL
// Contains information about the encryption used to store the job results in
// Amazon S3.
Encryption *Encryption
// The prefix that is prepended to the results for this request.
Prefix *string
// The storage class used to store the job results.
StorageClass StorageClass
// The tag-set that is applied to the job results.
Tagging map[string]string
// A map of metadata to store with the job results in Amazon S3.
UserMetadata map[string]string
noSmithyDocumentSerde
}
// Contains information about the parameters used for a select.
type SelectParameters struct {
// The expression that is used to select the object.
Expression *string
// The type of the provided expression, for example SQL.
ExpressionType ExpressionType
// Describes the serialization format of the object.
InputSerialization *InputSerialization
// Describes how the results of the select job are serialized.
OutputSerialization *OutputSerialization
noSmithyDocumentSerde
}
// A list of in-progress multipart uploads for a vault.
type UploadListElement struct {
// The description of the archive that was specified in the Initiate Multipart
// Upload request.
ArchiveDescription *string
// The UTC time at which the multipart upload was initiated.
CreationDate *string
// The ID of a multipart upload.
MultipartUploadId *string
// The part size, in bytes, specified in the Initiate Multipart Upload request.
// This is the size of all the parts in the upload except the last part, which may
// be smaller than this size.
PartSizeInBytes int64
// The Amazon Resource Name (ARN) of the vault that contains the archive.
VaultARN *string
noSmithyDocumentSerde
}
// Contains the vault access policy.
type VaultAccessPolicy struct {
// The vault access policy.
Policy *string
noSmithyDocumentSerde
}
// Contains the vault lock policy.
type VaultLockPolicy struct {
// The vault lock policy.
Policy *string
noSmithyDocumentSerde
}
// Represents a vault's notification configuration.
type VaultNotificationConfig struct {
// A list of one or more events for which Amazon S3 Glacier will send a
// notification to the specified Amazon SNS topic.
Events []string
// The Amazon Simple Notification Service (Amazon SNS) topic Amazon Resource Name
// (ARN).
SNSTopic *string
noSmithyDocumentSerde
}
type noSmithyDocumentSerde = smithydocument.NoSerde