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::param::{Params, ServiceParams};
23use rusoto_core::proto;
24use rusoto_core::signature::SignedRequest;
25#[allow(unused_imports)]
26use serde::{Deserialize, Serialize};
27use serde_json;
28#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
30#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
31pub struct BlacklistEntry {
32 #[serde(rename = "Description")]
34 #[serde(skip_serializing_if = "Option::is_none")]
35 pub description: Option<String>,
36 #[serde(rename = "ListingTime")]
38 #[serde(skip_serializing_if = "Option::is_none")]
39 pub listing_time: Option<f64>,
40 #[serde(rename = "RblName")]
42 #[serde(skip_serializing_if = "Option::is_none")]
43 pub rbl_name: Option<String>,
44}
45
46#[derive(Clone, Debug, Default, PartialEq, Serialize)]
48#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
49pub struct Body {
50 #[serde(rename = "Html")]
52 #[serde(skip_serializing_if = "Option::is_none")]
53 pub html: Option<Content>,
54 #[serde(rename = "Text")]
56 #[serde(skip_serializing_if = "Option::is_none")]
57 pub text: Option<Content>,
58}
59
60#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
62pub struct CloudWatchDestination {
63 #[serde(rename = "DimensionConfigurations")]
65 pub dimension_configurations: Vec<CloudWatchDimensionConfiguration>,
66}
67
68#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
70pub struct CloudWatchDimensionConfiguration {
71 #[serde(rename = "DefaultDimensionValue")]
73 pub default_dimension_value: String,
74 #[serde(rename = "DimensionName")]
76 pub dimension_name: String,
77 #[serde(rename = "DimensionValueSource")]
79 pub dimension_value_source: String,
80}
81
82#[derive(Clone, Debug, Default, PartialEq, Serialize)]
84#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
85pub struct Content {
86 #[serde(rename = "Charset")]
88 #[serde(skip_serializing_if = "Option::is_none")]
89 pub charset: Option<String>,
90 #[serde(rename = "Data")]
92 pub data: String,
93}
94
95#[derive(Clone, Debug, Default, PartialEq, Serialize)]
97#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
98pub struct CreateConfigurationSetEventDestinationRequest {
99 #[serde(rename = "ConfigurationSetName")]
101 pub configuration_set_name: String,
102 #[serde(rename = "EventDestination")]
104 pub event_destination: EventDestinationDefinition,
105 #[serde(rename = "EventDestinationName")]
107 pub event_destination_name: String,
108}
109
110#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
112#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
113pub struct CreateConfigurationSetEventDestinationResponse {}
114
115#[derive(Clone, Debug, Default, PartialEq, Serialize)]
117#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
118pub struct CreateConfigurationSetRequest {
119 #[serde(rename = "ConfigurationSetName")]
121 pub configuration_set_name: String,
122 #[serde(rename = "DeliveryOptions")]
124 #[serde(skip_serializing_if = "Option::is_none")]
125 pub delivery_options: Option<DeliveryOptions>,
126 #[serde(rename = "ReputationOptions")]
128 #[serde(skip_serializing_if = "Option::is_none")]
129 pub reputation_options: Option<ReputationOptions>,
130 #[serde(rename = "SendingOptions")]
132 #[serde(skip_serializing_if = "Option::is_none")]
133 pub sending_options: Option<SendingOptions>,
134 #[serde(rename = "Tags")]
136 #[serde(skip_serializing_if = "Option::is_none")]
137 pub tags: Option<Vec<Tag>>,
138 #[serde(rename = "TrackingOptions")]
140 #[serde(skip_serializing_if = "Option::is_none")]
141 pub tracking_options: Option<TrackingOptions>,
142}
143
144#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
146#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
147pub struct CreateConfigurationSetResponse {}
148
149#[derive(Clone, Debug, Default, PartialEq, Serialize)]
151#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
152pub struct CreateDedicatedIpPoolRequest {
153 #[serde(rename = "PoolName")]
155 pub pool_name: String,
156 #[serde(rename = "Tags")]
158 #[serde(skip_serializing_if = "Option::is_none")]
159 pub tags: Option<Vec<Tag>>,
160}
161
162#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
164#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
165pub struct CreateDedicatedIpPoolResponse {}
166
167#[derive(Clone, Debug, Default, PartialEq, Serialize)]
169#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
170pub struct CreateDeliverabilityTestReportRequest {
171 #[serde(rename = "Content")]
173 pub content: EmailContent,
174 #[serde(rename = "FromEmailAddress")]
176 pub from_email_address: String,
177 #[serde(rename = "ReportName")]
179 #[serde(skip_serializing_if = "Option::is_none")]
180 pub report_name: Option<String>,
181 #[serde(rename = "Tags")]
183 #[serde(skip_serializing_if = "Option::is_none")]
184 pub tags: Option<Vec<Tag>>,
185}
186
187#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
189#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
190pub struct CreateDeliverabilityTestReportResponse {
191 #[serde(rename = "DeliverabilityTestStatus")]
193 pub deliverability_test_status: String,
194 #[serde(rename = "ReportId")]
196 pub report_id: String,
197}
198
199#[derive(Clone, Debug, Default, PartialEq, Serialize)]
201#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
202pub struct CreateEmailIdentityRequest {
203 #[serde(rename = "EmailIdentity")]
205 pub email_identity: String,
206 #[serde(rename = "Tags")]
208 #[serde(skip_serializing_if = "Option::is_none")]
209 pub tags: Option<Vec<Tag>>,
210}
211
212#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
214#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
215pub struct CreateEmailIdentityResponse {
216 #[serde(rename = "DkimAttributes")]
218 #[serde(skip_serializing_if = "Option::is_none")]
219 pub dkim_attributes: Option<DkimAttributes>,
220 #[serde(rename = "IdentityType")]
222 #[serde(skip_serializing_if = "Option::is_none")]
223 pub identity_type: Option<String>,
224 #[serde(rename = "VerifiedForSendingStatus")]
226 #[serde(skip_serializing_if = "Option::is_none")]
227 pub verified_for_sending_status: Option<bool>,
228}
229
230#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
232#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
233pub struct DailyVolume {
234 #[serde(rename = "DomainIspPlacements")]
236 #[serde(skip_serializing_if = "Option::is_none")]
237 pub domain_isp_placements: Option<Vec<DomainIspPlacement>>,
238 #[serde(rename = "StartDate")]
240 #[serde(skip_serializing_if = "Option::is_none")]
241 pub start_date: Option<f64>,
242 #[serde(rename = "VolumeStatistics")]
244 #[serde(skip_serializing_if = "Option::is_none")]
245 pub volume_statistics: Option<VolumeStatistics>,
246}
247
248#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
250#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
251pub struct DedicatedIp {
252 #[serde(rename = "Ip")]
254 pub ip: String,
255 #[serde(rename = "PoolName")]
257 #[serde(skip_serializing_if = "Option::is_none")]
258 pub pool_name: Option<String>,
259 #[serde(rename = "WarmupPercentage")]
261 pub warmup_percentage: i64,
262 #[serde(rename = "WarmupStatus")]
264 pub warmup_status: String,
265}
266
267#[derive(Clone, Debug, Default, PartialEq, Serialize)]
269#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
270pub struct DeleteConfigurationSetEventDestinationRequest {
271 #[serde(rename = "ConfigurationSetName")]
273 pub configuration_set_name: String,
274 #[serde(rename = "EventDestinationName")]
276 pub event_destination_name: String,
277}
278
279#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
281#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
282pub struct DeleteConfigurationSetEventDestinationResponse {}
283
284#[derive(Clone, Debug, Default, PartialEq, Serialize)]
286#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
287pub struct DeleteConfigurationSetRequest {
288 #[serde(rename = "ConfigurationSetName")]
290 pub configuration_set_name: String,
291}
292
293#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
295#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
296pub struct DeleteConfigurationSetResponse {}
297
298#[derive(Clone, Debug, Default, PartialEq, Serialize)]
300#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
301pub struct DeleteDedicatedIpPoolRequest {
302 #[serde(rename = "PoolName")]
304 pub pool_name: String,
305}
306
307#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
309#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
310pub struct DeleteDedicatedIpPoolResponse {}
311
312#[derive(Clone, Debug, Default, PartialEq, Serialize)]
314#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
315pub struct DeleteEmailIdentityRequest {
316 #[serde(rename = "EmailIdentity")]
318 pub email_identity: String,
319}
320
321#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
323#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
324pub struct DeleteEmailIdentityResponse {}
325
326#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
328#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
329pub struct DeliverabilityTestReport {
330 #[serde(rename = "CreateDate")]
332 #[serde(skip_serializing_if = "Option::is_none")]
333 pub create_date: Option<f64>,
334 #[serde(rename = "DeliverabilityTestStatus")]
336 #[serde(skip_serializing_if = "Option::is_none")]
337 pub deliverability_test_status: Option<String>,
338 #[serde(rename = "FromEmailAddress")]
340 #[serde(skip_serializing_if = "Option::is_none")]
341 pub from_email_address: Option<String>,
342 #[serde(rename = "ReportId")]
344 #[serde(skip_serializing_if = "Option::is_none")]
345 pub report_id: Option<String>,
346 #[serde(rename = "ReportName")]
348 #[serde(skip_serializing_if = "Option::is_none")]
349 pub report_name: Option<String>,
350 #[serde(rename = "Subject")]
352 #[serde(skip_serializing_if = "Option::is_none")]
353 pub subject: Option<String>,
354}
355
356#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
358pub struct DeliveryOptions {
359 #[serde(rename = "SendingPoolName")]
361 #[serde(skip_serializing_if = "Option::is_none")]
362 pub sending_pool_name: Option<String>,
363 #[serde(rename = "TlsPolicy")]
365 #[serde(skip_serializing_if = "Option::is_none")]
366 pub tls_policy: Option<String>,
367}
368
369#[derive(Clone, Debug, Default, PartialEq, Serialize)]
371#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
372pub struct Destination {
373 #[serde(rename = "BccAddresses")]
375 #[serde(skip_serializing_if = "Option::is_none")]
376 pub bcc_addresses: Option<Vec<String>>,
377 #[serde(rename = "CcAddresses")]
379 #[serde(skip_serializing_if = "Option::is_none")]
380 pub cc_addresses: Option<Vec<String>>,
381 #[serde(rename = "ToAddresses")]
383 #[serde(skip_serializing_if = "Option::is_none")]
384 pub to_addresses: Option<Vec<String>>,
385}
386
387#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
389#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
390pub struct DkimAttributes {
391 #[serde(rename = "SigningEnabled")]
393 #[serde(skip_serializing_if = "Option::is_none")]
394 pub signing_enabled: Option<bool>,
395 #[serde(rename = "Status")]
397 #[serde(skip_serializing_if = "Option::is_none")]
398 pub status: Option<String>,
399 #[serde(rename = "Tokens")]
401 #[serde(skip_serializing_if = "Option::is_none")]
402 pub tokens: Option<Vec<String>>,
403}
404
405#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
407#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
408pub struct DomainDeliverabilityCampaign {
409 #[serde(rename = "CampaignId")]
411 #[serde(skip_serializing_if = "Option::is_none")]
412 pub campaign_id: Option<String>,
413 #[serde(rename = "DeleteRate")]
415 #[serde(skip_serializing_if = "Option::is_none")]
416 pub delete_rate: Option<f64>,
417 #[serde(rename = "Esps")]
419 #[serde(skip_serializing_if = "Option::is_none")]
420 pub esps: Option<Vec<String>>,
421 #[serde(rename = "FirstSeenDateTime")]
423 #[serde(skip_serializing_if = "Option::is_none")]
424 pub first_seen_date_time: Option<f64>,
425 #[serde(rename = "FromAddress")]
427 #[serde(skip_serializing_if = "Option::is_none")]
428 pub from_address: Option<String>,
429 #[serde(rename = "ImageUrl")]
431 #[serde(skip_serializing_if = "Option::is_none")]
432 pub image_url: Option<String>,
433 #[serde(rename = "InboxCount")]
435 #[serde(skip_serializing_if = "Option::is_none")]
436 pub inbox_count: Option<i64>,
437 #[serde(rename = "LastSeenDateTime")]
439 #[serde(skip_serializing_if = "Option::is_none")]
440 pub last_seen_date_time: Option<f64>,
441 #[serde(rename = "ProjectedVolume")]
443 #[serde(skip_serializing_if = "Option::is_none")]
444 pub projected_volume: Option<i64>,
445 #[serde(rename = "ReadDeleteRate")]
447 #[serde(skip_serializing_if = "Option::is_none")]
448 pub read_delete_rate: Option<f64>,
449 #[serde(rename = "ReadRate")]
451 #[serde(skip_serializing_if = "Option::is_none")]
452 pub read_rate: Option<f64>,
453 #[serde(rename = "SendingIps")]
455 #[serde(skip_serializing_if = "Option::is_none")]
456 pub sending_ips: Option<Vec<String>>,
457 #[serde(rename = "SpamCount")]
459 #[serde(skip_serializing_if = "Option::is_none")]
460 pub spam_count: Option<i64>,
461 #[serde(rename = "Subject")]
463 #[serde(skip_serializing_if = "Option::is_none")]
464 pub subject: Option<String>,
465}
466
467#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
469pub struct DomainDeliverabilityTrackingOption {
470 #[serde(rename = "Domain")]
472 #[serde(skip_serializing_if = "Option::is_none")]
473 pub domain: Option<String>,
474 #[serde(rename = "InboxPlacementTrackingOption")]
476 #[serde(skip_serializing_if = "Option::is_none")]
477 pub inbox_placement_tracking_option: Option<InboxPlacementTrackingOption>,
478 #[serde(rename = "SubscriptionStartDate")]
480 #[serde(skip_serializing_if = "Option::is_none")]
481 pub subscription_start_date: Option<f64>,
482}
483
484#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
486#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
487pub struct DomainIspPlacement {
488 #[serde(rename = "InboxPercentage")]
490 #[serde(skip_serializing_if = "Option::is_none")]
491 pub inbox_percentage: Option<f64>,
492 #[serde(rename = "InboxRawCount")]
494 #[serde(skip_serializing_if = "Option::is_none")]
495 pub inbox_raw_count: Option<i64>,
496 #[serde(rename = "IspName")]
498 #[serde(skip_serializing_if = "Option::is_none")]
499 pub isp_name: Option<String>,
500 #[serde(rename = "SpamPercentage")]
502 #[serde(skip_serializing_if = "Option::is_none")]
503 pub spam_percentage: Option<f64>,
504 #[serde(rename = "SpamRawCount")]
506 #[serde(skip_serializing_if = "Option::is_none")]
507 pub spam_raw_count: Option<i64>,
508}
509
510#[derive(Clone, Debug, Default, PartialEq, Serialize)]
512#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
513pub struct EmailContent {
514 #[serde(rename = "Raw")]
516 #[serde(skip_serializing_if = "Option::is_none")]
517 pub raw: Option<RawMessage>,
518 #[serde(rename = "Simple")]
520 #[serde(skip_serializing_if = "Option::is_none")]
521 pub simple: Option<Message>,
522 #[serde(rename = "Template")]
524 #[serde(skip_serializing_if = "Option::is_none")]
525 pub template: Option<Template>,
526}
527
528#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
530#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
531pub struct EventDestination {
532 #[serde(rename = "CloudWatchDestination")]
534 #[serde(skip_serializing_if = "Option::is_none")]
535 pub cloud_watch_destination: Option<CloudWatchDestination>,
536 #[serde(rename = "Enabled")]
538 #[serde(skip_serializing_if = "Option::is_none")]
539 pub enabled: Option<bool>,
540 #[serde(rename = "KinesisFirehoseDestination")]
542 #[serde(skip_serializing_if = "Option::is_none")]
543 pub kinesis_firehose_destination: Option<KinesisFirehoseDestination>,
544 #[serde(rename = "MatchingEventTypes")]
546 pub matching_event_types: Vec<String>,
547 #[serde(rename = "Name")]
549 pub name: String,
550 #[serde(rename = "PinpointDestination")]
552 #[serde(skip_serializing_if = "Option::is_none")]
553 pub pinpoint_destination: Option<PinpointDestination>,
554 #[serde(rename = "SnsDestination")]
556 #[serde(skip_serializing_if = "Option::is_none")]
557 pub sns_destination: Option<SnsDestination>,
558}
559
560#[derive(Clone, Debug, Default, PartialEq, Serialize)]
562#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
563pub struct EventDestinationDefinition {
564 #[serde(rename = "CloudWatchDestination")]
566 #[serde(skip_serializing_if = "Option::is_none")]
567 pub cloud_watch_destination: Option<CloudWatchDestination>,
568 #[serde(rename = "Enabled")]
570 #[serde(skip_serializing_if = "Option::is_none")]
571 pub enabled: Option<bool>,
572 #[serde(rename = "KinesisFirehoseDestination")]
574 #[serde(skip_serializing_if = "Option::is_none")]
575 pub kinesis_firehose_destination: Option<KinesisFirehoseDestination>,
576 #[serde(rename = "MatchingEventTypes")]
578 #[serde(skip_serializing_if = "Option::is_none")]
579 pub matching_event_types: Option<Vec<String>>,
580 #[serde(rename = "PinpointDestination")]
582 #[serde(skip_serializing_if = "Option::is_none")]
583 pub pinpoint_destination: Option<PinpointDestination>,
584 #[serde(rename = "SnsDestination")]
586 #[serde(skip_serializing_if = "Option::is_none")]
587 pub sns_destination: Option<SnsDestination>,
588}
589
590#[derive(Clone, Debug, Default, PartialEq, Serialize)]
592#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
593pub struct GetAccountRequest {}
594
595#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
597#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
598pub struct GetAccountResponse {
599 #[serde(rename = "DedicatedIpAutoWarmupEnabled")]
601 #[serde(skip_serializing_if = "Option::is_none")]
602 pub dedicated_ip_auto_warmup_enabled: Option<bool>,
603 #[serde(rename = "EnforcementStatus")]
605 #[serde(skip_serializing_if = "Option::is_none")]
606 pub enforcement_status: Option<String>,
607 #[serde(rename = "ProductionAccessEnabled")]
609 #[serde(skip_serializing_if = "Option::is_none")]
610 pub production_access_enabled: Option<bool>,
611 #[serde(rename = "SendQuota")]
613 #[serde(skip_serializing_if = "Option::is_none")]
614 pub send_quota: Option<SendQuota>,
615 #[serde(rename = "SendingEnabled")]
617 #[serde(skip_serializing_if = "Option::is_none")]
618 pub sending_enabled: Option<bool>,
619}
620
621#[derive(Clone, Debug, Default, PartialEq, Serialize)]
623#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
624pub struct GetBlacklistReportsRequest {
625 #[serde(rename = "BlacklistItemNames")]
627 pub blacklist_item_names: Vec<String>,
628}
629
630#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
632#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
633pub struct GetBlacklistReportsResponse {
634 #[serde(rename = "BlacklistReport")]
636 pub blacklist_report: ::std::collections::HashMap<String, Vec<BlacklistEntry>>,
637}
638
639#[derive(Clone, Debug, Default, PartialEq, Serialize)]
641#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
642pub struct GetConfigurationSetEventDestinationsRequest {
643 #[serde(rename = "ConfigurationSetName")]
645 pub configuration_set_name: String,
646}
647
648#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
650#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
651pub struct GetConfigurationSetEventDestinationsResponse {
652 #[serde(rename = "EventDestinations")]
654 #[serde(skip_serializing_if = "Option::is_none")]
655 pub event_destinations: Option<Vec<EventDestination>>,
656}
657
658#[derive(Clone, Debug, Default, PartialEq, Serialize)]
660#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
661pub struct GetConfigurationSetRequest {
662 #[serde(rename = "ConfigurationSetName")]
664 pub configuration_set_name: String,
665}
666
667#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
669#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
670pub struct GetConfigurationSetResponse {
671 #[serde(rename = "ConfigurationSetName")]
673 #[serde(skip_serializing_if = "Option::is_none")]
674 pub configuration_set_name: Option<String>,
675 #[serde(rename = "DeliveryOptions")]
677 #[serde(skip_serializing_if = "Option::is_none")]
678 pub delivery_options: Option<DeliveryOptions>,
679 #[serde(rename = "ReputationOptions")]
681 #[serde(skip_serializing_if = "Option::is_none")]
682 pub reputation_options: Option<ReputationOptions>,
683 #[serde(rename = "SendingOptions")]
685 #[serde(skip_serializing_if = "Option::is_none")]
686 pub sending_options: Option<SendingOptions>,
687 #[serde(rename = "Tags")]
689 #[serde(skip_serializing_if = "Option::is_none")]
690 pub tags: Option<Vec<Tag>>,
691 #[serde(rename = "TrackingOptions")]
693 #[serde(skip_serializing_if = "Option::is_none")]
694 pub tracking_options: Option<TrackingOptions>,
695}
696
697#[derive(Clone, Debug, Default, PartialEq, Serialize)]
699#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
700pub struct GetDedicatedIpRequest {
701 #[serde(rename = "Ip")]
703 pub ip: String,
704}
705
706#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
708#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
709pub struct GetDedicatedIpResponse {
710 #[serde(rename = "DedicatedIp")]
712 #[serde(skip_serializing_if = "Option::is_none")]
713 pub dedicated_ip: Option<DedicatedIp>,
714}
715
716#[derive(Clone, Debug, Default, PartialEq, Serialize)]
718#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
719pub struct GetDedicatedIpsRequest {
720 #[serde(rename = "NextToken")]
722 #[serde(skip_serializing_if = "Option::is_none")]
723 pub next_token: Option<String>,
724 #[serde(rename = "PageSize")]
726 #[serde(skip_serializing_if = "Option::is_none")]
727 pub page_size: Option<i64>,
728 #[serde(rename = "PoolName")]
730 #[serde(skip_serializing_if = "Option::is_none")]
731 pub pool_name: Option<String>,
732}
733
734#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
736#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
737pub struct GetDedicatedIpsResponse {
738 #[serde(rename = "DedicatedIps")]
740 #[serde(skip_serializing_if = "Option::is_none")]
741 pub dedicated_ips: Option<Vec<DedicatedIp>>,
742 #[serde(rename = "NextToken")]
744 #[serde(skip_serializing_if = "Option::is_none")]
745 pub next_token: Option<String>,
746}
747
748#[derive(Clone, Debug, Default, PartialEq, Serialize)]
750#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
751pub struct GetDeliverabilityDashboardOptionsRequest {}
752
753#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
755#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
756pub struct GetDeliverabilityDashboardOptionsResponse {
757 #[serde(rename = "AccountStatus")]
759 #[serde(skip_serializing_if = "Option::is_none")]
760 pub account_status: Option<String>,
761 #[serde(rename = "ActiveSubscribedDomains")]
763 #[serde(skip_serializing_if = "Option::is_none")]
764 pub active_subscribed_domains: Option<Vec<DomainDeliverabilityTrackingOption>>,
765 #[serde(rename = "DashboardEnabled")]
767 pub dashboard_enabled: bool,
768 #[serde(rename = "PendingExpirationSubscribedDomains")]
770 #[serde(skip_serializing_if = "Option::is_none")]
771 pub pending_expiration_subscribed_domains: Option<Vec<DomainDeliverabilityTrackingOption>>,
772 #[serde(rename = "SubscriptionExpiryDate")]
774 #[serde(skip_serializing_if = "Option::is_none")]
775 pub subscription_expiry_date: Option<f64>,
776}
777
778#[derive(Clone, Debug, Default, PartialEq, Serialize)]
780#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
781pub struct GetDeliverabilityTestReportRequest {
782 #[serde(rename = "ReportId")]
784 pub report_id: String,
785}
786
787#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
789#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
790pub struct GetDeliverabilityTestReportResponse {
791 #[serde(rename = "DeliverabilityTestReport")]
793 pub deliverability_test_report: DeliverabilityTestReport,
794 #[serde(rename = "IspPlacements")]
796 pub isp_placements: Vec<IspPlacement>,
797 #[serde(rename = "Message")]
799 #[serde(skip_serializing_if = "Option::is_none")]
800 pub message: Option<String>,
801 #[serde(rename = "OverallPlacement")]
803 pub overall_placement: PlacementStatistics,
804 #[serde(rename = "Tags")]
806 #[serde(skip_serializing_if = "Option::is_none")]
807 pub tags: Option<Vec<Tag>>,
808}
809
810#[derive(Clone, Debug, Default, PartialEq, Serialize)]
812#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
813pub struct GetDomainDeliverabilityCampaignRequest {
814 #[serde(rename = "CampaignId")]
816 pub campaign_id: String,
817}
818
819#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
821#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
822pub struct GetDomainDeliverabilityCampaignResponse {
823 #[serde(rename = "DomainDeliverabilityCampaign")]
825 pub domain_deliverability_campaign: DomainDeliverabilityCampaign,
826}
827
828#[derive(Clone, Debug, Default, PartialEq, Serialize)]
830#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
831pub struct GetDomainStatisticsReportRequest {
832 #[serde(rename = "Domain")]
834 pub domain: String,
835 #[serde(rename = "EndDate")]
837 pub end_date: f64,
838 #[serde(rename = "StartDate")]
840 pub start_date: f64,
841}
842
843#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
845#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
846pub struct GetDomainStatisticsReportResponse {
847 #[serde(rename = "DailyVolumes")]
849 pub daily_volumes: Vec<DailyVolume>,
850 #[serde(rename = "OverallVolume")]
852 pub overall_volume: OverallVolume,
853}
854
855#[derive(Clone, Debug, Default, PartialEq, Serialize)]
857#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
858pub struct GetEmailIdentityRequest {
859 #[serde(rename = "EmailIdentity")]
861 pub email_identity: String,
862}
863
864#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
866#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
867pub struct GetEmailIdentityResponse {
868 #[serde(rename = "DkimAttributes")]
870 #[serde(skip_serializing_if = "Option::is_none")]
871 pub dkim_attributes: Option<DkimAttributes>,
872 #[serde(rename = "FeedbackForwardingStatus")]
874 #[serde(skip_serializing_if = "Option::is_none")]
875 pub feedback_forwarding_status: Option<bool>,
876 #[serde(rename = "IdentityType")]
878 #[serde(skip_serializing_if = "Option::is_none")]
879 pub identity_type: Option<String>,
880 #[serde(rename = "MailFromAttributes")]
882 #[serde(skip_serializing_if = "Option::is_none")]
883 pub mail_from_attributes: Option<MailFromAttributes>,
884 #[serde(rename = "Tags")]
886 #[serde(skip_serializing_if = "Option::is_none")]
887 pub tags: Option<Vec<Tag>>,
888 #[serde(rename = "VerifiedForSendingStatus")]
890 #[serde(skip_serializing_if = "Option::is_none")]
891 pub verified_for_sending_status: Option<bool>,
892}
893
894#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
896#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
897pub struct IdentityInfo {
898 #[serde(rename = "IdentityName")]
900 #[serde(skip_serializing_if = "Option::is_none")]
901 pub identity_name: Option<String>,
902 #[serde(rename = "IdentityType")]
904 #[serde(skip_serializing_if = "Option::is_none")]
905 pub identity_type: Option<String>,
906 #[serde(rename = "SendingEnabled")]
908 #[serde(skip_serializing_if = "Option::is_none")]
909 pub sending_enabled: Option<bool>,
910}
911
912#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
914pub struct InboxPlacementTrackingOption {
915 #[serde(rename = "Global")]
917 #[serde(skip_serializing_if = "Option::is_none")]
918 pub global: Option<bool>,
919 #[serde(rename = "TrackedIsps")]
921 #[serde(skip_serializing_if = "Option::is_none")]
922 pub tracked_isps: Option<Vec<String>>,
923}
924
925#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
927#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
928pub struct IspPlacement {
929 #[serde(rename = "IspName")]
931 #[serde(skip_serializing_if = "Option::is_none")]
932 pub isp_name: Option<String>,
933 #[serde(rename = "PlacementStatistics")]
935 #[serde(skip_serializing_if = "Option::is_none")]
936 pub placement_statistics: Option<PlacementStatistics>,
937}
938
939#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
941pub struct KinesisFirehoseDestination {
942 #[serde(rename = "DeliveryStreamArn")]
944 pub delivery_stream_arn: String,
945 #[serde(rename = "IamRoleArn")]
947 pub iam_role_arn: String,
948}
949
950#[derive(Clone, Debug, Default, PartialEq, Serialize)]
952#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
953pub struct ListConfigurationSetsRequest {
954 #[serde(rename = "NextToken")]
956 #[serde(skip_serializing_if = "Option::is_none")]
957 pub next_token: Option<String>,
958 #[serde(rename = "PageSize")]
960 #[serde(skip_serializing_if = "Option::is_none")]
961 pub page_size: Option<i64>,
962}
963
964#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
966#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
967pub struct ListConfigurationSetsResponse {
968 #[serde(rename = "ConfigurationSets")]
970 #[serde(skip_serializing_if = "Option::is_none")]
971 pub configuration_sets: Option<Vec<String>>,
972 #[serde(rename = "NextToken")]
974 #[serde(skip_serializing_if = "Option::is_none")]
975 pub next_token: Option<String>,
976}
977
978#[derive(Clone, Debug, Default, PartialEq, Serialize)]
980#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
981pub struct ListDedicatedIpPoolsRequest {
982 #[serde(rename = "NextToken")]
984 #[serde(skip_serializing_if = "Option::is_none")]
985 pub next_token: Option<String>,
986 #[serde(rename = "PageSize")]
988 #[serde(skip_serializing_if = "Option::is_none")]
989 pub page_size: Option<i64>,
990}
991
992#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
994#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
995pub struct ListDedicatedIpPoolsResponse {
996 #[serde(rename = "DedicatedIpPools")]
998 #[serde(skip_serializing_if = "Option::is_none")]
999 pub dedicated_ip_pools: Option<Vec<String>>,
1000 #[serde(rename = "NextToken")]
1002 #[serde(skip_serializing_if = "Option::is_none")]
1003 pub next_token: Option<String>,
1004}
1005
1006#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1008#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1009pub struct ListDeliverabilityTestReportsRequest {
1010 #[serde(rename = "NextToken")]
1012 #[serde(skip_serializing_if = "Option::is_none")]
1013 pub next_token: Option<String>,
1014 #[serde(rename = "PageSize")]
1016 #[serde(skip_serializing_if = "Option::is_none")]
1017 pub page_size: Option<i64>,
1018}
1019
1020#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1022#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1023pub struct ListDeliverabilityTestReportsResponse {
1024 #[serde(rename = "DeliverabilityTestReports")]
1026 pub deliverability_test_reports: Vec<DeliverabilityTestReport>,
1027 #[serde(rename = "NextToken")]
1029 #[serde(skip_serializing_if = "Option::is_none")]
1030 pub next_token: Option<String>,
1031}
1032
1033#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1035#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1036pub struct ListDomainDeliverabilityCampaignsRequest {
1037 #[serde(rename = "EndDate")]
1039 pub end_date: f64,
1040 #[serde(rename = "NextToken")]
1042 #[serde(skip_serializing_if = "Option::is_none")]
1043 pub next_token: Option<String>,
1044 #[serde(rename = "PageSize")]
1046 #[serde(skip_serializing_if = "Option::is_none")]
1047 pub page_size: Option<i64>,
1048 #[serde(rename = "StartDate")]
1050 pub start_date: f64,
1051 #[serde(rename = "SubscribedDomain")]
1053 pub subscribed_domain: String,
1054}
1055
1056#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1058#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1059pub struct ListDomainDeliverabilityCampaignsResponse {
1060 #[serde(rename = "DomainDeliverabilityCampaigns")]
1062 pub domain_deliverability_campaigns: Vec<DomainDeliverabilityCampaign>,
1063 #[serde(rename = "NextToken")]
1065 #[serde(skip_serializing_if = "Option::is_none")]
1066 pub next_token: Option<String>,
1067}
1068
1069#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1071#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1072pub struct ListEmailIdentitiesRequest {
1073 #[serde(rename = "NextToken")]
1075 #[serde(skip_serializing_if = "Option::is_none")]
1076 pub next_token: Option<String>,
1077 #[serde(rename = "PageSize")]
1079 #[serde(skip_serializing_if = "Option::is_none")]
1080 pub page_size: Option<i64>,
1081}
1082
1083#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1085#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1086pub struct ListEmailIdentitiesResponse {
1087 #[serde(rename = "EmailIdentities")]
1089 #[serde(skip_serializing_if = "Option::is_none")]
1090 pub email_identities: Option<Vec<IdentityInfo>>,
1091 #[serde(rename = "NextToken")]
1093 #[serde(skip_serializing_if = "Option::is_none")]
1094 pub next_token: Option<String>,
1095}
1096
1097#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1098#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1099pub struct ListTagsForResourceRequest {
1100 #[serde(rename = "ResourceArn")]
1102 pub resource_arn: String,
1103}
1104
1105#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1106#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1107pub struct ListTagsForResourceResponse {
1108 #[serde(rename = "Tags")]
1110 pub tags: Vec<Tag>,
1111}
1112
1113#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1115#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1116pub struct MailFromAttributes {
1117 #[serde(rename = "BehaviorOnMxFailure")]
1119 pub behavior_on_mx_failure: String,
1120 #[serde(rename = "MailFromDomain")]
1122 pub mail_from_domain: String,
1123 #[serde(rename = "MailFromDomainStatus")]
1125 pub mail_from_domain_status: String,
1126}
1127
1128#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1130#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1131pub struct Message {
1132 #[serde(rename = "Body")]
1134 pub body: Body,
1135 #[serde(rename = "Subject")]
1137 pub subject: Content,
1138}
1139
1140#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1142#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1143pub struct MessageTag {
1144 #[serde(rename = "Name")]
1146 pub name: String,
1147 #[serde(rename = "Value")]
1149 pub value: String,
1150}
1151
1152#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1154#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1155pub struct OverallVolume {
1156 #[serde(rename = "DomainIspPlacements")]
1158 #[serde(skip_serializing_if = "Option::is_none")]
1159 pub domain_isp_placements: Option<Vec<DomainIspPlacement>>,
1160 #[serde(rename = "ReadRatePercent")]
1162 #[serde(skip_serializing_if = "Option::is_none")]
1163 pub read_rate_percent: Option<f64>,
1164 #[serde(rename = "VolumeStatistics")]
1166 #[serde(skip_serializing_if = "Option::is_none")]
1167 pub volume_statistics: Option<VolumeStatistics>,
1168}
1169
1170#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
1172pub struct PinpointDestination {
1173 #[serde(rename = "ApplicationArn")]
1175 #[serde(skip_serializing_if = "Option::is_none")]
1176 pub application_arn: Option<String>,
1177}
1178
1179#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1181#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1182pub struct PlacementStatistics {
1183 #[serde(rename = "DkimPercentage")]
1185 #[serde(skip_serializing_if = "Option::is_none")]
1186 pub dkim_percentage: Option<f64>,
1187 #[serde(rename = "InboxPercentage")]
1189 #[serde(skip_serializing_if = "Option::is_none")]
1190 pub inbox_percentage: Option<f64>,
1191 #[serde(rename = "MissingPercentage")]
1193 #[serde(skip_serializing_if = "Option::is_none")]
1194 pub missing_percentage: Option<f64>,
1195 #[serde(rename = "SpamPercentage")]
1197 #[serde(skip_serializing_if = "Option::is_none")]
1198 pub spam_percentage: Option<f64>,
1199 #[serde(rename = "SpfPercentage")]
1201 #[serde(skip_serializing_if = "Option::is_none")]
1202 pub spf_percentage: Option<f64>,
1203}
1204
1205#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1207#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1208pub struct PutAccountDedicatedIpWarmupAttributesRequest {
1209 #[serde(rename = "AutoWarmupEnabled")]
1211 #[serde(skip_serializing_if = "Option::is_none")]
1212 pub auto_warmup_enabled: Option<bool>,
1213}
1214
1215#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1217#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1218pub struct PutAccountDedicatedIpWarmupAttributesResponse {}
1219
1220#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1222#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1223pub struct PutAccountSendingAttributesRequest {
1224 #[serde(rename = "SendingEnabled")]
1226 #[serde(skip_serializing_if = "Option::is_none")]
1227 pub sending_enabled: Option<bool>,
1228}
1229
1230#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1232#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1233pub struct PutAccountSendingAttributesResponse {}
1234
1235#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1237#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1238pub struct PutConfigurationSetDeliveryOptionsRequest {
1239 #[serde(rename = "ConfigurationSetName")]
1241 pub configuration_set_name: String,
1242 #[serde(rename = "SendingPoolName")]
1244 #[serde(skip_serializing_if = "Option::is_none")]
1245 pub sending_pool_name: Option<String>,
1246 #[serde(rename = "TlsPolicy")]
1248 #[serde(skip_serializing_if = "Option::is_none")]
1249 pub tls_policy: Option<String>,
1250}
1251
1252#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1254#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1255pub struct PutConfigurationSetDeliveryOptionsResponse {}
1256
1257#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1259#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1260pub struct PutConfigurationSetReputationOptionsRequest {
1261 #[serde(rename = "ConfigurationSetName")]
1263 pub configuration_set_name: String,
1264 #[serde(rename = "ReputationMetricsEnabled")]
1266 #[serde(skip_serializing_if = "Option::is_none")]
1267 pub reputation_metrics_enabled: Option<bool>,
1268}
1269
1270#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1272#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1273pub struct PutConfigurationSetReputationOptionsResponse {}
1274
1275#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1277#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1278pub struct PutConfigurationSetSendingOptionsRequest {
1279 #[serde(rename = "ConfigurationSetName")]
1281 pub configuration_set_name: String,
1282 #[serde(rename = "SendingEnabled")]
1284 #[serde(skip_serializing_if = "Option::is_none")]
1285 pub sending_enabled: Option<bool>,
1286}
1287
1288#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1290#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1291pub struct PutConfigurationSetSendingOptionsResponse {}
1292
1293#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1295#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1296pub struct PutConfigurationSetTrackingOptionsRequest {
1297 #[serde(rename = "ConfigurationSetName")]
1299 pub configuration_set_name: String,
1300 #[serde(rename = "CustomRedirectDomain")]
1302 #[serde(skip_serializing_if = "Option::is_none")]
1303 pub custom_redirect_domain: Option<String>,
1304}
1305
1306#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1308#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1309pub struct PutConfigurationSetTrackingOptionsResponse {}
1310
1311#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1313#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1314pub struct PutDedicatedIpInPoolRequest {
1315 #[serde(rename = "DestinationPoolName")]
1317 pub destination_pool_name: String,
1318 #[serde(rename = "Ip")]
1320 pub ip: String,
1321}
1322
1323#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1325#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1326pub struct PutDedicatedIpInPoolResponse {}
1327
1328#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1330#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1331pub struct PutDedicatedIpWarmupAttributesRequest {
1332 #[serde(rename = "Ip")]
1334 pub ip: String,
1335 #[serde(rename = "WarmupPercentage")]
1337 pub warmup_percentage: i64,
1338}
1339
1340#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1342#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1343pub struct PutDedicatedIpWarmupAttributesResponse {}
1344
1345#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1347#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1348pub struct PutDeliverabilityDashboardOptionRequest {
1349 #[serde(rename = "DashboardEnabled")]
1351 pub dashboard_enabled: bool,
1352 #[serde(rename = "SubscribedDomains")]
1354 #[serde(skip_serializing_if = "Option::is_none")]
1355 pub subscribed_domains: Option<Vec<DomainDeliverabilityTrackingOption>>,
1356}
1357
1358#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1360#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1361pub struct PutDeliverabilityDashboardOptionResponse {}
1362
1363#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1365#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1366pub struct PutEmailIdentityDkimAttributesRequest {
1367 #[serde(rename = "EmailIdentity")]
1369 pub email_identity: String,
1370 #[serde(rename = "SigningEnabled")]
1372 #[serde(skip_serializing_if = "Option::is_none")]
1373 pub signing_enabled: Option<bool>,
1374}
1375
1376#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1378#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1379pub struct PutEmailIdentityDkimAttributesResponse {}
1380
1381#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1383#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1384pub struct PutEmailIdentityFeedbackAttributesRequest {
1385 #[serde(rename = "EmailForwardingEnabled")]
1387 #[serde(skip_serializing_if = "Option::is_none")]
1388 pub email_forwarding_enabled: Option<bool>,
1389 #[serde(rename = "EmailIdentity")]
1391 pub email_identity: String,
1392}
1393
1394#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1396#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1397pub struct PutEmailIdentityFeedbackAttributesResponse {}
1398
1399#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1401#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1402pub struct PutEmailIdentityMailFromAttributesRequest {
1403 #[serde(rename = "BehaviorOnMxFailure")]
1405 #[serde(skip_serializing_if = "Option::is_none")]
1406 pub behavior_on_mx_failure: Option<String>,
1407 #[serde(rename = "EmailIdentity")]
1409 pub email_identity: String,
1410 #[serde(rename = "MailFromDomain")]
1412 #[serde(skip_serializing_if = "Option::is_none")]
1413 pub mail_from_domain: Option<String>,
1414}
1415
1416#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1418#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1419pub struct PutEmailIdentityMailFromAttributesResponse {}
1420
1421#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1423#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1424pub struct RawMessage {
1425 #[serde(rename = "Data")]
1427 #[serde(
1428 deserialize_with = "::rusoto_core::serialization::SerdeBlob::deserialize_blob",
1429 serialize_with = "::rusoto_core::serialization::SerdeBlob::serialize_blob",
1430 default
1431 )]
1432 pub data: bytes::Bytes,
1433}
1434
1435#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
1437pub struct ReputationOptions {
1438 #[serde(rename = "LastFreshStart")]
1440 #[serde(skip_serializing_if = "Option::is_none")]
1441 pub last_fresh_start: Option<f64>,
1442 #[serde(rename = "ReputationMetricsEnabled")]
1444 #[serde(skip_serializing_if = "Option::is_none")]
1445 pub reputation_metrics_enabled: Option<bool>,
1446}
1447
1448#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1450#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1451pub struct SendEmailRequest {
1452 #[serde(rename = "ConfigurationSetName")]
1454 #[serde(skip_serializing_if = "Option::is_none")]
1455 pub configuration_set_name: Option<String>,
1456 #[serde(rename = "Content")]
1458 pub content: EmailContent,
1459 #[serde(rename = "Destination")]
1461 pub destination: Destination,
1462 #[serde(rename = "EmailTags")]
1464 #[serde(skip_serializing_if = "Option::is_none")]
1465 pub email_tags: Option<Vec<MessageTag>>,
1466 #[serde(rename = "FeedbackForwardingEmailAddress")]
1468 #[serde(skip_serializing_if = "Option::is_none")]
1469 pub feedback_forwarding_email_address: Option<String>,
1470 #[serde(rename = "FromEmailAddress")]
1472 #[serde(skip_serializing_if = "Option::is_none")]
1473 pub from_email_address: Option<String>,
1474 #[serde(rename = "ReplyToAddresses")]
1476 #[serde(skip_serializing_if = "Option::is_none")]
1477 pub reply_to_addresses: Option<Vec<String>>,
1478}
1479
1480#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1482#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1483pub struct SendEmailResponse {
1484 #[serde(rename = "MessageId")]
1486 #[serde(skip_serializing_if = "Option::is_none")]
1487 pub message_id: Option<String>,
1488}
1489
1490#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1492#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1493pub struct SendQuota {
1494 #[serde(rename = "Max24HourSend")]
1496 #[serde(skip_serializing_if = "Option::is_none")]
1497 pub max_24_hour_send: Option<f64>,
1498 #[serde(rename = "MaxSendRate")]
1500 #[serde(skip_serializing_if = "Option::is_none")]
1501 pub max_send_rate: Option<f64>,
1502 #[serde(rename = "SentLast24Hours")]
1504 #[serde(skip_serializing_if = "Option::is_none")]
1505 pub sent_last_24_hours: Option<f64>,
1506}
1507
1508#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
1510pub struct SendingOptions {
1511 #[serde(rename = "SendingEnabled")]
1513 #[serde(skip_serializing_if = "Option::is_none")]
1514 pub sending_enabled: Option<bool>,
1515}
1516
1517#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
1519pub struct SnsDestination {
1520 #[serde(rename = "TopicArn")]
1522 pub topic_arn: String,
1523}
1524
1525#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
1527pub struct Tag {
1528 #[serde(rename = "Key")]
1530 pub key: String,
1531 #[serde(rename = "Value")]
1533 pub value: String,
1534}
1535
1536#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1537#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1538pub struct TagResourceRequest {
1539 #[serde(rename = "ResourceArn")]
1541 pub resource_arn: String,
1542 #[serde(rename = "Tags")]
1544 pub tags: Vec<Tag>,
1545}
1546
1547#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1548#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1549pub struct TagResourceResponse {}
1550
1551#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1552#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1553pub struct Template {
1554 #[serde(rename = "TemplateArn")]
1556 #[serde(skip_serializing_if = "Option::is_none")]
1557 pub template_arn: Option<String>,
1558 #[serde(rename = "TemplateData")]
1560 #[serde(skip_serializing_if = "Option::is_none")]
1561 pub template_data: Option<String>,
1562}
1563
1564#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
1566pub struct TrackingOptions {
1567 #[serde(rename = "CustomRedirectDomain")]
1569 pub custom_redirect_domain: String,
1570}
1571
1572#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1573#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1574pub struct UntagResourceRequest {
1575 #[serde(rename = "ResourceArn")]
1577 pub resource_arn: String,
1578 #[serde(rename = "TagKeys")]
1580 pub tag_keys: Vec<String>,
1581}
1582
1583#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1584#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1585pub struct UntagResourceResponse {}
1586
1587#[derive(Clone, Debug, Default, PartialEq, Serialize)]
1589#[cfg_attr(feature = "deserialize_structs", derive(Deserialize))]
1590pub struct UpdateConfigurationSetEventDestinationRequest {
1591 #[serde(rename = "ConfigurationSetName")]
1593 pub configuration_set_name: String,
1594 #[serde(rename = "EventDestination")]
1596 pub event_destination: EventDestinationDefinition,
1597 #[serde(rename = "EventDestinationName")]
1599 pub event_destination_name: String,
1600}
1601
1602#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1604#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1605pub struct UpdateConfigurationSetEventDestinationResponse {}
1606
1607#[derive(Clone, Debug, Default, Deserialize, PartialEq)]
1609#[cfg_attr(any(test, feature = "serialize_structs"), derive(Serialize))]
1610pub struct VolumeStatistics {
1611 #[serde(rename = "InboxRawCount")]
1613 #[serde(skip_serializing_if = "Option::is_none")]
1614 pub inbox_raw_count: Option<i64>,
1615 #[serde(rename = "ProjectedInbox")]
1617 #[serde(skip_serializing_if = "Option::is_none")]
1618 pub projected_inbox: Option<i64>,
1619 #[serde(rename = "ProjectedSpam")]
1621 #[serde(skip_serializing_if = "Option::is_none")]
1622 pub projected_spam: Option<i64>,
1623 #[serde(rename = "SpamRawCount")]
1625 #[serde(skip_serializing_if = "Option::is_none")]
1626 pub spam_raw_count: Option<i64>,
1627}
1628
1629#[derive(Debug, PartialEq)]
1631pub enum CreateConfigurationSetError {
1632 AlreadyExists(String),
1634 BadRequest(String),
1636 ConcurrentModification(String),
1638 LimitExceeded(String),
1640 NotFound(String),
1642 TooManyRequests(String),
1644}
1645
1646impl CreateConfigurationSetError {
1647 pub fn from_response(res: BufferedHttpResponse) -> RusotoError<CreateConfigurationSetError> {
1648 if let Some(err) = proto::json::Error::parse_rest(&res) {
1649 match err.typ.as_str() {
1650 "AlreadyExistsException" => {
1651 return RusotoError::Service(CreateConfigurationSetError::AlreadyExists(
1652 err.msg,
1653 ))
1654 }
1655 "BadRequestException" => {
1656 return RusotoError::Service(CreateConfigurationSetError::BadRequest(err.msg))
1657 }
1658 "ConcurrentModificationException" => {
1659 return RusotoError::Service(
1660 CreateConfigurationSetError::ConcurrentModification(err.msg),
1661 )
1662 }
1663 "LimitExceededException" => {
1664 return RusotoError::Service(CreateConfigurationSetError::LimitExceeded(
1665 err.msg,
1666 ))
1667 }
1668 "NotFoundException" => {
1669 return RusotoError::Service(CreateConfigurationSetError::NotFound(err.msg))
1670 }
1671 "TooManyRequestsException" => {
1672 return RusotoError::Service(CreateConfigurationSetError::TooManyRequests(
1673 err.msg,
1674 ))
1675 }
1676 "ValidationException" => return RusotoError::Validation(err.msg),
1677 _ => {}
1678 }
1679 }
1680 RusotoError::Unknown(res)
1681 }
1682}
1683impl fmt::Display for CreateConfigurationSetError {
1684 #[allow(unused_variables)]
1685 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1686 match *self {
1687 CreateConfigurationSetError::AlreadyExists(ref cause) => write!(f, "{}", cause),
1688 CreateConfigurationSetError::BadRequest(ref cause) => write!(f, "{}", cause),
1689 CreateConfigurationSetError::ConcurrentModification(ref cause) => {
1690 write!(f, "{}", cause)
1691 }
1692 CreateConfigurationSetError::LimitExceeded(ref cause) => write!(f, "{}", cause),
1693 CreateConfigurationSetError::NotFound(ref cause) => write!(f, "{}", cause),
1694 CreateConfigurationSetError::TooManyRequests(ref cause) => write!(f, "{}", cause),
1695 }
1696 }
1697}
1698impl Error for CreateConfigurationSetError {}
1699#[derive(Debug, PartialEq)]
1701pub enum CreateConfigurationSetEventDestinationError {
1702 AlreadyExists(String),
1704 BadRequest(String),
1706 LimitExceeded(String),
1708 NotFound(String),
1710 TooManyRequests(String),
1712}
1713
1714impl CreateConfigurationSetEventDestinationError {
1715 pub fn from_response(
1716 res: BufferedHttpResponse,
1717 ) -> RusotoError<CreateConfigurationSetEventDestinationError> {
1718 if let Some(err) = proto::json::Error::parse_rest(&res) {
1719 match err.typ.as_str() {
1720 "AlreadyExistsException" => {
1721 return RusotoError::Service(
1722 CreateConfigurationSetEventDestinationError::AlreadyExists(err.msg),
1723 )
1724 }
1725 "BadRequestException" => {
1726 return RusotoError::Service(
1727 CreateConfigurationSetEventDestinationError::BadRequest(err.msg),
1728 )
1729 }
1730 "LimitExceededException" => {
1731 return RusotoError::Service(
1732 CreateConfigurationSetEventDestinationError::LimitExceeded(err.msg),
1733 )
1734 }
1735 "NotFoundException" => {
1736 return RusotoError::Service(
1737 CreateConfigurationSetEventDestinationError::NotFound(err.msg),
1738 )
1739 }
1740 "TooManyRequestsException" => {
1741 return RusotoError::Service(
1742 CreateConfigurationSetEventDestinationError::TooManyRequests(err.msg),
1743 )
1744 }
1745 "ValidationException" => return RusotoError::Validation(err.msg),
1746 _ => {}
1747 }
1748 }
1749 RusotoError::Unknown(res)
1750 }
1751}
1752impl fmt::Display for CreateConfigurationSetEventDestinationError {
1753 #[allow(unused_variables)]
1754 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1755 match *self {
1756 CreateConfigurationSetEventDestinationError::AlreadyExists(ref cause) => {
1757 write!(f, "{}", cause)
1758 }
1759 CreateConfigurationSetEventDestinationError::BadRequest(ref cause) => {
1760 write!(f, "{}", cause)
1761 }
1762 CreateConfigurationSetEventDestinationError::LimitExceeded(ref cause) => {
1763 write!(f, "{}", cause)
1764 }
1765 CreateConfigurationSetEventDestinationError::NotFound(ref cause) => {
1766 write!(f, "{}", cause)
1767 }
1768 CreateConfigurationSetEventDestinationError::TooManyRequests(ref cause) => {
1769 write!(f, "{}", cause)
1770 }
1771 }
1772 }
1773}
1774impl Error for CreateConfigurationSetEventDestinationError {}
1775#[derive(Debug, PartialEq)]
1777pub enum CreateDedicatedIpPoolError {
1778 AlreadyExists(String),
1780 BadRequest(String),
1782 ConcurrentModification(String),
1784 LimitExceeded(String),
1786 TooManyRequests(String),
1788}
1789
1790impl CreateDedicatedIpPoolError {
1791 pub fn from_response(res: BufferedHttpResponse) -> RusotoError<CreateDedicatedIpPoolError> {
1792 if let Some(err) = proto::json::Error::parse_rest(&res) {
1793 match err.typ.as_str() {
1794 "AlreadyExistsException" => {
1795 return RusotoError::Service(CreateDedicatedIpPoolError::AlreadyExists(err.msg))
1796 }
1797 "BadRequestException" => {
1798 return RusotoError::Service(CreateDedicatedIpPoolError::BadRequest(err.msg))
1799 }
1800 "ConcurrentModificationException" => {
1801 return RusotoError::Service(
1802 CreateDedicatedIpPoolError::ConcurrentModification(err.msg),
1803 )
1804 }
1805 "LimitExceededException" => {
1806 return RusotoError::Service(CreateDedicatedIpPoolError::LimitExceeded(err.msg))
1807 }
1808 "TooManyRequestsException" => {
1809 return RusotoError::Service(CreateDedicatedIpPoolError::TooManyRequests(
1810 err.msg,
1811 ))
1812 }
1813 "ValidationException" => return RusotoError::Validation(err.msg),
1814 _ => {}
1815 }
1816 }
1817 RusotoError::Unknown(res)
1818 }
1819}
1820impl fmt::Display for CreateDedicatedIpPoolError {
1821 #[allow(unused_variables)]
1822 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1823 match *self {
1824 CreateDedicatedIpPoolError::AlreadyExists(ref cause) => write!(f, "{}", cause),
1825 CreateDedicatedIpPoolError::BadRequest(ref cause) => write!(f, "{}", cause),
1826 CreateDedicatedIpPoolError::ConcurrentModification(ref cause) => write!(f, "{}", cause),
1827 CreateDedicatedIpPoolError::LimitExceeded(ref cause) => write!(f, "{}", cause),
1828 CreateDedicatedIpPoolError::TooManyRequests(ref cause) => write!(f, "{}", cause),
1829 }
1830 }
1831}
1832impl Error for CreateDedicatedIpPoolError {}
1833#[derive(Debug, PartialEq)]
1835pub enum CreateDeliverabilityTestReportError {
1836 AccountSuspended(String),
1838 BadRequest(String),
1840 ConcurrentModification(String),
1842 LimitExceeded(String),
1844 MailFromDomainNotVerified(String),
1846 MessageRejected(String),
1848 NotFound(String),
1850 SendingPaused(String),
1852 TooManyRequests(String),
1854}
1855
1856impl CreateDeliverabilityTestReportError {
1857 pub fn from_response(
1858 res: BufferedHttpResponse,
1859 ) -> RusotoError<CreateDeliverabilityTestReportError> {
1860 if let Some(err) = proto::json::Error::parse_rest(&res) {
1861 match err.typ.as_str() {
1862 "AccountSuspendedException" => {
1863 return RusotoError::Service(
1864 CreateDeliverabilityTestReportError::AccountSuspended(err.msg),
1865 )
1866 }
1867 "BadRequestException" => {
1868 return RusotoError::Service(CreateDeliverabilityTestReportError::BadRequest(
1869 err.msg,
1870 ))
1871 }
1872 "ConcurrentModificationException" => {
1873 return RusotoError::Service(
1874 CreateDeliverabilityTestReportError::ConcurrentModification(err.msg),
1875 )
1876 }
1877 "LimitExceededException" => {
1878 return RusotoError::Service(
1879 CreateDeliverabilityTestReportError::LimitExceeded(err.msg),
1880 )
1881 }
1882 "MailFromDomainNotVerifiedException" => {
1883 return RusotoError::Service(
1884 CreateDeliverabilityTestReportError::MailFromDomainNotVerified(err.msg),
1885 )
1886 }
1887 "MessageRejected" => {
1888 return RusotoError::Service(
1889 CreateDeliverabilityTestReportError::MessageRejected(err.msg),
1890 )
1891 }
1892 "NotFoundException" => {
1893 return RusotoError::Service(CreateDeliverabilityTestReportError::NotFound(
1894 err.msg,
1895 ))
1896 }
1897 "SendingPausedException" => {
1898 return RusotoError::Service(
1899 CreateDeliverabilityTestReportError::SendingPaused(err.msg),
1900 )
1901 }
1902 "TooManyRequestsException" => {
1903 return RusotoError::Service(
1904 CreateDeliverabilityTestReportError::TooManyRequests(err.msg),
1905 )
1906 }
1907 "ValidationException" => return RusotoError::Validation(err.msg),
1908 _ => {}
1909 }
1910 }
1911 RusotoError::Unknown(res)
1912 }
1913}
1914impl fmt::Display for CreateDeliverabilityTestReportError {
1915 #[allow(unused_variables)]
1916 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1917 match *self {
1918 CreateDeliverabilityTestReportError::AccountSuspended(ref cause) => {
1919 write!(f, "{}", cause)
1920 }
1921 CreateDeliverabilityTestReportError::BadRequest(ref cause) => write!(f, "{}", cause),
1922 CreateDeliverabilityTestReportError::ConcurrentModification(ref cause) => {
1923 write!(f, "{}", cause)
1924 }
1925 CreateDeliverabilityTestReportError::LimitExceeded(ref cause) => write!(f, "{}", cause),
1926 CreateDeliverabilityTestReportError::MailFromDomainNotVerified(ref cause) => {
1927 write!(f, "{}", cause)
1928 }
1929 CreateDeliverabilityTestReportError::MessageRejected(ref cause) => {
1930 write!(f, "{}", cause)
1931 }
1932 CreateDeliverabilityTestReportError::NotFound(ref cause) => write!(f, "{}", cause),
1933 CreateDeliverabilityTestReportError::SendingPaused(ref cause) => write!(f, "{}", cause),
1934 CreateDeliverabilityTestReportError::TooManyRequests(ref cause) => {
1935 write!(f, "{}", cause)
1936 }
1937 }
1938 }
1939}
1940impl Error for CreateDeliverabilityTestReportError {}
1941#[derive(Debug, PartialEq)]
1943pub enum CreateEmailIdentityError {
1944 BadRequest(String),
1946 ConcurrentModification(String),
1948 LimitExceeded(String),
1950 TooManyRequests(String),
1952}
1953
1954impl CreateEmailIdentityError {
1955 pub fn from_response(res: BufferedHttpResponse) -> RusotoError<CreateEmailIdentityError> {
1956 if let Some(err) = proto::json::Error::parse_rest(&res) {
1957 match err.typ.as_str() {
1958 "BadRequestException" => {
1959 return RusotoError::Service(CreateEmailIdentityError::BadRequest(err.msg))
1960 }
1961 "ConcurrentModificationException" => {
1962 return RusotoError::Service(CreateEmailIdentityError::ConcurrentModification(
1963 err.msg,
1964 ))
1965 }
1966 "LimitExceededException" => {
1967 return RusotoError::Service(CreateEmailIdentityError::LimitExceeded(err.msg))
1968 }
1969 "TooManyRequestsException" => {
1970 return RusotoError::Service(CreateEmailIdentityError::TooManyRequests(err.msg))
1971 }
1972 "ValidationException" => return RusotoError::Validation(err.msg),
1973 _ => {}
1974 }
1975 }
1976 RusotoError::Unknown(res)
1977 }
1978}
1979impl fmt::Display for CreateEmailIdentityError {
1980 #[allow(unused_variables)]
1981 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1982 match *self {
1983 CreateEmailIdentityError::BadRequest(ref cause) => write!(f, "{}", cause),
1984 CreateEmailIdentityError::ConcurrentModification(ref cause) => write!(f, "{}", cause),
1985 CreateEmailIdentityError::LimitExceeded(ref cause) => write!(f, "{}", cause),
1986 CreateEmailIdentityError::TooManyRequests(ref cause) => write!(f, "{}", cause),
1987 }
1988 }
1989}
1990impl Error for CreateEmailIdentityError {}
1991#[derive(Debug, PartialEq)]
1993pub enum DeleteConfigurationSetError {
1994 BadRequest(String),
1996 ConcurrentModification(String),
1998 NotFound(String),
2000 TooManyRequests(String),
2002}
2003
2004impl DeleteConfigurationSetError {
2005 pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DeleteConfigurationSetError> {
2006 if let Some(err) = proto::json::Error::parse_rest(&res) {
2007 match err.typ.as_str() {
2008 "BadRequestException" => {
2009 return RusotoError::Service(DeleteConfigurationSetError::BadRequest(err.msg))
2010 }
2011 "ConcurrentModificationException" => {
2012 return RusotoError::Service(
2013 DeleteConfigurationSetError::ConcurrentModification(err.msg),
2014 )
2015 }
2016 "NotFoundException" => {
2017 return RusotoError::Service(DeleteConfigurationSetError::NotFound(err.msg))
2018 }
2019 "TooManyRequestsException" => {
2020 return RusotoError::Service(DeleteConfigurationSetError::TooManyRequests(
2021 err.msg,
2022 ))
2023 }
2024 "ValidationException" => return RusotoError::Validation(err.msg),
2025 _ => {}
2026 }
2027 }
2028 RusotoError::Unknown(res)
2029 }
2030}
2031impl fmt::Display for DeleteConfigurationSetError {
2032 #[allow(unused_variables)]
2033 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
2034 match *self {
2035 DeleteConfigurationSetError::BadRequest(ref cause) => write!(f, "{}", cause),
2036 DeleteConfigurationSetError::ConcurrentModification(ref cause) => {
2037 write!(f, "{}", cause)
2038 }
2039 DeleteConfigurationSetError::NotFound(ref cause) => write!(f, "{}", cause),
2040 DeleteConfigurationSetError::TooManyRequests(ref cause) => write!(f, "{}", cause),
2041 }
2042 }
2043}
2044impl Error for DeleteConfigurationSetError {}
2045#[derive(Debug, PartialEq)]
2047pub enum DeleteConfigurationSetEventDestinationError {
2048 BadRequest(String),
2050 NotFound(String),
2052 TooManyRequests(String),
2054}
2055
2056impl DeleteConfigurationSetEventDestinationError {
2057 pub fn from_response(
2058 res: BufferedHttpResponse,
2059 ) -> RusotoError<DeleteConfigurationSetEventDestinationError> {
2060 if let Some(err) = proto::json::Error::parse_rest(&res) {
2061 match err.typ.as_str() {
2062 "BadRequestException" => {
2063 return RusotoError::Service(
2064 DeleteConfigurationSetEventDestinationError::BadRequest(err.msg),
2065 )
2066 }
2067 "NotFoundException" => {
2068 return RusotoError::Service(
2069 DeleteConfigurationSetEventDestinationError::NotFound(err.msg),
2070 )
2071 }
2072 "TooManyRequestsException" => {
2073 return RusotoError::Service(
2074 DeleteConfigurationSetEventDestinationError::TooManyRequests(err.msg),
2075 )
2076 }
2077 "ValidationException" => return RusotoError::Validation(err.msg),
2078 _ => {}
2079 }
2080 }
2081 RusotoError::Unknown(res)
2082 }
2083}
2084impl fmt::Display for DeleteConfigurationSetEventDestinationError {
2085 #[allow(unused_variables)]
2086 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
2087 match *self {
2088 DeleteConfigurationSetEventDestinationError::BadRequest(ref cause) => {
2089 write!(f, "{}", cause)
2090 }
2091 DeleteConfigurationSetEventDestinationError::NotFound(ref cause) => {
2092 write!(f, "{}", cause)
2093 }
2094 DeleteConfigurationSetEventDestinationError::TooManyRequests(ref cause) => {
2095 write!(f, "{}", cause)
2096 }
2097 }
2098 }
2099}
2100impl Error for DeleteConfigurationSetEventDestinationError {}
2101#[derive(Debug, PartialEq)]
2103pub enum DeleteDedicatedIpPoolError {
2104 BadRequest(String),
2106 ConcurrentModification(String),
2108 NotFound(String),
2110 TooManyRequests(String),
2112}
2113
2114impl DeleteDedicatedIpPoolError {
2115 pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DeleteDedicatedIpPoolError> {
2116 if let Some(err) = proto::json::Error::parse_rest(&res) {
2117 match err.typ.as_str() {
2118 "BadRequestException" => {
2119 return RusotoError::Service(DeleteDedicatedIpPoolError::BadRequest(err.msg))
2120 }
2121 "ConcurrentModificationException" => {
2122 return RusotoError::Service(
2123 DeleteDedicatedIpPoolError::ConcurrentModification(err.msg),
2124 )
2125 }
2126 "NotFoundException" => {
2127 return RusotoError::Service(DeleteDedicatedIpPoolError::NotFound(err.msg))
2128 }
2129 "TooManyRequestsException" => {
2130 return RusotoError::Service(DeleteDedicatedIpPoolError::TooManyRequests(
2131 err.msg,
2132 ))
2133 }
2134 "ValidationException" => return RusotoError::Validation(err.msg),
2135 _ => {}
2136 }
2137 }
2138 RusotoError::Unknown(res)
2139 }
2140}
2141impl fmt::Display for DeleteDedicatedIpPoolError {
2142 #[allow(unused_variables)]
2143 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
2144 match *self {
2145 DeleteDedicatedIpPoolError::BadRequest(ref cause) => write!(f, "{}", cause),
2146 DeleteDedicatedIpPoolError::ConcurrentModification(ref cause) => write!(f, "{}", cause),
2147 DeleteDedicatedIpPoolError::NotFound(ref cause) => write!(f, "{}", cause),
2148 DeleteDedicatedIpPoolError::TooManyRequests(ref cause) => write!(f, "{}", cause),
2149 }
2150 }
2151}
2152impl Error for DeleteDedicatedIpPoolError {}
2153#[derive(Debug, PartialEq)]
2155pub enum DeleteEmailIdentityError {
2156 BadRequest(String),
2158 ConcurrentModification(String),
2160 NotFound(String),
2162 TooManyRequests(String),
2164}
2165
2166impl DeleteEmailIdentityError {
2167 pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DeleteEmailIdentityError> {
2168 if let Some(err) = proto::json::Error::parse_rest(&res) {
2169 match err.typ.as_str() {
2170 "BadRequestException" => {
2171 return RusotoError::Service(DeleteEmailIdentityError::BadRequest(err.msg))
2172 }
2173 "ConcurrentModificationException" => {
2174 return RusotoError::Service(DeleteEmailIdentityError::ConcurrentModification(
2175 err.msg,
2176 ))
2177 }
2178 "NotFoundException" => {
2179 return RusotoError::Service(DeleteEmailIdentityError::NotFound(err.msg))
2180 }
2181 "TooManyRequestsException" => {
2182 return RusotoError::Service(DeleteEmailIdentityError::TooManyRequests(err.msg))
2183 }
2184 "ValidationException" => return RusotoError::Validation(err.msg),
2185 _ => {}
2186 }
2187 }
2188 RusotoError::Unknown(res)
2189 }
2190}
2191impl fmt::Display for DeleteEmailIdentityError {
2192 #[allow(unused_variables)]
2193 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
2194 match *self {
2195 DeleteEmailIdentityError::BadRequest(ref cause) => write!(f, "{}", cause),
2196 DeleteEmailIdentityError::ConcurrentModification(ref cause) => write!(f, "{}", cause),
2197 DeleteEmailIdentityError::NotFound(ref cause) => write!(f, "{}", cause),
2198 DeleteEmailIdentityError::TooManyRequests(ref cause) => write!(f, "{}", cause),
2199 }
2200 }
2201}
2202impl Error for DeleteEmailIdentityError {}
2203#[derive(Debug, PartialEq)]
2205pub enum GetAccountError {
2206 BadRequest(String),
2208 TooManyRequests(String),
2210}
2211
2212impl GetAccountError {
2213 pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetAccountError> {
2214 if let Some(err) = proto::json::Error::parse_rest(&res) {
2215 match err.typ.as_str() {
2216 "BadRequestException" => {
2217 return RusotoError::Service(GetAccountError::BadRequest(err.msg))
2218 }
2219 "TooManyRequestsException" => {
2220 return RusotoError::Service(GetAccountError::TooManyRequests(err.msg))
2221 }
2222 "ValidationException" => return RusotoError::Validation(err.msg),
2223 _ => {}
2224 }
2225 }
2226 RusotoError::Unknown(res)
2227 }
2228}
2229impl fmt::Display for GetAccountError {
2230 #[allow(unused_variables)]
2231 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
2232 match *self {
2233 GetAccountError::BadRequest(ref cause) => write!(f, "{}", cause),
2234 GetAccountError::TooManyRequests(ref cause) => write!(f, "{}", cause),
2235 }
2236 }
2237}
2238impl Error for GetAccountError {}
2239#[derive(Debug, PartialEq)]
2241pub enum GetBlacklistReportsError {
2242 BadRequest(String),
2244 NotFound(String),
2246 TooManyRequests(String),
2248}
2249
2250impl GetBlacklistReportsError {
2251 pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetBlacklistReportsError> {
2252 if let Some(err) = proto::json::Error::parse_rest(&res) {
2253 match err.typ.as_str() {
2254 "BadRequestException" => {
2255 return RusotoError::Service(GetBlacklistReportsError::BadRequest(err.msg))
2256 }
2257 "NotFoundException" => {
2258 return RusotoError::Service(GetBlacklistReportsError::NotFound(err.msg))
2259 }
2260 "TooManyRequestsException" => {
2261 return RusotoError::Service(GetBlacklistReportsError::TooManyRequests(err.msg))
2262 }
2263 "ValidationException" => return RusotoError::Validation(err.msg),
2264 _ => {}
2265 }
2266 }
2267 RusotoError::Unknown(res)
2268 }
2269}
2270impl fmt::Display for GetBlacklistReportsError {
2271 #[allow(unused_variables)]
2272 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
2273 match *self {
2274 GetBlacklistReportsError::BadRequest(ref cause) => write!(f, "{}", cause),
2275 GetBlacklistReportsError::NotFound(ref cause) => write!(f, "{}", cause),
2276 GetBlacklistReportsError::TooManyRequests(ref cause) => write!(f, "{}", cause),
2277 }
2278 }
2279}
2280impl Error for GetBlacklistReportsError {}
2281#[derive(Debug, PartialEq)]
2283pub enum GetConfigurationSetError {
2284 BadRequest(String),
2286 NotFound(String),
2288 TooManyRequests(String),
2290}
2291
2292impl GetConfigurationSetError {
2293 pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetConfigurationSetError> {
2294 if let Some(err) = proto::json::Error::parse_rest(&res) {
2295 match err.typ.as_str() {
2296 "BadRequestException" => {
2297 return RusotoError::Service(GetConfigurationSetError::BadRequest(err.msg))
2298 }
2299 "NotFoundException" => {
2300 return RusotoError::Service(GetConfigurationSetError::NotFound(err.msg))
2301 }
2302 "TooManyRequestsException" => {
2303 return RusotoError::Service(GetConfigurationSetError::TooManyRequests(err.msg))
2304 }
2305 "ValidationException" => return RusotoError::Validation(err.msg),
2306 _ => {}
2307 }
2308 }
2309 RusotoError::Unknown(res)
2310 }
2311}
2312impl fmt::Display for GetConfigurationSetError {
2313 #[allow(unused_variables)]
2314 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
2315 match *self {
2316 GetConfigurationSetError::BadRequest(ref cause) => write!(f, "{}", cause),
2317 GetConfigurationSetError::NotFound(ref cause) => write!(f, "{}", cause),
2318 GetConfigurationSetError::TooManyRequests(ref cause) => write!(f, "{}", cause),
2319 }
2320 }
2321}
2322impl Error for GetConfigurationSetError {}
2323#[derive(Debug, PartialEq)]
2325pub enum GetConfigurationSetEventDestinationsError {
2326 BadRequest(String),
2328 NotFound(String),
2330 TooManyRequests(String),
2332}
2333
2334impl GetConfigurationSetEventDestinationsError {
2335 pub fn from_response(
2336 res: BufferedHttpResponse,
2337 ) -> RusotoError<GetConfigurationSetEventDestinationsError> {
2338 if let Some(err) = proto::json::Error::parse_rest(&res) {
2339 match err.typ.as_str() {
2340 "BadRequestException" => {
2341 return RusotoError::Service(
2342 GetConfigurationSetEventDestinationsError::BadRequest(err.msg),
2343 )
2344 }
2345 "NotFoundException" => {
2346 return RusotoError::Service(
2347 GetConfigurationSetEventDestinationsError::NotFound(err.msg),
2348 )
2349 }
2350 "TooManyRequestsException" => {
2351 return RusotoError::Service(
2352 GetConfigurationSetEventDestinationsError::TooManyRequests(err.msg),
2353 )
2354 }
2355 "ValidationException" => return RusotoError::Validation(err.msg),
2356 _ => {}
2357 }
2358 }
2359 RusotoError::Unknown(res)
2360 }
2361}
2362impl fmt::Display for GetConfigurationSetEventDestinationsError {
2363 #[allow(unused_variables)]
2364 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
2365 match *self {
2366 GetConfigurationSetEventDestinationsError::BadRequest(ref cause) => {
2367 write!(f, "{}", cause)
2368 }
2369 GetConfigurationSetEventDestinationsError::NotFound(ref cause) => {
2370 write!(f, "{}", cause)
2371 }
2372 GetConfigurationSetEventDestinationsError::TooManyRequests(ref cause) => {
2373 write!(f, "{}", cause)
2374 }
2375 }
2376 }
2377}
2378impl Error for GetConfigurationSetEventDestinationsError {}
2379#[derive(Debug, PartialEq)]
2381pub enum GetDedicatedIpError {
2382 BadRequest(String),
2384 NotFound(String),
2386 TooManyRequests(String),
2388}
2389
2390impl GetDedicatedIpError {
2391 pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetDedicatedIpError> {
2392 if let Some(err) = proto::json::Error::parse_rest(&res) {
2393 match err.typ.as_str() {
2394 "BadRequestException" => {
2395 return RusotoError::Service(GetDedicatedIpError::BadRequest(err.msg))
2396 }
2397 "NotFoundException" => {
2398 return RusotoError::Service(GetDedicatedIpError::NotFound(err.msg))
2399 }
2400 "TooManyRequestsException" => {
2401 return RusotoError::Service(GetDedicatedIpError::TooManyRequests(err.msg))
2402 }
2403 "ValidationException" => return RusotoError::Validation(err.msg),
2404 _ => {}
2405 }
2406 }
2407 RusotoError::Unknown(res)
2408 }
2409}
2410impl fmt::Display for GetDedicatedIpError {
2411 #[allow(unused_variables)]
2412 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
2413 match *self {
2414 GetDedicatedIpError::BadRequest(ref cause) => write!(f, "{}", cause),
2415 GetDedicatedIpError::NotFound(ref cause) => write!(f, "{}", cause),
2416 GetDedicatedIpError::TooManyRequests(ref cause) => write!(f, "{}", cause),
2417 }
2418 }
2419}
2420impl Error for GetDedicatedIpError {}
2421#[derive(Debug, PartialEq)]
2423pub enum GetDedicatedIpsError {
2424 BadRequest(String),
2426 NotFound(String),
2428 TooManyRequests(String),
2430}
2431
2432impl GetDedicatedIpsError {
2433 pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetDedicatedIpsError> {
2434 if let Some(err) = proto::json::Error::parse_rest(&res) {
2435 match err.typ.as_str() {
2436 "BadRequestException" => {
2437 return RusotoError::Service(GetDedicatedIpsError::BadRequest(err.msg))
2438 }
2439 "NotFoundException" => {
2440 return RusotoError::Service(GetDedicatedIpsError::NotFound(err.msg))
2441 }
2442 "TooManyRequestsException" => {
2443 return RusotoError::Service(GetDedicatedIpsError::TooManyRequests(err.msg))
2444 }
2445 "ValidationException" => return RusotoError::Validation(err.msg),
2446 _ => {}
2447 }
2448 }
2449 RusotoError::Unknown(res)
2450 }
2451}
2452impl fmt::Display for GetDedicatedIpsError {
2453 #[allow(unused_variables)]
2454 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
2455 match *self {
2456 GetDedicatedIpsError::BadRequest(ref cause) => write!(f, "{}", cause),
2457 GetDedicatedIpsError::NotFound(ref cause) => write!(f, "{}", cause),
2458 GetDedicatedIpsError::TooManyRequests(ref cause) => write!(f, "{}", cause),
2459 }
2460 }
2461}
2462impl Error for GetDedicatedIpsError {}
2463#[derive(Debug, PartialEq)]
2465pub enum GetDeliverabilityDashboardOptionsError {
2466 BadRequest(String),
2468 LimitExceeded(String),
2470 TooManyRequests(String),
2472}
2473
2474impl GetDeliverabilityDashboardOptionsError {
2475 pub fn from_response(
2476 res: BufferedHttpResponse,
2477 ) -> RusotoError<GetDeliverabilityDashboardOptionsError> {
2478 if let Some(err) = proto::json::Error::parse_rest(&res) {
2479 match err.typ.as_str() {
2480 "BadRequestException" => {
2481 return RusotoError::Service(
2482 GetDeliverabilityDashboardOptionsError::BadRequest(err.msg),
2483 )
2484 }
2485 "LimitExceededException" => {
2486 return RusotoError::Service(
2487 GetDeliverabilityDashboardOptionsError::LimitExceeded(err.msg),
2488 )
2489 }
2490 "TooManyRequestsException" => {
2491 return RusotoError::Service(
2492 GetDeliverabilityDashboardOptionsError::TooManyRequests(err.msg),
2493 )
2494 }
2495 "ValidationException" => return RusotoError::Validation(err.msg),
2496 _ => {}
2497 }
2498 }
2499 RusotoError::Unknown(res)
2500 }
2501}
2502impl fmt::Display for GetDeliverabilityDashboardOptionsError {
2503 #[allow(unused_variables)]
2504 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
2505 match *self {
2506 GetDeliverabilityDashboardOptionsError::BadRequest(ref cause) => write!(f, "{}", cause),
2507 GetDeliverabilityDashboardOptionsError::LimitExceeded(ref cause) => {
2508 write!(f, "{}", cause)
2509 }
2510 GetDeliverabilityDashboardOptionsError::TooManyRequests(ref cause) => {
2511 write!(f, "{}", cause)
2512 }
2513 }
2514 }
2515}
2516impl Error for GetDeliverabilityDashboardOptionsError {}
2517#[derive(Debug, PartialEq)]
2519pub enum GetDeliverabilityTestReportError {
2520 BadRequest(String),
2522 NotFound(String),
2524 TooManyRequests(String),
2526}
2527
2528impl GetDeliverabilityTestReportError {
2529 pub fn from_response(
2530 res: BufferedHttpResponse,
2531 ) -> RusotoError<GetDeliverabilityTestReportError> {
2532 if let Some(err) = proto::json::Error::parse_rest(&res) {
2533 match err.typ.as_str() {
2534 "BadRequestException" => {
2535 return RusotoError::Service(GetDeliverabilityTestReportError::BadRequest(
2536 err.msg,
2537 ))
2538 }
2539 "NotFoundException" => {
2540 return RusotoError::Service(GetDeliverabilityTestReportError::NotFound(
2541 err.msg,
2542 ))
2543 }
2544 "TooManyRequestsException" => {
2545 return RusotoError::Service(GetDeliverabilityTestReportError::TooManyRequests(
2546 err.msg,
2547 ))
2548 }
2549 "ValidationException" => return RusotoError::Validation(err.msg),
2550 _ => {}
2551 }
2552 }
2553 RusotoError::Unknown(res)
2554 }
2555}
2556impl fmt::Display for GetDeliverabilityTestReportError {
2557 #[allow(unused_variables)]
2558 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
2559 match *self {
2560 GetDeliverabilityTestReportError::BadRequest(ref cause) => write!(f, "{}", cause),
2561 GetDeliverabilityTestReportError::NotFound(ref cause) => write!(f, "{}", cause),
2562 GetDeliverabilityTestReportError::TooManyRequests(ref cause) => write!(f, "{}", cause),
2563 }
2564 }
2565}
2566impl Error for GetDeliverabilityTestReportError {}
2567#[derive(Debug, PartialEq)]
2569pub enum GetDomainDeliverabilityCampaignError {
2570 BadRequest(String),
2572 NotFound(String),
2574 TooManyRequests(String),
2576}
2577
2578impl GetDomainDeliverabilityCampaignError {
2579 pub fn from_response(
2580 res: BufferedHttpResponse,
2581 ) -> RusotoError<GetDomainDeliverabilityCampaignError> {
2582 if let Some(err) = proto::json::Error::parse_rest(&res) {
2583 match err.typ.as_str() {
2584 "BadRequestException" => {
2585 return RusotoError::Service(GetDomainDeliverabilityCampaignError::BadRequest(
2586 err.msg,
2587 ))
2588 }
2589 "NotFoundException" => {
2590 return RusotoError::Service(GetDomainDeliverabilityCampaignError::NotFound(
2591 err.msg,
2592 ))
2593 }
2594 "TooManyRequestsException" => {
2595 return RusotoError::Service(
2596 GetDomainDeliverabilityCampaignError::TooManyRequests(err.msg),
2597 )
2598 }
2599 "ValidationException" => return RusotoError::Validation(err.msg),
2600 _ => {}
2601 }
2602 }
2603 RusotoError::Unknown(res)
2604 }
2605}
2606impl fmt::Display for GetDomainDeliverabilityCampaignError {
2607 #[allow(unused_variables)]
2608 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
2609 match *self {
2610 GetDomainDeliverabilityCampaignError::BadRequest(ref cause) => write!(f, "{}", cause),
2611 GetDomainDeliverabilityCampaignError::NotFound(ref cause) => write!(f, "{}", cause),
2612 GetDomainDeliverabilityCampaignError::TooManyRequests(ref cause) => {
2613 write!(f, "{}", cause)
2614 }
2615 }
2616 }
2617}
2618impl Error for GetDomainDeliverabilityCampaignError {}
2619#[derive(Debug, PartialEq)]
2621pub enum GetDomainStatisticsReportError {
2622 BadRequest(String),
2624 NotFound(String),
2626 TooManyRequests(String),
2628}
2629
2630impl GetDomainStatisticsReportError {
2631 pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetDomainStatisticsReportError> {
2632 if let Some(err) = proto::json::Error::parse_rest(&res) {
2633 match err.typ.as_str() {
2634 "BadRequestException" => {
2635 return RusotoError::Service(GetDomainStatisticsReportError::BadRequest(
2636 err.msg,
2637 ))
2638 }
2639 "NotFoundException" => {
2640 return RusotoError::Service(GetDomainStatisticsReportError::NotFound(err.msg))
2641 }
2642 "TooManyRequestsException" => {
2643 return RusotoError::Service(GetDomainStatisticsReportError::TooManyRequests(
2644 err.msg,
2645 ))
2646 }
2647 "ValidationException" => return RusotoError::Validation(err.msg),
2648 _ => {}
2649 }
2650 }
2651 RusotoError::Unknown(res)
2652 }
2653}
2654impl fmt::Display for GetDomainStatisticsReportError {
2655 #[allow(unused_variables)]
2656 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
2657 match *self {
2658 GetDomainStatisticsReportError::BadRequest(ref cause) => write!(f, "{}", cause),
2659 GetDomainStatisticsReportError::NotFound(ref cause) => write!(f, "{}", cause),
2660 GetDomainStatisticsReportError::TooManyRequests(ref cause) => write!(f, "{}", cause),
2661 }
2662 }
2663}
2664impl Error for GetDomainStatisticsReportError {}
2665#[derive(Debug, PartialEq)]
2667pub enum GetEmailIdentityError {
2668 BadRequest(String),
2670 NotFound(String),
2672 TooManyRequests(String),
2674}
2675
2676impl GetEmailIdentityError {
2677 pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetEmailIdentityError> {
2678 if let Some(err) = proto::json::Error::parse_rest(&res) {
2679 match err.typ.as_str() {
2680 "BadRequestException" => {
2681 return RusotoError::Service(GetEmailIdentityError::BadRequest(err.msg))
2682 }
2683 "NotFoundException" => {
2684 return RusotoError::Service(GetEmailIdentityError::NotFound(err.msg))
2685 }
2686 "TooManyRequestsException" => {
2687 return RusotoError::Service(GetEmailIdentityError::TooManyRequests(err.msg))
2688 }
2689 "ValidationException" => return RusotoError::Validation(err.msg),
2690 _ => {}
2691 }
2692 }
2693 RusotoError::Unknown(res)
2694 }
2695}
2696impl fmt::Display for GetEmailIdentityError {
2697 #[allow(unused_variables)]
2698 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
2699 match *self {
2700 GetEmailIdentityError::BadRequest(ref cause) => write!(f, "{}", cause),
2701 GetEmailIdentityError::NotFound(ref cause) => write!(f, "{}", cause),
2702 GetEmailIdentityError::TooManyRequests(ref cause) => write!(f, "{}", cause),
2703 }
2704 }
2705}
2706impl Error for GetEmailIdentityError {}
2707#[derive(Debug, PartialEq)]
2709pub enum ListConfigurationSetsError {
2710 BadRequest(String),
2712 TooManyRequests(String),
2714}
2715
2716impl ListConfigurationSetsError {
2717 pub fn from_response(res: BufferedHttpResponse) -> RusotoError<ListConfigurationSetsError> {
2718 if let Some(err) = proto::json::Error::parse_rest(&res) {
2719 match err.typ.as_str() {
2720 "BadRequestException" => {
2721 return RusotoError::Service(ListConfigurationSetsError::BadRequest(err.msg))
2722 }
2723 "TooManyRequestsException" => {
2724 return RusotoError::Service(ListConfigurationSetsError::TooManyRequests(
2725 err.msg,
2726 ))
2727 }
2728 "ValidationException" => return RusotoError::Validation(err.msg),
2729 _ => {}
2730 }
2731 }
2732 RusotoError::Unknown(res)
2733 }
2734}
2735impl fmt::Display for ListConfigurationSetsError {
2736 #[allow(unused_variables)]
2737 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
2738 match *self {
2739 ListConfigurationSetsError::BadRequest(ref cause) => write!(f, "{}", cause),
2740 ListConfigurationSetsError::TooManyRequests(ref cause) => write!(f, "{}", cause),
2741 }
2742 }
2743}
2744impl Error for ListConfigurationSetsError {}
2745#[derive(Debug, PartialEq)]
2747pub enum ListDedicatedIpPoolsError {
2748 BadRequest(String),
2750 TooManyRequests(String),
2752}
2753
2754impl ListDedicatedIpPoolsError {
2755 pub fn from_response(res: BufferedHttpResponse) -> RusotoError<ListDedicatedIpPoolsError> {
2756 if let Some(err) = proto::json::Error::parse_rest(&res) {
2757 match err.typ.as_str() {
2758 "BadRequestException" => {
2759 return RusotoError::Service(ListDedicatedIpPoolsError::BadRequest(err.msg))
2760 }
2761 "TooManyRequestsException" => {
2762 return RusotoError::Service(ListDedicatedIpPoolsError::TooManyRequests(
2763 err.msg,
2764 ))
2765 }
2766 "ValidationException" => return RusotoError::Validation(err.msg),
2767 _ => {}
2768 }
2769 }
2770 RusotoError::Unknown(res)
2771 }
2772}
2773impl fmt::Display for ListDedicatedIpPoolsError {
2774 #[allow(unused_variables)]
2775 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
2776 match *self {
2777 ListDedicatedIpPoolsError::BadRequest(ref cause) => write!(f, "{}", cause),
2778 ListDedicatedIpPoolsError::TooManyRequests(ref cause) => write!(f, "{}", cause),
2779 }
2780 }
2781}
2782impl Error for ListDedicatedIpPoolsError {}
2783#[derive(Debug, PartialEq)]
2785pub enum ListDeliverabilityTestReportsError {
2786 BadRequest(String),
2788 NotFound(String),
2790 TooManyRequests(String),
2792}
2793
2794impl ListDeliverabilityTestReportsError {
2795 pub fn from_response(
2796 res: BufferedHttpResponse,
2797 ) -> RusotoError<ListDeliverabilityTestReportsError> {
2798 if let Some(err) = proto::json::Error::parse_rest(&res) {
2799 match err.typ.as_str() {
2800 "BadRequestException" => {
2801 return RusotoError::Service(ListDeliverabilityTestReportsError::BadRequest(
2802 err.msg,
2803 ))
2804 }
2805 "NotFoundException" => {
2806 return RusotoError::Service(ListDeliverabilityTestReportsError::NotFound(
2807 err.msg,
2808 ))
2809 }
2810 "TooManyRequestsException" => {
2811 return RusotoError::Service(
2812 ListDeliverabilityTestReportsError::TooManyRequests(err.msg),
2813 )
2814 }
2815 "ValidationException" => return RusotoError::Validation(err.msg),
2816 _ => {}
2817 }
2818 }
2819 RusotoError::Unknown(res)
2820 }
2821}
2822impl fmt::Display for ListDeliverabilityTestReportsError {
2823 #[allow(unused_variables)]
2824 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
2825 match *self {
2826 ListDeliverabilityTestReportsError::BadRequest(ref cause) => write!(f, "{}", cause),
2827 ListDeliverabilityTestReportsError::NotFound(ref cause) => write!(f, "{}", cause),
2828 ListDeliverabilityTestReportsError::TooManyRequests(ref cause) => {
2829 write!(f, "{}", cause)
2830 }
2831 }
2832 }
2833}
2834impl Error for ListDeliverabilityTestReportsError {}
2835#[derive(Debug, PartialEq)]
2837pub enum ListDomainDeliverabilityCampaignsError {
2838 BadRequest(String),
2840 NotFound(String),
2842 TooManyRequests(String),
2844}
2845
2846impl ListDomainDeliverabilityCampaignsError {
2847 pub fn from_response(
2848 res: BufferedHttpResponse,
2849 ) -> RusotoError<ListDomainDeliverabilityCampaignsError> {
2850 if let Some(err) = proto::json::Error::parse_rest(&res) {
2851 match err.typ.as_str() {
2852 "BadRequestException" => {
2853 return RusotoError::Service(
2854 ListDomainDeliverabilityCampaignsError::BadRequest(err.msg),
2855 )
2856 }
2857 "NotFoundException" => {
2858 return RusotoError::Service(ListDomainDeliverabilityCampaignsError::NotFound(
2859 err.msg,
2860 ))
2861 }
2862 "TooManyRequestsException" => {
2863 return RusotoError::Service(
2864 ListDomainDeliverabilityCampaignsError::TooManyRequests(err.msg),
2865 )
2866 }
2867 "ValidationException" => return RusotoError::Validation(err.msg),
2868 _ => {}
2869 }
2870 }
2871 RusotoError::Unknown(res)
2872 }
2873}
2874impl fmt::Display for ListDomainDeliverabilityCampaignsError {
2875 #[allow(unused_variables)]
2876 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
2877 match *self {
2878 ListDomainDeliverabilityCampaignsError::BadRequest(ref cause) => write!(f, "{}", cause),
2879 ListDomainDeliverabilityCampaignsError::NotFound(ref cause) => write!(f, "{}", cause),
2880 ListDomainDeliverabilityCampaignsError::TooManyRequests(ref cause) => {
2881 write!(f, "{}", cause)
2882 }
2883 }
2884 }
2885}
2886impl Error for ListDomainDeliverabilityCampaignsError {}
2887#[derive(Debug, PartialEq)]
2889pub enum ListEmailIdentitiesError {
2890 BadRequest(String),
2892 TooManyRequests(String),
2894}
2895
2896impl ListEmailIdentitiesError {
2897 pub fn from_response(res: BufferedHttpResponse) -> RusotoError<ListEmailIdentitiesError> {
2898 if let Some(err) = proto::json::Error::parse_rest(&res) {
2899 match err.typ.as_str() {
2900 "BadRequestException" => {
2901 return RusotoError::Service(ListEmailIdentitiesError::BadRequest(err.msg))
2902 }
2903 "TooManyRequestsException" => {
2904 return RusotoError::Service(ListEmailIdentitiesError::TooManyRequests(err.msg))
2905 }
2906 "ValidationException" => return RusotoError::Validation(err.msg),
2907 _ => {}
2908 }
2909 }
2910 RusotoError::Unknown(res)
2911 }
2912}
2913impl fmt::Display for ListEmailIdentitiesError {
2914 #[allow(unused_variables)]
2915 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
2916 match *self {
2917 ListEmailIdentitiesError::BadRequest(ref cause) => write!(f, "{}", cause),
2918 ListEmailIdentitiesError::TooManyRequests(ref cause) => write!(f, "{}", cause),
2919 }
2920 }
2921}
2922impl Error for ListEmailIdentitiesError {}
2923#[derive(Debug, PartialEq)]
2925pub enum ListTagsForResourceError {
2926 BadRequest(String),
2928 NotFound(String),
2930 TooManyRequests(String),
2932}
2933
2934impl ListTagsForResourceError {
2935 pub fn from_response(res: BufferedHttpResponse) -> RusotoError<ListTagsForResourceError> {
2936 if let Some(err) = proto::json::Error::parse_rest(&res) {
2937 match err.typ.as_str() {
2938 "BadRequestException" => {
2939 return RusotoError::Service(ListTagsForResourceError::BadRequest(err.msg))
2940 }
2941 "NotFoundException" => {
2942 return RusotoError::Service(ListTagsForResourceError::NotFound(err.msg))
2943 }
2944 "TooManyRequestsException" => {
2945 return RusotoError::Service(ListTagsForResourceError::TooManyRequests(err.msg))
2946 }
2947 "ValidationException" => return RusotoError::Validation(err.msg),
2948 _ => {}
2949 }
2950 }
2951 RusotoError::Unknown(res)
2952 }
2953}
2954impl fmt::Display for ListTagsForResourceError {
2955 #[allow(unused_variables)]
2956 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
2957 match *self {
2958 ListTagsForResourceError::BadRequest(ref cause) => write!(f, "{}", cause),
2959 ListTagsForResourceError::NotFound(ref cause) => write!(f, "{}", cause),
2960 ListTagsForResourceError::TooManyRequests(ref cause) => write!(f, "{}", cause),
2961 }
2962 }
2963}
2964impl Error for ListTagsForResourceError {}
2965#[derive(Debug, PartialEq)]
2967pub enum PutAccountDedicatedIpWarmupAttributesError {
2968 BadRequest(String),
2970 TooManyRequests(String),
2972}
2973
2974impl PutAccountDedicatedIpWarmupAttributesError {
2975 pub fn from_response(
2976 res: BufferedHttpResponse,
2977 ) -> RusotoError<PutAccountDedicatedIpWarmupAttributesError> {
2978 if let Some(err) = proto::json::Error::parse_rest(&res) {
2979 match err.typ.as_str() {
2980 "BadRequestException" => {
2981 return RusotoError::Service(
2982 PutAccountDedicatedIpWarmupAttributesError::BadRequest(err.msg),
2983 )
2984 }
2985 "TooManyRequestsException" => {
2986 return RusotoError::Service(
2987 PutAccountDedicatedIpWarmupAttributesError::TooManyRequests(err.msg),
2988 )
2989 }
2990 "ValidationException" => return RusotoError::Validation(err.msg),
2991 _ => {}
2992 }
2993 }
2994 RusotoError::Unknown(res)
2995 }
2996}
2997impl fmt::Display for PutAccountDedicatedIpWarmupAttributesError {
2998 #[allow(unused_variables)]
2999 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
3000 match *self {
3001 PutAccountDedicatedIpWarmupAttributesError::BadRequest(ref cause) => {
3002 write!(f, "{}", cause)
3003 }
3004 PutAccountDedicatedIpWarmupAttributesError::TooManyRequests(ref cause) => {
3005 write!(f, "{}", cause)
3006 }
3007 }
3008 }
3009}
3010impl Error for PutAccountDedicatedIpWarmupAttributesError {}
3011#[derive(Debug, PartialEq)]
3013pub enum PutAccountSendingAttributesError {
3014 BadRequest(String),
3016 TooManyRequests(String),
3018}
3019
3020impl PutAccountSendingAttributesError {
3021 pub fn from_response(
3022 res: BufferedHttpResponse,
3023 ) -> RusotoError<PutAccountSendingAttributesError> {
3024 if let Some(err) = proto::json::Error::parse_rest(&res) {
3025 match err.typ.as_str() {
3026 "BadRequestException" => {
3027 return RusotoError::Service(PutAccountSendingAttributesError::BadRequest(
3028 err.msg,
3029 ))
3030 }
3031 "TooManyRequestsException" => {
3032 return RusotoError::Service(PutAccountSendingAttributesError::TooManyRequests(
3033 err.msg,
3034 ))
3035 }
3036 "ValidationException" => return RusotoError::Validation(err.msg),
3037 _ => {}
3038 }
3039 }
3040 RusotoError::Unknown(res)
3041 }
3042}
3043impl fmt::Display for PutAccountSendingAttributesError {
3044 #[allow(unused_variables)]
3045 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
3046 match *self {
3047 PutAccountSendingAttributesError::BadRequest(ref cause) => write!(f, "{}", cause),
3048 PutAccountSendingAttributesError::TooManyRequests(ref cause) => write!(f, "{}", cause),
3049 }
3050 }
3051}
3052impl Error for PutAccountSendingAttributesError {}
3053#[derive(Debug, PartialEq)]
3055pub enum PutConfigurationSetDeliveryOptionsError {
3056 BadRequest(String),
3058 NotFound(String),
3060 TooManyRequests(String),
3062}
3063
3064impl PutConfigurationSetDeliveryOptionsError {
3065 pub fn from_response(
3066 res: BufferedHttpResponse,
3067 ) -> RusotoError<PutConfigurationSetDeliveryOptionsError> {
3068 if let Some(err) = proto::json::Error::parse_rest(&res) {
3069 match err.typ.as_str() {
3070 "BadRequestException" => {
3071 return RusotoError::Service(
3072 PutConfigurationSetDeliveryOptionsError::BadRequest(err.msg),
3073 )
3074 }
3075 "NotFoundException" => {
3076 return RusotoError::Service(PutConfigurationSetDeliveryOptionsError::NotFound(
3077 err.msg,
3078 ))
3079 }
3080 "TooManyRequestsException" => {
3081 return RusotoError::Service(
3082 PutConfigurationSetDeliveryOptionsError::TooManyRequests(err.msg),
3083 )
3084 }
3085 "ValidationException" => return RusotoError::Validation(err.msg),
3086 _ => {}
3087 }
3088 }
3089 RusotoError::Unknown(res)
3090 }
3091}
3092impl fmt::Display for PutConfigurationSetDeliveryOptionsError {
3093 #[allow(unused_variables)]
3094 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
3095 match *self {
3096 PutConfigurationSetDeliveryOptionsError::BadRequest(ref cause) => {
3097 write!(f, "{}", cause)
3098 }
3099 PutConfigurationSetDeliveryOptionsError::NotFound(ref cause) => write!(f, "{}", cause),
3100 PutConfigurationSetDeliveryOptionsError::TooManyRequests(ref cause) => {
3101 write!(f, "{}", cause)
3102 }
3103 }
3104 }
3105}
3106impl Error for PutConfigurationSetDeliveryOptionsError {}
3107#[derive(Debug, PartialEq)]
3109pub enum PutConfigurationSetReputationOptionsError {
3110 BadRequest(String),
3112 NotFound(String),
3114 TooManyRequests(String),
3116}
3117
3118impl PutConfigurationSetReputationOptionsError {
3119 pub fn from_response(
3120 res: BufferedHttpResponse,
3121 ) -> RusotoError<PutConfigurationSetReputationOptionsError> {
3122 if let Some(err) = proto::json::Error::parse_rest(&res) {
3123 match err.typ.as_str() {
3124 "BadRequestException" => {
3125 return RusotoError::Service(
3126 PutConfigurationSetReputationOptionsError::BadRequest(err.msg),
3127 )
3128 }
3129 "NotFoundException" => {
3130 return RusotoError::Service(
3131 PutConfigurationSetReputationOptionsError::NotFound(err.msg),
3132 )
3133 }
3134 "TooManyRequestsException" => {
3135 return RusotoError::Service(
3136 PutConfigurationSetReputationOptionsError::TooManyRequests(err.msg),
3137 )
3138 }
3139 "ValidationException" => return RusotoError::Validation(err.msg),
3140 _ => {}
3141 }
3142 }
3143 RusotoError::Unknown(res)
3144 }
3145}
3146impl fmt::Display for PutConfigurationSetReputationOptionsError {
3147 #[allow(unused_variables)]
3148 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
3149 match *self {
3150 PutConfigurationSetReputationOptionsError::BadRequest(ref cause) => {
3151 write!(f, "{}", cause)
3152 }
3153 PutConfigurationSetReputationOptionsError::NotFound(ref cause) => {
3154 write!(f, "{}", cause)
3155 }
3156 PutConfigurationSetReputationOptionsError::TooManyRequests(ref cause) => {
3157 write!(f, "{}", cause)
3158 }
3159 }
3160 }
3161}
3162impl Error for PutConfigurationSetReputationOptionsError {}
3163#[derive(Debug, PartialEq)]
3165pub enum PutConfigurationSetSendingOptionsError {
3166 BadRequest(String),
3168 NotFound(String),
3170 TooManyRequests(String),
3172}
3173
3174impl PutConfigurationSetSendingOptionsError {
3175 pub fn from_response(
3176 res: BufferedHttpResponse,
3177 ) -> RusotoError<PutConfigurationSetSendingOptionsError> {
3178 if let Some(err) = proto::json::Error::parse_rest(&res) {
3179 match err.typ.as_str() {
3180 "BadRequestException" => {
3181 return RusotoError::Service(
3182 PutConfigurationSetSendingOptionsError::BadRequest(err.msg),
3183 )
3184 }
3185 "NotFoundException" => {
3186 return RusotoError::Service(PutConfigurationSetSendingOptionsError::NotFound(
3187 err.msg,
3188 ))
3189 }
3190 "TooManyRequestsException" => {
3191 return RusotoError::Service(
3192 PutConfigurationSetSendingOptionsError::TooManyRequests(err.msg),
3193 )
3194 }
3195 "ValidationException" => return RusotoError::Validation(err.msg),
3196 _ => {}
3197 }
3198 }
3199 RusotoError::Unknown(res)
3200 }
3201}
3202impl fmt::Display for PutConfigurationSetSendingOptionsError {
3203 #[allow(unused_variables)]
3204 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
3205 match *self {
3206 PutConfigurationSetSendingOptionsError::BadRequest(ref cause) => write!(f, "{}", cause),
3207 PutConfigurationSetSendingOptionsError::NotFound(ref cause) => write!(f, "{}", cause),
3208 PutConfigurationSetSendingOptionsError::TooManyRequests(ref cause) => {
3209 write!(f, "{}", cause)
3210 }
3211 }
3212 }
3213}
3214impl Error for PutConfigurationSetSendingOptionsError {}
3215#[derive(Debug, PartialEq)]
3217pub enum PutConfigurationSetTrackingOptionsError {
3218 BadRequest(String),
3220 NotFound(String),
3222 TooManyRequests(String),
3224}
3225
3226impl PutConfigurationSetTrackingOptionsError {
3227 pub fn from_response(
3228 res: BufferedHttpResponse,
3229 ) -> RusotoError<PutConfigurationSetTrackingOptionsError> {
3230 if let Some(err) = proto::json::Error::parse_rest(&res) {
3231 match err.typ.as_str() {
3232 "BadRequestException" => {
3233 return RusotoError::Service(
3234 PutConfigurationSetTrackingOptionsError::BadRequest(err.msg),
3235 )
3236 }
3237 "NotFoundException" => {
3238 return RusotoError::Service(PutConfigurationSetTrackingOptionsError::NotFound(
3239 err.msg,
3240 ))
3241 }
3242 "TooManyRequestsException" => {
3243 return RusotoError::Service(
3244 PutConfigurationSetTrackingOptionsError::TooManyRequests(err.msg),
3245 )
3246 }
3247 "ValidationException" => return RusotoError::Validation(err.msg),
3248 _ => {}
3249 }
3250 }
3251 RusotoError::Unknown(res)
3252 }
3253}
3254impl fmt::Display for PutConfigurationSetTrackingOptionsError {
3255 #[allow(unused_variables)]
3256 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
3257 match *self {
3258 PutConfigurationSetTrackingOptionsError::BadRequest(ref cause) => {
3259 write!(f, "{}", cause)
3260 }
3261 PutConfigurationSetTrackingOptionsError::NotFound(ref cause) => write!(f, "{}", cause),
3262 PutConfigurationSetTrackingOptionsError::TooManyRequests(ref cause) => {
3263 write!(f, "{}", cause)
3264 }
3265 }
3266 }
3267}
3268impl Error for PutConfigurationSetTrackingOptionsError {}
3269#[derive(Debug, PartialEq)]
3271pub enum PutDedicatedIpInPoolError {
3272 BadRequest(String),
3274 NotFound(String),
3276 TooManyRequests(String),
3278}
3279
3280impl PutDedicatedIpInPoolError {
3281 pub fn from_response(res: BufferedHttpResponse) -> RusotoError<PutDedicatedIpInPoolError> {
3282 if let Some(err) = proto::json::Error::parse_rest(&res) {
3283 match err.typ.as_str() {
3284 "BadRequestException" => {
3285 return RusotoError::Service(PutDedicatedIpInPoolError::BadRequest(err.msg))
3286 }
3287 "NotFoundException" => {
3288 return RusotoError::Service(PutDedicatedIpInPoolError::NotFound(err.msg))
3289 }
3290 "TooManyRequestsException" => {
3291 return RusotoError::Service(PutDedicatedIpInPoolError::TooManyRequests(
3292 err.msg,
3293 ))
3294 }
3295 "ValidationException" => return RusotoError::Validation(err.msg),
3296 _ => {}
3297 }
3298 }
3299 RusotoError::Unknown(res)
3300 }
3301}
3302impl fmt::Display for PutDedicatedIpInPoolError {
3303 #[allow(unused_variables)]
3304 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
3305 match *self {
3306 PutDedicatedIpInPoolError::BadRequest(ref cause) => write!(f, "{}", cause),
3307 PutDedicatedIpInPoolError::NotFound(ref cause) => write!(f, "{}", cause),
3308 PutDedicatedIpInPoolError::TooManyRequests(ref cause) => write!(f, "{}", cause),
3309 }
3310 }
3311}
3312impl Error for PutDedicatedIpInPoolError {}
3313#[derive(Debug, PartialEq)]
3315pub enum PutDedicatedIpWarmupAttributesError {
3316 BadRequest(String),
3318 NotFound(String),
3320 TooManyRequests(String),
3322}
3323
3324impl PutDedicatedIpWarmupAttributesError {
3325 pub fn from_response(
3326 res: BufferedHttpResponse,
3327 ) -> RusotoError<PutDedicatedIpWarmupAttributesError> {
3328 if let Some(err) = proto::json::Error::parse_rest(&res) {
3329 match err.typ.as_str() {
3330 "BadRequestException" => {
3331 return RusotoError::Service(PutDedicatedIpWarmupAttributesError::BadRequest(
3332 err.msg,
3333 ))
3334 }
3335 "NotFoundException" => {
3336 return RusotoError::Service(PutDedicatedIpWarmupAttributesError::NotFound(
3337 err.msg,
3338 ))
3339 }
3340 "TooManyRequestsException" => {
3341 return RusotoError::Service(
3342 PutDedicatedIpWarmupAttributesError::TooManyRequests(err.msg),
3343 )
3344 }
3345 "ValidationException" => return RusotoError::Validation(err.msg),
3346 _ => {}
3347 }
3348 }
3349 RusotoError::Unknown(res)
3350 }
3351}
3352impl fmt::Display for PutDedicatedIpWarmupAttributesError {
3353 #[allow(unused_variables)]
3354 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
3355 match *self {
3356 PutDedicatedIpWarmupAttributesError::BadRequest(ref cause) => write!(f, "{}", cause),
3357 PutDedicatedIpWarmupAttributesError::NotFound(ref cause) => write!(f, "{}", cause),
3358 PutDedicatedIpWarmupAttributesError::TooManyRequests(ref cause) => {
3359 write!(f, "{}", cause)
3360 }
3361 }
3362 }
3363}
3364impl Error for PutDedicatedIpWarmupAttributesError {}
3365#[derive(Debug, PartialEq)]
3367pub enum PutDeliverabilityDashboardOptionError {
3368 AlreadyExists(String),
3370 BadRequest(String),
3372 LimitExceeded(String),
3374 NotFound(String),
3376 TooManyRequests(String),
3378}
3379
3380impl PutDeliverabilityDashboardOptionError {
3381 pub fn from_response(
3382 res: BufferedHttpResponse,
3383 ) -> RusotoError<PutDeliverabilityDashboardOptionError> {
3384 if let Some(err) = proto::json::Error::parse_rest(&res) {
3385 match err.typ.as_str() {
3386 "AlreadyExistsException" => {
3387 return RusotoError::Service(
3388 PutDeliverabilityDashboardOptionError::AlreadyExists(err.msg),
3389 )
3390 }
3391 "BadRequestException" => {
3392 return RusotoError::Service(PutDeliverabilityDashboardOptionError::BadRequest(
3393 err.msg,
3394 ))
3395 }
3396 "LimitExceededException" => {
3397 return RusotoError::Service(
3398 PutDeliverabilityDashboardOptionError::LimitExceeded(err.msg),
3399 )
3400 }
3401 "NotFoundException" => {
3402 return RusotoError::Service(PutDeliverabilityDashboardOptionError::NotFound(
3403 err.msg,
3404 ))
3405 }
3406 "TooManyRequestsException" => {
3407 return RusotoError::Service(
3408 PutDeliverabilityDashboardOptionError::TooManyRequests(err.msg),
3409 )
3410 }
3411 "ValidationException" => return RusotoError::Validation(err.msg),
3412 _ => {}
3413 }
3414 }
3415 RusotoError::Unknown(res)
3416 }
3417}
3418impl fmt::Display for PutDeliverabilityDashboardOptionError {
3419 #[allow(unused_variables)]
3420 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
3421 match *self {
3422 PutDeliverabilityDashboardOptionError::AlreadyExists(ref cause) => {
3423 write!(f, "{}", cause)
3424 }
3425 PutDeliverabilityDashboardOptionError::BadRequest(ref cause) => write!(f, "{}", cause),
3426 PutDeliverabilityDashboardOptionError::LimitExceeded(ref cause) => {
3427 write!(f, "{}", cause)
3428 }
3429 PutDeliverabilityDashboardOptionError::NotFound(ref cause) => write!(f, "{}", cause),
3430 PutDeliverabilityDashboardOptionError::TooManyRequests(ref cause) => {
3431 write!(f, "{}", cause)
3432 }
3433 }
3434 }
3435}
3436impl Error for PutDeliverabilityDashboardOptionError {}
3437#[derive(Debug, PartialEq)]
3439pub enum PutEmailIdentityDkimAttributesError {
3440 BadRequest(String),
3442 NotFound(String),
3444 TooManyRequests(String),
3446}
3447
3448impl PutEmailIdentityDkimAttributesError {
3449 pub fn from_response(
3450 res: BufferedHttpResponse,
3451 ) -> RusotoError<PutEmailIdentityDkimAttributesError> {
3452 if let Some(err) = proto::json::Error::parse_rest(&res) {
3453 match err.typ.as_str() {
3454 "BadRequestException" => {
3455 return RusotoError::Service(PutEmailIdentityDkimAttributesError::BadRequest(
3456 err.msg,
3457 ))
3458 }
3459 "NotFoundException" => {
3460 return RusotoError::Service(PutEmailIdentityDkimAttributesError::NotFound(
3461 err.msg,
3462 ))
3463 }
3464 "TooManyRequestsException" => {
3465 return RusotoError::Service(
3466 PutEmailIdentityDkimAttributesError::TooManyRequests(err.msg),
3467 )
3468 }
3469 "ValidationException" => return RusotoError::Validation(err.msg),
3470 _ => {}
3471 }
3472 }
3473 RusotoError::Unknown(res)
3474 }
3475}
3476impl fmt::Display for PutEmailIdentityDkimAttributesError {
3477 #[allow(unused_variables)]
3478 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
3479 match *self {
3480 PutEmailIdentityDkimAttributesError::BadRequest(ref cause) => write!(f, "{}", cause),
3481 PutEmailIdentityDkimAttributesError::NotFound(ref cause) => write!(f, "{}", cause),
3482 PutEmailIdentityDkimAttributesError::TooManyRequests(ref cause) => {
3483 write!(f, "{}", cause)
3484 }
3485 }
3486 }
3487}
3488impl Error for PutEmailIdentityDkimAttributesError {}
3489#[derive(Debug, PartialEq)]
3491pub enum PutEmailIdentityFeedbackAttributesError {
3492 BadRequest(String),
3494 NotFound(String),
3496 TooManyRequests(String),
3498}
3499
3500impl PutEmailIdentityFeedbackAttributesError {
3501 pub fn from_response(
3502 res: BufferedHttpResponse,
3503 ) -> RusotoError<PutEmailIdentityFeedbackAttributesError> {
3504 if let Some(err) = proto::json::Error::parse_rest(&res) {
3505 match err.typ.as_str() {
3506 "BadRequestException" => {
3507 return RusotoError::Service(
3508 PutEmailIdentityFeedbackAttributesError::BadRequest(err.msg),
3509 )
3510 }
3511 "NotFoundException" => {
3512 return RusotoError::Service(PutEmailIdentityFeedbackAttributesError::NotFound(
3513 err.msg,
3514 ))
3515 }
3516 "TooManyRequestsException" => {
3517 return RusotoError::Service(
3518 PutEmailIdentityFeedbackAttributesError::TooManyRequests(err.msg),
3519 )
3520 }
3521 "ValidationException" => return RusotoError::Validation(err.msg),
3522 _ => {}
3523 }
3524 }
3525 RusotoError::Unknown(res)
3526 }
3527}
3528impl fmt::Display for PutEmailIdentityFeedbackAttributesError {
3529 #[allow(unused_variables)]
3530 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
3531 match *self {
3532 PutEmailIdentityFeedbackAttributesError::BadRequest(ref cause) => {
3533 write!(f, "{}", cause)
3534 }
3535 PutEmailIdentityFeedbackAttributesError::NotFound(ref cause) => write!(f, "{}", cause),
3536 PutEmailIdentityFeedbackAttributesError::TooManyRequests(ref cause) => {
3537 write!(f, "{}", cause)
3538 }
3539 }
3540 }
3541}
3542impl Error for PutEmailIdentityFeedbackAttributesError {}
3543#[derive(Debug, PartialEq)]
3545pub enum PutEmailIdentityMailFromAttributesError {
3546 BadRequest(String),
3548 NotFound(String),
3550 TooManyRequests(String),
3552}
3553
3554impl PutEmailIdentityMailFromAttributesError {
3555 pub fn from_response(
3556 res: BufferedHttpResponse,
3557 ) -> RusotoError<PutEmailIdentityMailFromAttributesError> {
3558 if let Some(err) = proto::json::Error::parse_rest(&res) {
3559 match err.typ.as_str() {
3560 "BadRequestException" => {
3561 return RusotoError::Service(
3562 PutEmailIdentityMailFromAttributesError::BadRequest(err.msg),
3563 )
3564 }
3565 "NotFoundException" => {
3566 return RusotoError::Service(PutEmailIdentityMailFromAttributesError::NotFound(
3567 err.msg,
3568 ))
3569 }
3570 "TooManyRequestsException" => {
3571 return RusotoError::Service(
3572 PutEmailIdentityMailFromAttributesError::TooManyRequests(err.msg),
3573 )
3574 }
3575 "ValidationException" => return RusotoError::Validation(err.msg),
3576 _ => {}
3577 }
3578 }
3579 RusotoError::Unknown(res)
3580 }
3581}
3582impl fmt::Display for PutEmailIdentityMailFromAttributesError {
3583 #[allow(unused_variables)]
3584 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
3585 match *self {
3586 PutEmailIdentityMailFromAttributesError::BadRequest(ref cause) => {
3587 write!(f, "{}", cause)
3588 }
3589 PutEmailIdentityMailFromAttributesError::NotFound(ref cause) => write!(f, "{}", cause),
3590 PutEmailIdentityMailFromAttributesError::TooManyRequests(ref cause) => {
3591 write!(f, "{}", cause)
3592 }
3593 }
3594 }
3595}
3596impl Error for PutEmailIdentityMailFromAttributesError {}
3597#[derive(Debug, PartialEq)]
3599pub enum SendEmailError {
3600 AccountSuspended(String),
3602 BadRequest(String),
3604 LimitExceeded(String),
3606 MailFromDomainNotVerified(String),
3608 MessageRejected(String),
3610 NotFound(String),
3612 SendingPaused(String),
3614 TooManyRequests(String),
3616}
3617
3618impl SendEmailError {
3619 pub fn from_response(res: BufferedHttpResponse) -> RusotoError<SendEmailError> {
3620 if let Some(err) = proto::json::Error::parse_rest(&res) {
3621 match err.typ.as_str() {
3622 "AccountSuspendedException" => {
3623 return RusotoError::Service(SendEmailError::AccountSuspended(err.msg))
3624 }
3625 "BadRequestException" => {
3626 return RusotoError::Service(SendEmailError::BadRequest(err.msg))
3627 }
3628 "LimitExceededException" => {
3629 return RusotoError::Service(SendEmailError::LimitExceeded(err.msg))
3630 }
3631 "MailFromDomainNotVerifiedException" => {
3632 return RusotoError::Service(SendEmailError::MailFromDomainNotVerified(err.msg))
3633 }
3634 "MessageRejected" => {
3635 return RusotoError::Service(SendEmailError::MessageRejected(err.msg))
3636 }
3637 "NotFoundException" => {
3638 return RusotoError::Service(SendEmailError::NotFound(err.msg))
3639 }
3640 "SendingPausedException" => {
3641 return RusotoError::Service(SendEmailError::SendingPaused(err.msg))
3642 }
3643 "TooManyRequestsException" => {
3644 return RusotoError::Service(SendEmailError::TooManyRequests(err.msg))
3645 }
3646 "ValidationException" => return RusotoError::Validation(err.msg),
3647 _ => {}
3648 }
3649 }
3650 RusotoError::Unknown(res)
3651 }
3652}
3653impl fmt::Display for SendEmailError {
3654 #[allow(unused_variables)]
3655 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
3656 match *self {
3657 SendEmailError::AccountSuspended(ref cause) => write!(f, "{}", cause),
3658 SendEmailError::BadRequest(ref cause) => write!(f, "{}", cause),
3659 SendEmailError::LimitExceeded(ref cause) => write!(f, "{}", cause),
3660 SendEmailError::MailFromDomainNotVerified(ref cause) => write!(f, "{}", cause),
3661 SendEmailError::MessageRejected(ref cause) => write!(f, "{}", cause),
3662 SendEmailError::NotFound(ref cause) => write!(f, "{}", cause),
3663 SendEmailError::SendingPaused(ref cause) => write!(f, "{}", cause),
3664 SendEmailError::TooManyRequests(ref cause) => write!(f, "{}", cause),
3665 }
3666 }
3667}
3668impl Error for SendEmailError {}
3669#[derive(Debug, PartialEq)]
3671pub enum TagResourceError {
3672 BadRequest(String),
3674 ConcurrentModification(String),
3676 NotFound(String),
3678 TooManyRequests(String),
3680}
3681
3682impl TagResourceError {
3683 pub fn from_response(res: BufferedHttpResponse) -> RusotoError<TagResourceError> {
3684 if let Some(err) = proto::json::Error::parse_rest(&res) {
3685 match err.typ.as_str() {
3686 "BadRequestException" => {
3687 return RusotoError::Service(TagResourceError::BadRequest(err.msg))
3688 }
3689 "ConcurrentModificationException" => {
3690 return RusotoError::Service(TagResourceError::ConcurrentModification(err.msg))
3691 }
3692 "NotFoundException" => {
3693 return RusotoError::Service(TagResourceError::NotFound(err.msg))
3694 }
3695 "TooManyRequestsException" => {
3696 return RusotoError::Service(TagResourceError::TooManyRequests(err.msg))
3697 }
3698 "ValidationException" => return RusotoError::Validation(err.msg),
3699 _ => {}
3700 }
3701 }
3702 RusotoError::Unknown(res)
3703 }
3704}
3705impl fmt::Display for TagResourceError {
3706 #[allow(unused_variables)]
3707 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
3708 match *self {
3709 TagResourceError::BadRequest(ref cause) => write!(f, "{}", cause),
3710 TagResourceError::ConcurrentModification(ref cause) => write!(f, "{}", cause),
3711 TagResourceError::NotFound(ref cause) => write!(f, "{}", cause),
3712 TagResourceError::TooManyRequests(ref cause) => write!(f, "{}", cause),
3713 }
3714 }
3715}
3716impl Error for TagResourceError {}
3717#[derive(Debug, PartialEq)]
3719pub enum UntagResourceError {
3720 BadRequest(String),
3722 ConcurrentModification(String),
3724 NotFound(String),
3726 TooManyRequests(String),
3728}
3729
3730impl UntagResourceError {
3731 pub fn from_response(res: BufferedHttpResponse) -> RusotoError<UntagResourceError> {
3732 if let Some(err) = proto::json::Error::parse_rest(&res) {
3733 match err.typ.as_str() {
3734 "BadRequestException" => {
3735 return RusotoError::Service(UntagResourceError::BadRequest(err.msg))
3736 }
3737 "ConcurrentModificationException" => {
3738 return RusotoError::Service(UntagResourceError::ConcurrentModification(
3739 err.msg,
3740 ))
3741 }
3742 "NotFoundException" => {
3743 return RusotoError::Service(UntagResourceError::NotFound(err.msg))
3744 }
3745 "TooManyRequestsException" => {
3746 return RusotoError::Service(UntagResourceError::TooManyRequests(err.msg))
3747 }
3748 "ValidationException" => return RusotoError::Validation(err.msg),
3749 _ => {}
3750 }
3751 }
3752 RusotoError::Unknown(res)
3753 }
3754}
3755impl fmt::Display for UntagResourceError {
3756 #[allow(unused_variables)]
3757 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
3758 match *self {
3759 UntagResourceError::BadRequest(ref cause) => write!(f, "{}", cause),
3760 UntagResourceError::ConcurrentModification(ref cause) => write!(f, "{}", cause),
3761 UntagResourceError::NotFound(ref cause) => write!(f, "{}", cause),
3762 UntagResourceError::TooManyRequests(ref cause) => write!(f, "{}", cause),
3763 }
3764 }
3765}
3766impl Error for UntagResourceError {}
3767#[derive(Debug, PartialEq)]
3769pub enum UpdateConfigurationSetEventDestinationError {
3770 BadRequest(String),
3772 NotFound(String),
3774 TooManyRequests(String),
3776}
3777
3778impl UpdateConfigurationSetEventDestinationError {
3779 pub fn from_response(
3780 res: BufferedHttpResponse,
3781 ) -> RusotoError<UpdateConfigurationSetEventDestinationError> {
3782 if let Some(err) = proto::json::Error::parse_rest(&res) {
3783 match err.typ.as_str() {
3784 "BadRequestException" => {
3785 return RusotoError::Service(
3786 UpdateConfigurationSetEventDestinationError::BadRequest(err.msg),
3787 )
3788 }
3789 "NotFoundException" => {
3790 return RusotoError::Service(
3791 UpdateConfigurationSetEventDestinationError::NotFound(err.msg),
3792 )
3793 }
3794 "TooManyRequestsException" => {
3795 return RusotoError::Service(
3796 UpdateConfigurationSetEventDestinationError::TooManyRequests(err.msg),
3797 )
3798 }
3799 "ValidationException" => return RusotoError::Validation(err.msg),
3800 _ => {}
3801 }
3802 }
3803 RusotoError::Unknown(res)
3804 }
3805}
3806impl fmt::Display for UpdateConfigurationSetEventDestinationError {
3807 #[allow(unused_variables)]
3808 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
3809 match *self {
3810 UpdateConfigurationSetEventDestinationError::BadRequest(ref cause) => {
3811 write!(f, "{}", cause)
3812 }
3813 UpdateConfigurationSetEventDestinationError::NotFound(ref cause) => {
3814 write!(f, "{}", cause)
3815 }
3816 UpdateConfigurationSetEventDestinationError::TooManyRequests(ref cause) => {
3817 write!(f, "{}", cause)
3818 }
3819 }
3820 }
3821}
3822impl Error for UpdateConfigurationSetEventDestinationError {}
3823#[async_trait]
3825pub trait PinpointEmail {
3826 async fn create_configuration_set(
3828 &self,
3829 input: CreateConfigurationSetRequest,
3830 ) -> Result<CreateConfigurationSetResponse, RusotoError<CreateConfigurationSetError>>;
3831
3832 async fn create_configuration_set_event_destination(
3834 &self,
3835 input: CreateConfigurationSetEventDestinationRequest,
3836 ) -> Result<
3837 CreateConfigurationSetEventDestinationResponse,
3838 RusotoError<CreateConfigurationSetEventDestinationError>,
3839 >;
3840
3841 async fn create_dedicated_ip_pool(
3843 &self,
3844 input: CreateDedicatedIpPoolRequest,
3845 ) -> Result<CreateDedicatedIpPoolResponse, RusotoError<CreateDedicatedIpPoolError>>;
3846
3847 async fn create_deliverability_test_report(
3849 &self,
3850 input: CreateDeliverabilityTestReportRequest,
3851 ) -> Result<
3852 CreateDeliverabilityTestReportResponse,
3853 RusotoError<CreateDeliverabilityTestReportError>,
3854 >;
3855
3856 async fn create_email_identity(
3858 &self,
3859 input: CreateEmailIdentityRequest,
3860 ) -> Result<CreateEmailIdentityResponse, RusotoError<CreateEmailIdentityError>>;
3861
3862 async fn delete_configuration_set(
3864 &self,
3865 input: DeleteConfigurationSetRequest,
3866 ) -> Result<DeleteConfigurationSetResponse, RusotoError<DeleteConfigurationSetError>>;
3867
3868 async fn delete_configuration_set_event_destination(
3870 &self,
3871 input: DeleteConfigurationSetEventDestinationRequest,
3872 ) -> Result<
3873 DeleteConfigurationSetEventDestinationResponse,
3874 RusotoError<DeleteConfigurationSetEventDestinationError>,
3875 >;
3876
3877 async fn delete_dedicated_ip_pool(
3879 &self,
3880 input: DeleteDedicatedIpPoolRequest,
3881 ) -> Result<DeleteDedicatedIpPoolResponse, RusotoError<DeleteDedicatedIpPoolError>>;
3882
3883 async fn delete_email_identity(
3885 &self,
3886 input: DeleteEmailIdentityRequest,
3887 ) -> Result<DeleteEmailIdentityResponse, RusotoError<DeleteEmailIdentityError>>;
3888
3889 async fn get_account(&self) -> Result<GetAccountResponse, RusotoError<GetAccountError>>;
3891
3892 async fn get_blacklist_reports(
3894 &self,
3895 input: GetBlacklistReportsRequest,
3896 ) -> Result<GetBlacklistReportsResponse, RusotoError<GetBlacklistReportsError>>;
3897
3898 async fn get_configuration_set(
3900 &self,
3901 input: GetConfigurationSetRequest,
3902 ) -> Result<GetConfigurationSetResponse, RusotoError<GetConfigurationSetError>>;
3903
3904 async fn get_configuration_set_event_destinations(
3906 &self,
3907 input: GetConfigurationSetEventDestinationsRequest,
3908 ) -> Result<
3909 GetConfigurationSetEventDestinationsResponse,
3910 RusotoError<GetConfigurationSetEventDestinationsError>,
3911 >;
3912
3913 async fn get_dedicated_ip(
3915 &self,
3916 input: GetDedicatedIpRequest,
3917 ) -> Result<GetDedicatedIpResponse, RusotoError<GetDedicatedIpError>>;
3918
3919 async fn get_dedicated_ips(
3921 &self,
3922 input: GetDedicatedIpsRequest,
3923 ) -> Result<GetDedicatedIpsResponse, RusotoError<GetDedicatedIpsError>>;
3924
3925 async fn get_deliverability_dashboard_options(
3927 &self,
3928 ) -> Result<
3929 GetDeliverabilityDashboardOptionsResponse,
3930 RusotoError<GetDeliverabilityDashboardOptionsError>,
3931 >;
3932
3933 async fn get_deliverability_test_report(
3935 &self,
3936 input: GetDeliverabilityTestReportRequest,
3937 ) -> Result<GetDeliverabilityTestReportResponse, RusotoError<GetDeliverabilityTestReportError>>;
3938
3939 async fn get_domain_deliverability_campaign(
3941 &self,
3942 input: GetDomainDeliverabilityCampaignRequest,
3943 ) -> Result<
3944 GetDomainDeliverabilityCampaignResponse,
3945 RusotoError<GetDomainDeliverabilityCampaignError>,
3946 >;
3947
3948 async fn get_domain_statistics_report(
3950 &self,
3951 input: GetDomainStatisticsReportRequest,
3952 ) -> Result<GetDomainStatisticsReportResponse, RusotoError<GetDomainStatisticsReportError>>;
3953
3954 async fn get_email_identity(
3956 &self,
3957 input: GetEmailIdentityRequest,
3958 ) -> Result<GetEmailIdentityResponse, RusotoError<GetEmailIdentityError>>;
3959
3960 async fn list_configuration_sets(
3962 &self,
3963 input: ListConfigurationSetsRequest,
3964 ) -> Result<ListConfigurationSetsResponse, RusotoError<ListConfigurationSetsError>>;
3965
3966 async fn list_dedicated_ip_pools(
3968 &self,
3969 input: ListDedicatedIpPoolsRequest,
3970 ) -> Result<ListDedicatedIpPoolsResponse, RusotoError<ListDedicatedIpPoolsError>>;
3971
3972 async fn list_deliverability_test_reports(
3974 &self,
3975 input: ListDeliverabilityTestReportsRequest,
3976 ) -> Result<
3977 ListDeliverabilityTestReportsResponse,
3978 RusotoError<ListDeliverabilityTestReportsError>,
3979 >;
3980
3981 async fn list_domain_deliverability_campaigns(
3983 &self,
3984 input: ListDomainDeliverabilityCampaignsRequest,
3985 ) -> Result<
3986 ListDomainDeliverabilityCampaignsResponse,
3987 RusotoError<ListDomainDeliverabilityCampaignsError>,
3988 >;
3989
3990 async fn list_email_identities(
3992 &self,
3993 input: ListEmailIdentitiesRequest,
3994 ) -> Result<ListEmailIdentitiesResponse, RusotoError<ListEmailIdentitiesError>>;
3995
3996 async fn list_tags_for_resource(
3998 &self,
3999 input: ListTagsForResourceRequest,
4000 ) -> Result<ListTagsForResourceResponse, RusotoError<ListTagsForResourceError>>;
4001
4002 async fn put_account_dedicated_ip_warmup_attributes(
4004 &self,
4005 input: PutAccountDedicatedIpWarmupAttributesRequest,
4006 ) -> Result<
4007 PutAccountDedicatedIpWarmupAttributesResponse,
4008 RusotoError<PutAccountDedicatedIpWarmupAttributesError>,
4009 >;
4010
4011 async fn put_account_sending_attributes(
4013 &self,
4014 input: PutAccountSendingAttributesRequest,
4015 ) -> Result<PutAccountSendingAttributesResponse, RusotoError<PutAccountSendingAttributesError>>;
4016
4017 async fn put_configuration_set_delivery_options(
4019 &self,
4020 input: PutConfigurationSetDeliveryOptionsRequest,
4021 ) -> Result<
4022 PutConfigurationSetDeliveryOptionsResponse,
4023 RusotoError<PutConfigurationSetDeliveryOptionsError>,
4024 >;
4025
4026 async fn put_configuration_set_reputation_options(
4028 &self,
4029 input: PutConfigurationSetReputationOptionsRequest,
4030 ) -> Result<
4031 PutConfigurationSetReputationOptionsResponse,
4032 RusotoError<PutConfigurationSetReputationOptionsError>,
4033 >;
4034
4035 async fn put_configuration_set_sending_options(
4037 &self,
4038 input: PutConfigurationSetSendingOptionsRequest,
4039 ) -> Result<
4040 PutConfigurationSetSendingOptionsResponse,
4041 RusotoError<PutConfigurationSetSendingOptionsError>,
4042 >;
4043
4044 async fn put_configuration_set_tracking_options(
4046 &self,
4047 input: PutConfigurationSetTrackingOptionsRequest,
4048 ) -> Result<
4049 PutConfigurationSetTrackingOptionsResponse,
4050 RusotoError<PutConfigurationSetTrackingOptionsError>,
4051 >;
4052
4053 async fn put_dedicated_ip_in_pool(
4055 &self,
4056 input: PutDedicatedIpInPoolRequest,
4057 ) -> Result<PutDedicatedIpInPoolResponse, RusotoError<PutDedicatedIpInPoolError>>;
4058
4059 async fn put_dedicated_ip_warmup_attributes(
4061 &self,
4062 input: PutDedicatedIpWarmupAttributesRequest,
4063 ) -> Result<
4064 PutDedicatedIpWarmupAttributesResponse,
4065 RusotoError<PutDedicatedIpWarmupAttributesError>,
4066 >;
4067
4068 async fn put_deliverability_dashboard_option(
4070 &self,
4071 input: PutDeliverabilityDashboardOptionRequest,
4072 ) -> Result<
4073 PutDeliverabilityDashboardOptionResponse,
4074 RusotoError<PutDeliverabilityDashboardOptionError>,
4075 >;
4076
4077 async fn put_email_identity_dkim_attributes(
4079 &self,
4080 input: PutEmailIdentityDkimAttributesRequest,
4081 ) -> Result<
4082 PutEmailIdentityDkimAttributesResponse,
4083 RusotoError<PutEmailIdentityDkimAttributesError>,
4084 >;
4085
4086 async fn put_email_identity_feedback_attributes(
4088 &self,
4089 input: PutEmailIdentityFeedbackAttributesRequest,
4090 ) -> Result<
4091 PutEmailIdentityFeedbackAttributesResponse,
4092 RusotoError<PutEmailIdentityFeedbackAttributesError>,
4093 >;
4094
4095 async fn put_email_identity_mail_from_attributes(
4097 &self,
4098 input: PutEmailIdentityMailFromAttributesRequest,
4099 ) -> Result<
4100 PutEmailIdentityMailFromAttributesResponse,
4101 RusotoError<PutEmailIdentityMailFromAttributesError>,
4102 >;
4103
4104 async fn send_email(
4106 &self,
4107 input: SendEmailRequest,
4108 ) -> Result<SendEmailResponse, RusotoError<SendEmailError>>;
4109
4110 async fn tag_resource(
4112 &self,
4113 input: TagResourceRequest,
4114 ) -> Result<TagResourceResponse, RusotoError<TagResourceError>>;
4115
4116 async fn untag_resource(
4118 &self,
4119 input: UntagResourceRequest,
4120 ) -> Result<UntagResourceResponse, RusotoError<UntagResourceError>>;
4121
4122 async fn update_configuration_set_event_destination(
4124 &self,
4125 input: UpdateConfigurationSetEventDestinationRequest,
4126 ) -> Result<
4127 UpdateConfigurationSetEventDestinationResponse,
4128 RusotoError<UpdateConfigurationSetEventDestinationError>,
4129 >;
4130}
4131#[derive(Clone)]
4133pub struct PinpointEmailClient {
4134 client: Client,
4135 region: region::Region,
4136}
4137
4138impl PinpointEmailClient {
4139 pub fn new(region: region::Region) -> PinpointEmailClient {
4143 PinpointEmailClient {
4144 client: Client::shared(),
4145 region,
4146 }
4147 }
4148
4149 pub fn new_with<P, D>(
4150 request_dispatcher: D,
4151 credentials_provider: P,
4152 region: region::Region,
4153 ) -> PinpointEmailClient
4154 where
4155 P: ProvideAwsCredentials + Send + Sync + 'static,
4156 D: DispatchSignedRequest + Send + Sync + 'static,
4157 {
4158 PinpointEmailClient {
4159 client: Client::new_with(credentials_provider, request_dispatcher),
4160 region,
4161 }
4162 }
4163
4164 pub fn new_with_client(client: Client, region: region::Region) -> PinpointEmailClient {
4165 PinpointEmailClient { client, region }
4166 }
4167}
4168
4169#[async_trait]
4170impl PinpointEmail for PinpointEmailClient {
4171 #[allow(unused_mut)]
4173 async fn create_configuration_set(
4174 &self,
4175 input: CreateConfigurationSetRequest,
4176 ) -> Result<CreateConfigurationSetResponse, RusotoError<CreateConfigurationSetError>> {
4177 let request_uri = "/v1/email/configuration-sets";
4178
4179 let mut request = SignedRequest::new("POST", "ses", &self.region, &request_uri);
4180 request.set_content_type("application/x-amz-json-1.1".to_owned());
4181
4182 request.set_endpoint_prefix("email".to_string());
4183 let encoded = Some(serde_json::to_vec(&input).unwrap());
4184 request.set_payload(encoded);
4185
4186 let mut response = self
4187 .client
4188 .sign_and_dispatch(request)
4189 .await
4190 .map_err(RusotoError::from)?;
4191 if response.status.is_success() {
4192 let mut response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
4193 let result = proto::json::ResponsePayload::new(&response)
4194 .deserialize::<CreateConfigurationSetResponse, _>()?;
4195
4196 Ok(result)
4197 } else {
4198 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
4199 Err(CreateConfigurationSetError::from_response(response))
4200 }
4201 }
4202
4203 #[allow(unused_mut)]
4205 async fn create_configuration_set_event_destination(
4206 &self,
4207 input: CreateConfigurationSetEventDestinationRequest,
4208 ) -> Result<
4209 CreateConfigurationSetEventDestinationResponse,
4210 RusotoError<CreateConfigurationSetEventDestinationError>,
4211 > {
4212 let request_uri = format!(
4213 "/v1/email/configuration-sets/{configuration_set_name}/event-destinations",
4214 configuration_set_name = input.configuration_set_name
4215 );
4216
4217 let mut request = SignedRequest::new("POST", "ses", &self.region, &request_uri);
4218 request.set_content_type("application/x-amz-json-1.1".to_owned());
4219
4220 request.set_endpoint_prefix("email".to_string());
4221 let encoded = Some(serde_json::to_vec(&input).unwrap());
4222 request.set_payload(encoded);
4223
4224 let mut response = self
4225 .client
4226 .sign_and_dispatch(request)
4227 .await
4228 .map_err(RusotoError::from)?;
4229 if response.status.is_success() {
4230 let mut response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
4231 let result = proto::json::ResponsePayload::new(&response)
4232 .deserialize::<CreateConfigurationSetEventDestinationResponse, _>()?;
4233
4234 Ok(result)
4235 } else {
4236 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
4237 Err(CreateConfigurationSetEventDestinationError::from_response(
4238 response,
4239 ))
4240 }
4241 }
4242
4243 #[allow(unused_mut)]
4245 async fn create_dedicated_ip_pool(
4246 &self,
4247 input: CreateDedicatedIpPoolRequest,
4248 ) -> Result<CreateDedicatedIpPoolResponse, RusotoError<CreateDedicatedIpPoolError>> {
4249 let request_uri = "/v1/email/dedicated-ip-pools";
4250
4251 let mut request = SignedRequest::new("POST", "ses", &self.region, &request_uri);
4252 request.set_content_type("application/x-amz-json-1.1".to_owned());
4253
4254 request.set_endpoint_prefix("email".to_string());
4255 let encoded = Some(serde_json::to_vec(&input).unwrap());
4256 request.set_payload(encoded);
4257
4258 let mut response = self
4259 .client
4260 .sign_and_dispatch(request)
4261 .await
4262 .map_err(RusotoError::from)?;
4263 if response.status.is_success() {
4264 let mut response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
4265 let result = proto::json::ResponsePayload::new(&response)
4266 .deserialize::<CreateDedicatedIpPoolResponse, _>()?;
4267
4268 Ok(result)
4269 } else {
4270 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
4271 Err(CreateDedicatedIpPoolError::from_response(response))
4272 }
4273 }
4274
4275 #[allow(unused_mut)]
4277 async fn create_deliverability_test_report(
4278 &self,
4279 input: CreateDeliverabilityTestReportRequest,
4280 ) -> Result<
4281 CreateDeliverabilityTestReportResponse,
4282 RusotoError<CreateDeliverabilityTestReportError>,
4283 > {
4284 let request_uri = "/v1/email/deliverability-dashboard/test";
4285
4286 let mut request = SignedRequest::new("POST", "ses", &self.region, &request_uri);
4287 request.set_content_type("application/x-amz-json-1.1".to_owned());
4288
4289 request.set_endpoint_prefix("email".to_string());
4290 let encoded = Some(serde_json::to_vec(&input).unwrap());
4291 request.set_payload(encoded);
4292
4293 let mut response = self
4294 .client
4295 .sign_and_dispatch(request)
4296 .await
4297 .map_err(RusotoError::from)?;
4298 if response.status.is_success() {
4299 let mut response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
4300 let result = proto::json::ResponsePayload::new(&response)
4301 .deserialize::<CreateDeliverabilityTestReportResponse, _>()?;
4302
4303 Ok(result)
4304 } else {
4305 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
4306 Err(CreateDeliverabilityTestReportError::from_response(response))
4307 }
4308 }
4309
4310 #[allow(unused_mut)]
4312 async fn create_email_identity(
4313 &self,
4314 input: CreateEmailIdentityRequest,
4315 ) -> Result<CreateEmailIdentityResponse, RusotoError<CreateEmailIdentityError>> {
4316 let request_uri = "/v1/email/identities";
4317
4318 let mut request = SignedRequest::new("POST", "ses", &self.region, &request_uri);
4319 request.set_content_type("application/x-amz-json-1.1".to_owned());
4320
4321 request.set_endpoint_prefix("email".to_string());
4322 let encoded = Some(serde_json::to_vec(&input).unwrap());
4323 request.set_payload(encoded);
4324
4325 let mut response = self
4326 .client
4327 .sign_and_dispatch(request)
4328 .await
4329 .map_err(RusotoError::from)?;
4330 if response.status.is_success() {
4331 let mut response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
4332 let result = proto::json::ResponsePayload::new(&response)
4333 .deserialize::<CreateEmailIdentityResponse, _>()?;
4334
4335 Ok(result)
4336 } else {
4337 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
4338 Err(CreateEmailIdentityError::from_response(response))
4339 }
4340 }
4341
4342 #[allow(unused_mut)]
4344 async fn delete_configuration_set(
4345 &self,
4346 input: DeleteConfigurationSetRequest,
4347 ) -> Result<DeleteConfigurationSetResponse, RusotoError<DeleteConfigurationSetError>> {
4348 let request_uri = format!(
4349 "/v1/email/configuration-sets/{configuration_set_name}",
4350 configuration_set_name = input.configuration_set_name
4351 );
4352
4353 let mut request = SignedRequest::new("DELETE", "ses", &self.region, &request_uri);
4354 request.set_content_type("application/x-amz-json-1.1".to_owned());
4355
4356 request.set_endpoint_prefix("email".to_string());
4357
4358 let mut response = self
4359 .client
4360 .sign_and_dispatch(request)
4361 .await
4362 .map_err(RusotoError::from)?;
4363 if response.status.is_success() {
4364 let mut response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
4365 let result = proto::json::ResponsePayload::new(&response)
4366 .deserialize::<DeleteConfigurationSetResponse, _>()?;
4367
4368 Ok(result)
4369 } else {
4370 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
4371 Err(DeleteConfigurationSetError::from_response(response))
4372 }
4373 }
4374
4375 #[allow(unused_mut)]
4377 async fn delete_configuration_set_event_destination(
4378 &self,
4379 input: DeleteConfigurationSetEventDestinationRequest,
4380 ) -> Result<
4381 DeleteConfigurationSetEventDestinationResponse,
4382 RusotoError<DeleteConfigurationSetEventDestinationError>,
4383 > {
4384 let request_uri = format!("/v1/email/configuration-sets/{configuration_set_name}/event-destinations/{event_destination_name}", configuration_set_name = input.configuration_set_name, event_destination_name = input.event_destination_name);
4385
4386 let mut request = SignedRequest::new("DELETE", "ses", &self.region, &request_uri);
4387 request.set_content_type("application/x-amz-json-1.1".to_owned());
4388
4389 request.set_endpoint_prefix("email".to_string());
4390
4391 let mut response = self
4392 .client
4393 .sign_and_dispatch(request)
4394 .await
4395 .map_err(RusotoError::from)?;
4396 if response.status.is_success() {
4397 let mut response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
4398 let result = proto::json::ResponsePayload::new(&response)
4399 .deserialize::<DeleteConfigurationSetEventDestinationResponse, _>()?;
4400
4401 Ok(result)
4402 } else {
4403 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
4404 Err(DeleteConfigurationSetEventDestinationError::from_response(
4405 response,
4406 ))
4407 }
4408 }
4409
4410 #[allow(unused_mut)]
4412 async fn delete_dedicated_ip_pool(
4413 &self,
4414 input: DeleteDedicatedIpPoolRequest,
4415 ) -> Result<DeleteDedicatedIpPoolResponse, RusotoError<DeleteDedicatedIpPoolError>> {
4416 let request_uri = format!(
4417 "/v1/email/dedicated-ip-pools/{pool_name}",
4418 pool_name = input.pool_name
4419 );
4420
4421 let mut request = SignedRequest::new("DELETE", "ses", &self.region, &request_uri);
4422 request.set_content_type("application/x-amz-json-1.1".to_owned());
4423
4424 request.set_endpoint_prefix("email".to_string());
4425
4426 let mut response = self
4427 .client
4428 .sign_and_dispatch(request)
4429 .await
4430 .map_err(RusotoError::from)?;
4431 if response.status.is_success() {
4432 let mut response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
4433 let result = proto::json::ResponsePayload::new(&response)
4434 .deserialize::<DeleteDedicatedIpPoolResponse, _>()?;
4435
4436 Ok(result)
4437 } else {
4438 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
4439 Err(DeleteDedicatedIpPoolError::from_response(response))
4440 }
4441 }
4442
4443 #[allow(unused_mut)]
4445 async fn delete_email_identity(
4446 &self,
4447 input: DeleteEmailIdentityRequest,
4448 ) -> Result<DeleteEmailIdentityResponse, RusotoError<DeleteEmailIdentityError>> {
4449 let request_uri = format!(
4450 "/v1/email/identities/{email_identity}",
4451 email_identity = input.email_identity
4452 );
4453
4454 let mut request = SignedRequest::new("DELETE", "ses", &self.region, &request_uri);
4455 request.set_content_type("application/x-amz-json-1.1".to_owned());
4456
4457 request.set_endpoint_prefix("email".to_string());
4458
4459 let mut response = self
4460 .client
4461 .sign_and_dispatch(request)
4462 .await
4463 .map_err(RusotoError::from)?;
4464 if response.status.is_success() {
4465 let mut response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
4466 let result = proto::json::ResponsePayload::new(&response)
4467 .deserialize::<DeleteEmailIdentityResponse, _>()?;
4468
4469 Ok(result)
4470 } else {
4471 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
4472 Err(DeleteEmailIdentityError::from_response(response))
4473 }
4474 }
4475
4476 #[allow(unused_mut)]
4478 async fn get_account(&self) -> Result<GetAccountResponse, RusotoError<GetAccountError>> {
4479 let request_uri = "/v1/email/account";
4480
4481 let mut request = SignedRequest::new("GET", "ses", &self.region, &request_uri);
4482 request.set_content_type("application/x-amz-json-1.1".to_owned());
4483
4484 request.set_endpoint_prefix("email".to_string());
4485
4486 let mut response = self
4487 .client
4488 .sign_and_dispatch(request)
4489 .await
4490 .map_err(RusotoError::from)?;
4491 if response.status.is_success() {
4492 let mut response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
4493 let result = proto::json::ResponsePayload::new(&response)
4494 .deserialize::<GetAccountResponse, _>()?;
4495
4496 Ok(result)
4497 } else {
4498 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
4499 Err(GetAccountError::from_response(response))
4500 }
4501 }
4502
4503 #[allow(unused_mut)]
4505 async fn get_blacklist_reports(
4506 &self,
4507 input: GetBlacklistReportsRequest,
4508 ) -> Result<GetBlacklistReportsResponse, RusotoError<GetBlacklistReportsError>> {
4509 let request_uri = "/v1/email/deliverability-dashboard/blacklist-report";
4510
4511 let mut request = SignedRequest::new("GET", "ses", &self.region, &request_uri);
4512 request.set_content_type("application/x-amz-json-1.1".to_owned());
4513
4514 request.set_endpoint_prefix("email".to_string());
4515
4516 let mut params = Params::new();
4517 for item in input.blacklist_item_names.iter() {
4518 params.put("BlacklistItemNames", item);
4519 }
4520 request.set_params(params);
4521
4522 let mut response = self
4523 .client
4524 .sign_and_dispatch(request)
4525 .await
4526 .map_err(RusotoError::from)?;
4527 if response.status.is_success() {
4528 let mut response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
4529 let result = proto::json::ResponsePayload::new(&response)
4530 .deserialize::<GetBlacklistReportsResponse, _>()?;
4531
4532 Ok(result)
4533 } else {
4534 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
4535 Err(GetBlacklistReportsError::from_response(response))
4536 }
4537 }
4538
4539 #[allow(unused_mut)]
4541 async fn get_configuration_set(
4542 &self,
4543 input: GetConfigurationSetRequest,
4544 ) -> Result<GetConfigurationSetResponse, RusotoError<GetConfigurationSetError>> {
4545 let request_uri = format!(
4546 "/v1/email/configuration-sets/{configuration_set_name}",
4547 configuration_set_name = input.configuration_set_name
4548 );
4549
4550 let mut request = SignedRequest::new("GET", "ses", &self.region, &request_uri);
4551 request.set_content_type("application/x-amz-json-1.1".to_owned());
4552
4553 request.set_endpoint_prefix("email".to_string());
4554
4555 let mut response = self
4556 .client
4557 .sign_and_dispatch(request)
4558 .await
4559 .map_err(RusotoError::from)?;
4560 if response.status.is_success() {
4561 let mut response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
4562 let result = proto::json::ResponsePayload::new(&response)
4563 .deserialize::<GetConfigurationSetResponse, _>()?;
4564
4565 Ok(result)
4566 } else {
4567 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
4568 Err(GetConfigurationSetError::from_response(response))
4569 }
4570 }
4571
4572 #[allow(unused_mut)]
4574 async fn get_configuration_set_event_destinations(
4575 &self,
4576 input: GetConfigurationSetEventDestinationsRequest,
4577 ) -> Result<
4578 GetConfigurationSetEventDestinationsResponse,
4579 RusotoError<GetConfigurationSetEventDestinationsError>,
4580 > {
4581 let request_uri = format!(
4582 "/v1/email/configuration-sets/{configuration_set_name}/event-destinations",
4583 configuration_set_name = input.configuration_set_name
4584 );
4585
4586 let mut request = SignedRequest::new("GET", "ses", &self.region, &request_uri);
4587 request.set_content_type("application/x-amz-json-1.1".to_owned());
4588
4589 request.set_endpoint_prefix("email".to_string());
4590
4591 let mut response = self
4592 .client
4593 .sign_and_dispatch(request)
4594 .await
4595 .map_err(RusotoError::from)?;
4596 if response.status.is_success() {
4597 let mut response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
4598 let result = proto::json::ResponsePayload::new(&response)
4599 .deserialize::<GetConfigurationSetEventDestinationsResponse, _>()?;
4600
4601 Ok(result)
4602 } else {
4603 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
4604 Err(GetConfigurationSetEventDestinationsError::from_response(
4605 response,
4606 ))
4607 }
4608 }
4609
4610 #[allow(unused_mut)]
4612 async fn get_dedicated_ip(
4613 &self,
4614 input: GetDedicatedIpRequest,
4615 ) -> Result<GetDedicatedIpResponse, RusotoError<GetDedicatedIpError>> {
4616 let request_uri = format!("/v1/email/dedicated-ips/{ip}", ip = input.ip);
4617
4618 let mut request = SignedRequest::new("GET", "ses", &self.region, &request_uri);
4619 request.set_content_type("application/x-amz-json-1.1".to_owned());
4620
4621 request.set_endpoint_prefix("email".to_string());
4622
4623 let mut response = self
4624 .client
4625 .sign_and_dispatch(request)
4626 .await
4627 .map_err(RusotoError::from)?;
4628 if response.status.is_success() {
4629 let mut response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
4630 let result = proto::json::ResponsePayload::new(&response)
4631 .deserialize::<GetDedicatedIpResponse, _>()?;
4632
4633 Ok(result)
4634 } else {
4635 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
4636 Err(GetDedicatedIpError::from_response(response))
4637 }
4638 }
4639
4640 #[allow(unused_mut)]
4642 async fn get_dedicated_ips(
4643 &self,
4644 input: GetDedicatedIpsRequest,
4645 ) -> Result<GetDedicatedIpsResponse, RusotoError<GetDedicatedIpsError>> {
4646 let request_uri = "/v1/email/dedicated-ips";
4647
4648 let mut request = SignedRequest::new("GET", "ses", &self.region, &request_uri);
4649 request.set_content_type("application/x-amz-json-1.1".to_owned());
4650
4651 request.set_endpoint_prefix("email".to_string());
4652
4653 let mut params = Params::new();
4654 if let Some(ref x) = input.next_token {
4655 params.put("NextToken", x);
4656 }
4657 if let Some(ref x) = input.page_size {
4658 params.put("PageSize", x);
4659 }
4660 if let Some(ref x) = input.pool_name {
4661 params.put("PoolName", x);
4662 }
4663 request.set_params(params);
4664
4665 let mut response = self
4666 .client
4667 .sign_and_dispatch(request)
4668 .await
4669 .map_err(RusotoError::from)?;
4670 if response.status.is_success() {
4671 let mut response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
4672 let result = proto::json::ResponsePayload::new(&response)
4673 .deserialize::<GetDedicatedIpsResponse, _>()?;
4674
4675 Ok(result)
4676 } else {
4677 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
4678 Err(GetDedicatedIpsError::from_response(response))
4679 }
4680 }
4681
4682 #[allow(unused_mut)]
4684 async fn get_deliverability_dashboard_options(
4685 &self,
4686 ) -> Result<
4687 GetDeliverabilityDashboardOptionsResponse,
4688 RusotoError<GetDeliverabilityDashboardOptionsError>,
4689 > {
4690 let request_uri = "/v1/email/deliverability-dashboard";
4691
4692 let mut request = SignedRequest::new("GET", "ses", &self.region, &request_uri);
4693 request.set_content_type("application/x-amz-json-1.1".to_owned());
4694
4695 request.set_endpoint_prefix("email".to_string());
4696
4697 let mut response = self
4698 .client
4699 .sign_and_dispatch(request)
4700 .await
4701 .map_err(RusotoError::from)?;
4702 if response.status.is_success() {
4703 let mut response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
4704 let result = proto::json::ResponsePayload::new(&response)
4705 .deserialize::<GetDeliverabilityDashboardOptionsResponse, _>()?;
4706
4707 Ok(result)
4708 } else {
4709 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
4710 Err(GetDeliverabilityDashboardOptionsError::from_response(
4711 response,
4712 ))
4713 }
4714 }
4715
4716 #[allow(unused_mut)]
4718 async fn get_deliverability_test_report(
4719 &self,
4720 input: GetDeliverabilityTestReportRequest,
4721 ) -> Result<GetDeliverabilityTestReportResponse, RusotoError<GetDeliverabilityTestReportError>>
4722 {
4723 let request_uri = format!(
4724 "/v1/email/deliverability-dashboard/test-reports/{report_id}",
4725 report_id = input.report_id
4726 );
4727
4728 let mut request = SignedRequest::new("GET", "ses", &self.region, &request_uri);
4729 request.set_content_type("application/x-amz-json-1.1".to_owned());
4730
4731 request.set_endpoint_prefix("email".to_string());
4732
4733 let mut response = self
4734 .client
4735 .sign_and_dispatch(request)
4736 .await
4737 .map_err(RusotoError::from)?;
4738 if response.status.is_success() {
4739 let mut response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
4740 let result = proto::json::ResponsePayload::new(&response)
4741 .deserialize::<GetDeliverabilityTestReportResponse, _>()?;
4742
4743 Ok(result)
4744 } else {
4745 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
4746 Err(GetDeliverabilityTestReportError::from_response(response))
4747 }
4748 }
4749
4750 #[allow(unused_mut)]
4752 async fn get_domain_deliverability_campaign(
4753 &self,
4754 input: GetDomainDeliverabilityCampaignRequest,
4755 ) -> Result<
4756 GetDomainDeliverabilityCampaignResponse,
4757 RusotoError<GetDomainDeliverabilityCampaignError>,
4758 > {
4759 let request_uri = format!(
4760 "/v1/email/deliverability-dashboard/campaigns/{campaign_id}",
4761 campaign_id = input.campaign_id
4762 );
4763
4764 let mut request = SignedRequest::new("GET", "ses", &self.region, &request_uri);
4765 request.set_content_type("application/x-amz-json-1.1".to_owned());
4766
4767 request.set_endpoint_prefix("email".to_string());
4768
4769 let mut response = self
4770 .client
4771 .sign_and_dispatch(request)
4772 .await
4773 .map_err(RusotoError::from)?;
4774 if response.status.is_success() {
4775 let mut response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
4776 let result = proto::json::ResponsePayload::new(&response)
4777 .deserialize::<GetDomainDeliverabilityCampaignResponse, _>()?;
4778
4779 Ok(result)
4780 } else {
4781 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
4782 Err(GetDomainDeliverabilityCampaignError::from_response(
4783 response,
4784 ))
4785 }
4786 }
4787
4788 #[allow(unused_mut)]
4790 async fn get_domain_statistics_report(
4791 &self,
4792 input: GetDomainStatisticsReportRequest,
4793 ) -> Result<GetDomainStatisticsReportResponse, RusotoError<GetDomainStatisticsReportError>>
4794 {
4795 let request_uri = format!(
4796 "/v1/email/deliverability-dashboard/statistics-report/{domain}",
4797 domain = input.domain
4798 );
4799
4800 let mut request = SignedRequest::new("GET", "ses", &self.region, &request_uri);
4801 request.set_content_type("application/x-amz-json-1.1".to_owned());
4802
4803 request.set_endpoint_prefix("email".to_string());
4804
4805 let mut params = Params::new();
4806 params.put("EndDate", &input.end_date);
4807 params.put("StartDate", &input.start_date);
4808 request.set_params(params);
4809
4810 let mut response = self
4811 .client
4812 .sign_and_dispatch(request)
4813 .await
4814 .map_err(RusotoError::from)?;
4815 if response.status.is_success() {
4816 let mut response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
4817 let result = proto::json::ResponsePayload::new(&response)
4818 .deserialize::<GetDomainStatisticsReportResponse, _>()?;
4819
4820 Ok(result)
4821 } else {
4822 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
4823 Err(GetDomainStatisticsReportError::from_response(response))
4824 }
4825 }
4826
4827 #[allow(unused_mut)]
4829 async fn get_email_identity(
4830 &self,
4831 input: GetEmailIdentityRequest,
4832 ) -> Result<GetEmailIdentityResponse, RusotoError<GetEmailIdentityError>> {
4833 let request_uri = format!(
4834 "/v1/email/identities/{email_identity}",
4835 email_identity = input.email_identity
4836 );
4837
4838 let mut request = SignedRequest::new("GET", "ses", &self.region, &request_uri);
4839 request.set_content_type("application/x-amz-json-1.1".to_owned());
4840
4841 request.set_endpoint_prefix("email".to_string());
4842
4843 let mut response = self
4844 .client
4845 .sign_and_dispatch(request)
4846 .await
4847 .map_err(RusotoError::from)?;
4848 if response.status.is_success() {
4849 let mut response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
4850 let result = proto::json::ResponsePayload::new(&response)
4851 .deserialize::<GetEmailIdentityResponse, _>()?;
4852
4853 Ok(result)
4854 } else {
4855 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
4856 Err(GetEmailIdentityError::from_response(response))
4857 }
4858 }
4859
4860 #[allow(unused_mut)]
4862 async fn list_configuration_sets(
4863 &self,
4864 input: ListConfigurationSetsRequest,
4865 ) -> Result<ListConfigurationSetsResponse, RusotoError<ListConfigurationSetsError>> {
4866 let request_uri = "/v1/email/configuration-sets";
4867
4868 let mut request = SignedRequest::new("GET", "ses", &self.region, &request_uri);
4869 request.set_content_type("application/x-amz-json-1.1".to_owned());
4870
4871 request.set_endpoint_prefix("email".to_string());
4872
4873 let mut params = Params::new();
4874 if let Some(ref x) = input.next_token {
4875 params.put("NextToken", x);
4876 }
4877 if let Some(ref x) = input.page_size {
4878 params.put("PageSize", x);
4879 }
4880 request.set_params(params);
4881
4882 let mut response = self
4883 .client
4884 .sign_and_dispatch(request)
4885 .await
4886 .map_err(RusotoError::from)?;
4887 if response.status.is_success() {
4888 let mut response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
4889 let result = proto::json::ResponsePayload::new(&response)
4890 .deserialize::<ListConfigurationSetsResponse, _>()?;
4891
4892 Ok(result)
4893 } else {
4894 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
4895 Err(ListConfigurationSetsError::from_response(response))
4896 }
4897 }
4898
4899 #[allow(unused_mut)]
4901 async fn list_dedicated_ip_pools(
4902 &self,
4903 input: ListDedicatedIpPoolsRequest,
4904 ) -> Result<ListDedicatedIpPoolsResponse, RusotoError<ListDedicatedIpPoolsError>> {
4905 let request_uri = "/v1/email/dedicated-ip-pools";
4906
4907 let mut request = SignedRequest::new("GET", "ses", &self.region, &request_uri);
4908 request.set_content_type("application/x-amz-json-1.1".to_owned());
4909
4910 request.set_endpoint_prefix("email".to_string());
4911
4912 let mut params = Params::new();
4913 if let Some(ref x) = input.next_token {
4914 params.put("NextToken", x);
4915 }
4916 if let Some(ref x) = input.page_size {
4917 params.put("PageSize", x);
4918 }
4919 request.set_params(params);
4920
4921 let mut response = self
4922 .client
4923 .sign_and_dispatch(request)
4924 .await
4925 .map_err(RusotoError::from)?;
4926 if response.status.is_success() {
4927 let mut response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
4928 let result = proto::json::ResponsePayload::new(&response)
4929 .deserialize::<ListDedicatedIpPoolsResponse, _>()?;
4930
4931 Ok(result)
4932 } else {
4933 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
4934 Err(ListDedicatedIpPoolsError::from_response(response))
4935 }
4936 }
4937
4938 #[allow(unused_mut)]
4940 async fn list_deliverability_test_reports(
4941 &self,
4942 input: ListDeliverabilityTestReportsRequest,
4943 ) -> Result<
4944 ListDeliverabilityTestReportsResponse,
4945 RusotoError<ListDeliverabilityTestReportsError>,
4946 > {
4947 let request_uri = "/v1/email/deliverability-dashboard/test-reports";
4948
4949 let mut request = SignedRequest::new("GET", "ses", &self.region, &request_uri);
4950 request.set_content_type("application/x-amz-json-1.1".to_owned());
4951
4952 request.set_endpoint_prefix("email".to_string());
4953
4954 let mut params = Params::new();
4955 if let Some(ref x) = input.next_token {
4956 params.put("NextToken", x);
4957 }
4958 if let Some(ref x) = input.page_size {
4959 params.put("PageSize", x);
4960 }
4961 request.set_params(params);
4962
4963 let mut response = self
4964 .client
4965 .sign_and_dispatch(request)
4966 .await
4967 .map_err(RusotoError::from)?;
4968 if response.status.is_success() {
4969 let mut response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
4970 let result = proto::json::ResponsePayload::new(&response)
4971 .deserialize::<ListDeliverabilityTestReportsResponse, _>()?;
4972
4973 Ok(result)
4974 } else {
4975 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
4976 Err(ListDeliverabilityTestReportsError::from_response(response))
4977 }
4978 }
4979
4980 #[allow(unused_mut)]
4982 async fn list_domain_deliverability_campaigns(
4983 &self,
4984 input: ListDomainDeliverabilityCampaignsRequest,
4985 ) -> Result<
4986 ListDomainDeliverabilityCampaignsResponse,
4987 RusotoError<ListDomainDeliverabilityCampaignsError>,
4988 > {
4989 let request_uri = format!(
4990 "/v1/email/deliverability-dashboard/domains/{subscribed_domain}/campaigns",
4991 subscribed_domain = input.subscribed_domain
4992 );
4993
4994 let mut request = SignedRequest::new("GET", "ses", &self.region, &request_uri);
4995 request.set_content_type("application/x-amz-json-1.1".to_owned());
4996
4997 request.set_endpoint_prefix("email".to_string());
4998
4999 let mut params = Params::new();
5000 params.put("EndDate", &input.end_date);
5001 if let Some(ref x) = input.next_token {
5002 params.put("NextToken", x);
5003 }
5004 if let Some(ref x) = input.page_size {
5005 params.put("PageSize", x);
5006 }
5007 params.put("StartDate", &input.start_date);
5008 request.set_params(params);
5009
5010 let mut response = self
5011 .client
5012 .sign_and_dispatch(request)
5013 .await
5014 .map_err(RusotoError::from)?;
5015 if response.status.is_success() {
5016 let mut response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
5017 let result = proto::json::ResponsePayload::new(&response)
5018 .deserialize::<ListDomainDeliverabilityCampaignsResponse, _>()?;
5019
5020 Ok(result)
5021 } else {
5022 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
5023 Err(ListDomainDeliverabilityCampaignsError::from_response(
5024 response,
5025 ))
5026 }
5027 }
5028
5029 #[allow(unused_mut)]
5031 async fn list_email_identities(
5032 &self,
5033 input: ListEmailIdentitiesRequest,
5034 ) -> Result<ListEmailIdentitiesResponse, RusotoError<ListEmailIdentitiesError>> {
5035 let request_uri = "/v1/email/identities";
5036
5037 let mut request = SignedRequest::new("GET", "ses", &self.region, &request_uri);
5038 request.set_content_type("application/x-amz-json-1.1".to_owned());
5039
5040 request.set_endpoint_prefix("email".to_string());
5041
5042 let mut params = Params::new();
5043 if let Some(ref x) = input.next_token {
5044 params.put("NextToken", x);
5045 }
5046 if let Some(ref x) = input.page_size {
5047 params.put("PageSize", x);
5048 }
5049 request.set_params(params);
5050
5051 let mut response = self
5052 .client
5053 .sign_and_dispatch(request)
5054 .await
5055 .map_err(RusotoError::from)?;
5056 if response.status.is_success() {
5057 let mut response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
5058 let result = proto::json::ResponsePayload::new(&response)
5059 .deserialize::<ListEmailIdentitiesResponse, _>()?;
5060
5061 Ok(result)
5062 } else {
5063 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
5064 Err(ListEmailIdentitiesError::from_response(response))
5065 }
5066 }
5067
5068 #[allow(unused_mut)]
5070 async fn list_tags_for_resource(
5071 &self,
5072 input: ListTagsForResourceRequest,
5073 ) -> Result<ListTagsForResourceResponse, RusotoError<ListTagsForResourceError>> {
5074 let request_uri = "/v1/email/tags";
5075
5076 let mut request = SignedRequest::new("GET", "ses", &self.region, &request_uri);
5077 request.set_content_type("application/x-amz-json-1.1".to_owned());
5078
5079 request.set_endpoint_prefix("email".to_string());
5080
5081 let mut params = Params::new();
5082 params.put("ResourceArn", &input.resource_arn);
5083 request.set_params(params);
5084
5085 let mut response = self
5086 .client
5087 .sign_and_dispatch(request)
5088 .await
5089 .map_err(RusotoError::from)?;
5090 if response.status.is_success() {
5091 let mut response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
5092 let result = proto::json::ResponsePayload::new(&response)
5093 .deserialize::<ListTagsForResourceResponse, _>()?;
5094
5095 Ok(result)
5096 } else {
5097 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
5098 Err(ListTagsForResourceError::from_response(response))
5099 }
5100 }
5101
5102 #[allow(unused_mut)]
5104 async fn put_account_dedicated_ip_warmup_attributes(
5105 &self,
5106 input: PutAccountDedicatedIpWarmupAttributesRequest,
5107 ) -> Result<
5108 PutAccountDedicatedIpWarmupAttributesResponse,
5109 RusotoError<PutAccountDedicatedIpWarmupAttributesError>,
5110 > {
5111 let request_uri = "/v1/email/account/dedicated-ips/warmup";
5112
5113 let mut request = SignedRequest::new("PUT", "ses", &self.region, &request_uri);
5114 request.set_content_type("application/x-amz-json-1.1".to_owned());
5115
5116 request.set_endpoint_prefix("email".to_string());
5117 let encoded = Some(serde_json::to_vec(&input).unwrap());
5118 request.set_payload(encoded);
5119
5120 let mut response = self
5121 .client
5122 .sign_and_dispatch(request)
5123 .await
5124 .map_err(RusotoError::from)?;
5125 if response.status.is_success() {
5126 let mut response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
5127 let result = proto::json::ResponsePayload::new(&response)
5128 .deserialize::<PutAccountDedicatedIpWarmupAttributesResponse, _>()?;
5129
5130 Ok(result)
5131 } else {
5132 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
5133 Err(PutAccountDedicatedIpWarmupAttributesError::from_response(
5134 response,
5135 ))
5136 }
5137 }
5138
5139 #[allow(unused_mut)]
5141 async fn put_account_sending_attributes(
5142 &self,
5143 input: PutAccountSendingAttributesRequest,
5144 ) -> Result<PutAccountSendingAttributesResponse, RusotoError<PutAccountSendingAttributesError>>
5145 {
5146 let request_uri = "/v1/email/account/sending";
5147
5148 let mut request = SignedRequest::new("PUT", "ses", &self.region, &request_uri);
5149 request.set_content_type("application/x-amz-json-1.1".to_owned());
5150
5151 request.set_endpoint_prefix("email".to_string());
5152 let encoded = Some(serde_json::to_vec(&input).unwrap());
5153 request.set_payload(encoded);
5154
5155 let mut response = self
5156 .client
5157 .sign_and_dispatch(request)
5158 .await
5159 .map_err(RusotoError::from)?;
5160 if response.status.is_success() {
5161 let mut response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
5162 let result = proto::json::ResponsePayload::new(&response)
5163 .deserialize::<PutAccountSendingAttributesResponse, _>()?;
5164
5165 Ok(result)
5166 } else {
5167 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
5168 Err(PutAccountSendingAttributesError::from_response(response))
5169 }
5170 }
5171
5172 #[allow(unused_mut)]
5174 async fn put_configuration_set_delivery_options(
5175 &self,
5176 input: PutConfigurationSetDeliveryOptionsRequest,
5177 ) -> Result<
5178 PutConfigurationSetDeliveryOptionsResponse,
5179 RusotoError<PutConfigurationSetDeliveryOptionsError>,
5180 > {
5181 let request_uri = format!(
5182 "/v1/email/configuration-sets/{configuration_set_name}/delivery-options",
5183 configuration_set_name = input.configuration_set_name
5184 );
5185
5186 let mut request = SignedRequest::new("PUT", "ses", &self.region, &request_uri);
5187 request.set_content_type("application/x-amz-json-1.1".to_owned());
5188
5189 request.set_endpoint_prefix("email".to_string());
5190 let encoded = Some(serde_json::to_vec(&input).unwrap());
5191 request.set_payload(encoded);
5192
5193 let mut response = self
5194 .client
5195 .sign_and_dispatch(request)
5196 .await
5197 .map_err(RusotoError::from)?;
5198 if response.status.is_success() {
5199 let mut response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
5200 let result = proto::json::ResponsePayload::new(&response)
5201 .deserialize::<PutConfigurationSetDeliveryOptionsResponse, _>()?;
5202
5203 Ok(result)
5204 } else {
5205 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
5206 Err(PutConfigurationSetDeliveryOptionsError::from_response(
5207 response,
5208 ))
5209 }
5210 }
5211
5212 #[allow(unused_mut)]
5214 async fn put_configuration_set_reputation_options(
5215 &self,
5216 input: PutConfigurationSetReputationOptionsRequest,
5217 ) -> Result<
5218 PutConfigurationSetReputationOptionsResponse,
5219 RusotoError<PutConfigurationSetReputationOptionsError>,
5220 > {
5221 let request_uri = format!(
5222 "/v1/email/configuration-sets/{configuration_set_name}/reputation-options",
5223 configuration_set_name = input.configuration_set_name
5224 );
5225
5226 let mut request = SignedRequest::new("PUT", "ses", &self.region, &request_uri);
5227 request.set_content_type("application/x-amz-json-1.1".to_owned());
5228
5229 request.set_endpoint_prefix("email".to_string());
5230 let encoded = Some(serde_json::to_vec(&input).unwrap());
5231 request.set_payload(encoded);
5232
5233 let mut response = self
5234 .client
5235 .sign_and_dispatch(request)
5236 .await
5237 .map_err(RusotoError::from)?;
5238 if response.status.is_success() {
5239 let mut response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
5240 let result = proto::json::ResponsePayload::new(&response)
5241 .deserialize::<PutConfigurationSetReputationOptionsResponse, _>()?;
5242
5243 Ok(result)
5244 } else {
5245 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
5246 Err(PutConfigurationSetReputationOptionsError::from_response(
5247 response,
5248 ))
5249 }
5250 }
5251
5252 #[allow(unused_mut)]
5254 async fn put_configuration_set_sending_options(
5255 &self,
5256 input: PutConfigurationSetSendingOptionsRequest,
5257 ) -> Result<
5258 PutConfigurationSetSendingOptionsResponse,
5259 RusotoError<PutConfigurationSetSendingOptionsError>,
5260 > {
5261 let request_uri = format!(
5262 "/v1/email/configuration-sets/{configuration_set_name}/sending",
5263 configuration_set_name = input.configuration_set_name
5264 );
5265
5266 let mut request = SignedRequest::new("PUT", "ses", &self.region, &request_uri);
5267 request.set_content_type("application/x-amz-json-1.1".to_owned());
5268
5269 request.set_endpoint_prefix("email".to_string());
5270 let encoded = Some(serde_json::to_vec(&input).unwrap());
5271 request.set_payload(encoded);
5272
5273 let mut response = self
5274 .client
5275 .sign_and_dispatch(request)
5276 .await
5277 .map_err(RusotoError::from)?;
5278 if response.status.is_success() {
5279 let mut response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
5280 let result = proto::json::ResponsePayload::new(&response)
5281 .deserialize::<PutConfigurationSetSendingOptionsResponse, _>()?;
5282
5283 Ok(result)
5284 } else {
5285 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
5286 Err(PutConfigurationSetSendingOptionsError::from_response(
5287 response,
5288 ))
5289 }
5290 }
5291
5292 #[allow(unused_mut)]
5294 async fn put_configuration_set_tracking_options(
5295 &self,
5296 input: PutConfigurationSetTrackingOptionsRequest,
5297 ) -> Result<
5298 PutConfigurationSetTrackingOptionsResponse,
5299 RusotoError<PutConfigurationSetTrackingOptionsError>,
5300 > {
5301 let request_uri = format!(
5302 "/v1/email/configuration-sets/{configuration_set_name}/tracking-options",
5303 configuration_set_name = input.configuration_set_name
5304 );
5305
5306 let mut request = SignedRequest::new("PUT", "ses", &self.region, &request_uri);
5307 request.set_content_type("application/x-amz-json-1.1".to_owned());
5308
5309 request.set_endpoint_prefix("email".to_string());
5310 let encoded = Some(serde_json::to_vec(&input).unwrap());
5311 request.set_payload(encoded);
5312
5313 let mut response = self
5314 .client
5315 .sign_and_dispatch(request)
5316 .await
5317 .map_err(RusotoError::from)?;
5318 if response.status.is_success() {
5319 let mut response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
5320 let result = proto::json::ResponsePayload::new(&response)
5321 .deserialize::<PutConfigurationSetTrackingOptionsResponse, _>()?;
5322
5323 Ok(result)
5324 } else {
5325 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
5326 Err(PutConfigurationSetTrackingOptionsError::from_response(
5327 response,
5328 ))
5329 }
5330 }
5331
5332 #[allow(unused_mut)]
5334 async fn put_dedicated_ip_in_pool(
5335 &self,
5336 input: PutDedicatedIpInPoolRequest,
5337 ) -> Result<PutDedicatedIpInPoolResponse, RusotoError<PutDedicatedIpInPoolError>> {
5338 let request_uri = format!("/v1/email/dedicated-ips/{ip}/pool", ip = input.ip);
5339
5340 let mut request = SignedRequest::new("PUT", "ses", &self.region, &request_uri);
5341 request.set_content_type("application/x-amz-json-1.1".to_owned());
5342
5343 request.set_endpoint_prefix("email".to_string());
5344 let encoded = Some(serde_json::to_vec(&input).unwrap());
5345 request.set_payload(encoded);
5346
5347 let mut response = self
5348 .client
5349 .sign_and_dispatch(request)
5350 .await
5351 .map_err(RusotoError::from)?;
5352 if response.status.is_success() {
5353 let mut response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
5354 let result = proto::json::ResponsePayload::new(&response)
5355 .deserialize::<PutDedicatedIpInPoolResponse, _>()?;
5356
5357 Ok(result)
5358 } else {
5359 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
5360 Err(PutDedicatedIpInPoolError::from_response(response))
5361 }
5362 }
5363
5364 #[allow(unused_mut)]
5366 async fn put_dedicated_ip_warmup_attributes(
5367 &self,
5368 input: PutDedicatedIpWarmupAttributesRequest,
5369 ) -> Result<
5370 PutDedicatedIpWarmupAttributesResponse,
5371 RusotoError<PutDedicatedIpWarmupAttributesError>,
5372 > {
5373 let request_uri = format!("/v1/email/dedicated-ips/{ip}/warmup", ip = input.ip);
5374
5375 let mut request = SignedRequest::new("PUT", "ses", &self.region, &request_uri);
5376 request.set_content_type("application/x-amz-json-1.1".to_owned());
5377
5378 request.set_endpoint_prefix("email".to_string());
5379 let encoded = Some(serde_json::to_vec(&input).unwrap());
5380 request.set_payload(encoded);
5381
5382 let mut response = self
5383 .client
5384 .sign_and_dispatch(request)
5385 .await
5386 .map_err(RusotoError::from)?;
5387 if response.status.is_success() {
5388 let mut response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
5389 let result = proto::json::ResponsePayload::new(&response)
5390 .deserialize::<PutDedicatedIpWarmupAttributesResponse, _>()?;
5391
5392 Ok(result)
5393 } else {
5394 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
5395 Err(PutDedicatedIpWarmupAttributesError::from_response(response))
5396 }
5397 }
5398
5399 #[allow(unused_mut)]
5401 async fn put_deliverability_dashboard_option(
5402 &self,
5403 input: PutDeliverabilityDashboardOptionRequest,
5404 ) -> Result<
5405 PutDeliverabilityDashboardOptionResponse,
5406 RusotoError<PutDeliverabilityDashboardOptionError>,
5407 > {
5408 let request_uri = "/v1/email/deliverability-dashboard";
5409
5410 let mut request = SignedRequest::new("PUT", "ses", &self.region, &request_uri);
5411 request.set_content_type("application/x-amz-json-1.1".to_owned());
5412
5413 request.set_endpoint_prefix("email".to_string());
5414 let encoded = Some(serde_json::to_vec(&input).unwrap());
5415 request.set_payload(encoded);
5416
5417 let mut response = self
5418 .client
5419 .sign_and_dispatch(request)
5420 .await
5421 .map_err(RusotoError::from)?;
5422 if response.status.is_success() {
5423 let mut response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
5424 let result = proto::json::ResponsePayload::new(&response)
5425 .deserialize::<PutDeliverabilityDashboardOptionResponse, _>()?;
5426
5427 Ok(result)
5428 } else {
5429 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
5430 Err(PutDeliverabilityDashboardOptionError::from_response(
5431 response,
5432 ))
5433 }
5434 }
5435
5436 #[allow(unused_mut)]
5438 async fn put_email_identity_dkim_attributes(
5439 &self,
5440 input: PutEmailIdentityDkimAttributesRequest,
5441 ) -> Result<
5442 PutEmailIdentityDkimAttributesResponse,
5443 RusotoError<PutEmailIdentityDkimAttributesError>,
5444 > {
5445 let request_uri = format!(
5446 "/v1/email/identities/{email_identity}/dkim",
5447 email_identity = input.email_identity
5448 );
5449
5450 let mut request = SignedRequest::new("PUT", "ses", &self.region, &request_uri);
5451 request.set_content_type("application/x-amz-json-1.1".to_owned());
5452
5453 request.set_endpoint_prefix("email".to_string());
5454 let encoded = Some(serde_json::to_vec(&input).unwrap());
5455 request.set_payload(encoded);
5456
5457 let mut response = self
5458 .client
5459 .sign_and_dispatch(request)
5460 .await
5461 .map_err(RusotoError::from)?;
5462 if response.status.is_success() {
5463 let mut response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
5464 let result = proto::json::ResponsePayload::new(&response)
5465 .deserialize::<PutEmailIdentityDkimAttributesResponse, _>()?;
5466
5467 Ok(result)
5468 } else {
5469 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
5470 Err(PutEmailIdentityDkimAttributesError::from_response(response))
5471 }
5472 }
5473
5474 #[allow(unused_mut)]
5476 async fn put_email_identity_feedback_attributes(
5477 &self,
5478 input: PutEmailIdentityFeedbackAttributesRequest,
5479 ) -> Result<
5480 PutEmailIdentityFeedbackAttributesResponse,
5481 RusotoError<PutEmailIdentityFeedbackAttributesError>,
5482 > {
5483 let request_uri = format!(
5484 "/v1/email/identities/{email_identity}/feedback",
5485 email_identity = input.email_identity
5486 );
5487
5488 let mut request = SignedRequest::new("PUT", "ses", &self.region, &request_uri);
5489 request.set_content_type("application/x-amz-json-1.1".to_owned());
5490
5491 request.set_endpoint_prefix("email".to_string());
5492 let encoded = Some(serde_json::to_vec(&input).unwrap());
5493 request.set_payload(encoded);
5494
5495 let mut response = self
5496 .client
5497 .sign_and_dispatch(request)
5498 .await
5499 .map_err(RusotoError::from)?;
5500 if response.status.is_success() {
5501 let mut response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
5502 let result = proto::json::ResponsePayload::new(&response)
5503 .deserialize::<PutEmailIdentityFeedbackAttributesResponse, _>()?;
5504
5505 Ok(result)
5506 } else {
5507 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
5508 Err(PutEmailIdentityFeedbackAttributesError::from_response(
5509 response,
5510 ))
5511 }
5512 }
5513
5514 #[allow(unused_mut)]
5516 async fn put_email_identity_mail_from_attributes(
5517 &self,
5518 input: PutEmailIdentityMailFromAttributesRequest,
5519 ) -> Result<
5520 PutEmailIdentityMailFromAttributesResponse,
5521 RusotoError<PutEmailIdentityMailFromAttributesError>,
5522 > {
5523 let request_uri = format!(
5524 "/v1/email/identities/{email_identity}/mail-from",
5525 email_identity = input.email_identity
5526 );
5527
5528 let mut request = SignedRequest::new("PUT", "ses", &self.region, &request_uri);
5529 request.set_content_type("application/x-amz-json-1.1".to_owned());
5530
5531 request.set_endpoint_prefix("email".to_string());
5532 let encoded = Some(serde_json::to_vec(&input).unwrap());
5533 request.set_payload(encoded);
5534
5535 let mut response = self
5536 .client
5537 .sign_and_dispatch(request)
5538 .await
5539 .map_err(RusotoError::from)?;
5540 if response.status.is_success() {
5541 let mut response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
5542 let result = proto::json::ResponsePayload::new(&response)
5543 .deserialize::<PutEmailIdentityMailFromAttributesResponse, _>()?;
5544
5545 Ok(result)
5546 } else {
5547 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
5548 Err(PutEmailIdentityMailFromAttributesError::from_response(
5549 response,
5550 ))
5551 }
5552 }
5553
5554 #[allow(unused_mut)]
5556 async fn send_email(
5557 &self,
5558 input: SendEmailRequest,
5559 ) -> Result<SendEmailResponse, RusotoError<SendEmailError>> {
5560 let request_uri = "/v1/email/outbound-emails";
5561
5562 let mut request = SignedRequest::new("POST", "ses", &self.region, &request_uri);
5563 request.set_content_type("application/x-amz-json-1.1".to_owned());
5564
5565 request.set_endpoint_prefix("email".to_string());
5566 let encoded = Some(serde_json::to_vec(&input).unwrap());
5567 request.set_payload(encoded);
5568
5569 let mut response = self
5570 .client
5571 .sign_and_dispatch(request)
5572 .await
5573 .map_err(RusotoError::from)?;
5574 if response.status.is_success() {
5575 let mut response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
5576 let result = proto::json::ResponsePayload::new(&response)
5577 .deserialize::<SendEmailResponse, _>()?;
5578
5579 Ok(result)
5580 } else {
5581 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
5582 Err(SendEmailError::from_response(response))
5583 }
5584 }
5585
5586 #[allow(unused_mut)]
5588 async fn tag_resource(
5589 &self,
5590 input: TagResourceRequest,
5591 ) -> Result<TagResourceResponse, RusotoError<TagResourceError>> {
5592 let request_uri = "/v1/email/tags";
5593
5594 let mut request = SignedRequest::new("POST", "ses", &self.region, &request_uri);
5595 request.set_content_type("application/x-amz-json-1.1".to_owned());
5596
5597 request.set_endpoint_prefix("email".to_string());
5598 let encoded = Some(serde_json::to_vec(&input).unwrap());
5599 request.set_payload(encoded);
5600
5601 let mut response = self
5602 .client
5603 .sign_and_dispatch(request)
5604 .await
5605 .map_err(RusotoError::from)?;
5606 if response.status.is_success() {
5607 let mut response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
5608 let result = proto::json::ResponsePayload::new(&response)
5609 .deserialize::<TagResourceResponse, _>()?;
5610
5611 Ok(result)
5612 } else {
5613 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
5614 Err(TagResourceError::from_response(response))
5615 }
5616 }
5617
5618 #[allow(unused_mut)]
5620 async fn untag_resource(
5621 &self,
5622 input: UntagResourceRequest,
5623 ) -> Result<UntagResourceResponse, RusotoError<UntagResourceError>> {
5624 let request_uri = "/v1/email/tags";
5625
5626 let mut request = SignedRequest::new("DELETE", "ses", &self.region, &request_uri);
5627 request.set_content_type("application/x-amz-json-1.1".to_owned());
5628
5629 request.set_endpoint_prefix("email".to_string());
5630
5631 let mut params = Params::new();
5632 params.put("ResourceArn", &input.resource_arn);
5633 for item in input.tag_keys.iter() {
5634 params.put("TagKeys", item);
5635 }
5636 request.set_params(params);
5637
5638 let mut response = self
5639 .client
5640 .sign_and_dispatch(request)
5641 .await
5642 .map_err(RusotoError::from)?;
5643 if response.status.is_success() {
5644 let mut response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
5645 let result = proto::json::ResponsePayload::new(&response)
5646 .deserialize::<UntagResourceResponse, _>()?;
5647
5648 Ok(result)
5649 } else {
5650 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
5651 Err(UntagResourceError::from_response(response))
5652 }
5653 }
5654
5655 #[allow(unused_mut)]
5657 async fn update_configuration_set_event_destination(
5658 &self,
5659 input: UpdateConfigurationSetEventDestinationRequest,
5660 ) -> Result<
5661 UpdateConfigurationSetEventDestinationResponse,
5662 RusotoError<UpdateConfigurationSetEventDestinationError>,
5663 > {
5664 let request_uri = format!("/v1/email/configuration-sets/{configuration_set_name}/event-destinations/{event_destination_name}", configuration_set_name = input.configuration_set_name, event_destination_name = input.event_destination_name);
5665
5666 let mut request = SignedRequest::new("PUT", "ses", &self.region, &request_uri);
5667 request.set_content_type("application/x-amz-json-1.1".to_owned());
5668
5669 request.set_endpoint_prefix("email".to_string());
5670 let encoded = Some(serde_json::to_vec(&input).unwrap());
5671 request.set_payload(encoded);
5672
5673 let mut response = self
5674 .client
5675 .sign_and_dispatch(request)
5676 .await
5677 .map_err(RusotoError::from)?;
5678 if response.status.is_success() {
5679 let mut response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
5680 let result = proto::json::ResponsePayload::new(&response)
5681 .deserialize::<UpdateConfigurationSetEventDestinationResponse, _>()?;
5682
5683 Ok(result)
5684 } else {
5685 let response = response.buffer().await.map_err(RusotoError::HttpDispatch)?;
5686 Err(UpdateConfigurationSetEventDestinationError::from_response(
5687 response,
5688 ))
5689 }
5690 }
5691}