/
types.go
1218 lines (1010 loc) · 47.5 KB
/
types.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
// Code generated by smithy-go-codegen DO NOT EDIT.
package types
import (
smithydocument "github.com/aws/smithy-go/document"
"time"
)
// When included in a receipt rule, this action adds a header to the received
// email. For information about adding a header using a receipt rule, see the
// Amazon SES Developer Guide
// (https://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-action-add-header.html).
type AddHeaderAction struct {
// The name of the header to add. Must be between 1 and 50 characters, inclusive,
// and consist of alphanumeric (a-z, A-Z, 0-9) characters and dashes only.
//
// This member is required.
HeaderName *string
// Must be less than 2048 characters, and must not contain newline characters ("\r"
// or "\n").
//
// This member is required.
HeaderValue *string
noSmithyDocumentSerde
}
// Represents the body of the message. You can specify text, HTML, or both. If you
// use both, then the message should display correctly in the widest variety of
// email clients.
type Body struct {
// The content of the message, in HTML format. Use this for email clients that can
// process HTML. You can include clickable links, formatted text, and much more in
// an HTML message.
Html *Content
// The content of the message, in text format. Use this for text-based email
// clients, or clients on high-latency networks (such as mobile devices).
Text *Content
noSmithyDocumentSerde
}
// When included in a receipt rule, this action rejects the received email by
// returning a bounce response to the sender and, optionally, publishes a
// notification to Amazon Simple Notification Service (Amazon SNS). For information
// about sending a bounce message in response to a received email, see the Amazon
// SES Developer Guide
// (https://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-action-bounce.html).
type BounceAction struct {
// Human-readable text to include in the bounce message.
//
// This member is required.
Message *string
// The email address of the sender of the bounced email. This is the address from
// which the bounce message will be sent.
//
// This member is required.
Sender *string
// The SMTP reply code, as defined by RFC 5321
// (https://tools.ietf.org/html/rfc5321).
//
// This member is required.
SmtpReplyCode *string
// The SMTP enhanced status code, as defined by RFC 3463
// (https://tools.ietf.org/html/rfc3463).
StatusCode *string
// The Amazon Resource Name (ARN) of the Amazon SNS topic to notify when the bounce
// action is taken. An example of an Amazon SNS topic ARN is
// arn:aws:sns:us-west-2:123456789012:MyTopic. For more information about Amazon
// SNS topics, see the Amazon SNS Developer Guide
// (https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html).
TopicArn *string
noSmithyDocumentSerde
}
// Recipient-related information to include in the Delivery Status Notification
// (DSN) when an email that Amazon SES receives on your behalf bounces. For
// information about receiving email through Amazon SES, see the Amazon SES
// Developer Guide
// (https://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email.html).
type BouncedRecipientInfo struct {
// The email address of the recipient of the bounced email.
//
// This member is required.
Recipient *string
// The reason for the bounce. You must provide either this parameter or
// RecipientDsnFields.
BounceType BounceType
// This parameter is used only for sending authorization. It is the ARN of the
// identity that is associated with the sending authorization policy that permits
// you to receive email for the recipient of the bounced email. For more
// information about sending authorization, see the Amazon SES Developer Guide
// (https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html).
RecipientArn *string
// Recipient-related DSN fields, most of which would normally be filled in
// automatically when provided with a BounceType. You must provide either this
// parameter or BounceType.
RecipientDsnFields *RecipientDsnFields
noSmithyDocumentSerde
}
// An array that contains one or more Destinations, as well as the tags and
// replacement data associated with each of those Destinations.
type BulkEmailDestination struct {
// Represents the destination of the message, consisting of To:, CC:, and BCC:
// fields. Amazon SES does not support the SMTPUTF8 extension, as described in
// RFC6531 (https://tools.ietf.org/html/rfc6531). For this reason, the local part
// of a destination email address (the part of the email address that precedes the
// @ sign) may only contain 7-bit ASCII characters
// (https://en.wikipedia.org/wiki/Email_address#Local-part). If the domain part of
// an address (the part after the @ sign) contains non-ASCII characters, they must
// be encoded using Punycode, as described in RFC3492
// (https://tools.ietf.org/html/rfc3492.html).
//
// This member is required.
Destination *Destination
// A list of tags, in the form of name/value pairs, to apply to an email that you
// send using SendBulkTemplatedEmail. Tags correspond to characteristics of the
// email that you define, so that you can publish email sending events.
ReplacementTags []MessageTag
// A list of replacement values to apply to the template. This parameter is a JSON
// object, typically consisting of key-value pairs in which the keys correspond to
// replacement tags in the email template.
ReplacementTemplateData *string
noSmithyDocumentSerde
}
// An object that contains the response from the SendBulkTemplatedEmail operation.
type BulkEmailDestinationStatus struct {
// A description of an error that prevented a message being sent using the
// SendBulkTemplatedEmail operation.
Error *string
// The unique message identifier returned from the SendBulkTemplatedEmail
// operation.
MessageId *string
// The status of a message sent using the SendBulkTemplatedEmail operation.
// Possible values for this parameter include:
//
// * Success: Amazon SES accepted the
// message, and will attempt to deliver it to the recipients.
//
// * MessageRejected:
// The message was rejected because it contained a virus.
//
// *
// MailFromDomainNotVerified: The sender's email address or domain was not
// verified.
//
// * ConfigurationSetDoesNotExist: The configuration set you specified
// does not exist.
//
// * TemplateDoesNotExist: The template you specified does not
// exist.
//
// * AccountSuspended: Your account has been shut down because of issues
// related to your email sending practices.
//
// * AccountThrottled: The number of
// emails you can send has been reduced because your account has exceeded its
// allocated sending limit.
//
// * AccountDailyQuotaExceeded: You have reached or
// exceeded the maximum number of emails you can send from your account in a
// 24-hour period.
//
// * InvalidSendingPoolName: The configuration set you specified
// refers to an IP pool that does not exist.
//
// * AccountSendingPaused: Email sending
// for the Amazon SES account was disabled using the UpdateAccountSendingEnabled
// operation.
//
// * ConfigurationSetSendingPaused: Email sending for this
// configuration set was disabled using the UpdateConfigurationSetSendingEnabled
// operation.
//
// * InvalidParameterValue: One or more of the parameters you specified
// when calling this operation was invalid. See the error message for additional
// information.
//
// * TransientFailure: Amazon SES was unable to process your request
// because of a temporary issue.
//
// * Failed: Amazon SES was unable to process your
// request. See the error message for additional information.
Status BulkEmailStatus
noSmithyDocumentSerde
}
// Contains information associated with an Amazon CloudWatch event destination to
// which email sending events are published. Event destinations, such as Amazon
// CloudWatch, are associated with configuration sets, which enable you to publish
// email sending events. For information about using configuration sets, see the
// Amazon SES Developer Guide
// (https://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html).
type CloudWatchDestination struct {
// A list of dimensions upon which to categorize your emails when you publish email
// sending events to Amazon CloudWatch.
//
// This member is required.
DimensionConfigurations []CloudWatchDimensionConfiguration
noSmithyDocumentSerde
}
// Contains the dimension configuration to use when you publish email sending
// events to Amazon CloudWatch. For information about publishing email sending
// events to Amazon CloudWatch, see the Amazon SES Developer Guide
// (https://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html).
type CloudWatchDimensionConfiguration struct {
// The default value of the dimension that is published to Amazon CloudWatch if you
// do not provide the value of the dimension when you send an email. The default
// value must:
//
// * This value can only contain ASCII letters (a-z, A-Z), numbers
// (0-9), underscores (_), or dashes (-).
//
// * Contain less than 256 characters.
//
// This member is required.
DefaultDimensionValue *string
// The name of an Amazon CloudWatch dimension associated with an email sending
// metric. The name must:
//
// * This value can only contain ASCII letters (a-z, A-Z),
// numbers (0-9), underscores (_), or dashes (-).
//
// * Contain less than 256
// characters.
//
// This member is required.
DimensionName *string
// The place where Amazon SES finds the value of a dimension to publish to Amazon
// CloudWatch. If you want Amazon SES to use the message tags that you specify
// using an X-SES-MESSAGE-TAGS header or a parameter to the SendEmail/SendRawEmail
// API, choose messageTag. If you want Amazon SES to use your own email headers,
// choose emailHeader.
//
// This member is required.
DimensionValueSource DimensionValueSource
noSmithyDocumentSerde
}
// The name of the configuration set. Configuration sets let you create groups of
// rules that you can apply to the emails you send using Amazon SES. For more
// information about using configuration sets, see Using Amazon SES Configuration
// Sets
// (https://docs.aws.amazon.com/ses/latest/DeveloperGuide/using-configuration-sets.html)
// in the Amazon SES Developer Guide
// (https://docs.aws.amazon.com/ses/latest/DeveloperGuide/).
type ConfigurationSet struct {
// The name of the configuration set. The name must meet the following
// requirements:
//
// * Contain only letters (a-z, A-Z), numbers (0-9), underscores
// (_), or dashes (-).
//
// * Contain 64 characters or fewer.
//
// This member is required.
Name *string
noSmithyDocumentSerde
}
// Represents textual data, plus an optional character set specification. By
// default, the text must be 7-bit ASCII, due to the constraints of the SMTP
// protocol. If the text must contain any other characters, then you must also
// specify a character set. Examples include UTF-8, ISO-8859-1, and Shift_JIS.
type Content struct {
// The textual data of the content.
//
// This member is required.
Data *string
// The character set of the content.
Charset *string
noSmithyDocumentSerde
}
// Contains information about a custom verification email template.
type CustomVerificationEmailTemplate struct {
// The URL that the recipient of the verification email is sent to if his or her
// address is not successfully verified.
FailureRedirectionURL *string
// The email address that the custom verification email is sent from.
FromEmailAddress *string
// The URL that the recipient of the verification email is sent to if his or her
// address is successfully verified.
SuccessRedirectionURL *string
// The name of the custom verification email template.
TemplateName *string
// The subject line of the custom verification email.
TemplateSubject *string
noSmithyDocumentSerde
}
// Specifies whether messages that use the configuration set are required to use
// Transport Layer Security (TLS).
type DeliveryOptions struct {
// Specifies whether messages that use the configuration set are required to use
// Transport Layer Security (TLS). If the value is Require, messages are only
// delivered if a TLS connection can be established. If the value is Optional,
// messages can be delivered in plain text if a TLS connection can't be
// established.
TlsPolicy TlsPolicy
noSmithyDocumentSerde
}
// Represents the destination of the message, consisting of To:, CC:, and BCC:
// fields. Amazon SES does not support the SMTPUTF8 extension, as described in
// RFC6531 (https://tools.ietf.org/html/rfc6531). For this reason, the local part
// of a destination email address (the part of the email address that precedes the
// @ sign) may only contain 7-bit ASCII characters
// (https://en.wikipedia.org/wiki/Email_address#Local-part). If the domain part of
// an address (the part after the @ sign) contains non-ASCII characters, they must
// be encoded using Punycode, as described in RFC3492
// (https://tools.ietf.org/html/rfc3492.html).
type Destination struct {
// The recipients to place on the BCC: line of the message.
BccAddresses []string
// The recipients to place on the CC: line of the message.
CcAddresses []string
// The recipients to place on the To: line of the message.
ToAddresses []string
noSmithyDocumentSerde
}
// Contains information about the event destination that the specified email
// sending events will be published to. When you create or update an event
// destination, you must provide one, and only one, destination. The destination
// can be Amazon CloudWatch, Amazon Kinesis Firehose or Amazon Simple Notification
// Service (Amazon SNS). Event destinations are associated with configuration sets,
// which enable you to publish email sending events to Amazon CloudWatch, Amazon
// Kinesis Firehose, or Amazon Simple Notification Service (Amazon SNS). For
// information about using configuration sets, see the Amazon SES Developer Guide
// (https://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html).
type EventDestination struct {
// The type of email sending events to publish to the event destination.
//
// This member is required.
MatchingEventTypes []EventType
// The name of the event destination. The name must:
//
// * This value can only contain
// ASCII letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-).
//
// *
// Contain less than 64 characters.
//
// This member is required.
Name *string
// An object that contains the names, default values, and sources of the dimensions
// associated with an Amazon CloudWatch event destination.
CloudWatchDestination *CloudWatchDestination
// Sets whether Amazon SES publishes events to this destination when you send an
// email with the associated configuration set. Set to true to enable publishing to
// this destination; set to false to prevent publishing to this destination. The
// default value is false.
Enabled bool
// An object that contains the delivery stream ARN and the IAM role ARN associated
// with an Amazon Kinesis Firehose event destination.
KinesisFirehoseDestination *KinesisFirehoseDestination
// An object that contains the topic ARN associated with an Amazon Simple
// Notification Service (Amazon SNS) event destination.
SNSDestination *SNSDestination
noSmithyDocumentSerde
}
// Additional X-headers to include in the Delivery Status Notification (DSN) when
// an email that Amazon SES receives on your behalf bounces. For information about
// receiving email through Amazon SES, see the Amazon SES Developer Guide
// (https://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email.html).
type ExtensionField struct {
// The name of the header to add. Must be between 1 and 50 characters, inclusive,
// and consist of alphanumeric (a-z, A-Z, 0-9) characters and dashes only.
//
// This member is required.
Name *string
// The value of the header to add. Must be less than 2048 characters, and must not
// contain newline characters ("\r" or "\n").
//
// This member is required.
Value *string
noSmithyDocumentSerde
}
// Represents the DKIM attributes of a verified email address or a domain.
type IdentityDkimAttributes struct {
// Is true if DKIM signing is enabled for email sent from the identity. It's false
// otherwise. The default value is true.
//
// This member is required.
DkimEnabled bool
// Describes whether Amazon SES has successfully verified the DKIM DNS records
// (tokens) published in the domain name's DNS. (This only applies to domain
// identities, not email address identities.)
//
// This member is required.
DkimVerificationStatus VerificationStatus
// A set of character strings that represent the domain's identity. Using these
// tokens, you need to create DNS CNAME records that point to DKIM public keys that
// are hosted by Amazon SES. Amazon Web Services eventually detects that you've
// updated your DNS records. This detection process might take up to 72 hours.
// After successful detection, Amazon SES is able to DKIM-sign email originating
// from that domain. (This only applies to domain identities, not email address
// identities.) For more information about creating DNS records using DKIM tokens,
// see the Amazon SES Developer Guide
// (https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html).
DkimTokens []string
noSmithyDocumentSerde
}
// Represents the custom MAIL FROM domain attributes of a verified identity (email
// address or domain).
type IdentityMailFromDomainAttributes struct {
// The action that Amazon SES takes if it cannot successfully read the required MX
// record when you send an email. A value of UseDefaultValue indicates that if
// Amazon SES cannot read the required MX record, it uses amazonses.com (or a
// subdomain of that) as the MAIL FROM domain. A value of RejectMessage indicates
// that if Amazon SES cannot read the required MX record, Amazon SES returns a
// MailFromDomainNotVerified error and does not send the email. The custom MAIL
// FROM setup states that result in this behavior are Pending, Failed, and
// TemporaryFailure.
//
// This member is required.
BehaviorOnMXFailure BehaviorOnMXFailure
// The custom MAIL FROM domain that the identity is configured to use.
//
// This member is required.
MailFromDomain *string
// The state that indicates whether Amazon SES has successfully read the MX record
// required for custom MAIL FROM domain setup. If the state is Success, Amazon SES
// uses the specified custom MAIL FROM domain when the verified identity sends an
// email. All other states indicate that Amazon SES takes the action described by
// BehaviorOnMXFailure.
//
// This member is required.
MailFromDomainStatus CustomMailFromStatus
noSmithyDocumentSerde
}
// Represents the notification attributes of an identity, including whether an
// identity has Amazon Simple Notification Service (Amazon SNS) topics set for
// bounce, complaint, and/or delivery notifications, and whether feedback
// forwarding is enabled for bounce and complaint notifications.
type IdentityNotificationAttributes struct {
// The Amazon Resource Name (ARN) of the Amazon SNS topic where Amazon SES will
// publish bounce notifications.
//
// This member is required.
BounceTopic *string
// The Amazon Resource Name (ARN) of the Amazon SNS topic where Amazon SES will
// publish complaint notifications.
//
// This member is required.
ComplaintTopic *string
// The Amazon Resource Name (ARN) of the Amazon SNS topic where Amazon SES will
// publish delivery notifications.
//
// This member is required.
DeliveryTopic *string
// Describes whether Amazon SES will forward bounce and complaint notifications as
// email. true indicates that Amazon SES will forward bounce and complaint
// notifications as email, while false indicates that bounce and complaint
// notifications will be published only to the specified bounce and complaint
// Amazon SNS topics.
//
// This member is required.
ForwardingEnabled bool
// Describes whether Amazon SES includes the original email headers in Amazon SNS
// notifications of type Bounce. A value of true specifies that Amazon SES will
// include headers in bounce notifications, and a value of false specifies that
// Amazon SES will not include headers in bounce notifications.
HeadersInBounceNotificationsEnabled bool
// Describes whether Amazon SES includes the original email headers in Amazon SNS
// notifications of type Complaint. A value of true specifies that Amazon SES will
// include headers in complaint notifications, and a value of false specifies that
// Amazon SES will not include headers in complaint notifications.
HeadersInComplaintNotificationsEnabled bool
// Describes whether Amazon SES includes the original email headers in Amazon SNS
// notifications of type Delivery. A value of true specifies that Amazon SES will
// include headers in delivery notifications, and a value of false specifies that
// Amazon SES will not include headers in delivery notifications.
HeadersInDeliveryNotificationsEnabled bool
noSmithyDocumentSerde
}
// Represents the verification attributes of a single identity.
type IdentityVerificationAttributes struct {
// The verification status of the identity: "Pending", "Success", "Failed", or
// "TemporaryFailure".
//
// This member is required.
VerificationStatus VerificationStatus
// The verification token for a domain identity. Null for email address identities.
VerificationToken *string
noSmithyDocumentSerde
}
// Contains the delivery stream ARN and the IAM role ARN associated with an Amazon
// Kinesis Firehose event destination. Event destinations, such as Amazon Kinesis
// Firehose, are associated with configuration sets, which enable you to publish
// email sending events. For information about using configuration sets, see the
// Amazon SES Developer Guide
// (https://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html).
type KinesisFirehoseDestination struct {
// The ARN of the Amazon Kinesis Firehose stream that email sending events should
// be published to.
//
// This member is required.
DeliveryStreamARN *string
// The ARN of the IAM role under which Amazon SES publishes email sending events to
// the Amazon Kinesis Firehose stream.
//
// This member is required.
IAMRoleARN *string
noSmithyDocumentSerde
}
// When included in a receipt rule, this action calls an AWS Lambda function and,
// optionally, publishes a notification to Amazon Simple Notification Service
// (Amazon SNS). To enable Amazon SES to call your AWS Lambda function or to
// publish to an Amazon SNS topic of another account, Amazon SES must have
// permission to access those resources. For information about giving permissions,
// see the Amazon SES Developer Guide
// (https://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-permissions.html).
// For information about using AWS Lambda actions in receipt rules, see the Amazon
// SES Developer Guide
// (https://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-action-lambda.html).
type LambdaAction struct {
// The Amazon Resource Name (ARN) of the AWS Lambda function. An example of an AWS
// Lambda function ARN is arn:aws:lambda:us-west-2:account-id:function:MyFunction.
// For more information about AWS Lambda, see the AWS Lambda Developer Guide
// (https://docs.aws.amazon.com/lambda/latest/dg/welcome.html).
//
// This member is required.
FunctionArn *string
// The invocation type of the AWS Lambda function. An invocation type of
// RequestResponse means that the execution of the function will immediately result
// in a response, and a value of Event means that the function will be invoked
// asynchronously. The default value is Event. For information about AWS Lambda
// invocation types, see the AWS Lambda Developer Guide
// (https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html). There is a
// 30-second timeout on RequestResponse invocations. You should use Event
// invocation in most cases. Use RequestResponse only when you want to make a mail
// flow decision, such as whether to stop the receipt rule or the receipt rule set.
InvocationType InvocationType
// The Amazon Resource Name (ARN) of the Amazon SNS topic to notify when the Lambda
// action is taken. An example of an Amazon SNS topic ARN is
// arn:aws:sns:us-west-2:123456789012:MyTopic. For more information about Amazon
// SNS topics, see the Amazon SNS Developer Guide
// (https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html).
TopicArn *string
noSmithyDocumentSerde
}
// Represents the message to be sent, composed of a subject and a body.
type Message struct {
// The message body.
//
// This member is required.
Body *Body
// The subject of the message: A short summary of the content, which will appear in
// the recipient's inbox.
//
// This member is required.
Subject *Content
noSmithyDocumentSerde
}
// Message-related information to include in the Delivery Status Notification (DSN)
// when an email that Amazon SES receives on your behalf bounces. For information
// about receiving email through Amazon SES, see the Amazon SES Developer Guide
// (https://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email.html).
type MessageDsn struct {
// The reporting MTA that attempted to deliver the message, formatted as specified
// in RFC 3464 (https://tools.ietf.org/html/rfc3464) (mta-name-type; mta-name). The
// default value is dns; inbound-smtp.[region].amazonaws.com.
//
// This member is required.
ReportingMta *string
// When the message was received by the reporting mail transfer agent (MTA), in RFC
// 822 (https://www.ietf.org/rfc/rfc0822.txt) date-time format.
ArrivalDate *time.Time
// Additional X-headers to include in the DSN.
ExtensionFields []ExtensionField
noSmithyDocumentSerde
}
// Contains the name and value of a tag that you can provide to SendEmail or
// SendRawEmail to apply to an email. Message tags, which you use with
// configuration sets, enable you to publish email sending events. For information
// about using configuration sets, see the Amazon SES Developer Guide
// (https://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html).
type MessageTag struct {
// The name of the tag. The name must:
//
// * This value can only contain ASCII letters
// (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-).
//
// * Contain less than
// 256 characters.
//
// This member is required.
Name *string
// The value of the tag. The value must:
//
// * This value can only contain ASCII
// letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-).
//
// * Contain
// less than 256 characters.
//
// This member is required.
Value *string
noSmithyDocumentSerde
}
// Represents the raw data of the message.
type RawMessage struct {
// The raw data of the message. This data needs to base64-encoded if you are
// accessing Amazon SES directly through the HTTPS interface. If you are accessing
// Amazon SES using an AWS SDK, the SDK takes care of the base 64-encoding for you.
// In all cases, the client must ensure that the message format complies with
// Internet email standards regarding email header fields, MIME types, and MIME
// encoding. The To:, CC:, and BCC: headers in the raw message can contain a group
// list. If you are using SendRawEmail with sending authorization, you can include
// X-headers in the raw message to specify the "Source," "From," and "Return-Path"
// addresses. For more information, see the documentation for SendRawEmail. Do not
// include these X-headers in the DKIM signature, because they are removed by
// Amazon SES before sending the email. For more information, go to the Amazon SES
// Developer Guide
// (https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-raw.html).
//
// This member is required.
Data []byte
noSmithyDocumentSerde
}
// An action that Amazon SES can take when it receives an email on behalf of one or
// more email addresses or domains that you own. An instance of this data type can
// represent only one action. For information about setting up receipt rules, see
// the Amazon SES Developer Guide
// (https://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-receipt-rules.html).
type ReceiptAction struct {
// Adds a header to the received email.
AddHeaderAction *AddHeaderAction
// Rejects the received email by returning a bounce response to the sender and,
// optionally, publishes a notification to Amazon Simple Notification Service
// (Amazon SNS).
BounceAction *BounceAction
// Calls an AWS Lambda function, and optionally, publishes a notification to Amazon
// SNS.
LambdaAction *LambdaAction
// Saves the received message to an Amazon Simple Storage Service (Amazon S3)
// bucket and, optionally, publishes a notification to Amazon SNS.
S3Action *S3Action
// Publishes the email content within a notification to Amazon SNS.
SNSAction *SNSAction
// Terminates the evaluation of the receipt rule set and optionally publishes a
// notification to Amazon SNS.
StopAction *StopAction
// Calls Amazon WorkMail and, optionally, publishes a notification to Amazon Amazon
// SNS.
WorkmailAction *WorkmailAction
noSmithyDocumentSerde
}
// A receipt IP address filter enables you to specify whether to accept or reject
// mail originating from an IP address or range of IP addresses. For information
// about setting up IP address filters, see the Amazon SES Developer Guide
// (https://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-ip-filters.html).
type ReceiptFilter struct {
// A structure that provides the IP addresses to block or allow, and whether to
// block or allow incoming mail from them.
//
// This member is required.
IpFilter *ReceiptIpFilter
// The name of the IP address filter. The name must:
//
// * This value can only contain
// ASCII letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-).
//
// *
// Start and end with a letter or number.
//
// * Contain less than 64 characters.
//
// This member is required.
Name *string
noSmithyDocumentSerde
}
// A receipt IP address filter enables you to specify whether to accept or reject
// mail originating from an IP address or range of IP addresses. For information
// about setting up IP address filters, see the Amazon SES Developer Guide
// (https://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-ip-filters.html).
type ReceiptIpFilter struct {
// A single IP address or a range of IP addresses that you want to block or allow,
// specified in Classless Inter-Domain Routing (CIDR) notation. An example of a
// single email address is 10.0.0.1. An example of a range of IP addresses is
// 10.0.0.1/24. For more information about CIDR notation, see RFC 2317
// (https://tools.ietf.org/html/rfc2317).
//
// This member is required.
Cidr *string
// Indicates whether to block or allow incoming mail from the specified IP
// addresses.
//
// This member is required.
Policy ReceiptFilterPolicy
noSmithyDocumentSerde
}
// Receipt rules enable you to specify which actions Amazon SES should take when it
// receives mail on behalf of one or more email addresses or domains that you own.
// Each receipt rule defines a set of email addresses or domains that it applies
// to. If the email addresses or domains match at least one recipient address of
// the message, Amazon SES executes all of the receipt rule's actions on the
// message. For information about setting up receipt rules, see the Amazon SES
// Developer Guide
// (https://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-receipt-rules.html).
type ReceiptRule struct {
// The name of the receipt rule. The name must:
//
// * This value can only contain
// ASCII letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-).
//
// *
// Start and end with a letter or number.
//
// * Contain less than 64 characters.
//
// This member is required.
Name *string
// An ordered list of actions to perform on messages that match at least one of the
// recipient email addresses or domains specified in the receipt rule.
Actions []ReceiptAction
// If true, the receipt rule is active. The default value is false.
Enabled bool
// The recipient domains and email addresses that the receipt rule applies to. If
// this field is not specified, this rule will match all recipients under all
// verified domains.
Recipients []string
// If true, then messages that this receipt rule applies to are scanned for spam
// and viruses. The default value is false.
ScanEnabled bool
// Specifies whether Amazon SES should require that incoming email is delivered
// over a connection encrypted with Transport Layer Security (TLS). If this
// parameter is set to Require, Amazon SES will bounce emails that are not received
// over TLS. The default is Optional.
TlsPolicy TlsPolicy
noSmithyDocumentSerde
}
// Information about a receipt rule set. A receipt rule set is a collection of
// rules that specify what Amazon SES should do with mail it receives on behalf of
// your account's verified domains. For information about setting up receipt rule
// sets, see the Amazon SES Developer Guide
// (https://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-receipt-rule-set.html).
type ReceiptRuleSetMetadata struct {
// The date and time the receipt rule set was created.
CreatedTimestamp *time.Time
// The name of the receipt rule set. The name must:
//
// * This value can only contain
// ASCII letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-).
//
// *
// Start and end with a letter or number.
//
// * Contain less than 64 characters.
Name *string
noSmithyDocumentSerde
}
// Recipient-related information to include in the Delivery Status Notification
// (DSN) when an email that Amazon SES receives on your behalf bounces. For
// information about receiving email through Amazon SES, see the Amazon SES
// Developer Guide
// (https://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email.html).
type RecipientDsnFields struct {
// The action performed by the reporting mail transfer agent (MTA) as a result of
// its attempt to deliver the message to the recipient address. This is required by
// RFC 3464 (https://tools.ietf.org/html/rfc3464).
//
// This member is required.
Action DsnAction
// The status code that indicates what went wrong. This is required by RFC 3464
// (https://tools.ietf.org/html/rfc3464).
//
// This member is required.
Status *string
// An extended explanation of what went wrong; this is usually an SMTP response.
// See RFC 3463 (https://tools.ietf.org/html/rfc3463) for the correct formatting of
// this parameter.
DiagnosticCode *string
// Additional X-headers to include in the DSN.
ExtensionFields []ExtensionField
// The email address that the message was ultimately delivered to. This corresponds
// to the Final-Recipient in the DSN. If not specified, FinalRecipient will be set
// to the Recipient specified in the BouncedRecipientInfo structure. Either
// FinalRecipient or the recipient in BouncedRecipientInfo must be a recipient of
// the original bounced message. Do not prepend the FinalRecipient email address
// with rfc 822;, as described in RFC 3798 (https://tools.ietf.org/html/rfc3798).
FinalRecipient *string
// The time the final delivery attempt was made, in RFC 822
// (https://www.ietf.org/rfc/rfc0822.txt) date-time format.
LastAttemptDate *time.Time
// The MTA to which the remote MTA attempted to deliver the message, formatted as
// specified in RFC 3464 (https://tools.ietf.org/html/rfc3464) (mta-name-type;
// mta-name). This parameter typically applies only to propagating synchronous
// bounces.
RemoteMta *string
noSmithyDocumentSerde
}
// Contains information about the reputation settings for a configuration set.
type ReputationOptions struct {
// The date and time at which the reputation metrics for the configuration set were
// last reset. Resetting these metrics is known as a fresh start. When you disable
// email sending for a configuration set using UpdateConfigurationSetSendingEnabled
// and later re-enable it, the reputation metrics for the configuration set (but
// not for the entire Amazon SES account) are reset. If email sending for the
// configuration set has never been disabled and later re-enabled, the value of
// this attribute is null.
LastFreshStart *time.Time
// Describes whether or not Amazon SES publishes reputation metrics for the
// configuration set, such as bounce and complaint rates, to Amazon CloudWatch. If
// the value is true, reputation metrics are published. If the value is false,
// reputation metrics are not published. The default value is false.
ReputationMetricsEnabled bool
// Describes whether email sending is enabled or disabled for the configuration
// set. If the value is true, then Amazon SES will send emails that use the
// configuration set. If the value is false, Amazon SES will not send emails that
// use the configuration set. The default value is true. You can change this
// setting using UpdateConfigurationSetSendingEnabled.
SendingEnabled bool
noSmithyDocumentSerde
}
// When included in a receipt rule, this action saves the received message to an
// Amazon Simple Storage Service (Amazon S3) bucket and, optionally, publishes a
// notification to Amazon Simple Notification Service (Amazon SNS). To enable
// Amazon SES to write emails to your Amazon S3 bucket, use an AWS KMS key to
// encrypt your emails, or publish to an Amazon SNS topic of another account,
// Amazon SES must have permission to access those resources. For information about
// giving permissions, see the Amazon SES Developer Guide
// (https://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-permissions.html).
// When you save your emails to an Amazon S3 bucket, the maximum email size
// (including headers) is 30 MB. Emails larger than that will bounce. For
// information about specifying Amazon S3 actions in receipt rules, see the Amazon
// SES Developer Guide
// (https://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-action-s3.html).
type S3Action struct {
// The name of the Amazon S3 bucket that incoming email will be saved to.
//
// This member is required.
BucketName *string
// The customer master key that Amazon SES should use to encrypt your emails before
// saving them to the Amazon S3 bucket. You can use the default master key or a
// custom master key you created in AWS KMS as follows:
//
// * To use the default
// master key, provide an ARN in the form of
// arn:aws:kms:REGION:ACCOUNT-ID-WITHOUT-HYPHENS:alias/aws/ses. For example, if
// your AWS account ID is 123456789012 and you want to use the default master key
// in the US West (Oregon) region, the ARN of the default master key would be
// arn:aws:kms:us-west-2:123456789012:alias/aws/ses. If you use the default master