1// Code generated by smithy-go-codegen DO NOT EDIT.
2
3package types
4
5import (
6	"time"
7)
8
9// Information about the gateway's automatic tape creation policies, including the
10// automatic tape creation rules and the gateway that is using the policies.
11type AutomaticTapeCreationPolicyInfo struct {
12
13	// An automatic tape creation policy consists of a list of automatic tape creation
14	// rules. This returns the rules that determine when and how to automatically
15	// create new tapes.
16	AutomaticTapeCreationRules []AutomaticTapeCreationRule
17
18	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation to
19	// return a list of gateways for your account and AWS Region.
20	GatewayARN *string
21}
22
23// An automatic tape creation policy consists of automatic tape creation rules
24// where each rule defines when and how to create new tapes. For more information
25// about automatic tape creation, see Creating Tapes Automatically
26// (https://docs.aws.amazon.com/storagegateway/latest/userguide/GettingStartedCreateTapes.html#CreateTapesAutomatically).
27type AutomaticTapeCreationRule struct {
28
29	// The minimum number of available virtual tapes that the gateway maintains at all
30	// times. If the number of tapes on the gateway goes below this value, the gateway
31	// creates as many new tapes as are needed to have MinimumNumTapes on the gateway.
32	// For more information about automatic tape creation, see Creating Tapes
33	// Automatically
34	// (https://docs.aws.amazon.com/storagegateway/latest/userguide/GettingStartedCreateTapes.html#CreateTapesAutomatically).
35	//
36	// This member is required.
37	MinimumNumTapes *int32
38
39	// The ID of the pool that you want to add your tape to for archiving. The tape in
40	// this pool is archived in the Amazon S3 storage class that is associated with the
41	// pool. When you use your backup application to eject the tape, the tape is
42	// archived directly into the storage class (S3 Glacier or S3 Glacier Deep Archive)
43	// that corresponds to the pool. Valid Values: GLACIER | DEEP_ARCHIVE
44	//
45	// This member is required.
46	PoolId *string
47
48	// A prefix that you append to the barcode of the virtual tape that you are
49	// creating. This prefix makes the barcode unique. The prefix must be 1-4
50	// characters in length and must be one of the uppercase letters from A to Z.
51	//
52	// This member is required.
53	TapeBarcodePrefix *string
54
55	// The size, in bytes, of the virtual tape capacity.
56	//
57	// This member is required.
58	TapeSizeInBytes *int64
59
60	// Set to true to indicate that tapes are to be archived as write-once-read-many
61	// (WORM). Set to false when WORM is not enabled for tapes.
62	Worm bool
63}
64
65// Describes a bandwidth rate limit interval for a gateway. A bandwidth rate limit
66// schedule consists of one or more bandwidth rate limit intervals. A bandwidth
67// rate limit interval defines a period of time on one or more days of the week,
68// during which bandwidth rate limits are specified for uploading, downloading, or
69// both.
70type BandwidthRateLimitInterval struct {
71
72	// The days of the week component of the bandwidth rate limit interval, represented
73	// as ordinal numbers from 0 to 6, where 0 represents Sunday and 6 represents
74	// Saturday.
75	//
76	// This member is required.
77	DaysOfWeek []int32
78
79	// The hour of the day to end the bandwidth rate limit interval.
80	//
81	// This member is required.
82	EndHourOfDay *int32
83
84	// The minute of the hour to end the bandwidth rate limit interval. The bandwidth
85	// rate limit interval ends at the end of the minute. To end an interval at the end
86	// of an hour, use the value 59.
87	//
88	// This member is required.
89	EndMinuteOfHour *int32
90
91	// The hour of the day to start the bandwidth rate limit interval.
92	//
93	// This member is required.
94	StartHourOfDay *int32
95
96	// The minute of the hour to start the bandwidth rate limit interval. The interval
97	// begins at the start of that minute. To begin an interval exactly at the start of
98	// the hour, use the value 0.
99	//
100	// This member is required.
101	StartMinuteOfHour *int32
102
103	// The average download rate limit component of the bandwidth rate limit interval,
104	// in bits per second. This field does not appear in the response if the download
105	// rate limit is not set.
106	AverageDownloadRateLimitInBitsPerSec *int64
107
108	// The average upload rate limit component of the bandwidth rate limit interval, in
109	// bits per second. This field does not appear in the response if the upload rate
110	// limit is not set.
111	AverageUploadRateLimitInBitsPerSec *int64
112}
113
114// The refresh cache information for the file share.
115type CacheAttributes struct {
116
117	// Refreshes a file share's cache by using Time To Live (TTL). TTL is the length of
118	// time since the last refresh after which access to the directory would cause the
119	// file gateway to first refresh that directory's contents from the Amazon S3
120	// bucket or Amazon FSx file system. The TTL duration is in seconds. Valid Values:
121	// 300 to 2,592,000 seconds (5 minutes to 30 days)
122	CacheStaleTimeoutInSeconds *int32
123}
124
125// Describes an iSCSI cached volume.
126type CachediSCSIVolume struct {
127
128	// The date the volume was created. Volumes created prior to March 28, 2017 don’t
129	// have this timestamp.
130	CreatedDate *time.Time
131
132	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for
133	// Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
134	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
135	KMSKey *string
136
137	// If the cached volume was created from a snapshot, this field contains the
138	// snapshot ID used, e.g., snap-78e22663. Otherwise, this field is not included.
139	SourceSnapshotId *string
140
141	// The name of the iSCSI target used by an initiator to connect to a volume and
142	// used as a suffix for the target ARN. For example, specifying TargetName as
143	// myvolume results in the target ARN of
144	// arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:myvolume.
145	// The target name must be unique across all volumes on a gateway. If you don't
146	// specify a value, Storage Gateway uses the value that was previously used for
147	// this volume as the new target name.
148	TargetName *string
149
150	// The Amazon Resource Name (ARN) of the storage volume.
151	VolumeARN *string
152
153	// A value that indicates whether a storage volume is attached to or detached from
154	// a gateway. For more information, see Moving your volumes to a different gateway
155	// (https://docs.aws.amazon.com/storagegateway/latest/userguide/managing-volumes.html#attach-detach-volume).
156	VolumeAttachmentStatus *string
157
158	// The unique identifier of the volume, e.g., vol-AE4B946D.
159	VolumeId *string
160
161	// Represents the percentage complete if the volume is restoring or bootstrapping
162	// that represents the percent of data transferred. This field does not appear in
163	// the response if the cached volume is not restoring or bootstrapping.
164	VolumeProgress *float64
165
166	// The size, in bytes, of the volume capacity.
167	VolumeSizeInBytes int64
168
169	// One of the VolumeStatus values that indicates the state of the storage volume.
170	VolumeStatus *string
171
172	// One of the VolumeType enumeration values that describes the type of the volume.
173	VolumeType *string
174
175	// The size of the data stored on the volume in bytes. This value is calculated
176	// based on the number of blocks that are touched, instead of the actual amount of
177	// data written. This value can be useful for sequential write patterns but less
178	// accurate for random write patterns. VolumeUsedInBytes is different from the
179	// compressed size of the volume, which is the value that is used to calculate your
180	// bill. This value is not available for volumes created prior to May 13, 2015,
181	// until you store data on the volume.
182	VolumeUsedInBytes *int64
183
184	// An VolumeiSCSIAttributes object that represents a collection of iSCSI attributes
185	// for one stored volume.
186	VolumeiSCSIAttributes *VolumeiSCSIAttributes
187}
188
189// Describes Challenge-Handshake Authentication Protocol (CHAP) information that
190// supports authentication between your gateway and iSCSI initiators.
191type ChapInfo struct {
192
193	// The iSCSI initiator that connects to the target.
194	InitiatorName *string
195
196	// The secret key that the initiator (for example, the Windows client) must provide
197	// to participate in mutual CHAP with the target.
198	SecretToAuthenticateInitiator *string
199
200	// The secret key that the target must provide to participate in mutual CHAP with
201	// the initiator (e.g., Windows client).
202	SecretToAuthenticateTarget *string
203
204	// The Amazon Resource Name (ARN) of the volume. Valid Values: 50 to 500 lowercase
205	// letters, numbers, periods (.), and hyphens (-).
206	TargetARN *string
207}
208
209// Lists iSCSI information about a VTL device.
210type DeviceiSCSIAttributes struct {
211
212	// Indicates whether mutual CHAP is enabled for the iSCSI target.
213	ChapEnabled bool
214
215	// The network interface identifier of the VTL device.
216	NetworkInterfaceId *string
217
218	// The port used to communicate with iSCSI VTL device targets.
219	NetworkInterfacePort int32
220
221	// Specifies the unique Amazon Resource Name (ARN) that encodes the iSCSI qualified
222	// name(iqn) of a tape drive or media changer target.
223	TargetARN *string
224}
225
226// Represents a gateway's local disk.
227type Disk struct {
228
229	// The iSCSI qualified name (IQN) that is defined for a disk. This field is not
230	// included in the response if the local disk is not defined as an iSCSI target.
231	// The format of this field is targetIqn::LUNNumber::region-volumeId.
232	DiskAllocationResource *string
233
234	// One of the DiskAllocationType enumeration values that identifies how a local
235	// disk is used. Valid Values: UPLOAD_BUFFER | CACHE_STORAGE
236	DiskAllocationType *string
237
238	// A list of values that represents attributes of a local disk.
239	DiskAttributeList []string
240
241	// The unique device ID or other distinguishing data that identifies a local disk.
242	DiskId *string
243
244	// The device node of a local disk as assigned by the virtualization environment.
245	DiskNode *string
246
247	// The path of a local disk in the gateway virtual machine (VM).
248	DiskPath *string
249
250	// The local disk size in bytes.
251	DiskSizeInBytes int64
252
253	// A value that represents the status of a local disk.
254	DiskStatus *string
255}
256
257// Describes a file share.
258type FileShareInfo struct {
259
260	// The Amazon Resource Name (ARN) of the file share.
261	FileShareARN *string
262
263	// The ID of the file share.
264	FileShareId *string
265
266	// The status of the file share. Valid Values: CREATING | UPDATING | AVAILABLE |
267	// DELETING
268	FileShareStatus *string
269
270	// The type of the file share.
271	FileShareType FileShareType
272
273	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation to
274	// return a list of gateways for your account and AWS Region.
275	GatewayARN *string
276}
277
278// Describes the object returned by DescribeFileSystemAssociations that describes a
279// created file system association.
280type FileSystemAssociationInfo struct {
281
282	// The Amazon Resource Name (ARN) of the storage used for the audit logs.
283	AuditDestinationARN *string
284
285	// The refresh cache information for the file share.
286	CacheAttributes *CacheAttributes
287
288	// The Amazon Resource Name (ARN) of the file system association.
289	FileSystemAssociationARN *string
290
291	// The status of the file system association. Valid Values: AVAILABLE | CREATING |
292	// DELETING | FORCE_DELETING | MISCONFIGURED | UPDATING | UNAVAILABLE
293	FileSystemAssociationStatus *string
294
295	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation to
296	// return a list of gateways for your account and AWS Region.
297	GatewayARN *string
298
299	// The ARN of the backend Amazon FSx file system used for storing file data. For
300	// information, see FileSystem
301	// (https://docs.aws.amazon.com/fsx/latest/APIReference/API_FileSystem.html) in the
302	// Amazon FSx API Reference.
303	LocationARN *string
304
305	// A list of up to 50 tags assigned to the SMB file share, sorted alphabetically by
306	// key name. Each tag is a key-value pair.
307	Tags []Tag
308}
309
310// Gets the summary returned by ListFileSystemAssociation, which is a summary of a
311// created file system association.
312type FileSystemAssociationSummary struct {
313
314	// The Amazon Resource Name (ARN) of the file system association.
315	FileSystemAssociationARN *string
316
317	// The ID of the file system association.
318	FileSystemAssociationId *string
319
320	// The status of the file share. Valid Values: AVAILABLE | CREATING | DELETING |
321	// FORCE_DELETING | MISCONFIGURED | UPDATING | UNAVAILABLE
322	FileSystemAssociationStatus *string
323
324	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation to
325	// return a list of gateways for your account and AWS Region.
326	GatewayARN *string
327}
328
329// Describes a gateway object.
330type GatewayInfo struct {
331
332	// The ID of the Amazon EC2 instance that was used to launch the gateway.
333	Ec2InstanceId *string
334
335	// The AWS Region where the Amazon EC2 instance is located.
336	Ec2InstanceRegion *string
337
338	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation to
339	// return a list of gateways for your account and AWS Region.
340	GatewayARN *string
341
342	// The unique identifier assigned to your gateway during activation. This ID
343	// becomes part of the gateway Amazon Resource Name (ARN), which you use as input
344	// for other operations.
345	GatewayId *string
346
347	// The name of the gateway.
348	GatewayName *string
349
350	// The state of the gateway. Valid Values: DISABLED | ACTIVE
351	GatewayOperationalState *string
352
353	// The type of the gateway.
354	GatewayType *string
355}
356
357// Describes a gateway's network interface.
358type NetworkInterface struct {
359
360	// The Internet Protocol version 4 (IPv4) address of the interface.
361	Ipv4Address *string
362
363	// The Internet Protocol version 6 (IPv6) address of the interface. Currently not
364	// supported.
365	Ipv6Address *string
366
367	// The Media Access Control (MAC) address of the interface. This is currently
368	// unsupported and will not be returned in output.
369	MacAddress *string
370}
371
372// Describes Network File System (NFS) file share default values. Files and folders
373// stored as Amazon S3 objects in S3 buckets don't, by default, have Unix file
374// permissions assigned to them. Upon discovery in an S3 bucket by Storage Gateway,
375// the S3 objects that represent files and folders are assigned these default Unix
376// permissions. This operation is only supported for file gateways.
377type NFSFileShareDefaults struct {
378
379	// The Unix directory mode in the form "nnnn". For example, 0666 represents the
380	// default access mode for all directories inside the file share. The default value
381	// is 0777.
382	DirectoryMode *string
383
384	// The Unix file mode in the form "nnnn". For example, 0666 represents the default
385	// file mode inside the file share. The default value is 0666.
386	FileMode *string
387
388	// The default group ID for the file share (unless the files have another group ID
389	// specified). The default value is nfsnobody.
390	GroupId *int64
391
392	// The default owner ID for files in the file share (unless the files have another
393	// owner ID specified). The default value is nfsnobody.
394	OwnerId *int64
395}
396
397// The Unix file permissions and ownership information assigned, by default, to
398// native S3 objects when file gateway discovers them in S3 buckets. This operation
399// is only supported in file gateways.
400type NFSFileShareInfo struct {
401
402	// Refresh cache information for the file share.
403	CacheAttributes *CacheAttributes
404
405	// The list of clients that are allowed to access the file gateway. The list must
406	// contain either valid IP addresses or valid CIDR blocks.
407	ClientList []string
408
409	// The default storage class for objects put into an Amazon S3 bucket by the file
410	// gateway. The default value is S3_INTELLIGENT_TIERING. Optional. Valid Values:
411	// S3_STANDARD | S3_INTELLIGENT_TIERING | S3_STANDARD_IA | S3_ONEZONE_IA
412	DefaultStorageClass *string
413
414	// The Amazon Resource Name (ARN) of the file share.
415	FileShareARN *string
416
417	// The ID of the file share.
418	FileShareId *string
419
420	// The name of the file share. Optional. FileShareName must be set if an S3 prefix
421	// name is set in LocationARN.
422	FileShareName *string
423
424	// The status of the file share. Valid Values: CREATING | UPDATING | AVAILABLE |
425	// DELETING
426	FileShareStatus *string
427
428	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation to
429	// return a list of gateways for your account and AWS Region.
430	GatewayARN *string
431
432	// A value that enables guessing of the MIME type for uploaded objects based on
433	// file extensions. Set this value to true to enable MIME type guessing, otherwise
434	// set to false. The default value is true. Valid Values: true | false
435	GuessMIMETypeEnabled *bool
436
437	// Set to true to use Amazon S3 server-side encryption with your own AWS KMS key,
438	// or false to use a key managed by Amazon S3. Optional. Valid Values: true | false
439	KMSEncrypted bool
440
441	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for
442	// Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
443	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
444	KMSKey *string
445
446	// The ARN of the backend storage used for storing file data. A prefix name can be
447	// added to the S3 bucket name. It must end with a "/".
448	LocationARN *string
449
450	// Describes Network File System (NFS) file share default values. Files and folders
451	// stored as Amazon S3 objects in S3 buckets don't, by default, have Unix file
452	// permissions assigned to them. Upon discovery in an S3 bucket by Storage Gateway,
453	// the S3 objects that represent files and folders are assigned these default Unix
454	// permissions. This operation is only supported for file gateways.
455	NFSFileShareDefaults *NFSFileShareDefaults
456
457	// The notification policy of the file share. SettlingTimeInSeconds controls the
458	// number of seconds to wait after the last point in time a client wrote to a file
459	// before generating an ObjectUploaded notification. Because clients can make many
460	// small writes to files, it's best to set this parameter for as long as possible
461	// to avoid generating multiple notifications for the same file in a small time
462	// period. SettlingTimeInSeconds has no effect on the timing of the object
463	// uploading to Amazon S3, only the timing of the notification. The following
464	// example sets NotificationPolicy on with SettlingTimeInSeconds set to 60.
465	// {"Upload": {"SettlingTimeInSeconds": 60}} The following example sets
466	// NotificationPolicy off. {}
467	NotificationPolicy *string
468
469	// A value that sets the access control list (ACL) permission for objects in the S3
470	// bucket that a file gateway puts objects into. The default value is private.
471	ObjectACL ObjectACL
472
473	// The file share path used by the NFS client to identify the mount point.
474	Path *string
475
476	// A value that sets the write status of a file share. Set this value to true to
477	// set the write status to read-only, otherwise set to false. Valid Values: true |
478	// false
479	ReadOnly *bool
480
481	// A value that sets who pays the cost of the request and the cost associated with
482	// data download from the S3 bucket. If this value is set to true, the requester
483	// pays the costs; otherwise, the S3 bucket owner pays. However, the S3 bucket
484	// owner always pays the cost of storing data. RequesterPays is a configuration for
485	// the S3 bucket that backs the file share, so make sure that the configuration on
486	// the file share is the same as the S3 bucket configuration. Valid Values: true |
487	// false
488	RequesterPays *bool
489
490	// The ARN of the IAM role that file gateway assumes when it accesses the
491	// underlying storage.
492	Role *string
493
494	// The user mapped to anonymous user. Valid options are the following:
495	//
496	// *
497	// RootSquash: Only root is mapped to anonymous user.
498	//
499	// * NoSquash: No one is mapped
500	// to anonymous user.
501	//
502	// * AllSquash: Everyone is mapped to anonymous user.
503	Squash *string
504
505	// A list of up to 50 tags assigned to the NFS file share, sorted alphabetically by
506	// key name. Each tag is a key-value pair. For a gateway with more than 10 tags
507	// assigned, you can view all tags using the ListTagsForResource API operation.
508	Tags []Tag
509}
510
511// Describes a custom tape pool.
512type PoolInfo struct {
513
514	// The Amazon Resource Name (ARN) of the custom tape pool. Use the ListTapePools
515	// operation to return a list of custom tape pools for your account and AWS Region.
516	PoolARN *string
517
518	// The name of the custom tape pool. PoolName can use all ASCII characters, except
519	// '/' and '\'.
520	PoolName *string
521
522	// Status of the custom tape pool. Pool can be ACTIVE or DELETED.
523	PoolStatus PoolStatus
524
525	// Tape retention lock time is set in days. Tape retention lock can be enabled for
526	// up to 100 years (36,500 days).
527	RetentionLockTimeInDays *int32
528
529	// Tape retention lock type, which can be configured in two modes. When configured
530	// in governance mode, AWS accounts with specific IAM permissions are authorized to
531	// remove the tape retention lock from archived virtual tapes. When configured in
532	// compliance mode, the tape retention lock cannot be removed by any user,
533	// including the root AWS account.
534	RetentionLockType RetentionLockType
535
536	// The storage class that is associated with the custom pool. When you use your
537	// backup application to eject the tape, the tape is archived directly into the
538	// storage class (S3 Glacier or S3 Glacier Deep Archive) that corresponds to the
539	// pool.
540	StorageClass TapeStorageClass
541}
542
543// The Windows file permissions and ownership information assigned, by default, to
544// native S3 objects when file gateway discovers them in S3 buckets. This operation
545// is only supported for file gateways.
546type SMBFileShareInfo struct {
547
548	// Indicates whether AccessBasedEnumeration is enabled.
549	AccessBasedEnumeration *bool
550
551	// A list of users or groups in the Active Directory that have administrator rights
552	// to the file share. A group must be prefixed with the @ character. Acceptable
553	// formats include: DOMAIN\User1, user1, @group1, and @DOMAIN\group1. Can only be
554	// set if Authentication is set to ActiveDirectory.
555	AdminUserList []string
556
557	// The Amazon Resource Name (ARN) of the storage used for audit logs.
558	AuditDestinationARN *string
559
560	// The authentication method of the file share. The default is ActiveDirectory.
561	// Valid Values: ActiveDirectory | GuestAccess
562	Authentication *string
563
564	// Refresh cache information for the file share.
565	CacheAttributes *CacheAttributes
566
567	// The case of an object name in an Amazon S3 bucket. For ClientSpecified, the
568	// client determines the case sensitivity. For CaseSensitive, the gateway
569	// determines the case sensitivity. The default value is ClientSpecified.
570	CaseSensitivity CaseSensitivity
571
572	// The default storage class for objects put into an Amazon S3 bucket by the file
573	// gateway. The default value is S3_INTELLIGENT_TIERING. Optional. Valid Values:
574	// S3_STANDARD | S3_INTELLIGENT_TIERING | S3_STANDARD_IA | S3_ONEZONE_IA
575	DefaultStorageClass *string
576
577	// The Amazon Resource Name (ARN) of the file share.
578	FileShareARN *string
579
580	// The ID of the file share.
581	FileShareId *string
582
583	// The name of the file share. Optional. FileShareName must be set if an S3 prefix
584	// name is set in LocationARN.
585	FileShareName *string
586
587	// The status of the file share. Valid Values: CREATING | UPDATING | AVAILABLE |
588	// DELETING
589	FileShareStatus *string
590
591	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation to
592	// return a list of gateways for your account and AWS Region.
593	GatewayARN *string
594
595	// A value that enables guessing of the MIME type for uploaded objects based on
596	// file extensions. Set this value to true to enable MIME type guessing, otherwise
597	// set to false. The default value is true. Valid Values: true | false
598	GuessMIMETypeEnabled *bool
599
600	// A list of users or groups in the Active Directory that are not allowed to access
601	// the file share. A group must be prefixed with the @ character. Acceptable
602	// formats include: DOMAIN\User1, user1, @group1, and @DOMAIN\group1. Can only be
603	// set if Authentication is set to ActiveDirectory.
604	InvalidUserList []string
605
606	// Set to true to use Amazon S3 server-side encryption with your own AWS KMS key,
607	// or false to use a key managed by Amazon S3. Optional. Valid Values: true | false
608	KMSEncrypted bool
609
610	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for
611	// Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
612	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
613	KMSKey *string
614
615	// The ARN of the backend storage used for storing file data. A prefix name can be
616	// added to the S3 bucket name. It must end with a "/".
617	LocationARN *string
618
619	// The notification policy of the file share. SettlingTimeInSeconds controls the
620	// number of seconds to wait after the last point in time a client wrote to a file
621	// before generating an ObjectUploaded notification. Because clients can make many
622	// small writes to files, it's best to set this parameter for as long as possible
623	// to avoid generating multiple notifications for the same file in a small time
624	// period. SettlingTimeInSeconds has no effect on the timing of the object
625	// uploading to Amazon S3, only the timing of the notification. The following
626	// example sets NotificationPolicy on with SettlingTimeInSeconds set to 60.
627	// {"Upload": {"SettlingTimeInSeconds": 60}} The following example sets
628	// NotificationPolicy off. {}
629	NotificationPolicy *string
630
631	// A value that sets the access control list (ACL) permission for objects in the S3
632	// bucket that a file gateway puts objects into. The default value is private.
633	ObjectACL ObjectACL
634
635	// The file share path used by the SMB client to identify the mount point.
636	Path *string
637
638	// A value that sets the write status of a file share. Set this value to true to
639	// set the write status to read-only, otherwise set to false. Valid Values: true |
640	// false
641	ReadOnly *bool
642
643	// A value that sets who pays the cost of the request and the cost associated with
644	// data download from the S3 bucket. If this value is set to true, the requester
645	// pays the costs; otherwise, the S3 bucket owner pays. However, the S3 bucket
646	// owner always pays the cost of storing data. RequesterPays is a configuration for
647	// the S3 bucket that backs the file share, so make sure that the configuration on
648	// the file share is the same as the S3 bucket configuration. Valid Values: true |
649	// false
650	RequesterPays *bool
651
652	// The ARN of the IAM role that file gateway assumes when it accesses the
653	// underlying storage.
654	Role *string
655
656	// If this value is set to true, it indicates that access control list (ACL) is
657	// enabled on the SMB file share. If it is set to false, it indicates that file and
658	// directory permissions are mapped to the POSIX permission. For more information,
659	// see Using Microsoft Windows ACLs to control access to an SMB file share
660	// (https://docs.aws.amazon.com/storagegateway/latest/userguide/smb-acl.html) in
661	// the AWS Storage Gateway User Guide.
662	SMBACLEnabled *bool
663
664	// A list of up to 50 tags assigned to the SMB file share, sorted alphabetically by
665	// key name. Each tag is a key-value pair. For a gateway with more than 10 tags
666	// assigned, you can view all tags using the ListTagsForResource API operation.
667	Tags []Tag
668
669	// A list of users or groups in the Active Directory that are allowed to access the
670	// file share. A group must be prefixed with the @ character. Acceptable formats
671	// include: DOMAIN\User1, user1, @group1, and @DOMAIN\group1. Can only be set if
672	// Authentication is set to ActiveDirectory.
673	ValidUserList []string
674}
675
676// Provides additional information about an error that was returned by the service.
677// See the errorCode and errorDetails members for more information about the error.
678type StorageGatewayError struct {
679
680	// Additional information about the error.
681	ErrorCode ErrorCode
682
683	// Human-readable text that provides detail about the error that occurred.
684	ErrorDetails map[string]string
685}
686
687// Describes an iSCSI stored volume.
688type StorediSCSIVolume struct {
689
690	// The date the volume was created. Volumes created prior to March 28, 2017 don’t
691	// have this timestamp.
692	CreatedDate *time.Time
693
694	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for
695	// Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
696	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
697	KMSKey *string
698
699	// Indicates if when the stored volume was created, existing data on the underlying
700	// local disk was preserved. Valid Values: true | false
701	PreservedExistingData bool
702
703	// If the stored volume was created from a snapshot, this field contains the
704	// snapshot ID used, e.g. snap-78e22663. Otherwise, this field is not included.
705	SourceSnapshotId *string
706
707	// The name of the iSCSI target used by an initiator to connect to a volume and
708	// used as a suffix for the target ARN. For example, specifying TargetName as
709	// myvolume results in the target ARN of
710	// arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:myvolume.
711	// The target name must be unique across all volumes on a gateway. If you don't
712	// specify a value, Storage Gateway uses the value that was previously used for
713	// this volume as the new target name.
714	TargetName *string
715
716	// The Amazon Resource Name (ARN) of the storage volume.
717	VolumeARN *string
718
719	// A value that indicates whether a storage volume is attached to, detached from,
720	// or is in the process of detaching from a gateway. For more information, see
721	// Moving your volumes to a different gateway
722	// (https://docs.aws.amazon.com/storagegateway/latest/userguide/managing-volumes.html#attach-detach-volume).
723	VolumeAttachmentStatus *string
724
725	// The ID of the local disk that was specified in the CreateStorediSCSIVolume
726	// operation.
727	VolumeDiskId *string
728
729	// The unique identifier of the volume, e.g., vol-AE4B946D.
730	VolumeId *string
731
732	// Represents the percentage complete if the volume is restoring or bootstrapping
733	// that represents the percent of data transferred. This field does not appear in
734	// the response if the stored volume is not restoring or bootstrapping.
735	VolumeProgress *float64
736
737	// The size of the volume in bytes.
738	VolumeSizeInBytes int64
739
740	// One of the VolumeStatus values that indicates the state of the storage volume.
741	VolumeStatus *string
742
743	// One of the VolumeType enumeration values describing the type of the volume.
744	VolumeType *string
745
746	// The size of the data stored on the volume in bytes. This value is calculated
747	// based on the number of blocks that are touched, instead of the actual amount of
748	// data written. This value can be useful for sequential write patterns but less
749	// accurate for random write patterns. VolumeUsedInBytes is different from the
750	// compressed size of the volume, which is the value that is used to calculate your
751	// bill. This value is not available for volumes created prior to May 13, 2015,
752	// until you store data on the volume.
753	VolumeUsedInBytes *int64
754
755	// An VolumeiSCSIAttributes object that represents a collection of iSCSI attributes
756	// for one stored volume.
757	VolumeiSCSIAttributes *VolumeiSCSIAttributes
758}
759
760// A key-value pair that helps you manage, filter, and search for your resource.
761// Allowed characters: letters, white space, and numbers, representable in UTF-8,
762// and the following characters: + - = . _ : /.
763type Tag struct {
764
765	// Tag key. The key can't start with aws:.
766	//
767	// This member is required.
768	Key *string
769
770	// Value of the tag key.
771	//
772	// This member is required.
773	Value *string
774}
775
776// Describes a virtual tape object.
777type Tape struct {
778
779	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for
780	// Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
781	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
782	KMSKey *string
783
784	// The date that the tape enters a custom tape pool.
785	PoolEntryDate *time.Time
786
787	// The ID of the pool that contains tapes that will be archived. The tapes in this
788	// pool are archived in the S3 storage class that is associated with the pool. When
789	// you use your backup application to eject the tape, the tape is archived directly
790	// into the storage class (S3 Glacier or S3 Glacier Deep Archive) that corresponds
791	// to the pool. Valid Values: GLACIER | DEEP_ARCHIVE
792	PoolId *string
793
794	// For archiving virtual tapes, indicates how much data remains to be uploaded
795	// before archiving is complete. Range: 0 (not started) to 100 (complete).
796	Progress *float64
797
798	// The date that the tape is first archived with tape retention lock enabled.
799	RetentionStartDate *time.Time
800
801	// The Amazon Resource Name (ARN) of the virtual tape.
802	TapeARN *string
803
804	// The barcode that identifies a specific virtual tape.
805	TapeBarcode *string
806
807	// The date the virtual tape was created.
808	TapeCreatedDate *time.Time
809
810	// The size, in bytes, of the virtual tape capacity.
811	TapeSizeInBytes *int64
812
813	// The current state of the virtual tape.
814	TapeStatus *string
815
816	// The size, in bytes, of data stored on the virtual tape. This value is not
817	// available for tapes created prior to May 13, 2015.
818	TapeUsedInBytes *int64
819
820	// The virtual tape library (VTL) device that the virtual tape is associated with.
821	VTLDevice *string
822
823	// If the tape is archived as write-once-read-many (WORM), this value is true.
824	Worm bool
825}
826
827// Represents a virtual tape that is archived in the virtual tape shelf (VTS).
828type TapeArchive struct {
829
830	// The time that the archiving of the virtual tape was completed. The default
831	// timestamp format is in the ISO8601 extended YYYY-MM-DD'T'HH:MM:SS'Z' format.
832	CompletionTime *time.Time
833
834	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used for
835	// Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
836	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
837	KMSKey *string
838
839	// The time that the tape entered the custom tape pool. The default timestamp
840	// format is in the ISO8601 extended YYYY-MM-DD'T'HH:MM:SS'Z' format.
841	PoolEntryDate *time.Time
842
843	// The ID of the pool that was used to archive the tape. The tapes in this pool are
844	// archived in the S3 storage class that is associated with the pool. Valid Values:
845	// GLACIER | DEEP_ARCHIVE
846	PoolId *string
847
848	// If the archived tape is subject to tape retention lock, the date that the
849	// archived tape started being retained.
850	RetentionStartDate *time.Time
851
852	// The Amazon Resource Name (ARN) of the tape gateway that the virtual tape is
853	// being retrieved to. The virtual tape is retrieved from the virtual tape shelf
854	// (VTS).
855	RetrievedTo *string
856
857	// The Amazon Resource Name (ARN) of an archived virtual tape.
858	TapeARN *string
859
860	// The barcode that identifies the archived virtual tape.
861	TapeBarcode *string
862
863	// The date the virtual tape was created.
864	TapeCreatedDate *time.Time
865
866	// The size, in bytes, of the archived virtual tape.
867	TapeSizeInBytes *int64
868
869	// The current state of the archived virtual tape.
870	TapeStatus *string
871
872	// The size, in bytes, of data stored on the virtual tape. This value is not
873	// available for tapes created prior to May 13, 2015.
874	TapeUsedInBytes *int64
875
876	// Set to true if the archived tape is stored as write-once-read-many (WORM).
877	Worm bool
878}
879
880// Describes a virtual tape.
881type TapeInfo struct {
882
883	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation to
884	// return a list of gateways for your account and AWS Region.
885	GatewayARN *string
886
887	// The date that the tape entered the custom tape pool with tape retention lock
888	// enabled.
889	PoolEntryDate *time.Time
890
891	// The ID of the pool that you want to add your tape to for archiving. The tape in
892	// this pool is archived in the S3 storage class that is associated with the pool.
893	// When you use your backup application to eject the tape, the tape is archived
894	// directly into the storage class (S3 Glacier or S3 Glacier Deep Archive) that
895	// corresponds to the pool. Valid Values: GLACIER | DEEP_ARCHIVE
896	PoolId *string
897
898	// The date that the tape became subject to tape retention lock.
899	RetentionStartDate *time.Time
900
901	// The Amazon Resource Name (ARN) of a virtual tape.
902	TapeARN *string
903
904	// The barcode that identifies a specific virtual tape.
905	TapeBarcode *string
906
907	// The size, in bytes, of a virtual tape.
908	TapeSizeInBytes *int64
909
910	// The status of the tape.
911	TapeStatus *string
912}
913
914// Describes a recovery point.
915type TapeRecoveryPointInfo struct {
916
917	// The Amazon Resource Name (ARN) of the virtual tape.
918	TapeARN *string
919
920	// The time when the point-in-time view of the virtual tape was replicated for
921	// later recovery. The default timestamp format of the tape recovery point time is
922	// in the ISO8601 extended YYYY-MM-DD'T'HH:MM:SS'Z' format.
923	TapeRecoveryPointTime *time.Time
924
925	// The size, in bytes, of the virtual tapes to recover.
926	TapeSizeInBytes *int64
927
928	// The status of the virtual tapes.
929	TapeStatus *string
930}
931
932// Describes a storage volume object.
933type VolumeInfo struct {
934
935	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation to
936	// return a list of gateways for your account and AWS Region.
937	GatewayARN *string
938
939	// The unique identifier assigned to your gateway during activation. This ID
940	// becomes part of the gateway Amazon Resource Name (ARN), which you use as input
941	// for other operations. Valid Values: 50 to 500 lowercase letters, numbers,
942	// periods (.), and hyphens (-).
943	GatewayId *string
944
945	// The Amazon Resource Name (ARN) for the storage volume. For example, the
946	// following is a valid ARN:
947	// arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABB
948	// Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens
949	// (-).
950	VolumeARN *string
951
952	// One of the VolumeStatus values that indicates the state of the storage volume.
953	VolumeAttachmentStatus *string
954
955	// The unique identifier assigned to the volume. This ID becomes part of the volume
956	// Amazon Resource Name (ARN), which you use as input for other operations. Valid
957	// Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens (-).
958	VolumeId *string
959
960	// The size of the volume in bytes. Valid Values: 50 to 500 lowercase letters,
961	// numbers, periods (.), and hyphens (-).
962	VolumeSizeInBytes int64
963
964	// One of the VolumeType enumeration values describing the type of the volume.
965	VolumeType *string
966}
967
968// Lists iSCSI information about a volume.
969type VolumeiSCSIAttributes struct {
970
971	// Indicates whether mutual CHAP is enabled for the iSCSI target.
972	ChapEnabled bool
973
974	// The logical disk number.
975	LunNumber *int32
976
977	// The network interface identifier.
978	NetworkInterfaceId *string
979
980	// The port used to communicate with iSCSI targets.
981	NetworkInterfacePort int32
982
983	// The Amazon Resource Name (ARN) of the volume target.
984	TargetARN *string
985}
986
987// Describes a storage volume recovery point object.
988type VolumeRecoveryPointInfo struct {
989
990	// The Amazon Resource Name (ARN) of the volume target.
991	VolumeARN *string
992
993	// The time the recovery point was taken.
994	VolumeRecoveryPointTime *string
995
996	// The size of the volume in bytes.
997	VolumeSizeInBytes int64
998
999	// The size of the data stored on the volume in bytes. This value is not available
1000	// for volumes created prior to May 13, 2015, until you store data on the volume.
1001	VolumeUsageInBytes int64
1002}
1003
1004// Represents a device object associated with a tape gateway.
1005type VTLDevice struct {
1006
1007	// A list of iSCSI information about a VTL device.
1008	DeviceiSCSIAttributes *DeviceiSCSIAttributes
1009
1010	// Specifies the unique Amazon Resource Name (ARN) of the device (tape drive or
1011	// media changer).
1012	VTLDeviceARN *string
1013
1014	// Specifies the model number of device that the VTL device emulates.
1015	VTLDeviceProductIdentifier *string
1016
1017	// Specifies the type of device that the VTL device emulates.
1018	VTLDeviceType *string
1019
1020	// Specifies the vendor of the device that the VTL device object emulates.
1021	VTLDeviceVendor *string
1022}
1023