1// Code generated by smithy-go-codegen DO NOT EDIT.
2
3package types
4
5import (
6	"time"
7)
8
9// The address that you want the Snow device(s) associated with a specific job to
10// be shipped to. Addresses are validated at the time of creation. The address you
11// provide must be located within the serviceable area of your region. Although no
12// individual elements of the Address are required, if the address is invalid or
13// unsupported, then an exception is thrown.
14type Address struct {
15
16	// The unique ID for an address.
17	AddressId *string
18
19	// The city in an address that a Snow device is to be delivered to.
20	City *string
21
22	// The name of the company to receive a Snow device at an address.
23	Company *string
24
25	// The country in an address that a Snow device is to be delivered to.
26	Country *string
27
28	// If the address you are creating is a primary address, then set this option to
29	// true. This field is not supported in most regions.
30	IsRestricted bool
31
32	// This field is no longer used and the value is ignored.
33	Landmark *string
34
35	// The name of a person to receive a Snow device at an address.
36	Name *string
37
38	// The phone number associated with an address that a Snow device is to be
39	// delivered to.
40	PhoneNumber *string
41
42	// The postal code in an address that a Snow device is to be delivered to.
43	PostalCode *string
44
45	// This field is no longer used and the value is ignored.
46	PrefectureOrDistrict *string
47
48	// The state or province in an address that a Snow device is to be delivered to.
49	StateOrProvince *string
50
51	// The first line in a street address that a Snow device is to be delivered to.
52	Street1 *string
53
54	// The second line in a street address that a Snow device is to be delivered to.
55	Street2 *string
56
57	// The third line in a street address that a Snow device is to be delivered to.
58	Street3 *string
59}
60
61// Contains a cluster's state, a cluster's ID, and other important information.
62type ClusterListEntry struct {
63
64	// The 39-character ID for the cluster that you want to list, for example
65	// CID123e4567-e89b-12d3-a456-426655440000.
66	ClusterId *string
67
68	// The current state of this cluster. For information about the state of a specific
69	// node, see JobListEntry$JobState.
70	ClusterState ClusterState
71
72	// The creation date for this cluster.
73	CreationDate *time.Time
74
75	// Defines an optional description of the cluster, for example Environmental Data
76	// Cluster-01.
77	Description *string
78}
79
80// Contains metadata about a specific cluster.
81type ClusterMetadata struct {
82
83	// The automatically generated ID for a specific address.
84	AddressId *string
85
86	// The automatically generated ID for a cluster.
87	ClusterId *string
88
89	// The current status of the cluster.
90	ClusterState ClusterState
91
92	// The creation date for this cluster.
93	CreationDate *time.Time
94
95	// The optional description of the cluster.
96	Description *string
97
98	// The ID of the address that you want a cluster shipped to, after it will be
99	// shipped to its primary address. This field is not supported in most regions.
100	ForwardingAddressId *string
101
102	// The type of job for this cluster. Currently, the only job type supported for
103	// clusters is LOCAL_USE.
104	JobType JobType
105
106	// The KmsKeyARN Amazon Resource Name (ARN) associated with this cluster. This ARN
107	// was created using the CreateKey
108	// (https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) API
109	// action in AWS Key Management Service (AWS KMS).
110	KmsKeyARN *string
111
112	// The Amazon Simple Notification Service (Amazon SNS) notification settings for
113	// this cluster.
114	Notification *Notification
115
116	// The arrays of JobResource objects that can include updated S3Resource objects or
117	// LambdaResource objects.
118	Resources *JobResource
119
120	// The role ARN associated with this cluster. This ARN was created using the
121	// CreateRole
122	// (https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html) API
123	// action in AWS Identity and Access Management (IAM).
124	RoleARN *string
125
126	// The shipping speed for each node in this cluster. This speed doesn't dictate how
127	// soon you'll get each device, rather it represents how quickly each device moves
128	// to its destination while in transit. Regional shipping speeds are as follows:
129	//
130	// *
131	// In Australia, you have access to express shipping. Typically, devices shipped
132	// express are delivered in about a day.
133	//
134	// * In the European Union (EU), you have
135	// access to express shipping. Typically, Snow devices shipped express are
136	// delivered in about a day. In addition, most countries in the EU have access to
137	// standard shipping, which typically takes less than a week, one way.
138	//
139	// * In India,
140	// Snow devices are delivered in one to seven days.
141	//
142	// * In the US, you have access
143	// to one-day shipping and two-day shipping.
144	ShippingOption ShippingOption
145
146	// The type of AWS Snow device to use for this cluster. For cluster jobs, AWS Snow
147	// Family currently supports only the EDGE device type.
148	SnowballType SnowballType
149
150	// The tax documents required in your AWS Region.
151	TaxDocuments *TaxDocuments
152}
153
154// A JSON-formatted object that describes a compatible Amazon Machine Image (AMI),
155// including the ID and name for a Snow device AMI. This AMI is compatible with the
156// device's physical hardware requirements, and it should be able to be run in an
157// SBE1 instance on the device.
158type CompatibleImage struct {
159
160	// The unique identifier for an individual Snow device AMI.
161	AmiId *string
162
163	// The optional name of a compatible image.
164	Name *string
165}
166
167// Defines the real-time status of a Snow device's data transfer while the device
168// is at AWS. This data is only available while a job has a JobState value of
169// InProgress, for both import and export jobs.
170type DataTransfer struct {
171
172	// The number of bytes transferred between a Snow device and Amazon S3.
173	BytesTransferred int64
174
175	// The number of objects transferred between a Snow device and Amazon S3.
176	ObjectsTransferred int64
177
178	// The total bytes of data for a transfer between a Snow device and Amazon S3. This
179	// value is set to 0 (zero) until all the keys that will be transferred have been
180	// listed.
181	TotalBytes int64
182
183	// The total number of objects for a transfer between a Snow device and Amazon S3.
184	// This value is set to 0 (zero) until all the keys that will be transferred have
185	// been listed.
186	TotalObjects int64
187}
188
189// The container for SnowconeDeviceConfiguration.
190type DeviceConfiguration struct {
191
192	// Returns information about the device configuration for an AWS Snowcone job.
193	SnowconeDeviceConfiguration *SnowconeDeviceConfiguration
194}
195
196// A JSON-formatted object that contains the IDs for an Amazon Machine Image (AMI),
197// including the Amazon EC2 AMI ID and the Snow device AMI ID. Each AMI has these
198// two IDs to simplify identifying the AMI in both the AWS Cloud and on the device.
199type Ec2AmiResource struct {
200
201	// The ID of the AMI in Amazon EC2.
202	//
203	// This member is required.
204	AmiId *string
205
206	// The ID of the AMI on the Snow device.
207	SnowballAmiId *string
208}
209
210// The container for the EventTriggerDefinition$EventResourceARN.
211type EventTriggerDefinition struct {
212
213	// The Amazon Resource Name (ARN) for any local Amazon S3 resource that is an AWS
214	// Lambda function's event trigger associated with this job.
215	EventResourceARN *string
216}
217
218// The tax documents required in AWS Regions in India.
219type INDTaxDocuments struct {
220
221	// The Goods and Services Tax (GST) documents required in AWS Regions in India.
222	GSTIN *string
223}
224
225// Each JobListEntry object contains a job's state, a job's ID, and a value that
226// indicates whether the job is a job part, in the case of an export job.
227type JobListEntry struct {
228
229	// The creation date for this job.
230	CreationDate *time.Time
231
232	// The optional description of this specific job, for example Important Photos
233	// 2016-08-11.
234	Description *string
235
236	// A value that indicates that this job is a main job. A main job represents a
237	// successful request to create an export job. Main jobs aren't associated with any
238	// Snowballs. Instead, each main job will have at least one job part, and each job
239	// part is associated with a Snowball. It might take some time before the job parts
240	// associated with a particular main job are listed, because they are created after
241	// the main job is created.
242	IsMaster bool
243
244	// The automatically generated ID for a job, for example
245	// JID123e4567-e89b-12d3-a456-426655440000.
246	JobId *string
247
248	// The current state of this job.
249	JobState JobState
250
251	// The type of job.
252	JobType JobType
253
254	// The type of device used with this job.
255	SnowballType SnowballType
256}
257
258// Contains job logs. Whenever a Snow device is used to import data into or export
259// data out of Amazon S3, you'll have the option of downloading a PDF job report.
260// Job logs are returned as a part of the response syntax of the DescribeJob action
261// in the JobMetadata data type. The job logs can be accessed for up to 60 minutes
262// after this request has been made. To access any of the job logs after 60 minutes
263// have passed, you'll have to make another call to the DescribeJob action. For
264// import jobs, the PDF job report becomes available at the end of the import
265// process. For export jobs, your job report typically becomes available while the
266// Snow device for your job part is being delivered to you. The job report provides
267// you insight into the state of your Amazon S3 data transfer. The report includes
268// details about your job or job part for your records. For deeper visibility into
269// the status of your transferred objects, you can look at the two associated logs:
270// a success log and a failure log. The logs are saved in comma-separated value
271// (CSV) format, and the name of each log includes the ID of the job or job part
272// that the log describes.
273type JobLogs struct {
274
275	// A link to an Amazon S3 presigned URL where the job completion report is located.
276	JobCompletionReportURI *string
277
278	// A link to an Amazon S3 presigned URL where the job failure log is located.
279	JobFailureLogURI *string
280
281	// A link to an Amazon S3 presigned URL where the job success log is located.
282	JobSuccessLogURI *string
283}
284
285// Contains information about a specific job including shipping information, job
286// status, and other important metadata. This information is returned as a part of
287// the response syntax of the DescribeJob action.
288type JobMetadata struct {
289
290	// The ID for the address that you want the Snow device shipped to.
291	AddressId *string
292
293	// The 39-character ID for the cluster, for example
294	// CID123e4567-e89b-12d3-a456-426655440000.
295	ClusterId *string
296
297	// The creation date for this job.
298	CreationDate *time.Time
299
300	// A value that defines the real-time status of a Snow device's data transfer while
301	// the device is at AWS. This data is only available while a job has a JobState
302	// value of InProgress, for both import and export jobs.
303	DataTransferProgress *DataTransfer
304
305	// The description of the job, provided at job creation.
306	Description *string
307
308	// The container for SnowconeDeviceConfiguration.
309	DeviceConfiguration *DeviceConfiguration
310
311	// The ID of the address that you want a job shipped to, after it will be shipped
312	// to its primary address. This field is not supported in most regions.
313	ForwardingAddressId *string
314
315	// The automatically generated ID for a job, for example
316	// JID123e4567-e89b-12d3-a456-426655440000.
317	JobId *string
318
319	// Links to Amazon S3 presigned URLs for the job report and logs. For import jobs,
320	// the PDF job report becomes available at the end of the import process. For
321	// export jobs, your job report typically becomes available while the Snow device
322	// for your job part is being delivered to you.
323	JobLogInfo *JobLogs
324
325	// The current status of the jobs.
326	JobState JobState
327
328	// The type of job.
329	JobType JobType
330
331	// The Amazon Resource Name (ARN) for the AWS Key Management Service (AWS KMS) key
332	// associated with this job. This ARN was created using the CreateKey
333	// (https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) API
334	// action in AWS KMS.
335	KmsKeyARN *string
336
337	// The Amazon Simple Notification Service (Amazon SNS) notification settings
338	// associated with a specific job. The Notification object is returned as a part of
339	// the response syntax of the DescribeJob action in the JobMetadata data type.
340	Notification *Notification
341
342	// An array of S3Resource objects. Each S3Resource object represents an Amazon S3
343	// bucket that your transferred data will be exported from or imported into.
344	Resources *JobResource
345
346	// The role ARN associated with this job. This ARN was created using the CreateRole
347	// (https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html) API
348	// action in AWS Identity and Access Management (IAM).
349	RoleARN *string
350
351	// A job's shipping information, including inbound and outbound tracking numbers
352	// and shipping speed options.
353	ShippingDetails *ShippingDetails
354
355	// The Snow device capacity preference for this job, specified at job creation. In
356	// US regions, you can choose between 50 TB and 80 TB Snowballs. All other regions
357	// use 80 TB capacity Snowballs.
358	SnowballCapacityPreference SnowballCapacity
359
360	// The type of device used with this job.
361	SnowballType SnowballType
362
363	// The metadata associated with the tax documents required in your AWS Region.
364	TaxDocuments *TaxDocuments
365}
366
367// Contains an array of AWS resource objects. Each object represents an Amazon S3
368// bucket, an AWS Lambda function, or an Amazon Machine Image (AMI) based on Amazon
369// EC2 that is associated with a particular job.
370type JobResource struct {
371
372	// The Amazon Machine Images (AMIs) associated with this job.
373	Ec2AmiResources []Ec2AmiResource
374
375	// The Python-language Lambda functions for this job.
376	LambdaResources []LambdaResource
377
378	// An array of S3Resource objects.
379	S3Resources []S3Resource
380}
381
382// Contains a key range. For export jobs, a S3Resource object can have an optional
383// KeyRange value. The length of the range is defined at job creation, and has
384// either an inclusive BeginMarker, an inclusive EndMarker, or both. Ranges are
385// UTF-8 binary sorted.
386type KeyRange struct {
387
388	// The key that starts an optional key range for an export job. Ranges are
389	// inclusive and UTF-8 binary sorted.
390	BeginMarker *string
391
392	// The key that ends an optional key range for an export job. Ranges are inclusive
393	// and UTF-8 binary sorted.
394	EndMarker *string
395}
396
397// Identifies
398type LambdaResource struct {
399
400	// The array of ARNs for S3Resource objects to trigger the LambdaResource objects
401	// associated with this job.
402	EventTriggers []EventTriggerDefinition
403
404	// An Amazon Resource Name (ARN) that represents an AWS Lambda function to be
405	// triggered by PUT object actions on the associated local Amazon S3 resource.
406	LambdaArn *string
407}
408
409// The Amazon Simple Notification Service (Amazon SNS) notification settings
410// associated with a specific job. The Notification object is returned as a part of
411// the response syntax of the DescribeJob action in the JobMetadata data type. When
412// the notification settings are defined during job creation, you can choose to
413// notify based on a specific set of job states using the JobStatesToNotify array
414// of strings, or you can specify that you want to have Amazon SNS notifications
415// sent out for all job states with NotifyAll set to true.
416type Notification struct {
417
418	// The list of job states that will trigger a notification for this job.
419	JobStatesToNotify []JobState
420
421	// Any change in job state will trigger a notification for this job.
422	NotifyAll bool
423
424	// The new SNS TopicArn that you want to associate with this job. You can create
425	// Amazon Resource Names (ARNs) for topics by using the CreateTopic
426	// (https://docs.aws.amazon.com/sns/latest/api/API_CreateTopic.html) Amazon SNS API
427	// action. You can subscribe email addresses to an Amazon SNS topic through the AWS
428	// Management Console, or by using the Subscribe
429	// (https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html) AWS Simple
430	// Notification Service (SNS) API action.
431	SnsTopicARN *string
432}
433
434// Each S3Resource object represents an Amazon S3 bucket that your transferred data
435// will be exported from or imported into. For export jobs, this object can have an
436// optional KeyRange value. The length of the range is defined at job creation, and
437// has either an inclusive BeginMarker, an inclusive EndMarker, or both. Ranges are
438// UTF-8 binary sorted.
439type S3Resource struct {
440
441	// The Amazon Resource Name (ARN) of an Amazon S3 bucket.
442	BucketArn *string
443
444	// For export jobs, you can provide an optional KeyRange within a specific Amazon
445	// S3 bucket. The length of the range is defined at job creation, and has either an
446	// inclusive BeginMarker, an inclusive EndMarker, or both. Ranges are UTF-8 binary
447	// sorted.
448	KeyRange *KeyRange
449}
450
451// The Status and TrackingNumber information for an inbound or outbound shipment.
452type Shipment struct {
453
454	// Status information for a shipment.
455	Status *string
456
457	// The tracking number for this job. Using this tracking number with your region's
458	// carrier's website, you can track a Snow device as the carrier transports it. For
459	// India, the carrier is Amazon Logistics. For all other regions, UPS is the
460	// carrier.
461	TrackingNumber *string
462}
463
464// A job's shipping information, including inbound and outbound tracking numbers
465// and shipping speed options.
466type ShippingDetails struct {
467
468	// The Status and TrackingNumber values for a Snow device being returned to AWS for
469	// a particular job.
470	InboundShipment *Shipment
471
472	// The Status and TrackingNumber values for a Snow device being delivered to the
473	// address that you specified for a particular job.
474	OutboundShipment *Shipment
475
476	// The shipping speed for a particular job. This speed doesn't dictate how soon
477	// you'll get the Snow device from the job's creation date. This speed represents
478	// how quickly it moves to its destination while in transit. Regional shipping
479	// speeds are as follows:
480	//
481	// * In Australia, you have access to express shipping.
482	// Typically, Snow devices shipped express are delivered in about a day.
483	//
484	// * In the
485	// European Union (EU), you have access to express shipping. Typically, Snow
486	// devices shipped express are delivered in about a day. In addition, most
487	// countries in the EU have access to standard shipping, which typically takes less
488	// than a week, one way.
489	//
490	// * In India, Snow device are delivered in one to seven
491	// days.
492	//
493	// * In the United States of America (US), you have access to one-day
494	// shipping and two-day shipping.
495	ShippingOption ShippingOption
496}
497
498// Specifies the device configuration for an AWS Snowcone job.
499type SnowconeDeviceConfiguration struct {
500
501	// Configures the wireless connection for the AWS Snowcone device.
502	WirelessConnection *WirelessConnection
503}
504
505// The tax documents required in your AWS Region.
506type TaxDocuments struct {
507
508	// The tax documents required in AWS Regions in India.
509	IND *INDTaxDocuments
510}
511
512// Configures the wireless connection on an AWS Snowcone device.
513type WirelessConnection struct {
514
515	// Enables the Wi-Fi adapter on an AWS Snowcone device.
516	IsWifiEnabled bool
517}
518