1use std::error::Error;
14use std::fmt;
15
16use async_trait::async_trait;
17use rusoto_core::credential::ProvideAwsCredentials;
18use rusoto_core::region;
19use rusoto_core::request::{BufferedHttpResponse, DispatchSignedRequest};
20use rusoto_core::{Client, RusotoError};
21
22use rusoto_core::proto;
23use rusoto_core::request::HttpResponse;
24use rusoto_core::signature::SignedRequest;
25#[allow(unused_imports)]
26use serde::{Deserialize, Serialize};
27
28impl SnowballClient {
29 fn new_signed_request(&self, http_method: &str, request_uri: &str) -> SignedRequest {
30 let mut request = SignedRequest::new(http_method, "snowball", &self.region, request_uri);
31
32 request.set_content_type("application/x-amz-json-1.1".to_owned());
33
34 request
35 }
36
37 async fn sign_and_dispatch<E>(
38 &self,
39 request: SignedRequest,
40 from_response: fn(BufferedHttpResponse) -> RusotoError<E>,
41 ) -> Result<HttpResponse, RusotoError<E>> {
42 let mut response = self.client.sign_and_dispatch(request).await?;
43 if !response.status.is_success() {
44 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
45 return Err(from_response(response));
46 }
47
48 Ok(response)
49 }
50}
51
52use serde_json;
53#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
55pub struct Address {
56 #[serde(rename = "AddressId")]
58 #[serde(skip_serializing_if = "Option::is_none")]
59 pub address_id: Option<String>,
60 #[serde(rename = "City")]
62 #[serde(skip_serializing_if = "Option::is_none")]
63 pub city: Option<String>,
64 #[serde(rename = "Company")]
66 #[serde(skip_serializing_if = "Option::is_none")]
67 pub company: Option<String>,
68 #[serde(rename = "Country")]
70 #[serde(skip_serializing_if = "Option::is_none")]
71 pub country: Option<String>,
72 #[serde(rename = "IsRestricted")]
74 #[serde(skip_serializing_if = "Option::is_none")]
75 pub is_restricted: Option<bool>,
76 #[serde(rename = "Landmark")]
78 #[serde(skip_serializing_if = "Option::is_none")]
79 pub landmark: Option<String>,
80 #[serde(rename = "Name")]
82 #[serde(skip_serializing_if = "Option::is_none")]
83 pub name: Option<String>,
84 #[serde(rename = "PhoneNumber")]
86 #[serde(skip_serializing_if = "Option::is_none")]
87 pub phone_number: Option<String>,
88 #[serde(rename = "PostalCode")]
90 #[serde(skip_serializing_if = "Option::is_none")]
91 pub postal_code: Option<String>,
92 #[serde(rename = "PrefectureOrDistrict")]
94 #[serde(skip_serializing_if = "Option::is_none")]
95 pub prefecture_or_district: Option<String>,
96 #[serde(rename = "StateOrProvince")]
98 #[serde(skip_serializing_if = "Option::is_none")]
99 pub state_or_province: Option<String>,
100 #[serde(rename = "Street1")]
102 #[serde(skip_serializing_if = "Option::is_none")]
103 pub street_1: Option<String>,
104 #[serde(rename = "Street2")]
106 #[serde(skip_serializing_if = "Option::is_none")]
107 pub street_2: Option<String>,
108 #[serde(rename = "Street3")]
110 #[serde(skip_serializing_if = "Option::is_none")]
111 pub street_3: Option<String>,
112}
113
114#[derive(Clone, Debug, Default, PartialEq, Serialize)]
115#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
116pub struct CancelClusterRequest {
117 #[serde(rename = "ClusterId")]
119 pub cluster_id: String,
120}
121
122#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
123#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
124pub struct CancelClusterResult {}
125
126#[derive(Clone, Debug, Default, PartialEq, Serialize)]
127#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
128pub struct CancelJobRequest {
129 #[serde(rename = "JobId")]
131 pub job_id: String,
132}
133
134#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
135#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
136pub struct CancelJobResult {}
137
138#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
140#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
141pub struct ClusterListEntry {
142 #[serde(rename = "ClusterId")]
144 #[serde(skip_serializing_if = "Option::is_none")]
145 pub cluster_id: Option<String>,
146 #[serde(rename = "ClusterState")]
148 #[serde(skip_serializing_if = "Option::is_none")]
149 pub cluster_state: Option<String>,
150 #[serde(rename = "CreationDate")]
152 #[serde(skip_serializing_if = "Option::is_none")]
153 pub creation_date: Option<f64>,
154 #[serde(rename = "Description")]
156 #[serde(skip_serializing_if = "Option::is_none")]
157 pub description: Option<String>,
158}
159
160#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
162#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
163pub struct ClusterMetadata {
164 #[serde(rename = "AddressId")]
166 #[serde(skip_serializing_if = "Option::is_none")]
167 pub address_id: Option<String>,
168 #[serde(rename = "ClusterId")]
170 #[serde(skip_serializing_if = "Option::is_none")]
171 pub cluster_id: Option<String>,
172 #[serde(rename = "ClusterState")]
174 #[serde(skip_serializing_if = "Option::is_none")]
175 pub cluster_state: Option<String>,
176 #[serde(rename = "CreationDate")]
178 #[serde(skip_serializing_if = "Option::is_none")]
179 pub creation_date: Option<f64>,
180 #[serde(rename = "Description")]
182 #[serde(skip_serializing_if = "Option::is_none")]
183 pub description: Option<String>,
184 #[serde(rename = "ForwardingAddressId")]
186 #[serde(skip_serializing_if = "Option::is_none")]
187 pub forwarding_address_id: Option<String>,
188 #[serde(rename = "JobType")]
190 #[serde(skip_serializing_if = "Option::is_none")]
191 pub job_type: Option<String>,
192 #[serde(rename = "KmsKeyARN")]
194 #[serde(skip_serializing_if = "Option::is_none")]
195 pub kms_key_arn: Option<String>,
196 #[serde(rename = "Notification")]
198 #[serde(skip_serializing_if = "Option::is_none")]
199 pub notification: Option<Notification>,
200 #[serde(rename = "Resources")]
202 #[serde(skip_serializing_if = "Option::is_none")]
203 pub resources: Option<JobResource>,
204 #[serde(rename = "RoleARN")]
206 #[serde(skip_serializing_if = "Option::is_none")]
207 pub role_arn: Option<String>,
208 #[serde(rename = "ShippingOption")]
210 #[serde(skip_serializing_if = "Option::is_none")]
211 pub shipping_option: Option<String>,
212 #[serde(rename = "SnowballType")]
214 #[serde(skip_serializing_if = "Option::is_none")]
215 pub snowball_type: Option<String>,
216 #[serde(rename = "TaxDocuments")]
218 #[serde(skip_serializing_if = "Option::is_none")]
219 pub tax_documents: Option<TaxDocuments>,
220}
221
222#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
224#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
225pub struct CompatibleImage {
226 #[serde(rename = "AmiId")]
228 #[serde(skip_serializing_if = "Option::is_none")]
229 pub ami_id: Option<String>,
230 #[serde(rename = "Name")]
232 #[serde(skip_serializing_if = "Option::is_none")]
233 pub name: Option<String>,
234}
235
236#[derive(Clone, Debug, Default, PartialEq, Serialize)]
237#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
238pub struct CreateAddressRequest {
239 #[serde(rename = "Address")]
241 pub address: Address,
242}
243
244#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
245#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
246pub struct CreateAddressResult {
247 #[serde(rename = "AddressId")]
249 #[serde(skip_serializing_if = "Option::is_none")]
250 pub address_id: Option<String>,
251}
252
253#[derive(Clone, Debug, Default, PartialEq, Serialize)]
254#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
255pub struct CreateClusterRequest {
256 #[serde(rename = "AddressId")]
258 pub address_id: String,
259 #[serde(rename = "Description")]
261 #[serde(skip_serializing_if = "Option::is_none")]
262 pub description: Option<String>,
263 #[serde(rename = "ForwardingAddressId")]
265 #[serde(skip_serializing_if = "Option::is_none")]
266 pub forwarding_address_id: Option<String>,
267 #[serde(rename = "JobType")]
269 pub job_type: String,
270 #[serde(rename = "KmsKeyARN")]
272 #[serde(skip_serializing_if = "Option::is_none")]
273 pub kms_key_arn: Option<String>,
274 #[serde(rename = "Notification")]
276 #[serde(skip_serializing_if = "Option::is_none")]
277 pub notification: Option<Notification>,
278 #[serde(rename = "Resources")]
280 pub resources: JobResource,
281 #[serde(rename = "RoleARN")]
283 pub role_arn: String,
284 #[serde(rename = "ShippingOption")]
286 pub shipping_option: String,
287 #[serde(rename = "SnowballType")]
289 #[serde(skip_serializing_if = "Option::is_none")]
290 pub snowball_type: Option<String>,
291 #[serde(rename = "TaxDocuments")]
293 #[serde(skip_serializing_if = "Option::is_none")]
294 pub tax_documents: Option<TaxDocuments>,
295}
296
297#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
298#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
299pub struct CreateClusterResult {
300 #[serde(rename = "ClusterId")]
302 #[serde(skip_serializing_if = "Option::is_none")]
303 pub cluster_id: Option<String>,
304}
305
306#[derive(Clone, Debug, Default, PartialEq, Serialize)]
307#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
308pub struct CreateJobRequest {
309 #[serde(rename = "AddressId")]
311 #[serde(skip_serializing_if = "Option::is_none")]
312 pub address_id: Option<String>,
313 #[serde(rename = "ClusterId")]
315 #[serde(skip_serializing_if = "Option::is_none")]
316 pub cluster_id: Option<String>,
317 #[serde(rename = "Description")]
319 #[serde(skip_serializing_if = "Option::is_none")]
320 pub description: Option<String>,
321 #[serde(rename = "DeviceConfiguration")]
323 #[serde(skip_serializing_if = "Option::is_none")]
324 pub device_configuration: Option<DeviceConfiguration>,
325 #[serde(rename = "ForwardingAddressId")]
327 #[serde(skip_serializing_if = "Option::is_none")]
328 pub forwarding_address_id: Option<String>,
329 #[serde(rename = "JobType")]
331 #[serde(skip_serializing_if = "Option::is_none")]
332 pub job_type: Option<String>,
333 #[serde(rename = "KmsKeyARN")]
335 #[serde(skip_serializing_if = "Option::is_none")]
336 pub kms_key_arn: Option<String>,
337 #[serde(rename = "Notification")]
339 #[serde(skip_serializing_if = "Option::is_none")]
340 pub notification: Option<Notification>,
341 #[serde(rename = "Resources")]
343 #[serde(skip_serializing_if = "Option::is_none")]
344 pub resources: Option<JobResource>,
345 #[serde(rename = "RoleARN")]
347 #[serde(skip_serializing_if = "Option::is_none")]
348 pub role_arn: Option<String>,
349 #[serde(rename = "ShippingOption")]
351 #[serde(skip_serializing_if = "Option::is_none")]
352 pub shipping_option: Option<String>,
353 #[serde(rename = "SnowballCapacityPreference")]
355 #[serde(skip_serializing_if = "Option::is_none")]
356 pub snowball_capacity_preference: Option<String>,
357 #[serde(rename = "SnowballType")]
359 #[serde(skip_serializing_if = "Option::is_none")]
360 pub snowball_type: Option<String>,
361 #[serde(rename = "TaxDocuments")]
363 #[serde(skip_serializing_if = "Option::is_none")]
364 pub tax_documents: Option<TaxDocuments>,
365}
366
367#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
368#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
369pub struct CreateJobResult {
370 #[serde(rename = "JobId")]
372 #[serde(skip_serializing_if = "Option::is_none")]
373 pub job_id: Option<String>,
374}
375
376#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
378#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
379pub struct DataTransfer {
380 #[serde(rename = "BytesTransferred")]
382 #[serde(skip_serializing_if = "Option::is_none")]
383 pub bytes_transferred: Option<i64>,
384 #[serde(rename = "ObjectsTransferred")]
386 #[serde(skip_serializing_if = "Option::is_none")]
387 pub objects_transferred: Option<i64>,
388 #[serde(rename = "TotalBytes")]
390 #[serde(skip_serializing_if = "Option::is_none")]
391 pub total_bytes: Option<i64>,
392 #[serde(rename = "TotalObjects")]
394 #[serde(skip_serializing_if = "Option::is_none")]
395 pub total_objects: Option<i64>,
396}
397
398#[derive(Clone, Debug, Default, PartialEq, Serialize)]
399#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
400pub struct DescribeAddressRequest {
401 #[serde(rename = "AddressId")]
403 pub address_id: String,
404}
405
406#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
407#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
408pub struct DescribeAddressResult {
409 #[serde(rename = "Address")]
411 #[serde(skip_serializing_if = "Option::is_none")]
412 pub address: Option<Address>,
413}
414
415#[derive(Clone, Debug, Default, PartialEq, Serialize)]
416#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
417pub struct DescribeAddressesRequest {
418 #[serde(rename = "MaxResults")]
420 #[serde(skip_serializing_if = "Option::is_none")]
421 pub max_results: Option<i64>,
422 #[serde(rename = "NextToken")]
424 #[serde(skip_serializing_if = "Option::is_none")]
425 pub next_token: Option<String>,
426}
427
428#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
429#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
430pub struct DescribeAddressesResult {
431 #[serde(rename = "Addresses")]
433 #[serde(skip_serializing_if = "Option::is_none")]
434 pub addresses: Option<Vec<Address>>,
435 #[serde(rename = "NextToken")]
437 #[serde(skip_serializing_if = "Option::is_none")]
438 pub next_token: Option<String>,
439}
440
441#[derive(Clone, Debug, Default, PartialEq, Serialize)]
442#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
443pub struct DescribeClusterRequest {
444 #[serde(rename = "ClusterId")]
446 pub cluster_id: String,
447}
448
449#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
450#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
451pub struct DescribeClusterResult {
452 #[serde(rename = "ClusterMetadata")]
454 #[serde(skip_serializing_if = "Option::is_none")]
455 pub cluster_metadata: Option<ClusterMetadata>,
456}
457
458#[derive(Clone, Debug, Default, PartialEq, Serialize)]
459#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
460pub struct DescribeJobRequest {
461 #[serde(rename = "JobId")]
463 pub job_id: String,
464}
465
466#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
467#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
468pub struct DescribeJobResult {
469 #[serde(rename = "JobMetadata")]
471 #[serde(skip_serializing_if = "Option::is_none")]
472 pub job_metadata: Option<JobMetadata>,
473 #[serde(rename = "SubJobMetadata")]
475 #[serde(skip_serializing_if = "Option::is_none")]
476 pub sub_job_metadata: Option<Vec<JobMetadata>>,
477}
478
479#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
481pub struct DeviceConfiguration {
482 #[serde(rename = "SnowconeDeviceConfiguration")]
484 #[serde(skip_serializing_if = "Option::is_none")]
485 pub snowcone_device_configuration: Option<SnowconeDeviceConfiguration>,
486}
487
488#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
490pub struct Ec2AmiResource {
491 #[serde(rename = "AmiId")]
493 pub ami_id: String,
494 #[serde(rename = "SnowballAmiId")]
496 #[serde(skip_serializing_if = "Option::is_none")]
497 pub snowball_ami_id: Option<String>,
498}
499
500#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
502pub struct EventTriggerDefinition {
503 #[serde(rename = "EventResourceARN")]
505 #[serde(skip_serializing_if = "Option::is_none")]
506 pub event_resource_arn: Option<String>,
507}
508
509#[derive(Clone, Debug, Default, PartialEq, Serialize)]
510#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
511pub struct GetJobManifestRequest {
512 #[serde(rename = "JobId")]
514 pub job_id: String,
515}
516
517#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
518#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
519pub struct GetJobManifestResult {
520 #[serde(rename = "ManifestURI")]
522 #[serde(skip_serializing_if = "Option::is_none")]
523 pub manifest_uri: Option<String>,
524}
525
526#[derive(Clone, Debug, Default, PartialEq, Serialize)]
527#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
528pub struct GetJobUnlockCodeRequest {
529 #[serde(rename = "JobId")]
531 pub job_id: String,
532}
533
534#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
535#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
536pub struct GetJobUnlockCodeResult {
537 #[serde(rename = "UnlockCode")]
539 #[serde(skip_serializing_if = "Option::is_none")]
540 pub unlock_code: Option<String>,
541}
542
543#[derive(Clone, Debug, Default, PartialEq, Serialize)]
544#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
545pub struct GetSnowballUsageRequest {}
546
547#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
548#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
549pub struct GetSnowballUsageResult {
550 #[serde(rename = "SnowballLimit")]
552 #[serde(skip_serializing_if = "Option::is_none")]
553 pub snowball_limit: Option<i64>,
554 #[serde(rename = "SnowballsInUse")]
556 #[serde(skip_serializing_if = "Option::is_none")]
557 pub snowballs_in_use: Option<i64>,
558}
559
560#[derive(Clone, Debug, Default, PartialEq, Serialize)]
561#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
562pub struct GetSoftwareUpdatesRequest {
563 #[serde(rename = "JobId")]
565 pub job_id: String,
566}
567
568#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
569#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
570pub struct GetSoftwareUpdatesResult {
571 #[serde(rename = "UpdatesURI")]
573 #[serde(skip_serializing_if = "Option::is_none")]
574 pub updates_uri: Option<String>,
575}
576
577#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
579pub struct INDTaxDocuments {
580 #[serde(rename = "GSTIN")]
582 #[serde(skip_serializing_if = "Option::is_none")]
583 pub gstin: Option<String>,
584}
585
586#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
588#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
589pub struct JobListEntry {
590 #[serde(rename = "CreationDate")]
592 #[serde(skip_serializing_if = "Option::is_none")]
593 pub creation_date: Option<f64>,
594 #[serde(rename = "Description")]
596 #[serde(skip_serializing_if = "Option::is_none")]
597 pub description: Option<String>,
598 #[serde(rename = "IsMaster")]
600 #[serde(skip_serializing_if = "Option::is_none")]
601 pub is_master: Option<bool>,
602 #[serde(rename = "JobId")]
604 #[serde(skip_serializing_if = "Option::is_none")]
605 pub job_id: Option<String>,
606 #[serde(rename = "JobState")]
608 #[serde(skip_serializing_if = "Option::is_none")]
609 pub job_state: Option<String>,
610 #[serde(rename = "JobType")]
612 #[serde(skip_serializing_if = "Option::is_none")]
613 pub job_type: Option<String>,
614 #[serde(rename = "SnowballType")]
616 #[serde(skip_serializing_if = "Option::is_none")]
617 pub snowball_type: Option<String>,
618}
619
620#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
622#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
623pub struct JobLogs {
624 #[serde(rename = "JobCompletionReportURI")]
626 #[serde(skip_serializing_if = "Option::is_none")]
627 pub job_completion_report_uri: Option<String>,
628 #[serde(rename = "JobFailureLogURI")]
630 #[serde(skip_serializing_if = "Option::is_none")]
631 pub job_failure_log_uri: Option<String>,
632 #[serde(rename = "JobSuccessLogURI")]
634 #[serde(skip_serializing_if = "Option::is_none")]
635 pub job_success_log_uri: Option<String>,
636}
637
638#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
640#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
641pub struct JobMetadata {
642 #[serde(rename = "AddressId")]
644 #[serde(skip_serializing_if = "Option::is_none")]
645 pub address_id: Option<String>,
646 #[serde(rename = "ClusterId")]
648 #[serde(skip_serializing_if = "Option::is_none")]
649 pub cluster_id: Option<String>,
650 #[serde(rename = "CreationDate")]
652 #[serde(skip_serializing_if = "Option::is_none")]
653 pub creation_date: Option<f64>,
654 #[serde(rename = "DataTransferProgress")]
656 #[serde(skip_serializing_if = "Option::is_none")]
657 pub data_transfer_progress: Option<DataTransfer>,
658 #[serde(rename = "Description")]
660 #[serde(skip_serializing_if = "Option::is_none")]
661 pub description: Option<String>,
662 #[serde(rename = "DeviceConfiguration")]
663 #[serde(skip_serializing_if = "Option::is_none")]
664 pub device_configuration: Option<DeviceConfiguration>,
665 #[serde(rename = "ForwardingAddressId")]
667 #[serde(skip_serializing_if = "Option::is_none")]
668 pub forwarding_address_id: Option<String>,
669 #[serde(rename = "JobId")]
671 #[serde(skip_serializing_if = "Option::is_none")]
672 pub job_id: Option<String>,
673 #[serde(rename = "JobLogInfo")]
675 #[serde(skip_serializing_if = "Option::is_none")]
676 pub job_log_info: Option<JobLogs>,
677 #[serde(rename = "JobState")]
679 #[serde(skip_serializing_if = "Option::is_none")]
680 pub job_state: Option<String>,
681 #[serde(rename = "JobType")]
683 #[serde(skip_serializing_if = "Option::is_none")]
684 pub job_type: Option<String>,
685 #[serde(rename = "KmsKeyARN")]
687 #[serde(skip_serializing_if = "Option::is_none")]
688 pub kms_key_arn: Option<String>,
689 #[serde(rename = "Notification")]
691 #[serde(skip_serializing_if = "Option::is_none")]
692 pub notification: Option<Notification>,
693 #[serde(rename = "Resources")]
695 #[serde(skip_serializing_if = "Option::is_none")]
696 pub resources: Option<JobResource>,
697 #[serde(rename = "RoleARN")]
699 #[serde(skip_serializing_if = "Option::is_none")]
700 pub role_arn: Option<String>,
701 #[serde(rename = "ShippingDetails")]
703 #[serde(skip_serializing_if = "Option::is_none")]
704 pub shipping_details: Option<ShippingDetails>,
705 #[serde(rename = "SnowballCapacityPreference")]
707 #[serde(skip_serializing_if = "Option::is_none")]
708 pub snowball_capacity_preference: Option<String>,
709 #[serde(rename = "SnowballType")]
711 #[serde(skip_serializing_if = "Option::is_none")]
712 pub snowball_type: Option<String>,
713 #[serde(rename = "TaxDocuments")]
715 #[serde(skip_serializing_if = "Option::is_none")]
716 pub tax_documents: Option<TaxDocuments>,
717}
718
719#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
721pub struct JobResource {
722 #[serde(rename = "Ec2AmiResources")]
724 #[serde(skip_serializing_if = "Option::is_none")]
725 pub ec_2_ami_resources: Option<Vec<Ec2AmiResource>>,
726 #[serde(rename = "LambdaResources")]
728 #[serde(skip_serializing_if = "Option::is_none")]
729 pub lambda_resources: Option<Vec<LambdaResource>>,
730 #[serde(rename = "S3Resources")]
732 #[serde(skip_serializing_if = "Option::is_none")]
733 pub s3_resources: Option<Vec<S3Resource>>,
734}
735
736#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
738pub struct KeyRange {
739 #[serde(rename = "BeginMarker")]
741 #[serde(skip_serializing_if = "Option::is_none")]
742 pub begin_marker: Option<String>,
743 #[serde(rename = "EndMarker")]
745 #[serde(skip_serializing_if = "Option::is_none")]
746 pub end_marker: Option<String>,
747}
748
749#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
751pub struct LambdaResource {
752 #[serde(rename = "EventTriggers")]
754 #[serde(skip_serializing_if = "Option::is_none")]
755 pub event_triggers: Option<Vec<EventTriggerDefinition>>,
756 #[serde(rename = "LambdaArn")]
758 #[serde(skip_serializing_if = "Option::is_none")]
759 pub lambda_arn: Option<String>,
760}
761
762#[derive(Clone, Debug, Default, PartialEq, Serialize)]
763#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
764pub struct ListClusterJobsRequest {
765 #[serde(rename = "ClusterId")]
767 pub cluster_id: String,
768 #[serde(rename = "MaxResults")]
770 #[serde(skip_serializing_if = "Option::is_none")]
771 pub max_results: Option<i64>,
772 #[serde(rename = "NextToken")]
774 #[serde(skip_serializing_if = "Option::is_none")]
775 pub next_token: Option<String>,
776}
777
778#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
779#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
780pub struct ListClusterJobsResult {
781 #[serde(rename = "JobListEntries")]
783 #[serde(skip_serializing_if = "Option::is_none")]
784 pub job_list_entries: Option<Vec<JobListEntry>>,
785 #[serde(rename = "NextToken")]
787 #[serde(skip_serializing_if = "Option::is_none")]
788 pub next_token: Option<String>,
789}
790
791#[derive(Clone, Debug, Default, PartialEq, Serialize)]
792#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
793pub struct ListClustersRequest {
794 #[serde(rename = "MaxResults")]
796 #[serde(skip_serializing_if = "Option::is_none")]
797 pub max_results: Option<i64>,
798 #[serde(rename = "NextToken")]
800 #[serde(skip_serializing_if = "Option::is_none")]
801 pub next_token: Option<String>,
802}
803
804#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
805#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
806pub struct ListClustersResult {
807 #[serde(rename = "ClusterListEntries")]
809 #[serde(skip_serializing_if = "Option::is_none")]
810 pub cluster_list_entries: Option<Vec<ClusterListEntry>>,
811 #[serde(rename = "NextToken")]
813 #[serde(skip_serializing_if = "Option::is_none")]
814 pub next_token: Option<String>,
815}
816
817#[derive(Clone, Debug, Default, PartialEq, Serialize)]
818#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
819pub struct ListCompatibleImagesRequest {
820 #[serde(rename = "MaxResults")]
822 #[serde(skip_serializing_if = "Option::is_none")]
823 pub max_results: Option<i64>,
824 #[serde(rename = "NextToken")]
826 #[serde(skip_serializing_if = "Option::is_none")]
827 pub next_token: Option<String>,
828}
829
830#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
831#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
832pub struct ListCompatibleImagesResult {
833 #[serde(rename = "CompatibleImages")]
835 #[serde(skip_serializing_if = "Option::is_none")]
836 pub compatible_images: Option<Vec<CompatibleImage>>,
837 #[serde(rename = "NextToken")]
839 #[serde(skip_serializing_if = "Option::is_none")]
840 pub next_token: Option<String>,
841}
842
843#[derive(Clone, Debug, Default, PartialEq, Serialize)]
844#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
845pub struct ListJobsRequest {
846 #[serde(rename = "MaxResults")]
848 #[serde(skip_serializing_if = "Option::is_none")]
849 pub max_results: Option<i64>,
850 #[serde(rename = "NextToken")]
852 #[serde(skip_serializing_if = "Option::is_none")]
853 pub next_token: Option<String>,
854}
855
856#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
857#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
858pub struct ListJobsResult {
859 #[serde(rename = "JobListEntries")]
861 #[serde(skip_serializing_if = "Option::is_none")]
862 pub job_list_entries: Option<Vec<JobListEntry>>,
863 #[serde(rename = "NextToken")]
865 #[serde(skip_serializing_if = "Option::is_none")]
866 pub next_token: Option<String>,
867}
868
869#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
871pub struct Notification {
872 #[serde(rename = "JobStatesToNotify")]
874 #[serde(skip_serializing_if = "Option::is_none")]
875 pub job_states_to_notify: Option<Vec<String>>,
876 #[serde(rename = "NotifyAll")]
878 #[serde(skip_serializing_if = "Option::is_none")]
879 pub notify_all: Option<bool>,
880 #[serde(rename = "SnsTopicARN")]
882 #[serde(skip_serializing_if = "Option::is_none")]
883 pub sns_topic_arn: Option<String>,
884}
885
886#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
888pub struct S3Resource {
889 #[serde(rename = "BucketArn")]
891 #[serde(skip_serializing_if = "Option::is_none")]
892 pub bucket_arn: Option<String>,
893 #[serde(rename = "KeyRange")]
895 #[serde(skip_serializing_if = "Option::is_none")]
896 pub key_range: Option<KeyRange>,
897}
898
899#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
901#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
902pub struct Shipment {
903 #[serde(rename = "Status")]
905 #[serde(skip_serializing_if = "Option::is_none")]
906 pub status: Option<String>,
907 #[serde(rename = "TrackingNumber")]
909 #[serde(skip_serializing_if = "Option::is_none")]
910 pub tracking_number: Option<String>,
911}
912
913#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
915#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
916pub struct ShippingDetails {
917 #[serde(rename = "InboundShipment")]
919 #[serde(skip_serializing_if = "Option::is_none")]
920 pub inbound_shipment: Option<Shipment>,
921 #[serde(rename = "OutboundShipment")]
923 #[serde(skip_serializing_if = "Option::is_none")]
924 pub outbound_shipment: Option<Shipment>,
925 #[serde(rename = "ShippingOption")]
927 #[serde(skip_serializing_if = "Option::is_none")]
928 pub shipping_option: Option<String>,
929}
930
931#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
933pub struct SnowconeDeviceConfiguration {
934 #[serde(rename = "WirelessConnection")]
936 #[serde(skip_serializing_if = "Option::is_none")]
937 pub wireless_connection: Option<WirelessConnection>,
938}
939
940#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
942pub struct TaxDocuments {
943 #[serde(rename = "IND")]
944 #[serde(skip_serializing_if = "Option::is_none")]
945 pub ind: Option<INDTaxDocuments>,
946}
947
948#[derive(Clone, Debug, Default, PartialEq, Serialize)]
949#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
950pub struct UpdateClusterRequest {
951 #[serde(rename = "AddressId")]
953 #[serde(skip_serializing_if = "Option::is_none")]
954 pub address_id: Option<String>,
955 #[serde(rename = "ClusterId")]
957 pub cluster_id: String,
958 #[serde(rename = "Description")]
960 #[serde(skip_serializing_if = "Option::is_none")]
961 pub description: Option<String>,
962 #[serde(rename = "ForwardingAddressId")]
964 #[serde(skip_serializing_if = "Option::is_none")]
965 pub forwarding_address_id: Option<String>,
966 #[serde(rename = "Notification")]
968 #[serde(skip_serializing_if = "Option::is_none")]
969 pub notification: Option<Notification>,
970 #[serde(rename = "Resources")]
972 #[serde(skip_serializing_if = "Option::is_none")]
973 pub resources: Option<JobResource>,
974 #[serde(rename = "RoleARN")]
976 #[serde(skip_serializing_if = "Option::is_none")]
977 pub role_arn: Option<String>,
978 #[serde(rename = "ShippingOption")]
980 #[serde(skip_serializing_if = "Option::is_none")]
981 pub shipping_option: Option<String>,
982}
983
984#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
985#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
986pub struct UpdateClusterResult {}
987
988#[derive(Clone, Debug, Default, PartialEq, Serialize)]
989#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
990pub struct UpdateJobRequest {
991 #[serde(rename = "AddressId")]
993 #[serde(skip_serializing_if = "Option::is_none")]
994 pub address_id: Option<String>,
995 #[serde(rename = "Description")]
997 #[serde(skip_serializing_if = "Option::is_none")]
998 pub description: Option<String>,
999 #[serde(rename = "ForwardingAddressId")]
1001 #[serde(skip_serializing_if = "Option::is_none")]
1002 pub forwarding_address_id: Option<String>,
1003 #[serde(rename = "JobId")]
1005 pub job_id: String,
1006 #[serde(rename = "Notification")]
1008 #[serde(skip_serializing_if = "Option::is_none")]
1009 pub notification: Option<Notification>,
1010 #[serde(rename = "Resources")]
1012 #[serde(skip_serializing_if = "Option::is_none")]
1013 pub resources: Option<JobResource>,
1014 #[serde(rename = "RoleARN")]
1016 #[serde(skip_serializing_if = "Option::is_none")]
1017 pub role_arn: Option<String>,
1018 #[serde(rename = "ShippingOption")]
1020 #[serde(skip_serializing_if = "Option::is_none")]
1021 pub shipping_option: Option<String>,
1022 #[serde(rename = "SnowballCapacityPreference")]
1024 #[serde(skip_serializing_if = "Option::is_none")]
1025 pub snowball_capacity_preference: Option<String>,
1026}
1027
1028#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1029#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1030pub struct UpdateJobResult {}
1031
1032#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
1034pub struct WirelessConnection {
1035 #[serde(rename = "IsWifiEnabled")]
1037 #[serde(skip_serializing_if = "Option::is_none")]
1038 pub is_wifi_enabled: Option<bool>,
1039}
1040
1041#[derive(Debug, PartialEq)]
1043pub enum CancelClusterError {
1044 InvalidJobState(String),
1046 InvalidResource(String),
1048 KMSRequestFailed(String),
1050}
1051
1052impl CancelClusterError {
1053 pub fn from_response(res: BufferedHttpResponse) -> RusotoError<CancelClusterError> {
1054 if let Some(err) = proto::json::Error::parse(&res) {
1055 match err.typ.as_str() {
1056 "InvalidJobStateException" => {
1057 return RusotoError::Service(CancelClusterError::InvalidJobState(err.msg))
1058 }
1059 "InvalidResourceException" => {
1060 return RusotoError::Service(CancelClusterError::InvalidResource(err.msg))
1061 }
1062 "KMSRequestFailedException" => {
1063 return RusotoError::Service(CancelClusterError::KMSRequestFailed(err.msg))
1064 }
1065 "ValidationException" => return RusotoError::Validation(err.msg),
1066 _ => {}
1067 }
1068 }
1069 RusotoError::Unknown(res)
1070 }
1071}
1072impl fmt::Display for CancelClusterError {
1073 #[allow(unused_variables)]
1074 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1075 match *self {
1076 CancelClusterError::InvalidJobState(ref cause) => write!(f, "{}", cause),
1077 CancelClusterError::InvalidResource(ref cause) => write!(f, "{}", cause),
1078 CancelClusterError::KMSRequestFailed(ref cause) => write!(f, "{}", cause),
1079 }
1080 }
1081}
1082impl Error for CancelClusterError {}
1083#[derive(Debug, PartialEq)]
1085pub enum CancelJobError {
1086 InvalidJobState(String),
1088 InvalidResource(String),
1090 KMSRequestFailed(String),
1092}
1093
1094impl CancelJobError {
1095 pub fn from_response(res: BufferedHttpResponse) -> RusotoError<CancelJobError> {
1096 if let Some(err) = proto::json::Error::parse(&res) {
1097 match err.typ.as_str() {
1098 "InvalidJobStateException" => {
1099 return RusotoError::Service(CancelJobError::InvalidJobState(err.msg))
1100 }
1101 "InvalidResourceException" => {
1102 return RusotoError::Service(CancelJobError::InvalidResource(err.msg))
1103 }
1104 "KMSRequestFailedException" => {
1105 return RusotoError::Service(CancelJobError::KMSRequestFailed(err.msg))
1106 }
1107 "ValidationException" => return RusotoError::Validation(err.msg),
1108 _ => {}
1109 }
1110 }
1111 RusotoError::Unknown(res)
1112 }
1113}
1114impl fmt::Display for CancelJobError {
1115 #[allow(unused_variables)]
1116 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1117 match *self {
1118 CancelJobError::InvalidJobState(ref cause) => write!(f, "{}", cause),
1119 CancelJobError::InvalidResource(ref cause) => write!(f, "{}", cause),
1120 CancelJobError::KMSRequestFailed(ref cause) => write!(f, "{}", cause),
1121 }
1122 }
1123}
1124impl Error for CancelJobError {}
1125#[derive(Debug, PartialEq)]
1127pub enum CreateAddressError {
1128 InvalidAddress(String),
1130 UnsupportedAddress(String),
1132}
1133
1134impl CreateAddressError {
1135 pub fn from_response(res: BufferedHttpResponse) -> RusotoError<CreateAddressError> {
1136 if let Some(err) = proto::json::Error::parse(&res) {
1137 match err.typ.as_str() {
1138 "InvalidAddressException" => {
1139 return RusotoError::Service(CreateAddressError::InvalidAddress(err.msg))
1140 }
1141 "UnsupportedAddressException" => {
1142 return RusotoError::Service(CreateAddressError::UnsupportedAddress(err.msg))
1143 }
1144 "ValidationException" => return RusotoError::Validation(err.msg),
1145 _ => {}
1146 }
1147 }
1148 RusotoError::Unknown(res)
1149 }
1150}
1151impl fmt::Display for CreateAddressError {
1152 #[allow(unused_variables)]
1153 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1154 match *self {
1155 CreateAddressError::InvalidAddress(ref cause) => write!(f, "{}", cause),
1156 CreateAddressError::UnsupportedAddress(ref cause) => write!(f, "{}", cause),
1157 }
1158 }
1159}
1160impl Error for CreateAddressError {}
1161#[derive(Debug, PartialEq)]
1163pub enum CreateClusterError {
1164 Ec2RequestFailed(String),
1166 InvalidInputCombination(String),
1168 InvalidResource(String),
1170 KMSRequestFailed(String),
1172}
1173
1174impl CreateClusterError {
1175 pub fn from_response(res: BufferedHttpResponse) -> RusotoError<CreateClusterError> {
1176 if let Some(err) = proto::json::Error::parse(&res) {
1177 match err.typ.as_str() {
1178 "Ec2RequestFailedException" => {
1179 return RusotoError::Service(CreateClusterError::Ec2RequestFailed(err.msg))
1180 }
1181 "InvalidInputCombinationException" => {
1182 return RusotoError::Service(CreateClusterError::InvalidInputCombination(
1183 err.msg,
1184 ))
1185 }
1186 "InvalidResourceException" => {
1187 return RusotoError::Service(CreateClusterError::InvalidResource(err.msg))
1188 }
1189 "KMSRequestFailedException" => {
1190 return RusotoError::Service(CreateClusterError::KMSRequestFailed(err.msg))
1191 }
1192 "ValidationException" => return RusotoError::Validation(err.msg),
1193 _ => {}
1194 }
1195 }
1196 RusotoError::Unknown(res)
1197 }
1198}
1199impl fmt::Display for CreateClusterError {
1200 #[allow(unused_variables)]
1201 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1202 match *self {
1203 CreateClusterError::Ec2RequestFailed(ref cause) => write!(f, "{}", cause),
1204 CreateClusterError::InvalidInputCombination(ref cause) => write!(f, "{}", cause),
1205 CreateClusterError::InvalidResource(ref cause) => write!(f, "{}", cause),
1206 CreateClusterError::KMSRequestFailed(ref cause) => write!(f, "{}", cause),
1207 }
1208 }
1209}
1210impl Error for CreateClusterError {}
1211#[derive(Debug, PartialEq)]
1213pub enum CreateJobError {
1214 ClusterLimitExceeded(String),
1216 Ec2RequestFailed(String),
1218 InvalidInputCombination(String),
1220 InvalidResource(String),
1222 KMSRequestFailed(String),
1224}
1225
1226impl CreateJobError {
1227 pub fn from_response(res: BufferedHttpResponse) -> RusotoError<CreateJobError> {
1228 if let Some(err) = proto::json::Error::parse(&res) {
1229 match err.typ.as_str() {
1230 "ClusterLimitExceededException" => {
1231 return RusotoError::Service(CreateJobError::ClusterLimitExceeded(err.msg))
1232 }
1233 "Ec2RequestFailedException" => {
1234 return RusotoError::Service(CreateJobError::Ec2RequestFailed(err.msg))
1235 }
1236 "InvalidInputCombinationException" => {
1237 return RusotoError::Service(CreateJobError::InvalidInputCombination(err.msg))
1238 }
1239 "InvalidResourceException" => {
1240 return RusotoError::Service(CreateJobError::InvalidResource(err.msg))
1241 }
1242 "KMSRequestFailedException" => {
1243 return RusotoError::Service(CreateJobError::KMSRequestFailed(err.msg))
1244 }
1245 "ValidationException" => return RusotoError::Validation(err.msg),
1246 _ => {}
1247 }
1248 }
1249 RusotoError::Unknown(res)
1250 }
1251}
1252impl fmt::Display for CreateJobError {
1253 #[allow(unused_variables)]
1254 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1255 match *self {
1256 CreateJobError::ClusterLimitExceeded(ref cause) => write!(f, "{}", cause),
1257 CreateJobError::Ec2RequestFailed(ref cause) => write!(f, "{}", cause),
1258 CreateJobError::InvalidInputCombination(ref cause) => write!(f, "{}", cause),
1259 CreateJobError::InvalidResource(ref cause) => write!(f, "{}", cause),
1260 CreateJobError::KMSRequestFailed(ref cause) => write!(f, "{}", cause),
1261 }
1262 }
1263}
1264impl Error for CreateJobError {}
1265#[derive(Debug, PartialEq)]
1267pub enum DescribeAddressError {
1268 InvalidResource(String),
1270}
1271
1272impl DescribeAddressError {
1273 pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DescribeAddressError> {
1274 if let Some(err) = proto::json::Error::parse(&res) {
1275 match err.typ.as_str() {
1276 "InvalidResourceException" => {
1277 return RusotoError::Service(DescribeAddressError::InvalidResource(err.msg))
1278 }
1279 "ValidationException" => return RusotoError::Validation(err.msg),
1280 _ => {}
1281 }
1282 }
1283 RusotoError::Unknown(res)
1284 }
1285}
1286impl fmt::Display for DescribeAddressError {
1287 #[allow(unused_variables)]
1288 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1289 match *self {
1290 DescribeAddressError::InvalidResource(ref cause) => write!(f, "{}", cause),
1291 }
1292 }
1293}
1294impl Error for DescribeAddressError {}
1295#[derive(Debug, PartialEq)]
1297pub enum DescribeAddressesError {
1298 InvalidNextToken(String),
1300 InvalidResource(String),
1302}
1303
1304impl DescribeAddressesError {
1305 pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DescribeAddressesError> {
1306 if let Some(err) = proto::json::Error::parse(&res) {
1307 match err.typ.as_str() {
1308 "InvalidNextTokenException" => {
1309 return RusotoError::Service(DescribeAddressesError::InvalidNextToken(err.msg))
1310 }
1311 "InvalidResourceException" => {
1312 return RusotoError::Service(DescribeAddressesError::InvalidResource(err.msg))
1313 }
1314 "ValidationException" => return RusotoError::Validation(err.msg),
1315 _ => {}
1316 }
1317 }
1318 RusotoError::Unknown(res)
1319 }
1320}
1321impl fmt::Display for DescribeAddressesError {
1322 #[allow(unused_variables)]
1323 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1324 match *self {
1325 DescribeAddressesError::InvalidNextToken(ref cause) => write!(f, "{}", cause),
1326 DescribeAddressesError::InvalidResource(ref cause) => write!(f, "{}", cause),
1327 }
1328 }
1329}
1330impl Error for DescribeAddressesError {}
1331#[derive(Debug, PartialEq)]
1333pub enum DescribeClusterError {
1334 InvalidResource(String),
1336}
1337
1338impl DescribeClusterError {
1339 pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DescribeClusterError> {
1340 if let Some(err) = proto::json::Error::parse(&res) {
1341 match err.typ.as_str() {
1342 "InvalidResourceException" => {
1343 return RusotoError::Service(DescribeClusterError::InvalidResource(err.msg))
1344 }
1345 "ValidationException" => return RusotoError::Validation(err.msg),
1346 _ => {}
1347 }
1348 }
1349 RusotoError::Unknown(res)
1350 }
1351}
1352impl fmt::Display for DescribeClusterError {
1353 #[allow(unused_variables)]
1354 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1355 match *self {
1356 DescribeClusterError::InvalidResource(ref cause) => write!(f, "{}", cause),
1357 }
1358 }
1359}
1360impl Error for DescribeClusterError {}
1361#[derive(Debug, PartialEq)]
1363pub enum DescribeJobError {
1364 InvalidResource(String),
1366}
1367
1368impl DescribeJobError {
1369 pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DescribeJobError> {
1370 if let Some(err) = proto::json::Error::parse(&res) {
1371 match err.typ.as_str() {
1372 "InvalidResourceException" => {
1373 return RusotoError::Service(DescribeJobError::InvalidResource(err.msg))
1374 }
1375 "ValidationException" => return RusotoError::Validation(err.msg),
1376 _ => {}
1377 }
1378 }
1379 RusotoError::Unknown(res)
1380 }
1381}
1382impl fmt::Display for DescribeJobError {
1383 #[allow(unused_variables)]
1384 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1385 match *self {
1386 DescribeJobError::InvalidResource(ref cause) => write!(f, "{}", cause),
1387 }
1388 }
1389}
1390impl Error for DescribeJobError {}
1391#[derive(Debug, PartialEq)]
1393pub enum GetJobManifestError {
1394 InvalidJobState(String),
1396 InvalidResource(String),
1398}
1399
1400impl GetJobManifestError {
1401 pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetJobManifestError> {
1402 if let Some(err) = proto::json::Error::parse(&res) {
1403 match err.typ.as_str() {
1404 "InvalidJobStateException" => {
1405 return RusotoError::Service(GetJobManifestError::InvalidJobState(err.msg))
1406 }
1407 "InvalidResourceException" => {
1408 return RusotoError::Service(GetJobManifestError::InvalidResource(err.msg))
1409 }
1410 "ValidationException" => return RusotoError::Validation(err.msg),
1411 _ => {}
1412 }
1413 }
1414 RusotoError::Unknown(res)
1415 }
1416}
1417impl fmt::Display for GetJobManifestError {
1418 #[allow(unused_variables)]
1419 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1420 match *self {
1421 GetJobManifestError::InvalidJobState(ref cause) => write!(f, "{}", cause),
1422 GetJobManifestError::InvalidResource(ref cause) => write!(f, "{}", cause),
1423 }
1424 }
1425}
1426impl Error for GetJobManifestError {}
1427#[derive(Debug, PartialEq)]
1429pub enum GetJobUnlockCodeError {
1430 InvalidJobState(String),
1432 InvalidResource(String),
1434}
1435
1436impl GetJobUnlockCodeError {
1437 pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetJobUnlockCodeError> {
1438 if let Some(err) = proto::json::Error::parse(&res) {
1439 match err.typ.as_str() {
1440 "InvalidJobStateException" => {
1441 return RusotoError::Service(GetJobUnlockCodeError::InvalidJobState(err.msg))
1442 }
1443 "InvalidResourceException" => {
1444 return RusotoError::Service(GetJobUnlockCodeError::InvalidResource(err.msg))
1445 }
1446 "ValidationException" => return RusotoError::Validation(err.msg),
1447 _ => {}
1448 }
1449 }
1450 RusotoError::Unknown(res)
1451 }
1452}
1453impl fmt::Display for GetJobUnlockCodeError {
1454 #[allow(unused_variables)]
1455 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1456 match *self {
1457 GetJobUnlockCodeError::InvalidJobState(ref cause) => write!(f, "{}", cause),
1458 GetJobUnlockCodeError::InvalidResource(ref cause) => write!(f, "{}", cause),
1459 }
1460 }
1461}
1462impl Error for GetJobUnlockCodeError {}
1463#[derive(Debug, PartialEq)]
1465pub enum GetSnowballUsageError {}
1466
1467impl GetSnowballUsageError {
1468 pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetSnowballUsageError> {
1469 if let Some(err) = proto::json::Error::parse(&res) {
1470 match err.typ.as_str() {
1471 "ValidationException" => return RusotoError::Validation(err.msg),
1472 _ => {}
1473 }
1474 }
1475 RusotoError::Unknown(res)
1476 }
1477}
1478impl fmt::Display for GetSnowballUsageError {
1479 #[allow(unused_variables)]
1480 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1481 match *self {}
1482 }
1483}
1484impl Error for GetSnowballUsageError {}
1485#[derive(Debug, PartialEq)]
1487pub enum GetSoftwareUpdatesError {
1488 InvalidJobState(String),
1490 InvalidResource(String),
1492}
1493
1494impl GetSoftwareUpdatesError {
1495 pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetSoftwareUpdatesError> {
1496 if let Some(err) = proto::json::Error::parse(&res) {
1497 match err.typ.as_str() {
1498 "InvalidJobStateException" => {
1499 return RusotoError::Service(GetSoftwareUpdatesError::InvalidJobState(err.msg))
1500 }
1501 "InvalidResourceException" => {
1502 return RusotoError::Service(GetSoftwareUpdatesError::InvalidResource(err.msg))
1503 }
1504 "ValidationException" => return RusotoError::Validation(err.msg),
1505 _ => {}
1506 }
1507 }
1508 RusotoError::Unknown(res)
1509 }
1510}
1511impl fmt::Display for GetSoftwareUpdatesError {
1512 #[allow(unused_variables)]
1513 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1514 match *self {
1515 GetSoftwareUpdatesError::InvalidJobState(ref cause) => write!(f, "{}", cause),
1516 GetSoftwareUpdatesError::InvalidResource(ref cause) => write!(f, "{}", cause),
1517 }
1518 }
1519}
1520impl Error for GetSoftwareUpdatesError {}
1521#[derive(Debug, PartialEq)]
1523pub enum ListClusterJobsError {
1524 InvalidNextToken(String),
1526 InvalidResource(String),
1528}
1529
1530impl ListClusterJobsError {
1531 pub fn from_response(res: BufferedHttpResponse) -> RusotoError<ListClusterJobsError> {
1532 if let Some(err) = proto::json::Error::parse(&res) {
1533 match err.typ.as_str() {
1534 "InvalidNextTokenException" => {
1535 return RusotoError::Service(ListClusterJobsError::InvalidNextToken(err.msg))
1536 }
1537 "InvalidResourceException" => {
1538 return RusotoError::Service(ListClusterJobsError::InvalidResource(err.msg))
1539 }
1540 "ValidationException" => return RusotoError::Validation(err.msg),
1541 _ => {}
1542 }
1543 }
1544 RusotoError::Unknown(res)
1545 }
1546}
1547impl fmt::Display for ListClusterJobsError {
1548 #[allow(unused_variables)]
1549 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1550 match *self {
1551 ListClusterJobsError::InvalidNextToken(ref cause) => write!(f, "{}", cause),
1552 ListClusterJobsError::InvalidResource(ref cause) => write!(f, "{}", cause),
1553 }
1554 }
1555}
1556impl Error for ListClusterJobsError {}
1557#[derive(Debug, PartialEq)]
1559pub enum ListClustersError {
1560 InvalidNextToken(String),
1562}
1563
1564impl ListClustersError {
1565 pub fn from_response(res: BufferedHttpResponse) -> RusotoError<ListClustersError> {
1566 if let Some(err) = proto::json::Error::parse(&res) {
1567 match err.typ.as_str() {
1568 "InvalidNextTokenException" => {
1569 return RusotoError::Service(ListClustersError::InvalidNextToken(err.msg))
1570 }
1571 "ValidationException" => return RusotoError::Validation(err.msg),
1572 _ => {}
1573 }
1574 }
1575 RusotoError::Unknown(res)
1576 }
1577}
1578impl fmt::Display for ListClustersError {
1579 #[allow(unused_variables)]
1580 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1581 match *self {
1582 ListClustersError::InvalidNextToken(ref cause) => write!(f, "{}", cause),
1583 }
1584 }
1585}
1586impl Error for ListClustersError {}
1587#[derive(Debug, PartialEq)]
1589pub enum ListCompatibleImagesError {
1590 Ec2RequestFailed(String),
1592 InvalidNextToken(String),
1594}
1595
1596impl ListCompatibleImagesError {
1597 pub fn from_response(res: BufferedHttpResponse) -> RusotoError<ListCompatibleImagesError> {
1598 if let Some(err) = proto::json::Error::parse(&res) {
1599 match err.typ.as_str() {
1600 "Ec2RequestFailedException" => {
1601 return RusotoError::Service(ListCompatibleImagesError::Ec2RequestFailed(
1602 err.msg,
1603 ))
1604 }
1605 "InvalidNextTokenException" => {
1606 return RusotoError::Service(ListCompatibleImagesError::InvalidNextToken(
1607 err.msg,
1608 ))
1609 }
1610 "ValidationException" => return RusotoError::Validation(err.msg),
1611 _ => {}
1612 }
1613 }
1614 RusotoError::Unknown(res)
1615 }
1616}
1617impl fmt::Display for ListCompatibleImagesError {
1618 #[allow(unused_variables)]
1619 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1620 match *self {
1621 ListCompatibleImagesError::Ec2RequestFailed(ref cause) => write!(f, "{}", cause),
1622 ListCompatibleImagesError::InvalidNextToken(ref cause) => write!(f, "{}", cause),
1623 }
1624 }
1625}
1626impl Error for ListCompatibleImagesError {}
1627#[derive(Debug, PartialEq)]
1629pub enum ListJobsError {
1630 InvalidNextToken(String),
1632}
1633
1634impl ListJobsError {
1635 pub fn from_response(res: BufferedHttpResponse) -> RusotoError<ListJobsError> {
1636 if let Some(err) = proto::json::Error::parse(&res) {
1637 match err.typ.as_str() {
1638 "InvalidNextTokenException" => {
1639 return RusotoError::Service(ListJobsError::InvalidNextToken(err.msg))
1640 }
1641 "ValidationException" => return RusotoError::Validation(err.msg),
1642 _ => {}
1643 }
1644 }
1645 RusotoError::Unknown(res)
1646 }
1647}
1648impl fmt::Display for ListJobsError {
1649 #[allow(unused_variables)]
1650 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1651 match *self {
1652 ListJobsError::InvalidNextToken(ref cause) => write!(f, "{}", cause),
1653 }
1654 }
1655}
1656impl Error for ListJobsError {}
1657#[derive(Debug, PartialEq)]
1659pub enum UpdateClusterError {
1660 Ec2RequestFailed(String),
1662 InvalidInputCombination(String),
1664 InvalidJobState(String),
1666 InvalidResource(String),
1668 KMSRequestFailed(String),
1670}
1671
1672impl UpdateClusterError {
1673 pub fn from_response(res: BufferedHttpResponse) -> RusotoError<UpdateClusterError> {
1674 if let Some(err) = proto::json::Error::parse(&res) {
1675 match err.typ.as_str() {
1676 "Ec2RequestFailedException" => {
1677 return RusotoError::Service(UpdateClusterError::Ec2RequestFailed(err.msg))
1678 }
1679 "InvalidInputCombinationException" => {
1680 return RusotoError::Service(UpdateClusterError::InvalidInputCombination(
1681 err.msg,
1682 ))
1683 }
1684 "InvalidJobStateException" => {
1685 return RusotoError::Service(UpdateClusterError::InvalidJobState(err.msg))
1686 }
1687 "InvalidResourceException" => {
1688 return RusotoError::Service(UpdateClusterError::InvalidResource(err.msg))
1689 }
1690 "KMSRequestFailedException" => {
1691 return RusotoError::Service(UpdateClusterError::KMSRequestFailed(err.msg))
1692 }
1693 "ValidationException" => return RusotoError::Validation(err.msg),
1694 _ => {}
1695 }
1696 }
1697 RusotoError::Unknown(res)
1698 }
1699}
1700impl fmt::Display for UpdateClusterError {
1701 #[allow(unused_variables)]
1702 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1703 match *self {
1704 UpdateClusterError::Ec2RequestFailed(ref cause) => write!(f, "{}", cause),
1705 UpdateClusterError::InvalidInputCombination(ref cause) => write!(f, "{}", cause),
1706 UpdateClusterError::InvalidJobState(ref cause) => write!(f, "{}", cause),
1707 UpdateClusterError::InvalidResource(ref cause) => write!(f, "{}", cause),
1708 UpdateClusterError::KMSRequestFailed(ref cause) => write!(f, "{}", cause),
1709 }
1710 }
1711}
1712impl Error for UpdateClusterError {}
1713#[derive(Debug, PartialEq)]
1715pub enum UpdateJobError {
1716 ClusterLimitExceeded(String),
1718 Ec2RequestFailed(String),
1720 InvalidInputCombination(String),
1722 InvalidJobState(String),
1724 InvalidResource(String),
1726 KMSRequestFailed(String),
1728}
1729
1730impl UpdateJobError {
1731 pub fn from_response(res: BufferedHttpResponse) -> RusotoError<UpdateJobError> {
1732 if let Some(err) = proto::json::Error::parse(&res) {
1733 match err.typ.as_str() {
1734 "ClusterLimitExceededException" => {
1735 return RusotoError::Service(UpdateJobError::ClusterLimitExceeded(err.msg))
1736 }
1737 "Ec2RequestFailedException" => {
1738 return RusotoError::Service(UpdateJobError::Ec2RequestFailed(err.msg))
1739 }
1740 "InvalidInputCombinationException" => {
1741 return RusotoError::Service(UpdateJobError::InvalidInputCombination(err.msg))
1742 }
1743 "InvalidJobStateException" => {
1744 return RusotoError::Service(UpdateJobError::InvalidJobState(err.msg))
1745 }
1746 "InvalidResourceException" => {
1747 return RusotoError::Service(UpdateJobError::InvalidResource(err.msg))
1748 }
1749 "KMSRequestFailedException" => {
1750 return RusotoError::Service(UpdateJobError::KMSRequestFailed(err.msg))
1751 }
1752 "ValidationException" => return RusotoError::Validation(err.msg),
1753 _ => {}
1754 }
1755 }
1756 RusotoError::Unknown(res)
1757 }
1758}
1759impl fmt::Display for UpdateJobError {
1760 #[allow(unused_variables)]
1761 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1762 match *self {
1763 UpdateJobError::ClusterLimitExceeded(ref cause) => write!(f, "{}", cause),
1764 UpdateJobError::Ec2RequestFailed(ref cause) => write!(f, "{}", cause),
1765 UpdateJobError::InvalidInputCombination(ref cause) => write!(f, "{}", cause),
1766 UpdateJobError::InvalidJobState(ref cause) => write!(f, "{}", cause),
1767 UpdateJobError::InvalidResource(ref cause) => write!(f, "{}", cause),
1768 UpdateJobError::KMSRequestFailed(ref cause) => write!(f, "{}", cause),
1769 }
1770 }
1771}
1772impl Error for UpdateJobError {}
1773#[async_trait]
1775pub trait Snowball {
1776 async fn cancel_cluster(
1778 &self,
1779 input: CancelClusterRequest,
1780 ) -> Result<CancelClusterResult, RusotoError<CancelClusterError>>;
1781
1782 async fn cancel_job(
1784 &self,
1785 input: CancelJobRequest,
1786 ) -> Result<CancelJobResult, RusotoError<CancelJobError>>;
1787
1788 async fn create_address(
1790 &self,
1791 input: CreateAddressRequest,
1792 ) -> Result<CreateAddressResult, RusotoError<CreateAddressError>>;
1793
1794 async fn create_cluster(
1796 &self,
1797 input: CreateClusterRequest,
1798 ) -> Result<CreateClusterResult, RusotoError<CreateClusterError>>;
1799
1800 async fn create_job(
1802 &self,
1803 input: CreateJobRequest,
1804 ) -> Result<CreateJobResult, RusotoError<CreateJobError>>;
1805
1806 async fn describe_address(
1808 &self,
1809 input: DescribeAddressRequest,
1810 ) -> Result<DescribeAddressResult, RusotoError<DescribeAddressError>>;
1811
1812 async fn describe_addresses(
1814 &self,
1815 input: DescribeAddressesRequest,
1816 ) -> Result<DescribeAddressesResult, RusotoError<DescribeAddressesError>>;
1817
1818 async fn describe_cluster(
1820 &self,
1821 input: DescribeClusterRequest,
1822 ) -> Result<DescribeClusterResult, RusotoError<DescribeClusterError>>;
1823
1824 async fn describe_job(
1826 &self,
1827 input: DescribeJobRequest,
1828 ) -> Result<DescribeJobResult, RusotoError<DescribeJobError>>;
1829
1830 async fn get_job_manifest(
1832 &self,
1833 input: GetJobManifestRequest,
1834 ) -> Result<GetJobManifestResult, RusotoError<GetJobManifestError>>;
1835
1836 async fn get_job_unlock_code(
1838 &self,
1839 input: GetJobUnlockCodeRequest,
1840 ) -> Result<GetJobUnlockCodeResult, RusotoError<GetJobUnlockCodeError>>;
1841
1842 async fn get_snowball_usage(
1844 &self,
1845 ) -> Result<GetSnowballUsageResult, RusotoError<GetSnowballUsageError>>;
1846
1847 async fn get_software_updates(
1849 &self,
1850 input: GetSoftwareUpdatesRequest,
1851 ) -> Result<GetSoftwareUpdatesResult, RusotoError<GetSoftwareUpdatesError>>;
1852
1853 async fn list_cluster_jobs(
1855 &self,
1856 input: ListClusterJobsRequest,
1857 ) -> Result<ListClusterJobsResult, RusotoError<ListClusterJobsError>>;
1858
1859 async fn list_clusters(
1861 &self,
1862 input: ListClustersRequest,
1863 ) -> Result<ListClustersResult, RusotoError<ListClustersError>>;
1864
1865 async fn list_compatible_images(
1867 &self,
1868 input: ListCompatibleImagesRequest,
1869 ) -> Result<ListCompatibleImagesResult, RusotoError<ListCompatibleImagesError>>;
1870
1871 async fn list_jobs(
1873 &self,
1874 input: ListJobsRequest,
1875 ) -> Result<ListJobsResult, RusotoError<ListJobsError>>;
1876
1877 async fn update_cluster(
1879 &self,
1880 input: UpdateClusterRequest,
1881 ) -> Result<UpdateClusterResult, RusotoError<UpdateClusterError>>;
1882
1883 async fn update_job(
1885 &self,
1886 input: UpdateJobRequest,
1887 ) -> Result<UpdateJobResult, RusotoError<UpdateJobError>>;
1888}
1889#[derive(Clone)]
1891pub struct SnowballClient {
1892 client: Client,
1893 region: region::Region,
1894}
1895
1896impl SnowballClient {
1897 pub fn new(region: region::Region) -> SnowballClient {
1901 SnowballClient {
1902 client: Client::shared(),
1903 region,
1904 }
1905 }
1906
1907 pub fn new_with<P, D>(
1908 request_dispatcher: D,
1909 credentials_provider: P,
1910 region: region::Region,
1911 ) -> SnowballClient
1912 where
1913 P: ProvideAwsCredentials + Send + Sync + 'static,
1914 D: DispatchSignedRequest + Send + Sync + 'static,
1915 {
1916 SnowballClient {
1917 client: Client::new_with(credentials_provider, request_dispatcher),
1918 region,
1919 }
1920 }
1921
1922 pub fn new_with_client(client: Client, region: region::Region) -> SnowballClient {
1923 SnowballClient { client, region }
1924 }
1925}
1926
1927#[async_trait]
1928impl Snowball for SnowballClient {
1929 async fn cancel_cluster(
1931 &self,
1932 input: CancelClusterRequest,
1933 ) -> Result<CancelClusterResult, RusotoError<CancelClusterError>> {
1934 let mut request = self.new_signed_request("POST", "/");
1935 request.add_header(
1936 "x-amz-target",
1937 "AWSIESnowballJobManagementService.CancelCluster",
1938 );
1939 let encoded = serde_json::to_string(&input).unwrap();
1940 request.set_payload(Some(encoded));
1941
1942 let response = self
1943 .sign_and_dispatch(request, CancelClusterError::from_response)
1944 .await?;
1945 let mut response = response;
1946 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
1947 proto::json::ResponsePayload::new(&response).deserialize::<CancelClusterResult, _>()
1948 }
1949
1950 async fn cancel_job(
1952 &self,
1953 input: CancelJobRequest,
1954 ) -> Result<CancelJobResult, RusotoError<CancelJobError>> {
1955 let mut request = self.new_signed_request("POST", "/");
1956 request.add_header(
1957 "x-amz-target",
1958 "AWSIESnowballJobManagementService.CancelJob",
1959 );
1960 let encoded = serde_json::to_string(&input).unwrap();
1961 request.set_payload(Some(encoded));
1962
1963 let response = self
1964 .sign_and_dispatch(request, CancelJobError::from_response)
1965 .await?;
1966 let mut response = response;
1967 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
1968 proto::json::ResponsePayload::new(&response).deserialize::<CancelJobResult, _>()
1969 }
1970
1971 async fn create_address(
1973 &self,
1974 input: CreateAddressRequest,
1975 ) -> Result<CreateAddressResult, RusotoError<CreateAddressError>> {
1976 let mut request = self.new_signed_request("POST", "/");
1977 request.add_header(
1978 "x-amz-target",
1979 "AWSIESnowballJobManagementService.CreateAddress",
1980 );
1981 let encoded = serde_json::to_string(&input).unwrap();
1982 request.set_payload(Some(encoded));
1983
1984 let response = self
1985 .sign_and_dispatch(request, CreateAddressError::from_response)
1986 .await?;
1987 let mut response = response;
1988 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
1989 proto::json::ResponsePayload::new(&response).deserialize::<CreateAddressResult, _>()
1990 }
1991
1992 async fn create_cluster(
1994 &self,
1995 input: CreateClusterRequest,
1996 ) -> Result<CreateClusterResult, RusotoError<CreateClusterError>> {
1997 let mut request = self.new_signed_request("POST", "/");
1998 request.add_header(
1999 "x-amz-target",
2000 "AWSIESnowballJobManagementService.CreateCluster",
2001 );
2002 let encoded = serde_json::to_string(&input).unwrap();
2003 request.set_payload(Some(encoded));
2004
2005 let response = self
2006 .sign_and_dispatch(request, CreateClusterError::from_response)
2007 .await?;
2008 let mut response = response;
2009 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
2010 proto::json::ResponsePayload::new(&response).deserialize::<CreateClusterResult, _>()
2011 }
2012
2013 async fn create_job(
2015 &self,
2016 input: CreateJobRequest,
2017 ) -> Result<CreateJobResult, RusotoError<CreateJobError>> {
2018 let mut request = self.new_signed_request("POST", "/");
2019 request.add_header(
2020 "x-amz-target",
2021 "AWSIESnowballJobManagementService.CreateJob",
2022 );
2023 let encoded = serde_json::to_string(&input).unwrap();
2024 request.set_payload(Some(encoded));
2025
2026 let response = self
2027 .sign_and_dispatch(request, CreateJobError::from_response)
2028 .await?;
2029 let mut response = response;
2030 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
2031 proto::json::ResponsePayload::new(&response).deserialize::<CreateJobResult, _>()
2032 }
2033
2034 async fn describe_address(
2036 &self,
2037 input: DescribeAddressRequest,
2038 ) -> Result<DescribeAddressResult, RusotoError<DescribeAddressError>> {
2039 let mut request = self.new_signed_request("POST", "/");
2040 request.add_header(
2041 "x-amz-target",
2042 "AWSIESnowballJobManagementService.DescribeAddress",
2043 );
2044 let encoded = serde_json::to_string(&input).unwrap();
2045 request.set_payload(Some(encoded));
2046
2047 let response = self
2048 .sign_and_dispatch(request, DescribeAddressError::from_response)
2049 .await?;
2050 let mut response = response;
2051 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
2052 proto::json::ResponsePayload::new(&response).deserialize::<DescribeAddressResult, _>()
2053 }
2054
2055 async fn describe_addresses(
2057 &self,
2058 input: DescribeAddressesRequest,
2059 ) -> Result<DescribeAddressesResult, RusotoError<DescribeAddressesError>> {
2060 let mut request = self.new_signed_request("POST", "/");
2061 request.add_header(
2062 "x-amz-target",
2063 "AWSIESnowballJobManagementService.DescribeAddresses",
2064 );
2065 let encoded = serde_json::to_string(&input).unwrap();
2066 request.set_payload(Some(encoded));
2067
2068 let response = self
2069 .sign_and_dispatch(request, DescribeAddressesError::from_response)
2070 .await?;
2071 let mut response = response;
2072 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
2073 proto::json::ResponsePayload::new(&response).deserialize::<DescribeAddressesResult, _>()
2074 }
2075
2076 async fn describe_cluster(
2078 &self,
2079 input: DescribeClusterRequest,
2080 ) -> Result<DescribeClusterResult, RusotoError<DescribeClusterError>> {
2081 let mut request = self.new_signed_request("POST", "/");
2082 request.add_header(
2083 "x-amz-target",
2084 "AWSIESnowballJobManagementService.DescribeCluster",
2085 );
2086 let encoded = serde_json::to_string(&input).unwrap();
2087 request.set_payload(Some(encoded));
2088
2089 let response = self
2090 .sign_and_dispatch(request, DescribeClusterError::from_response)
2091 .await?;
2092 let mut response = response;
2093 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
2094 proto::json::ResponsePayload::new(&response).deserialize::<DescribeClusterResult, _>()
2095 }
2096
2097 async fn describe_job(
2099 &self,
2100 input: DescribeJobRequest,
2101 ) -> Result<DescribeJobResult, RusotoError<DescribeJobError>> {
2102 let mut request = self.new_signed_request("POST", "/");
2103 request.add_header(
2104 "x-amz-target",
2105 "AWSIESnowballJobManagementService.DescribeJob",
2106 );
2107 let encoded = serde_json::to_string(&input).unwrap();
2108 request.set_payload(Some(encoded));
2109
2110 let response = self
2111 .sign_and_dispatch(request, DescribeJobError::from_response)
2112 .await?;
2113 let mut response = response;
2114 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
2115 proto::json::ResponsePayload::new(&response).deserialize::<DescribeJobResult, _>()
2116 }
2117
2118 async fn get_job_manifest(
2120 &self,
2121 input: GetJobManifestRequest,
2122 ) -> Result<GetJobManifestResult, RusotoError<GetJobManifestError>> {
2123 let mut request = self.new_signed_request("POST", "/");
2124 request.add_header(
2125 "x-amz-target",
2126 "AWSIESnowballJobManagementService.GetJobManifest",
2127 );
2128 let encoded = serde_json::to_string(&input).unwrap();
2129 request.set_payload(Some(encoded));
2130
2131 let response = self
2132 .sign_and_dispatch(request, GetJobManifestError::from_response)
2133 .await?;
2134 let mut response = response;
2135 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
2136 proto::json::ResponsePayload::new(&response).deserialize::<GetJobManifestResult, _>()
2137 }
2138
2139 async fn get_job_unlock_code(
2141 &self,
2142 input: GetJobUnlockCodeRequest,
2143 ) -> Result<GetJobUnlockCodeResult, RusotoError<GetJobUnlockCodeError>> {
2144 let mut request = self.new_signed_request("POST", "/");
2145 request.add_header(
2146 "x-amz-target",
2147 "AWSIESnowballJobManagementService.GetJobUnlockCode",
2148 );
2149 let encoded = serde_json::to_string(&input).unwrap();
2150 request.set_payload(Some(encoded));
2151
2152 let response = self
2153 .sign_and_dispatch(request, GetJobUnlockCodeError::from_response)
2154 .await?;
2155 let mut response = response;
2156 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
2157 proto::json::ResponsePayload::new(&response).deserialize::<GetJobUnlockCodeResult, _>()
2158 }
2159
2160 async fn get_snowball_usage(
2162 &self,
2163 ) -> Result<GetSnowballUsageResult, RusotoError<GetSnowballUsageError>> {
2164 let mut request = self.new_signed_request("POST", "/");
2165 request.add_header(
2166 "x-amz-target",
2167 "AWSIESnowballJobManagementService.GetSnowballUsage",
2168 );
2169 request.set_payload(Some(bytes::Bytes::from_static(b"{}")));
2170
2171 let response = self
2172 .sign_and_dispatch(request, GetSnowballUsageError::from_response)
2173 .await?;
2174 let mut response = response;
2175 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
2176 proto::json::ResponsePayload::new(&response).deserialize::<GetSnowballUsageResult, _>()
2177 }
2178
2179 async fn get_software_updates(
2181 &self,
2182 input: GetSoftwareUpdatesRequest,
2183 ) -> Result<GetSoftwareUpdatesResult, RusotoError<GetSoftwareUpdatesError>> {
2184 let mut request = self.new_signed_request("POST", "/");
2185 request.add_header(
2186 "x-amz-target",
2187 "AWSIESnowballJobManagementService.GetSoftwareUpdates",
2188 );
2189 let encoded = serde_json::to_string(&input).unwrap();
2190 request.set_payload(Some(encoded));
2191
2192 let response = self
2193 .sign_and_dispatch(request, GetSoftwareUpdatesError::from_response)
2194 .await?;
2195 let mut response = response;
2196 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
2197 proto::json::ResponsePayload::new(&response).deserialize::<GetSoftwareUpdatesResult, _>()
2198 }
2199
2200 async fn list_cluster_jobs(
2202 &self,
2203 input: ListClusterJobsRequest,
2204 ) -> Result<ListClusterJobsResult, RusotoError<ListClusterJobsError>> {
2205 let mut request = self.new_signed_request("POST", "/");
2206 request.add_header(
2207 "x-amz-target",
2208 "AWSIESnowballJobManagementService.ListClusterJobs",
2209 );
2210 let encoded = serde_json::to_string(&input).unwrap();
2211 request.set_payload(Some(encoded));
2212
2213 let response = self
2214 .sign_and_dispatch(request, ListClusterJobsError::from_response)
2215 .await?;
2216 let mut response = response;
2217 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
2218 proto::json::ResponsePayload::new(&response).deserialize::<ListClusterJobsResult, _>()
2219 }
2220
2221 async fn list_clusters(
2223 &self,
2224 input: ListClustersRequest,
2225 ) -> Result<ListClustersResult, RusotoError<ListClustersError>> {
2226 let mut request = self.new_signed_request("POST", "/");
2227 request.add_header(
2228 "x-amz-target",
2229 "AWSIESnowballJobManagementService.ListClusters",
2230 );
2231 let encoded = serde_json::to_string(&input).unwrap();
2232 request.set_payload(Some(encoded));
2233
2234 let response = self
2235 .sign_and_dispatch(request, ListClustersError::from_response)
2236 .await?;
2237 let mut response = response;
2238 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
2239 proto::json::ResponsePayload::new(&response).deserialize::<ListClustersResult, _>()
2240 }
2241
2242 async fn list_compatible_images(
2244 &self,
2245 input: ListCompatibleImagesRequest,
2246 ) -> Result<ListCompatibleImagesResult, RusotoError<ListCompatibleImagesError>> {
2247 let mut request = self.new_signed_request("POST", "/");
2248 request.add_header(
2249 "x-amz-target",
2250 "AWSIESnowballJobManagementService.ListCompatibleImages",
2251 );
2252 let encoded = serde_json::to_string(&input).unwrap();
2253 request.set_payload(Some(encoded));
2254
2255 let response = self
2256 .sign_and_dispatch(request, ListCompatibleImagesError::from_response)
2257 .await?;
2258 let mut response = response;
2259 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
2260 proto::json::ResponsePayload::new(&response).deserialize::<ListCompatibleImagesResult, _>()
2261 }
2262
2263 async fn list_jobs(
2265 &self,
2266 input: ListJobsRequest,
2267 ) -> Result<ListJobsResult, RusotoError<ListJobsError>> {
2268 let mut request = self.new_signed_request("POST", "/");
2269 request.add_header("x-amz-target", "AWSIESnowballJobManagementService.ListJobs");
2270 let encoded = serde_json::to_string(&input).unwrap();
2271 request.set_payload(Some(encoded));
2272
2273 let response = self
2274 .sign_and_dispatch(request, ListJobsError::from_response)
2275 .await?;
2276 let mut response = response;
2277 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
2278 proto::json::ResponsePayload::new(&response).deserialize::<ListJobsResult, _>()
2279 }
2280
2281 async fn update_cluster(
2283 &self,
2284 input: UpdateClusterRequest,
2285 ) -> Result<UpdateClusterResult, RusotoError<UpdateClusterError>> {
2286 let mut request = self.new_signed_request("POST", "/");
2287 request.add_header(
2288 "x-amz-target",
2289 "AWSIESnowballJobManagementService.UpdateCluster",
2290 );
2291 let encoded = serde_json::to_string(&input).unwrap();
2292 request.set_payload(Some(encoded));
2293
2294 let response = self
2295 .sign_and_dispatch(request, UpdateClusterError::from_response)
2296 .await?;
2297 let mut response = response;
2298 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
2299 proto::json::ResponsePayload::new(&response).deserialize::<UpdateClusterResult, _>()
2300 }
2301
2302 async fn update_job(
2304 &self,
2305 input: UpdateJobRequest,
2306 ) -> Result<UpdateJobResult, RusotoError<UpdateJobError>> {
2307 let mut request = self.new_signed_request("POST", "/");
2308 request.add_header(
2309 "x-amz-target",
2310 "AWSIESnowballJobManagementService.UpdateJob",
2311 );
2312 let encoded = serde_json::to_string(&input).unwrap();
2313 request.set_payload(Some(encoded));
2314
2315 let response = self
2316 .sign_and_dispatch(request, UpdateJobError::from_response)
2317 .await?;
2318 let mut response = response;
2319 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
2320 proto::json::ResponsePayload::new(&response).deserialize::<UpdateJobResult, _>()
2321 }
2322}