1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package ses
4
5import (
6	"fmt"
7	"time"
8
9	"github.com/aws/aws-sdk-go/aws"
10	"github.com/aws/aws-sdk-go/aws/awsutil"
11	"github.com/aws/aws-sdk-go/aws/request"
12	"github.com/aws/aws-sdk-go/private/protocol"
13	"github.com/aws/aws-sdk-go/private/protocol/query"
14)
15
16const opCloneReceiptRuleSet = "CloneReceiptRuleSet"
17
18// CloneReceiptRuleSetRequest generates a "aws/request.Request" representing the
19// client's request for the CloneReceiptRuleSet operation. The "output" return
20// value will be populated with the request's response once the request complets
21// successfuly.
22//
23// Use "Send" method on the returned Request to send the API call to the service.
24// the "output" return value is not valid until after Send returns without error.
25//
26// See CloneReceiptRuleSet for more information on using the CloneReceiptRuleSet
27// API call, and error handling.
28//
29// This method is useful when you want to inject custom logic or configuration
30// into the SDK's request lifecycle. Such as custom headers, or retry logic.
31//
32//
33//    // Example sending a request using the CloneReceiptRuleSetRequest method.
34//    req, resp := client.CloneReceiptRuleSetRequest(params)
35//
36//    err := req.Send()
37//    if err == nil { // resp is now filled
38//        fmt.Println(resp)
39//    }
40//
41// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CloneReceiptRuleSet
42func (c *SES) CloneReceiptRuleSetRequest(input *CloneReceiptRuleSetInput) (req *request.Request, output *CloneReceiptRuleSetOutput) {
43	op := &request.Operation{
44		Name:       opCloneReceiptRuleSet,
45		HTTPMethod: "POST",
46		HTTPPath:   "/",
47	}
48
49	if input == nil {
50		input = &CloneReceiptRuleSetInput{}
51	}
52
53	output = &CloneReceiptRuleSetOutput{}
54	req = c.newRequest(op, input, output)
55	return
56}
57
58// CloneReceiptRuleSet API operation for Amazon Simple Email Service.
59//
60// Creates a receipt rule set by cloning an existing one. All receipt rules
61// and configurations are copied to the new receipt rule set and are completely
62// independent of the source rule set.
63//
64// For information about setting up rule sets, see the Amazon SES Developer
65// Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-receipt-rule-set.html).
66//
67// You can execute this operation no more than once per second.
68//
69// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
70// with awserr.Error's Code and Message methods to get detailed information about
71// the error.
72//
73// See the AWS API reference guide for Amazon Simple Email Service's
74// API operation CloneReceiptRuleSet for usage and error information.
75//
76// Returned Error Codes:
77//   * ErrCodeRuleSetDoesNotExistException "RuleSetDoesNotExist"
78//   Indicates that the provided receipt rule set does not exist.
79//
80//   * ErrCodeAlreadyExistsException "AlreadyExists"
81//   Indicates that a resource could not be created because of a naming conflict.
82//
83//   * ErrCodeLimitExceededException "LimitExceeded"
84//   Indicates that a resource could not be created because of service limits.
85//   For a list of Amazon SES limits, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/limits.html).
86//
87// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CloneReceiptRuleSet
88func (c *SES) CloneReceiptRuleSet(input *CloneReceiptRuleSetInput) (*CloneReceiptRuleSetOutput, error) {
89	req, out := c.CloneReceiptRuleSetRequest(input)
90	return out, req.Send()
91}
92
93// CloneReceiptRuleSetWithContext is the same as CloneReceiptRuleSet with the addition of
94// the ability to pass a context and additional request options.
95//
96// See CloneReceiptRuleSet for details on how to use this API operation.
97//
98// The context must be non-nil and will be used for request cancellation. If
99// the context is nil a panic will occur. In the future the SDK may create
100// sub-contexts for http.Requests. See https://golang.org/pkg/context/
101// for more information on using Contexts.
102func (c *SES) CloneReceiptRuleSetWithContext(ctx aws.Context, input *CloneReceiptRuleSetInput, opts ...request.Option) (*CloneReceiptRuleSetOutput, error) {
103	req, out := c.CloneReceiptRuleSetRequest(input)
104	req.SetContext(ctx)
105	req.ApplyOptions(opts...)
106	return out, req.Send()
107}
108
109const opCreateConfigurationSet = "CreateConfigurationSet"
110
111// CreateConfigurationSetRequest generates a "aws/request.Request" representing the
112// client's request for the CreateConfigurationSet operation. The "output" return
113// value will be populated with the request's response once the request complets
114// successfuly.
115//
116// Use "Send" method on the returned Request to send the API call to the service.
117// the "output" return value is not valid until after Send returns without error.
118//
119// See CreateConfigurationSet for more information on using the CreateConfigurationSet
120// API call, and error handling.
121//
122// This method is useful when you want to inject custom logic or configuration
123// into the SDK's request lifecycle. Such as custom headers, or retry logic.
124//
125//
126//    // Example sending a request using the CreateConfigurationSetRequest method.
127//    req, resp := client.CreateConfigurationSetRequest(params)
128//
129//    err := req.Send()
130//    if err == nil { // resp is now filled
131//        fmt.Println(resp)
132//    }
133//
134// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CreateConfigurationSet
135func (c *SES) CreateConfigurationSetRequest(input *CreateConfigurationSetInput) (req *request.Request, output *CreateConfigurationSetOutput) {
136	op := &request.Operation{
137		Name:       opCreateConfigurationSet,
138		HTTPMethod: "POST",
139		HTTPPath:   "/",
140	}
141
142	if input == nil {
143		input = &CreateConfigurationSetInput{}
144	}
145
146	output = &CreateConfigurationSetOutput{}
147	req = c.newRequest(op, input, output)
148	return
149}
150
151// CreateConfigurationSet API operation for Amazon Simple Email Service.
152//
153// Creates a configuration set.
154//
155// Configuration sets enable you to publish email sending events. For information
156// about using configuration sets, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html).
157//
158// You can execute this operation no more than once per second.
159//
160// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
161// with awserr.Error's Code and Message methods to get detailed information about
162// the error.
163//
164// See the AWS API reference guide for Amazon Simple Email Service's
165// API operation CreateConfigurationSet for usage and error information.
166//
167// Returned Error Codes:
168//   * ErrCodeConfigurationSetAlreadyExistsException "ConfigurationSetAlreadyExists"
169//   Indicates that the configuration set could not be created because of a naming
170//   conflict.
171//
172//   * ErrCodeInvalidConfigurationSetException "InvalidConfigurationSet"
173//   Indicates that the configuration set is invalid. See the error message for
174//   details.
175//
176//   * ErrCodeLimitExceededException "LimitExceeded"
177//   Indicates that a resource could not be created because of service limits.
178//   For a list of Amazon SES limits, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/limits.html).
179//
180// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CreateConfigurationSet
181func (c *SES) CreateConfigurationSet(input *CreateConfigurationSetInput) (*CreateConfigurationSetOutput, error) {
182	req, out := c.CreateConfigurationSetRequest(input)
183	return out, req.Send()
184}
185
186// CreateConfigurationSetWithContext is the same as CreateConfigurationSet with the addition of
187// the ability to pass a context and additional request options.
188//
189// See CreateConfigurationSet for details on how to use this API operation.
190//
191// The context must be non-nil and will be used for request cancellation. If
192// the context is nil a panic will occur. In the future the SDK may create
193// sub-contexts for http.Requests. See https://golang.org/pkg/context/
194// for more information on using Contexts.
195func (c *SES) CreateConfigurationSetWithContext(ctx aws.Context, input *CreateConfigurationSetInput, opts ...request.Option) (*CreateConfigurationSetOutput, error) {
196	req, out := c.CreateConfigurationSetRequest(input)
197	req.SetContext(ctx)
198	req.ApplyOptions(opts...)
199	return out, req.Send()
200}
201
202const opCreateConfigurationSetEventDestination = "CreateConfigurationSetEventDestination"
203
204// CreateConfigurationSetEventDestinationRequest generates a "aws/request.Request" representing the
205// client's request for the CreateConfigurationSetEventDestination operation. The "output" return
206// value will be populated with the request's response once the request complets
207// successfuly.
208//
209// Use "Send" method on the returned Request to send the API call to the service.
210// the "output" return value is not valid until after Send returns without error.
211//
212// See CreateConfigurationSetEventDestination for more information on using the CreateConfigurationSetEventDestination
213// API call, and error handling.
214//
215// This method is useful when you want to inject custom logic or configuration
216// into the SDK's request lifecycle. Such as custom headers, or retry logic.
217//
218//
219//    // Example sending a request using the CreateConfigurationSetEventDestinationRequest method.
220//    req, resp := client.CreateConfigurationSetEventDestinationRequest(params)
221//
222//    err := req.Send()
223//    if err == nil { // resp is now filled
224//        fmt.Println(resp)
225//    }
226//
227// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CreateConfigurationSetEventDestination
228func (c *SES) CreateConfigurationSetEventDestinationRequest(input *CreateConfigurationSetEventDestinationInput) (req *request.Request, output *CreateConfigurationSetEventDestinationOutput) {
229	op := &request.Operation{
230		Name:       opCreateConfigurationSetEventDestination,
231		HTTPMethod: "POST",
232		HTTPPath:   "/",
233	}
234
235	if input == nil {
236		input = &CreateConfigurationSetEventDestinationInput{}
237	}
238
239	output = &CreateConfigurationSetEventDestinationOutput{}
240	req = c.newRequest(op, input, output)
241	return
242}
243
244// CreateConfigurationSetEventDestination API operation for Amazon Simple Email Service.
245//
246// Creates a configuration set event destination.
247//
248// When you create or update an event destination, you must provide one, and
249// only one, destination. The destination can be Amazon CloudWatch, Amazon Kinesis
250// Firehose, or Amazon Simple Notification Service (Amazon SNS).
251//
252// An event destination is the AWS service to which Amazon SES publishes the
253// email sending events associated with a configuration set. For information
254// about using configuration sets, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html).
255//
256// You can execute this operation no more than once per second.
257//
258// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
259// with awserr.Error's Code and Message methods to get detailed information about
260// the error.
261//
262// See the AWS API reference guide for Amazon Simple Email Service's
263// API operation CreateConfigurationSetEventDestination for usage and error information.
264//
265// Returned Error Codes:
266//   * ErrCodeConfigurationSetDoesNotExistException "ConfigurationSetDoesNotExist"
267//   Indicates that the configuration set does not exist.
268//
269//   * ErrCodeEventDestinationAlreadyExistsException "EventDestinationAlreadyExists"
270//   Indicates that the event destination could not be created because of a naming
271//   conflict.
272//
273//   * ErrCodeInvalidCloudWatchDestinationException "InvalidCloudWatchDestination"
274//   Indicates that the Amazon CloudWatch destination is invalid. See the error
275//   message for details.
276//
277//   * ErrCodeInvalidFirehoseDestinationException "InvalidFirehoseDestination"
278//   Indicates that the Amazon Kinesis Firehose destination is invalid. See the
279//   error message for details.
280//
281//   * ErrCodeInvalidSNSDestinationException "InvalidSNSDestination"
282//   Indicates that the Amazon Simple Notification Service (Amazon SNS) destination
283//   is invalid. See the error message for details.
284//
285//   * ErrCodeLimitExceededException "LimitExceeded"
286//   Indicates that a resource could not be created because of service limits.
287//   For a list of Amazon SES limits, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/limits.html).
288//
289// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CreateConfigurationSetEventDestination
290func (c *SES) CreateConfigurationSetEventDestination(input *CreateConfigurationSetEventDestinationInput) (*CreateConfigurationSetEventDestinationOutput, error) {
291	req, out := c.CreateConfigurationSetEventDestinationRequest(input)
292	return out, req.Send()
293}
294
295// CreateConfigurationSetEventDestinationWithContext is the same as CreateConfigurationSetEventDestination with the addition of
296// the ability to pass a context and additional request options.
297//
298// See CreateConfigurationSetEventDestination for details on how to use this API operation.
299//
300// The context must be non-nil and will be used for request cancellation. If
301// the context is nil a panic will occur. In the future the SDK may create
302// sub-contexts for http.Requests. See https://golang.org/pkg/context/
303// for more information on using Contexts.
304func (c *SES) CreateConfigurationSetEventDestinationWithContext(ctx aws.Context, input *CreateConfigurationSetEventDestinationInput, opts ...request.Option) (*CreateConfigurationSetEventDestinationOutput, error) {
305	req, out := c.CreateConfigurationSetEventDestinationRequest(input)
306	req.SetContext(ctx)
307	req.ApplyOptions(opts...)
308	return out, req.Send()
309}
310
311const opCreateConfigurationSetTrackingOptions = "CreateConfigurationSetTrackingOptions"
312
313// CreateConfigurationSetTrackingOptionsRequest generates a "aws/request.Request" representing the
314// client's request for the CreateConfigurationSetTrackingOptions operation. The "output" return
315// value will be populated with the request's response once the request complets
316// successfuly.
317//
318// Use "Send" method on the returned Request to send the API call to the service.
319// the "output" return value is not valid until after Send returns without error.
320//
321// See CreateConfigurationSetTrackingOptions for more information on using the CreateConfigurationSetTrackingOptions
322// API call, and error handling.
323//
324// This method is useful when you want to inject custom logic or configuration
325// into the SDK's request lifecycle. Such as custom headers, or retry logic.
326//
327//
328//    // Example sending a request using the CreateConfigurationSetTrackingOptionsRequest method.
329//    req, resp := client.CreateConfigurationSetTrackingOptionsRequest(params)
330//
331//    err := req.Send()
332//    if err == nil { // resp is now filled
333//        fmt.Println(resp)
334//    }
335//
336// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CreateConfigurationSetTrackingOptions
337func (c *SES) CreateConfigurationSetTrackingOptionsRequest(input *CreateConfigurationSetTrackingOptionsInput) (req *request.Request, output *CreateConfigurationSetTrackingOptionsOutput) {
338	op := &request.Operation{
339		Name:       opCreateConfigurationSetTrackingOptions,
340		HTTPMethod: "POST",
341		HTTPPath:   "/",
342	}
343
344	if input == nil {
345		input = &CreateConfigurationSetTrackingOptionsInput{}
346	}
347
348	output = &CreateConfigurationSetTrackingOptionsOutput{}
349	req = c.newRequest(op, input, output)
350	return
351}
352
353// CreateConfigurationSetTrackingOptions API operation for Amazon Simple Email Service.
354//
355// Creates an association between a configuration set and a custom domain for
356// open and click event tracking.
357//
358// By default, images and links used for tracking open and click events are
359// hosted on domains operated by Amazon SES. You can configure a subdomain of
360// your own to handle these events by redirecting them to the Amazon SES-operated
361// domain. For information about using configuration sets, see Configuring Custom
362// Domains to Handle Open and Click Tracking (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/configure-custom-open-click-domains.html)
363// in the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/Welcome.html).
364//
365// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
366// with awserr.Error's Code and Message methods to get detailed information about
367// the error.
368//
369// See the AWS API reference guide for Amazon Simple Email Service's
370// API operation CreateConfigurationSetTrackingOptions for usage and error information.
371//
372// Returned Error Codes:
373//   * ErrCodeConfigurationSetDoesNotExistException "ConfigurationSetDoesNotExist"
374//   Indicates that the configuration set does not exist.
375//
376//   * ErrCodeTrackingOptionsAlreadyExistsException "TrackingOptionsAlreadyExistsException"
377//   Indicates that the configuration set you specified already contains a TrackingOptions
378//   object.
379//
380//   * ErrCodeInvalidTrackingOptionsException "InvalidTrackingOptions"
381//   Indicates that the custom domain to be used for open and click tracking redirects
382//   is invalid. This error appears most often in the following situations:
383//
384//      * When the tracking domain you specified is not verified in Amazon SES.
385//
386//      * When the tracking domain you specified is not a valid domain or subdomain.
387//
388// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CreateConfigurationSetTrackingOptions
389func (c *SES) CreateConfigurationSetTrackingOptions(input *CreateConfigurationSetTrackingOptionsInput) (*CreateConfigurationSetTrackingOptionsOutput, error) {
390	req, out := c.CreateConfigurationSetTrackingOptionsRequest(input)
391	return out, req.Send()
392}
393
394// CreateConfigurationSetTrackingOptionsWithContext is the same as CreateConfigurationSetTrackingOptions with the addition of
395// the ability to pass a context and additional request options.
396//
397// See CreateConfigurationSetTrackingOptions for details on how to use this API operation.
398//
399// The context must be non-nil and will be used for request cancellation. If
400// the context is nil a panic will occur. In the future the SDK may create
401// sub-contexts for http.Requests. See https://golang.org/pkg/context/
402// for more information on using Contexts.
403func (c *SES) CreateConfigurationSetTrackingOptionsWithContext(ctx aws.Context, input *CreateConfigurationSetTrackingOptionsInput, opts ...request.Option) (*CreateConfigurationSetTrackingOptionsOutput, error) {
404	req, out := c.CreateConfigurationSetTrackingOptionsRequest(input)
405	req.SetContext(ctx)
406	req.ApplyOptions(opts...)
407	return out, req.Send()
408}
409
410const opCreateReceiptFilter = "CreateReceiptFilter"
411
412// CreateReceiptFilterRequest generates a "aws/request.Request" representing the
413// client's request for the CreateReceiptFilter operation. The "output" return
414// value will be populated with the request's response once the request complets
415// successfuly.
416//
417// Use "Send" method on the returned Request to send the API call to the service.
418// the "output" return value is not valid until after Send returns without error.
419//
420// See CreateReceiptFilter for more information on using the CreateReceiptFilter
421// API call, and error handling.
422//
423// This method is useful when you want to inject custom logic or configuration
424// into the SDK's request lifecycle. Such as custom headers, or retry logic.
425//
426//
427//    // Example sending a request using the CreateReceiptFilterRequest method.
428//    req, resp := client.CreateReceiptFilterRequest(params)
429//
430//    err := req.Send()
431//    if err == nil { // resp is now filled
432//        fmt.Println(resp)
433//    }
434//
435// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CreateReceiptFilter
436func (c *SES) CreateReceiptFilterRequest(input *CreateReceiptFilterInput) (req *request.Request, output *CreateReceiptFilterOutput) {
437	op := &request.Operation{
438		Name:       opCreateReceiptFilter,
439		HTTPMethod: "POST",
440		HTTPPath:   "/",
441	}
442
443	if input == nil {
444		input = &CreateReceiptFilterInput{}
445	}
446
447	output = &CreateReceiptFilterOutput{}
448	req = c.newRequest(op, input, output)
449	return
450}
451
452// CreateReceiptFilter API operation for Amazon Simple Email Service.
453//
454// Creates a new IP address filter.
455//
456// For information about setting up IP address filters, see the Amazon SES Developer
457// Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-ip-filters.html).
458//
459// You can execute this operation no more than once per second.
460//
461// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
462// with awserr.Error's Code and Message methods to get detailed information about
463// the error.
464//
465// See the AWS API reference guide for Amazon Simple Email Service's
466// API operation CreateReceiptFilter for usage and error information.
467//
468// Returned Error Codes:
469//   * ErrCodeLimitExceededException "LimitExceeded"
470//   Indicates that a resource could not be created because of service limits.
471//   For a list of Amazon SES limits, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/limits.html).
472//
473//   * ErrCodeAlreadyExistsException "AlreadyExists"
474//   Indicates that a resource could not be created because of a naming conflict.
475//
476// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CreateReceiptFilter
477func (c *SES) CreateReceiptFilter(input *CreateReceiptFilterInput) (*CreateReceiptFilterOutput, error) {
478	req, out := c.CreateReceiptFilterRequest(input)
479	return out, req.Send()
480}
481
482// CreateReceiptFilterWithContext is the same as CreateReceiptFilter with the addition of
483// the ability to pass a context and additional request options.
484//
485// See CreateReceiptFilter for details on how to use this API operation.
486//
487// The context must be non-nil and will be used for request cancellation. If
488// the context is nil a panic will occur. In the future the SDK may create
489// sub-contexts for http.Requests. See https://golang.org/pkg/context/
490// for more information on using Contexts.
491func (c *SES) CreateReceiptFilterWithContext(ctx aws.Context, input *CreateReceiptFilterInput, opts ...request.Option) (*CreateReceiptFilterOutput, error) {
492	req, out := c.CreateReceiptFilterRequest(input)
493	req.SetContext(ctx)
494	req.ApplyOptions(opts...)
495	return out, req.Send()
496}
497
498const opCreateReceiptRule = "CreateReceiptRule"
499
500// CreateReceiptRuleRequest generates a "aws/request.Request" representing the
501// client's request for the CreateReceiptRule operation. The "output" return
502// value will be populated with the request's response once the request complets
503// successfuly.
504//
505// Use "Send" method on the returned Request to send the API call to the service.
506// the "output" return value is not valid until after Send returns without error.
507//
508// See CreateReceiptRule for more information on using the CreateReceiptRule
509// API call, and error handling.
510//
511// This method is useful when you want to inject custom logic or configuration
512// into the SDK's request lifecycle. Such as custom headers, or retry logic.
513//
514//
515//    // Example sending a request using the CreateReceiptRuleRequest method.
516//    req, resp := client.CreateReceiptRuleRequest(params)
517//
518//    err := req.Send()
519//    if err == nil { // resp is now filled
520//        fmt.Println(resp)
521//    }
522//
523// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CreateReceiptRule
524func (c *SES) CreateReceiptRuleRequest(input *CreateReceiptRuleInput) (req *request.Request, output *CreateReceiptRuleOutput) {
525	op := &request.Operation{
526		Name:       opCreateReceiptRule,
527		HTTPMethod: "POST",
528		HTTPPath:   "/",
529	}
530
531	if input == nil {
532		input = &CreateReceiptRuleInput{}
533	}
534
535	output = &CreateReceiptRuleOutput{}
536	req = c.newRequest(op, input, output)
537	return
538}
539
540// CreateReceiptRule API operation for Amazon Simple Email Service.
541//
542// Creates a receipt rule.
543//
544// For information about setting up receipt rules, see the Amazon SES Developer
545// Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-receipt-rules.html).
546//
547// You can execute this operation no more than once per second.
548//
549// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
550// with awserr.Error's Code and Message methods to get detailed information about
551// the error.
552//
553// See the AWS API reference guide for Amazon Simple Email Service's
554// API operation CreateReceiptRule for usage and error information.
555//
556// Returned Error Codes:
557//   * ErrCodeInvalidSnsTopicException "InvalidSnsTopic"
558//   Indicates that the provided Amazon SNS topic is invalid, or that Amazon SES
559//   could not publish to the topic, possibly due to permissions issues. For information
560//   about giving permissions, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-permissions.html).
561//
562//   * ErrCodeInvalidS3ConfigurationException "InvalidS3Configuration"
563//   Indicates that the provided Amazon S3 bucket or AWS KMS encryption key is
564//   invalid, or that Amazon SES could not publish to the bucket, possibly due
565//   to permissions issues. For information about giving permissions, see the
566//   Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-permissions.html).
567//
568//   * ErrCodeInvalidLambdaFunctionException "InvalidLambdaFunction"
569//   Indicates that the provided AWS Lambda function is invalid, or that Amazon
570//   SES could not execute the provided function, possibly due to permissions
571//   issues. For information about giving permissions, see the Amazon SES Developer
572//   Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-permissions.html).
573//
574//   * ErrCodeAlreadyExistsException "AlreadyExists"
575//   Indicates that a resource could not be created because of a naming conflict.
576//
577//   * ErrCodeRuleDoesNotExistException "RuleDoesNotExist"
578//   Indicates that the provided receipt rule does not exist.
579//
580//   * ErrCodeRuleSetDoesNotExistException "RuleSetDoesNotExist"
581//   Indicates that the provided receipt rule set does not exist.
582//
583//   * ErrCodeLimitExceededException "LimitExceeded"
584//   Indicates that a resource could not be created because of service limits.
585//   For a list of Amazon SES limits, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/limits.html).
586//
587// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CreateReceiptRule
588func (c *SES) CreateReceiptRule(input *CreateReceiptRuleInput) (*CreateReceiptRuleOutput, error) {
589	req, out := c.CreateReceiptRuleRequest(input)
590	return out, req.Send()
591}
592
593// CreateReceiptRuleWithContext is the same as CreateReceiptRule with the addition of
594// the ability to pass a context and additional request options.
595//
596// See CreateReceiptRule for details on how to use this API operation.
597//
598// The context must be non-nil and will be used for request cancellation. If
599// the context is nil a panic will occur. In the future the SDK may create
600// sub-contexts for http.Requests. See https://golang.org/pkg/context/
601// for more information on using Contexts.
602func (c *SES) CreateReceiptRuleWithContext(ctx aws.Context, input *CreateReceiptRuleInput, opts ...request.Option) (*CreateReceiptRuleOutput, error) {
603	req, out := c.CreateReceiptRuleRequest(input)
604	req.SetContext(ctx)
605	req.ApplyOptions(opts...)
606	return out, req.Send()
607}
608
609const opCreateReceiptRuleSet = "CreateReceiptRuleSet"
610
611// CreateReceiptRuleSetRequest generates a "aws/request.Request" representing the
612// client's request for the CreateReceiptRuleSet operation. The "output" return
613// value will be populated with the request's response once the request complets
614// successfuly.
615//
616// Use "Send" method on the returned Request to send the API call to the service.
617// the "output" return value is not valid until after Send returns without error.
618//
619// See CreateReceiptRuleSet for more information on using the CreateReceiptRuleSet
620// API call, and error handling.
621//
622// This method is useful when you want to inject custom logic or configuration
623// into the SDK's request lifecycle. Such as custom headers, or retry logic.
624//
625//
626//    // Example sending a request using the CreateReceiptRuleSetRequest method.
627//    req, resp := client.CreateReceiptRuleSetRequest(params)
628//
629//    err := req.Send()
630//    if err == nil { // resp is now filled
631//        fmt.Println(resp)
632//    }
633//
634// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CreateReceiptRuleSet
635func (c *SES) CreateReceiptRuleSetRequest(input *CreateReceiptRuleSetInput) (req *request.Request, output *CreateReceiptRuleSetOutput) {
636	op := &request.Operation{
637		Name:       opCreateReceiptRuleSet,
638		HTTPMethod: "POST",
639		HTTPPath:   "/",
640	}
641
642	if input == nil {
643		input = &CreateReceiptRuleSetInput{}
644	}
645
646	output = &CreateReceiptRuleSetOutput{}
647	req = c.newRequest(op, input, output)
648	return
649}
650
651// CreateReceiptRuleSet API operation for Amazon Simple Email Service.
652//
653// Creates an empty receipt rule set.
654//
655// For information about setting up receipt rule sets, see the Amazon SES Developer
656// Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-receipt-rule-set.html).
657//
658// You can execute this operation no more than once per second.
659//
660// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
661// with awserr.Error's Code and Message methods to get detailed information about
662// the error.
663//
664// See the AWS API reference guide for Amazon Simple Email Service's
665// API operation CreateReceiptRuleSet for usage and error information.
666//
667// Returned Error Codes:
668//   * ErrCodeAlreadyExistsException "AlreadyExists"
669//   Indicates that a resource could not be created because of a naming conflict.
670//
671//   * ErrCodeLimitExceededException "LimitExceeded"
672//   Indicates that a resource could not be created because of service limits.
673//   For a list of Amazon SES limits, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/limits.html).
674//
675// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CreateReceiptRuleSet
676func (c *SES) CreateReceiptRuleSet(input *CreateReceiptRuleSetInput) (*CreateReceiptRuleSetOutput, error) {
677	req, out := c.CreateReceiptRuleSetRequest(input)
678	return out, req.Send()
679}
680
681// CreateReceiptRuleSetWithContext is the same as CreateReceiptRuleSet with the addition of
682// the ability to pass a context and additional request options.
683//
684// See CreateReceiptRuleSet for details on how to use this API operation.
685//
686// The context must be non-nil and will be used for request cancellation. If
687// the context is nil a panic will occur. In the future the SDK may create
688// sub-contexts for http.Requests. See https://golang.org/pkg/context/
689// for more information on using Contexts.
690func (c *SES) CreateReceiptRuleSetWithContext(ctx aws.Context, input *CreateReceiptRuleSetInput, opts ...request.Option) (*CreateReceiptRuleSetOutput, error) {
691	req, out := c.CreateReceiptRuleSetRequest(input)
692	req.SetContext(ctx)
693	req.ApplyOptions(opts...)
694	return out, req.Send()
695}
696
697const opDeleteConfigurationSet = "DeleteConfigurationSet"
698
699// DeleteConfigurationSetRequest generates a "aws/request.Request" representing the
700// client's request for the DeleteConfigurationSet operation. The "output" return
701// value will be populated with the request's response once the request complets
702// successfuly.
703//
704// Use "Send" method on the returned Request to send the API call to the service.
705// the "output" return value is not valid until after Send returns without error.
706//
707// See DeleteConfigurationSet for more information on using the DeleteConfigurationSet
708// API call, and error handling.
709//
710// This method is useful when you want to inject custom logic or configuration
711// into the SDK's request lifecycle. Such as custom headers, or retry logic.
712//
713//
714//    // Example sending a request using the DeleteConfigurationSetRequest method.
715//    req, resp := client.DeleteConfigurationSetRequest(params)
716//
717//    err := req.Send()
718//    if err == nil { // resp is now filled
719//        fmt.Println(resp)
720//    }
721//
722// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteConfigurationSet
723func (c *SES) DeleteConfigurationSetRequest(input *DeleteConfigurationSetInput) (req *request.Request, output *DeleteConfigurationSetOutput) {
724	op := &request.Operation{
725		Name:       opDeleteConfigurationSet,
726		HTTPMethod: "POST",
727		HTTPPath:   "/",
728	}
729
730	if input == nil {
731		input = &DeleteConfigurationSetInput{}
732	}
733
734	output = &DeleteConfigurationSetOutput{}
735	req = c.newRequest(op, input, output)
736	return
737}
738
739// DeleteConfigurationSet API operation for Amazon Simple Email Service.
740//
741// Deletes a configuration set. Configuration sets enable you to publish email
742// sending events. For information about using configuration sets, see the Amazon
743// SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html).
744//
745// You can execute this operation no more than once per second.
746//
747// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
748// with awserr.Error's Code and Message methods to get detailed information about
749// the error.
750//
751// See the AWS API reference guide for Amazon Simple Email Service's
752// API operation DeleteConfigurationSet for usage and error information.
753//
754// Returned Error Codes:
755//   * ErrCodeConfigurationSetDoesNotExistException "ConfigurationSetDoesNotExist"
756//   Indicates that the configuration set does not exist.
757//
758// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteConfigurationSet
759func (c *SES) DeleteConfigurationSet(input *DeleteConfigurationSetInput) (*DeleteConfigurationSetOutput, error) {
760	req, out := c.DeleteConfigurationSetRequest(input)
761	return out, req.Send()
762}
763
764// DeleteConfigurationSetWithContext is the same as DeleteConfigurationSet with the addition of
765// the ability to pass a context and additional request options.
766//
767// See DeleteConfigurationSet for details on how to use this API operation.
768//
769// The context must be non-nil and will be used for request cancellation. If
770// the context is nil a panic will occur. In the future the SDK may create
771// sub-contexts for http.Requests. See https://golang.org/pkg/context/
772// for more information on using Contexts.
773func (c *SES) DeleteConfigurationSetWithContext(ctx aws.Context, input *DeleteConfigurationSetInput, opts ...request.Option) (*DeleteConfigurationSetOutput, error) {
774	req, out := c.DeleteConfigurationSetRequest(input)
775	req.SetContext(ctx)
776	req.ApplyOptions(opts...)
777	return out, req.Send()
778}
779
780const opDeleteConfigurationSetEventDestination = "DeleteConfigurationSetEventDestination"
781
782// DeleteConfigurationSetEventDestinationRequest generates a "aws/request.Request" representing the
783// client's request for the DeleteConfigurationSetEventDestination operation. The "output" return
784// value will be populated with the request's response once the request complets
785// successfuly.
786//
787// Use "Send" method on the returned Request to send the API call to the service.
788// the "output" return value is not valid until after Send returns without error.
789//
790// See DeleteConfigurationSetEventDestination for more information on using the DeleteConfigurationSetEventDestination
791// API call, and error handling.
792//
793// This method is useful when you want to inject custom logic or configuration
794// into the SDK's request lifecycle. Such as custom headers, or retry logic.
795//
796//
797//    // Example sending a request using the DeleteConfigurationSetEventDestinationRequest method.
798//    req, resp := client.DeleteConfigurationSetEventDestinationRequest(params)
799//
800//    err := req.Send()
801//    if err == nil { // resp is now filled
802//        fmt.Println(resp)
803//    }
804//
805// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteConfigurationSetEventDestination
806func (c *SES) DeleteConfigurationSetEventDestinationRequest(input *DeleteConfigurationSetEventDestinationInput) (req *request.Request, output *DeleteConfigurationSetEventDestinationOutput) {
807	op := &request.Operation{
808		Name:       opDeleteConfigurationSetEventDestination,
809		HTTPMethod: "POST",
810		HTTPPath:   "/",
811	}
812
813	if input == nil {
814		input = &DeleteConfigurationSetEventDestinationInput{}
815	}
816
817	output = &DeleteConfigurationSetEventDestinationOutput{}
818	req = c.newRequest(op, input, output)
819	return
820}
821
822// DeleteConfigurationSetEventDestination API operation for Amazon Simple Email Service.
823//
824// Deletes a configuration set event destination. Configuration set event destinations
825// are associated with configuration sets, which enable you to publish email
826// sending events. For information about using configuration sets, see the Amazon
827// SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html).
828//
829// You can execute this operation no more than once per second.
830//
831// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
832// with awserr.Error's Code and Message methods to get detailed information about
833// the error.
834//
835// See the AWS API reference guide for Amazon Simple Email Service's
836// API operation DeleteConfigurationSetEventDestination for usage and error information.
837//
838// Returned Error Codes:
839//   * ErrCodeConfigurationSetDoesNotExistException "ConfigurationSetDoesNotExist"
840//   Indicates that the configuration set does not exist.
841//
842//   * ErrCodeEventDestinationDoesNotExistException "EventDestinationDoesNotExist"
843//   Indicates that the event destination does not exist.
844//
845// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteConfigurationSetEventDestination
846func (c *SES) DeleteConfigurationSetEventDestination(input *DeleteConfigurationSetEventDestinationInput) (*DeleteConfigurationSetEventDestinationOutput, error) {
847	req, out := c.DeleteConfigurationSetEventDestinationRequest(input)
848	return out, req.Send()
849}
850
851// DeleteConfigurationSetEventDestinationWithContext is the same as DeleteConfigurationSetEventDestination with the addition of
852// the ability to pass a context and additional request options.
853//
854// See DeleteConfigurationSetEventDestination for details on how to use this API operation.
855//
856// The context must be non-nil and will be used for request cancellation. If
857// the context is nil a panic will occur. In the future the SDK may create
858// sub-contexts for http.Requests. See https://golang.org/pkg/context/
859// for more information on using Contexts.
860func (c *SES) DeleteConfigurationSetEventDestinationWithContext(ctx aws.Context, input *DeleteConfigurationSetEventDestinationInput, opts ...request.Option) (*DeleteConfigurationSetEventDestinationOutput, error) {
861	req, out := c.DeleteConfigurationSetEventDestinationRequest(input)
862	req.SetContext(ctx)
863	req.ApplyOptions(opts...)
864	return out, req.Send()
865}
866
867const opDeleteConfigurationSetTrackingOptions = "DeleteConfigurationSetTrackingOptions"
868
869// DeleteConfigurationSetTrackingOptionsRequest generates a "aws/request.Request" representing the
870// client's request for the DeleteConfigurationSetTrackingOptions operation. The "output" return
871// value will be populated with the request's response once the request complets
872// successfuly.
873//
874// Use "Send" method on the returned Request to send the API call to the service.
875// the "output" return value is not valid until after Send returns without error.
876//
877// See DeleteConfigurationSetTrackingOptions for more information on using the DeleteConfigurationSetTrackingOptions
878// API call, and error handling.
879//
880// This method is useful when you want to inject custom logic or configuration
881// into the SDK's request lifecycle. Such as custom headers, or retry logic.
882//
883//
884//    // Example sending a request using the DeleteConfigurationSetTrackingOptionsRequest method.
885//    req, resp := client.DeleteConfigurationSetTrackingOptionsRequest(params)
886//
887//    err := req.Send()
888//    if err == nil { // resp is now filled
889//        fmt.Println(resp)
890//    }
891//
892// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteConfigurationSetTrackingOptions
893func (c *SES) DeleteConfigurationSetTrackingOptionsRequest(input *DeleteConfigurationSetTrackingOptionsInput) (req *request.Request, output *DeleteConfigurationSetTrackingOptionsOutput) {
894	op := &request.Operation{
895		Name:       opDeleteConfigurationSetTrackingOptions,
896		HTTPMethod: "POST",
897		HTTPPath:   "/",
898	}
899
900	if input == nil {
901		input = &DeleteConfigurationSetTrackingOptionsInput{}
902	}
903
904	output = &DeleteConfigurationSetTrackingOptionsOutput{}
905	req = c.newRequest(op, input, output)
906	return
907}
908
909// DeleteConfigurationSetTrackingOptions API operation for Amazon Simple Email Service.
910//
911// Deletes an association between a configuration set and a custom domain for
912// open and click event tracking.
913//
914// By default, images and links used for tracking open and click events are
915// hosted on domains operated by Amazon SES. You can configure a subdomain of
916// your own to handle these events by redirecting them to the Amazon SES-operated
917// domain. For information about using configuration sets, see Configuring Custom
918// Domains to Handle Open and Click Tracking (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/configure-custom-open-click-domains.html)
919// in the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/Welcome.html).
920//
921// Deleting this kind of association will result in emails sent using the specified
922// configuration set to capture open and click events using the standard, Amazon
923// SES-operated domains.
924//
925// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
926// with awserr.Error's Code and Message methods to get detailed information about
927// the error.
928//
929// See the AWS API reference guide for Amazon Simple Email Service's
930// API operation DeleteConfigurationSetTrackingOptions for usage and error information.
931//
932// Returned Error Codes:
933//   * ErrCodeConfigurationSetDoesNotExistException "ConfigurationSetDoesNotExist"
934//   Indicates that the configuration set does not exist.
935//
936//   * ErrCodeTrackingOptionsDoesNotExistException "TrackingOptionsDoesNotExistException"
937//   Indicates that the TrackingOptions object you specified does not exist.
938//
939// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteConfigurationSetTrackingOptions
940func (c *SES) DeleteConfigurationSetTrackingOptions(input *DeleteConfigurationSetTrackingOptionsInput) (*DeleteConfigurationSetTrackingOptionsOutput, error) {
941	req, out := c.DeleteConfigurationSetTrackingOptionsRequest(input)
942	return out, req.Send()
943}
944
945// DeleteConfigurationSetTrackingOptionsWithContext is the same as DeleteConfigurationSetTrackingOptions with the addition of
946// the ability to pass a context and additional request options.
947//
948// See DeleteConfigurationSetTrackingOptions for details on how to use this API operation.
949//
950// The context must be non-nil and will be used for request cancellation. If
951// the context is nil a panic will occur. In the future the SDK may create
952// sub-contexts for http.Requests. See https://golang.org/pkg/context/
953// for more information on using Contexts.
954func (c *SES) DeleteConfigurationSetTrackingOptionsWithContext(ctx aws.Context, input *DeleteConfigurationSetTrackingOptionsInput, opts ...request.Option) (*DeleteConfigurationSetTrackingOptionsOutput, error) {
955	req, out := c.DeleteConfigurationSetTrackingOptionsRequest(input)
956	req.SetContext(ctx)
957	req.ApplyOptions(opts...)
958	return out, req.Send()
959}
960
961const opDeleteIdentity = "DeleteIdentity"
962
963// DeleteIdentityRequest generates a "aws/request.Request" representing the
964// client's request for the DeleteIdentity operation. The "output" return
965// value will be populated with the request's response once the request complets
966// successfuly.
967//
968// Use "Send" method on the returned Request to send the API call to the service.
969// the "output" return value is not valid until after Send returns without error.
970//
971// See DeleteIdentity for more information on using the DeleteIdentity
972// API call, and error handling.
973//
974// This method is useful when you want to inject custom logic or configuration
975// into the SDK's request lifecycle. Such as custom headers, or retry logic.
976//
977//
978//    // Example sending a request using the DeleteIdentityRequest method.
979//    req, resp := client.DeleteIdentityRequest(params)
980//
981//    err := req.Send()
982//    if err == nil { // resp is now filled
983//        fmt.Println(resp)
984//    }
985//
986// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteIdentity
987func (c *SES) DeleteIdentityRequest(input *DeleteIdentityInput) (req *request.Request, output *DeleteIdentityOutput) {
988	op := &request.Operation{
989		Name:       opDeleteIdentity,
990		HTTPMethod: "POST",
991		HTTPPath:   "/",
992	}
993
994	if input == nil {
995		input = &DeleteIdentityInput{}
996	}
997
998	output = &DeleteIdentityOutput{}
999	req = c.newRequest(op, input, output)
1000	return
1001}
1002
1003// DeleteIdentity API operation for Amazon Simple Email Service.
1004//
1005// Deletes the specified identity (an email address or a domain) from the list
1006// of verified identities.
1007//
1008// You can execute this operation no more than once per second.
1009//
1010// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1011// with awserr.Error's Code and Message methods to get detailed information about
1012// the error.
1013//
1014// See the AWS API reference guide for Amazon Simple Email Service's
1015// API operation DeleteIdentity for usage and error information.
1016// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteIdentity
1017func (c *SES) DeleteIdentity(input *DeleteIdentityInput) (*DeleteIdentityOutput, error) {
1018	req, out := c.DeleteIdentityRequest(input)
1019	return out, req.Send()
1020}
1021
1022// DeleteIdentityWithContext is the same as DeleteIdentity with the addition of
1023// the ability to pass a context and additional request options.
1024//
1025// See DeleteIdentity for details on how to use this API operation.
1026//
1027// The context must be non-nil and will be used for request cancellation. If
1028// the context is nil a panic will occur. In the future the SDK may create
1029// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1030// for more information on using Contexts.
1031func (c *SES) DeleteIdentityWithContext(ctx aws.Context, input *DeleteIdentityInput, opts ...request.Option) (*DeleteIdentityOutput, error) {
1032	req, out := c.DeleteIdentityRequest(input)
1033	req.SetContext(ctx)
1034	req.ApplyOptions(opts...)
1035	return out, req.Send()
1036}
1037
1038const opDeleteIdentityPolicy = "DeleteIdentityPolicy"
1039
1040// DeleteIdentityPolicyRequest generates a "aws/request.Request" representing the
1041// client's request for the DeleteIdentityPolicy operation. The "output" return
1042// value will be populated with the request's response once the request complets
1043// successfuly.
1044//
1045// Use "Send" method on the returned Request to send the API call to the service.
1046// the "output" return value is not valid until after Send returns without error.
1047//
1048// See DeleteIdentityPolicy for more information on using the DeleteIdentityPolicy
1049// API call, and error handling.
1050//
1051// This method is useful when you want to inject custom logic or configuration
1052// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1053//
1054//
1055//    // Example sending a request using the DeleteIdentityPolicyRequest method.
1056//    req, resp := client.DeleteIdentityPolicyRequest(params)
1057//
1058//    err := req.Send()
1059//    if err == nil { // resp is now filled
1060//        fmt.Println(resp)
1061//    }
1062//
1063// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteIdentityPolicy
1064func (c *SES) DeleteIdentityPolicyRequest(input *DeleteIdentityPolicyInput) (req *request.Request, output *DeleteIdentityPolicyOutput) {
1065	op := &request.Operation{
1066		Name:       opDeleteIdentityPolicy,
1067		HTTPMethod: "POST",
1068		HTTPPath:   "/",
1069	}
1070
1071	if input == nil {
1072		input = &DeleteIdentityPolicyInput{}
1073	}
1074
1075	output = &DeleteIdentityPolicyOutput{}
1076	req = c.newRequest(op, input, output)
1077	return
1078}
1079
1080// DeleteIdentityPolicy API operation for Amazon Simple Email Service.
1081//
1082// Deletes the specified sending authorization policy for the given identity
1083// (an email address or a domain). This API returns successfully even if a policy
1084// with the specified name does not exist.
1085//
1086// This API is for the identity owner only. If you have not verified the identity,
1087// this API will return an error.
1088//
1089// Sending authorization is a feature that enables an identity owner to authorize
1090// other senders to use its identities. For information about using sending
1091// authorization, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html).
1092//
1093// You can execute this operation no more than once per second.
1094//
1095// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1096// with awserr.Error's Code and Message methods to get detailed information about
1097// the error.
1098//
1099// See the AWS API reference guide for Amazon Simple Email Service's
1100// API operation DeleteIdentityPolicy for usage and error information.
1101// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteIdentityPolicy
1102func (c *SES) DeleteIdentityPolicy(input *DeleteIdentityPolicyInput) (*DeleteIdentityPolicyOutput, error) {
1103	req, out := c.DeleteIdentityPolicyRequest(input)
1104	return out, req.Send()
1105}
1106
1107// DeleteIdentityPolicyWithContext is the same as DeleteIdentityPolicy with the addition of
1108// the ability to pass a context and additional request options.
1109//
1110// See DeleteIdentityPolicy for details on how to use this API operation.
1111//
1112// The context must be non-nil and will be used for request cancellation. If
1113// the context is nil a panic will occur. In the future the SDK may create
1114// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1115// for more information on using Contexts.
1116func (c *SES) DeleteIdentityPolicyWithContext(ctx aws.Context, input *DeleteIdentityPolicyInput, opts ...request.Option) (*DeleteIdentityPolicyOutput, error) {
1117	req, out := c.DeleteIdentityPolicyRequest(input)
1118	req.SetContext(ctx)
1119	req.ApplyOptions(opts...)
1120	return out, req.Send()
1121}
1122
1123const opDeleteReceiptFilter = "DeleteReceiptFilter"
1124
1125// DeleteReceiptFilterRequest generates a "aws/request.Request" representing the
1126// client's request for the DeleteReceiptFilter operation. The "output" return
1127// value will be populated with the request's response once the request complets
1128// successfuly.
1129//
1130// Use "Send" method on the returned Request to send the API call to the service.
1131// the "output" return value is not valid until after Send returns without error.
1132//
1133// See DeleteReceiptFilter for more information on using the DeleteReceiptFilter
1134// API call, and error handling.
1135//
1136// This method is useful when you want to inject custom logic or configuration
1137// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1138//
1139//
1140//    // Example sending a request using the DeleteReceiptFilterRequest method.
1141//    req, resp := client.DeleteReceiptFilterRequest(params)
1142//
1143//    err := req.Send()
1144//    if err == nil { // resp is now filled
1145//        fmt.Println(resp)
1146//    }
1147//
1148// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteReceiptFilter
1149func (c *SES) DeleteReceiptFilterRequest(input *DeleteReceiptFilterInput) (req *request.Request, output *DeleteReceiptFilterOutput) {
1150	op := &request.Operation{
1151		Name:       opDeleteReceiptFilter,
1152		HTTPMethod: "POST",
1153		HTTPPath:   "/",
1154	}
1155
1156	if input == nil {
1157		input = &DeleteReceiptFilterInput{}
1158	}
1159
1160	output = &DeleteReceiptFilterOutput{}
1161	req = c.newRequest(op, input, output)
1162	return
1163}
1164
1165// DeleteReceiptFilter API operation for Amazon Simple Email Service.
1166//
1167// Deletes the specified IP address filter.
1168//
1169// For information about managing IP address filters, see the Amazon SES Developer
1170// Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-managing-ip-filters.html).
1171//
1172// You can execute this operation no more than once per second.
1173//
1174// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1175// with awserr.Error's Code and Message methods to get detailed information about
1176// the error.
1177//
1178// See the AWS API reference guide for Amazon Simple Email Service's
1179// API operation DeleteReceiptFilter for usage and error information.
1180// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteReceiptFilter
1181func (c *SES) DeleteReceiptFilter(input *DeleteReceiptFilterInput) (*DeleteReceiptFilterOutput, error) {
1182	req, out := c.DeleteReceiptFilterRequest(input)
1183	return out, req.Send()
1184}
1185
1186// DeleteReceiptFilterWithContext is the same as DeleteReceiptFilter with the addition of
1187// the ability to pass a context and additional request options.
1188//
1189// See DeleteReceiptFilter for details on how to use this API operation.
1190//
1191// The context must be non-nil and will be used for request cancellation. If
1192// the context is nil a panic will occur. In the future the SDK may create
1193// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1194// for more information on using Contexts.
1195func (c *SES) DeleteReceiptFilterWithContext(ctx aws.Context, input *DeleteReceiptFilterInput, opts ...request.Option) (*DeleteReceiptFilterOutput, error) {
1196	req, out := c.DeleteReceiptFilterRequest(input)
1197	req.SetContext(ctx)
1198	req.ApplyOptions(opts...)
1199	return out, req.Send()
1200}
1201
1202const opDeleteReceiptRule = "DeleteReceiptRule"
1203
1204// DeleteReceiptRuleRequest generates a "aws/request.Request" representing the
1205// client's request for the DeleteReceiptRule operation. The "output" return
1206// value will be populated with the request's response once the request complets
1207// successfuly.
1208//
1209// Use "Send" method on the returned Request to send the API call to the service.
1210// the "output" return value is not valid until after Send returns without error.
1211//
1212// See DeleteReceiptRule for more information on using the DeleteReceiptRule
1213// API call, and error handling.
1214//
1215// This method is useful when you want to inject custom logic or configuration
1216// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1217//
1218//
1219//    // Example sending a request using the DeleteReceiptRuleRequest method.
1220//    req, resp := client.DeleteReceiptRuleRequest(params)
1221//
1222//    err := req.Send()
1223//    if err == nil { // resp is now filled
1224//        fmt.Println(resp)
1225//    }
1226//
1227// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteReceiptRule
1228func (c *SES) DeleteReceiptRuleRequest(input *DeleteReceiptRuleInput) (req *request.Request, output *DeleteReceiptRuleOutput) {
1229	op := &request.Operation{
1230		Name:       opDeleteReceiptRule,
1231		HTTPMethod: "POST",
1232		HTTPPath:   "/",
1233	}
1234
1235	if input == nil {
1236		input = &DeleteReceiptRuleInput{}
1237	}
1238
1239	output = &DeleteReceiptRuleOutput{}
1240	req = c.newRequest(op, input, output)
1241	return
1242}
1243
1244// DeleteReceiptRule API operation for Amazon Simple Email Service.
1245//
1246// Deletes the specified receipt rule.
1247//
1248// For information about managing receipt rules, see the Amazon SES Developer
1249// Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-managing-receipt-rules.html).
1250//
1251// You can execute this operation no more than once per second.
1252//
1253// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1254// with awserr.Error's Code and Message methods to get detailed information about
1255// the error.
1256//
1257// See the AWS API reference guide for Amazon Simple Email Service's
1258// API operation DeleteReceiptRule for usage and error information.
1259//
1260// Returned Error Codes:
1261//   * ErrCodeRuleSetDoesNotExistException "RuleSetDoesNotExist"
1262//   Indicates that the provided receipt rule set does not exist.
1263//
1264// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteReceiptRule
1265func (c *SES) DeleteReceiptRule(input *DeleteReceiptRuleInput) (*DeleteReceiptRuleOutput, error) {
1266	req, out := c.DeleteReceiptRuleRequest(input)
1267	return out, req.Send()
1268}
1269
1270// DeleteReceiptRuleWithContext is the same as DeleteReceiptRule with the addition of
1271// the ability to pass a context and additional request options.
1272//
1273// See DeleteReceiptRule for details on how to use this API operation.
1274//
1275// The context must be non-nil and will be used for request cancellation. If
1276// the context is nil a panic will occur. In the future the SDK may create
1277// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1278// for more information on using Contexts.
1279func (c *SES) DeleteReceiptRuleWithContext(ctx aws.Context, input *DeleteReceiptRuleInput, opts ...request.Option) (*DeleteReceiptRuleOutput, error) {
1280	req, out := c.DeleteReceiptRuleRequest(input)
1281	req.SetContext(ctx)
1282	req.ApplyOptions(opts...)
1283	return out, req.Send()
1284}
1285
1286const opDeleteReceiptRuleSet = "DeleteReceiptRuleSet"
1287
1288// DeleteReceiptRuleSetRequest generates a "aws/request.Request" representing the
1289// client's request for the DeleteReceiptRuleSet operation. The "output" return
1290// value will be populated with the request's response once the request complets
1291// successfuly.
1292//
1293// Use "Send" method on the returned Request to send the API call to the service.
1294// the "output" return value is not valid until after Send returns without error.
1295//
1296// See DeleteReceiptRuleSet for more information on using the DeleteReceiptRuleSet
1297// API call, and error handling.
1298//
1299// This method is useful when you want to inject custom logic or configuration
1300// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1301//
1302//
1303//    // Example sending a request using the DeleteReceiptRuleSetRequest method.
1304//    req, resp := client.DeleteReceiptRuleSetRequest(params)
1305//
1306//    err := req.Send()
1307//    if err == nil { // resp is now filled
1308//        fmt.Println(resp)
1309//    }
1310//
1311// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteReceiptRuleSet
1312func (c *SES) DeleteReceiptRuleSetRequest(input *DeleteReceiptRuleSetInput) (req *request.Request, output *DeleteReceiptRuleSetOutput) {
1313	op := &request.Operation{
1314		Name:       opDeleteReceiptRuleSet,
1315		HTTPMethod: "POST",
1316		HTTPPath:   "/",
1317	}
1318
1319	if input == nil {
1320		input = &DeleteReceiptRuleSetInput{}
1321	}
1322
1323	output = &DeleteReceiptRuleSetOutput{}
1324	req = c.newRequest(op, input, output)
1325	return
1326}
1327
1328// DeleteReceiptRuleSet API operation for Amazon Simple Email Service.
1329//
1330// Deletes the specified receipt rule set and all of the receipt rules it contains.
1331//
1332// The currently active rule set cannot be deleted.
1333//
1334// For information about managing receipt rule sets, see the Amazon SES Developer
1335// Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-managing-receipt-rule-sets.html).
1336//
1337// You can execute this operation no more than once per second.
1338//
1339// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1340// with awserr.Error's Code and Message methods to get detailed information about
1341// the error.
1342//
1343// See the AWS API reference guide for Amazon Simple Email Service's
1344// API operation DeleteReceiptRuleSet for usage and error information.
1345//
1346// Returned Error Codes:
1347//   * ErrCodeCannotDeleteException "CannotDelete"
1348//   Indicates that the delete operation could not be completed.
1349//
1350// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteReceiptRuleSet
1351func (c *SES) DeleteReceiptRuleSet(input *DeleteReceiptRuleSetInput) (*DeleteReceiptRuleSetOutput, error) {
1352	req, out := c.DeleteReceiptRuleSetRequest(input)
1353	return out, req.Send()
1354}
1355
1356// DeleteReceiptRuleSetWithContext is the same as DeleteReceiptRuleSet with the addition of
1357// the ability to pass a context and additional request options.
1358//
1359// See DeleteReceiptRuleSet for details on how to use this API operation.
1360//
1361// The context must be non-nil and will be used for request cancellation. If
1362// the context is nil a panic will occur. In the future the SDK may create
1363// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1364// for more information on using Contexts.
1365func (c *SES) DeleteReceiptRuleSetWithContext(ctx aws.Context, input *DeleteReceiptRuleSetInput, opts ...request.Option) (*DeleteReceiptRuleSetOutput, error) {
1366	req, out := c.DeleteReceiptRuleSetRequest(input)
1367	req.SetContext(ctx)
1368	req.ApplyOptions(opts...)
1369	return out, req.Send()
1370}
1371
1372const opDeleteVerifiedEmailAddress = "DeleteVerifiedEmailAddress"
1373
1374// DeleteVerifiedEmailAddressRequest generates a "aws/request.Request" representing the
1375// client's request for the DeleteVerifiedEmailAddress operation. The "output" return
1376// value will be populated with the request's response once the request complets
1377// successfuly.
1378//
1379// Use "Send" method on the returned Request to send the API call to the service.
1380// the "output" return value is not valid until after Send returns without error.
1381//
1382// See DeleteVerifiedEmailAddress for more information on using the DeleteVerifiedEmailAddress
1383// API call, and error handling.
1384//
1385// This method is useful when you want to inject custom logic or configuration
1386// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1387//
1388//
1389//    // Example sending a request using the DeleteVerifiedEmailAddressRequest method.
1390//    req, resp := client.DeleteVerifiedEmailAddressRequest(params)
1391//
1392//    err := req.Send()
1393//    if err == nil { // resp is now filled
1394//        fmt.Println(resp)
1395//    }
1396//
1397// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteVerifiedEmailAddress
1398func (c *SES) DeleteVerifiedEmailAddressRequest(input *DeleteVerifiedEmailAddressInput) (req *request.Request, output *DeleteVerifiedEmailAddressOutput) {
1399	op := &request.Operation{
1400		Name:       opDeleteVerifiedEmailAddress,
1401		HTTPMethod: "POST",
1402		HTTPPath:   "/",
1403	}
1404
1405	if input == nil {
1406		input = &DeleteVerifiedEmailAddressInput{}
1407	}
1408
1409	output = &DeleteVerifiedEmailAddressOutput{}
1410	req = c.newRequest(op, input, output)
1411	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
1412	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
1413	return
1414}
1415
1416// DeleteVerifiedEmailAddress API operation for Amazon Simple Email Service.
1417//
1418// Deprecated. Use the DeleteIdentity operation to delete email addresses and
1419// domains.
1420//
1421// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1422// with awserr.Error's Code and Message methods to get detailed information about
1423// the error.
1424//
1425// See the AWS API reference guide for Amazon Simple Email Service's
1426// API operation DeleteVerifiedEmailAddress for usage and error information.
1427// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteVerifiedEmailAddress
1428func (c *SES) DeleteVerifiedEmailAddress(input *DeleteVerifiedEmailAddressInput) (*DeleteVerifiedEmailAddressOutput, error) {
1429	req, out := c.DeleteVerifiedEmailAddressRequest(input)
1430	return out, req.Send()
1431}
1432
1433// DeleteVerifiedEmailAddressWithContext is the same as DeleteVerifiedEmailAddress with the addition of
1434// the ability to pass a context and additional request options.
1435//
1436// See DeleteVerifiedEmailAddress for details on how to use this API operation.
1437//
1438// The context must be non-nil and will be used for request cancellation. If
1439// the context is nil a panic will occur. In the future the SDK may create
1440// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1441// for more information on using Contexts.
1442func (c *SES) DeleteVerifiedEmailAddressWithContext(ctx aws.Context, input *DeleteVerifiedEmailAddressInput, opts ...request.Option) (*DeleteVerifiedEmailAddressOutput, error) {
1443	req, out := c.DeleteVerifiedEmailAddressRequest(input)
1444	req.SetContext(ctx)
1445	req.ApplyOptions(opts...)
1446	return out, req.Send()
1447}
1448
1449const opDescribeActiveReceiptRuleSet = "DescribeActiveReceiptRuleSet"
1450
1451// DescribeActiveReceiptRuleSetRequest generates a "aws/request.Request" representing the
1452// client's request for the DescribeActiveReceiptRuleSet operation. The "output" return
1453// value will be populated with the request's response once the request complets
1454// successfuly.
1455//
1456// Use "Send" method on the returned Request to send the API call to the service.
1457// the "output" return value is not valid until after Send returns without error.
1458//
1459// See DescribeActiveReceiptRuleSet for more information on using the DescribeActiveReceiptRuleSet
1460// API call, and error handling.
1461//
1462// This method is useful when you want to inject custom logic or configuration
1463// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1464//
1465//
1466//    // Example sending a request using the DescribeActiveReceiptRuleSetRequest method.
1467//    req, resp := client.DescribeActiveReceiptRuleSetRequest(params)
1468//
1469//    err := req.Send()
1470//    if err == nil { // resp is now filled
1471//        fmt.Println(resp)
1472//    }
1473//
1474// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DescribeActiveReceiptRuleSet
1475func (c *SES) DescribeActiveReceiptRuleSetRequest(input *DescribeActiveReceiptRuleSetInput) (req *request.Request, output *DescribeActiveReceiptRuleSetOutput) {
1476	op := &request.Operation{
1477		Name:       opDescribeActiveReceiptRuleSet,
1478		HTTPMethod: "POST",
1479		HTTPPath:   "/",
1480	}
1481
1482	if input == nil {
1483		input = &DescribeActiveReceiptRuleSetInput{}
1484	}
1485
1486	output = &DescribeActiveReceiptRuleSetOutput{}
1487	req = c.newRequest(op, input, output)
1488	return
1489}
1490
1491// DescribeActiveReceiptRuleSet API operation for Amazon Simple Email Service.
1492//
1493// Returns the metadata and receipt rules for the receipt rule set that is currently
1494// active.
1495//
1496// For information about setting up receipt rule sets, see the Amazon SES Developer
1497// Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-receipt-rule-set.html).
1498//
1499// You can execute this operation no more than once per second.
1500//
1501// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1502// with awserr.Error's Code and Message methods to get detailed information about
1503// the error.
1504//
1505// See the AWS API reference guide for Amazon Simple Email Service's
1506// API operation DescribeActiveReceiptRuleSet for usage and error information.
1507// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DescribeActiveReceiptRuleSet
1508func (c *SES) DescribeActiveReceiptRuleSet(input *DescribeActiveReceiptRuleSetInput) (*DescribeActiveReceiptRuleSetOutput, error) {
1509	req, out := c.DescribeActiveReceiptRuleSetRequest(input)
1510	return out, req.Send()
1511}
1512
1513// DescribeActiveReceiptRuleSetWithContext is the same as DescribeActiveReceiptRuleSet with the addition of
1514// the ability to pass a context and additional request options.
1515//
1516// See DescribeActiveReceiptRuleSet for details on how to use this API operation.
1517//
1518// The context must be non-nil and will be used for request cancellation. If
1519// the context is nil a panic will occur. In the future the SDK may create
1520// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1521// for more information on using Contexts.
1522func (c *SES) DescribeActiveReceiptRuleSetWithContext(ctx aws.Context, input *DescribeActiveReceiptRuleSetInput, opts ...request.Option) (*DescribeActiveReceiptRuleSetOutput, error) {
1523	req, out := c.DescribeActiveReceiptRuleSetRequest(input)
1524	req.SetContext(ctx)
1525	req.ApplyOptions(opts...)
1526	return out, req.Send()
1527}
1528
1529const opDescribeConfigurationSet = "DescribeConfigurationSet"
1530
1531// DescribeConfigurationSetRequest generates a "aws/request.Request" representing the
1532// client's request for the DescribeConfigurationSet operation. The "output" return
1533// value will be populated with the request's response once the request complets
1534// successfuly.
1535//
1536// Use "Send" method on the returned Request to send the API call to the service.
1537// the "output" return value is not valid until after Send returns without error.
1538//
1539// See DescribeConfigurationSet for more information on using the DescribeConfigurationSet
1540// API call, and error handling.
1541//
1542// This method is useful when you want to inject custom logic or configuration
1543// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1544//
1545//
1546//    // Example sending a request using the DescribeConfigurationSetRequest method.
1547//    req, resp := client.DescribeConfigurationSetRequest(params)
1548//
1549//    err := req.Send()
1550//    if err == nil { // resp is now filled
1551//        fmt.Println(resp)
1552//    }
1553//
1554// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DescribeConfigurationSet
1555func (c *SES) DescribeConfigurationSetRequest(input *DescribeConfigurationSetInput) (req *request.Request, output *DescribeConfigurationSetOutput) {
1556	op := &request.Operation{
1557		Name:       opDescribeConfigurationSet,
1558		HTTPMethod: "POST",
1559		HTTPPath:   "/",
1560	}
1561
1562	if input == nil {
1563		input = &DescribeConfigurationSetInput{}
1564	}
1565
1566	output = &DescribeConfigurationSetOutput{}
1567	req = c.newRequest(op, input, output)
1568	return
1569}
1570
1571// DescribeConfigurationSet API operation for Amazon Simple Email Service.
1572//
1573// Returns the details of the specified configuration set. For information about
1574// using configuration sets, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html).
1575//
1576// You can execute this operation no more than once per second.
1577//
1578// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1579// with awserr.Error's Code and Message methods to get detailed information about
1580// the error.
1581//
1582// See the AWS API reference guide for Amazon Simple Email Service's
1583// API operation DescribeConfigurationSet for usage and error information.
1584//
1585// Returned Error Codes:
1586//   * ErrCodeConfigurationSetDoesNotExistException "ConfigurationSetDoesNotExist"
1587//   Indicates that the configuration set does not exist.
1588//
1589// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DescribeConfigurationSet
1590func (c *SES) DescribeConfigurationSet(input *DescribeConfigurationSetInput) (*DescribeConfigurationSetOutput, error) {
1591	req, out := c.DescribeConfigurationSetRequest(input)
1592	return out, req.Send()
1593}
1594
1595// DescribeConfigurationSetWithContext is the same as DescribeConfigurationSet with the addition of
1596// the ability to pass a context and additional request options.
1597//
1598// See DescribeConfigurationSet for details on how to use this API operation.
1599//
1600// The context must be non-nil and will be used for request cancellation. If
1601// the context is nil a panic will occur. In the future the SDK may create
1602// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1603// for more information on using Contexts.
1604func (c *SES) DescribeConfigurationSetWithContext(ctx aws.Context, input *DescribeConfigurationSetInput, opts ...request.Option) (*DescribeConfigurationSetOutput, error) {
1605	req, out := c.DescribeConfigurationSetRequest(input)
1606	req.SetContext(ctx)
1607	req.ApplyOptions(opts...)
1608	return out, req.Send()
1609}
1610
1611const opDescribeReceiptRule = "DescribeReceiptRule"
1612
1613// DescribeReceiptRuleRequest generates a "aws/request.Request" representing the
1614// client's request for the DescribeReceiptRule operation. The "output" return
1615// value will be populated with the request's response once the request complets
1616// successfuly.
1617//
1618// Use "Send" method on the returned Request to send the API call to the service.
1619// the "output" return value is not valid until after Send returns without error.
1620//
1621// See DescribeReceiptRule for more information on using the DescribeReceiptRule
1622// API call, and error handling.
1623//
1624// This method is useful when you want to inject custom logic or configuration
1625// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1626//
1627//
1628//    // Example sending a request using the DescribeReceiptRuleRequest method.
1629//    req, resp := client.DescribeReceiptRuleRequest(params)
1630//
1631//    err := req.Send()
1632//    if err == nil { // resp is now filled
1633//        fmt.Println(resp)
1634//    }
1635//
1636// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DescribeReceiptRule
1637func (c *SES) DescribeReceiptRuleRequest(input *DescribeReceiptRuleInput) (req *request.Request, output *DescribeReceiptRuleOutput) {
1638	op := &request.Operation{
1639		Name:       opDescribeReceiptRule,
1640		HTTPMethod: "POST",
1641		HTTPPath:   "/",
1642	}
1643
1644	if input == nil {
1645		input = &DescribeReceiptRuleInput{}
1646	}
1647
1648	output = &DescribeReceiptRuleOutput{}
1649	req = c.newRequest(op, input, output)
1650	return
1651}
1652
1653// DescribeReceiptRule API operation for Amazon Simple Email Service.
1654//
1655// Returns the details of the specified receipt rule.
1656//
1657// For information about setting up receipt rules, see the Amazon SES Developer
1658// Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-receipt-rules.html).
1659//
1660// You can execute this operation no more than once per second.
1661//
1662// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1663// with awserr.Error's Code and Message methods to get detailed information about
1664// the error.
1665//
1666// See the AWS API reference guide for Amazon Simple Email Service's
1667// API operation DescribeReceiptRule for usage and error information.
1668//
1669// Returned Error Codes:
1670//   * ErrCodeRuleDoesNotExistException "RuleDoesNotExist"
1671//   Indicates that the provided receipt rule does not exist.
1672//
1673//   * ErrCodeRuleSetDoesNotExistException "RuleSetDoesNotExist"
1674//   Indicates that the provided receipt rule set does not exist.
1675//
1676// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DescribeReceiptRule
1677func (c *SES) DescribeReceiptRule(input *DescribeReceiptRuleInput) (*DescribeReceiptRuleOutput, error) {
1678	req, out := c.DescribeReceiptRuleRequest(input)
1679	return out, req.Send()
1680}
1681
1682// DescribeReceiptRuleWithContext is the same as DescribeReceiptRule with the addition of
1683// the ability to pass a context and additional request options.
1684//
1685// See DescribeReceiptRule for details on how to use this API operation.
1686//
1687// The context must be non-nil and will be used for request cancellation. If
1688// the context is nil a panic will occur. In the future the SDK may create
1689// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1690// for more information on using Contexts.
1691func (c *SES) DescribeReceiptRuleWithContext(ctx aws.Context, input *DescribeReceiptRuleInput, opts ...request.Option) (*DescribeReceiptRuleOutput, error) {
1692	req, out := c.DescribeReceiptRuleRequest(input)
1693	req.SetContext(ctx)
1694	req.ApplyOptions(opts...)
1695	return out, req.Send()
1696}
1697
1698const opDescribeReceiptRuleSet = "DescribeReceiptRuleSet"
1699
1700// DescribeReceiptRuleSetRequest generates a "aws/request.Request" representing the
1701// client's request for the DescribeReceiptRuleSet operation. The "output" return
1702// value will be populated with the request's response once the request complets
1703// successfuly.
1704//
1705// Use "Send" method on the returned Request to send the API call to the service.
1706// the "output" return value is not valid until after Send returns without error.
1707//
1708// See DescribeReceiptRuleSet for more information on using the DescribeReceiptRuleSet
1709// API call, and error handling.
1710//
1711// This method is useful when you want to inject custom logic or configuration
1712// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1713//
1714//
1715//    // Example sending a request using the DescribeReceiptRuleSetRequest method.
1716//    req, resp := client.DescribeReceiptRuleSetRequest(params)
1717//
1718//    err := req.Send()
1719//    if err == nil { // resp is now filled
1720//        fmt.Println(resp)
1721//    }
1722//
1723// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DescribeReceiptRuleSet
1724func (c *SES) DescribeReceiptRuleSetRequest(input *DescribeReceiptRuleSetInput) (req *request.Request, output *DescribeReceiptRuleSetOutput) {
1725	op := &request.Operation{
1726		Name:       opDescribeReceiptRuleSet,
1727		HTTPMethod: "POST",
1728		HTTPPath:   "/",
1729	}
1730
1731	if input == nil {
1732		input = &DescribeReceiptRuleSetInput{}
1733	}
1734
1735	output = &DescribeReceiptRuleSetOutput{}
1736	req = c.newRequest(op, input, output)
1737	return
1738}
1739
1740// DescribeReceiptRuleSet API operation for Amazon Simple Email Service.
1741//
1742// Returns the details of the specified receipt rule set.
1743//
1744// For information about managing receipt rule sets, see the Amazon SES Developer
1745// Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-managing-receipt-rule-sets.html).
1746//
1747// You can execute this operation no more than once per second.
1748//
1749// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1750// with awserr.Error's Code and Message methods to get detailed information about
1751// the error.
1752//
1753// See the AWS API reference guide for Amazon Simple Email Service's
1754// API operation DescribeReceiptRuleSet for usage and error information.
1755//
1756// Returned Error Codes:
1757//   * ErrCodeRuleSetDoesNotExistException "RuleSetDoesNotExist"
1758//   Indicates that the provided receipt rule set does not exist.
1759//
1760// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DescribeReceiptRuleSet
1761func (c *SES) DescribeReceiptRuleSet(input *DescribeReceiptRuleSetInput) (*DescribeReceiptRuleSetOutput, error) {
1762	req, out := c.DescribeReceiptRuleSetRequest(input)
1763	return out, req.Send()
1764}
1765
1766// DescribeReceiptRuleSetWithContext is the same as DescribeReceiptRuleSet with the addition of
1767// the ability to pass a context and additional request options.
1768//
1769// See DescribeReceiptRuleSet for details on how to use this API operation.
1770//
1771// The context must be non-nil and will be used for request cancellation. If
1772// the context is nil a panic will occur. In the future the SDK may create
1773// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1774// for more information on using Contexts.
1775func (c *SES) DescribeReceiptRuleSetWithContext(ctx aws.Context, input *DescribeReceiptRuleSetInput, opts ...request.Option) (*DescribeReceiptRuleSetOutput, error) {
1776	req, out := c.DescribeReceiptRuleSetRequest(input)
1777	req.SetContext(ctx)
1778	req.ApplyOptions(opts...)
1779	return out, req.Send()
1780}
1781
1782const opGetIdentityDkimAttributes = "GetIdentityDkimAttributes"
1783
1784// GetIdentityDkimAttributesRequest generates a "aws/request.Request" representing the
1785// client's request for the GetIdentityDkimAttributes operation. The "output" return
1786// value will be populated with the request's response once the request complets
1787// successfuly.
1788//
1789// Use "Send" method on the returned Request to send the API call to the service.
1790// the "output" return value is not valid until after Send returns without error.
1791//
1792// See GetIdentityDkimAttributes for more information on using the GetIdentityDkimAttributes
1793// API call, and error handling.
1794//
1795// This method is useful when you want to inject custom logic or configuration
1796// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1797//
1798//
1799//    // Example sending a request using the GetIdentityDkimAttributesRequest method.
1800//    req, resp := client.GetIdentityDkimAttributesRequest(params)
1801//
1802//    err := req.Send()
1803//    if err == nil { // resp is now filled
1804//        fmt.Println(resp)
1805//    }
1806//
1807// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetIdentityDkimAttributes
1808func (c *SES) GetIdentityDkimAttributesRequest(input *GetIdentityDkimAttributesInput) (req *request.Request, output *GetIdentityDkimAttributesOutput) {
1809	op := &request.Operation{
1810		Name:       opGetIdentityDkimAttributes,
1811		HTTPMethod: "POST",
1812		HTTPPath:   "/",
1813	}
1814
1815	if input == nil {
1816		input = &GetIdentityDkimAttributesInput{}
1817	}
1818
1819	output = &GetIdentityDkimAttributesOutput{}
1820	req = c.newRequest(op, input, output)
1821	return
1822}
1823
1824// GetIdentityDkimAttributes API operation for Amazon Simple Email Service.
1825//
1826// Returns the current status of Easy DKIM signing for an entity. For domain
1827// name identities, this operation also returns the DKIM tokens that are required
1828// for Easy DKIM signing, and whether Amazon SES has successfully verified that
1829// these tokens have been published.
1830//
1831// This operation takes a list of identities as input and returns the following
1832// information for each:
1833//
1834//    * Whether Easy DKIM signing is enabled or disabled.
1835//
1836//    * A set of DKIM tokens that represent the identity. If the identity is
1837//    an email address, the tokens represent the domain of that address.
1838//
1839//    * Whether Amazon SES has successfully verified the DKIM tokens published
1840//    in the domain's DNS. This information is only returned for domain name
1841//    identities, not for email addresses.
1842//
1843// This operation is throttled at one request per second and can only get DKIM
1844// attributes for up to 100 identities at a time.
1845//
1846// For more information about creating DNS records using DKIM tokens, go to
1847// the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim-dns-records.html).
1848//
1849// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1850// with awserr.Error's Code and Message methods to get detailed information about
1851// the error.
1852//
1853// See the AWS API reference guide for Amazon Simple Email Service's
1854// API operation GetIdentityDkimAttributes for usage and error information.
1855// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetIdentityDkimAttributes
1856func (c *SES) GetIdentityDkimAttributes(input *GetIdentityDkimAttributesInput) (*GetIdentityDkimAttributesOutput, error) {
1857	req, out := c.GetIdentityDkimAttributesRequest(input)
1858	return out, req.Send()
1859}
1860
1861// GetIdentityDkimAttributesWithContext is the same as GetIdentityDkimAttributes with the addition of
1862// the ability to pass a context and additional request options.
1863//
1864// See GetIdentityDkimAttributes for details on how to use this API operation.
1865//
1866// The context must be non-nil and will be used for request cancellation. If
1867// the context is nil a panic will occur. In the future the SDK may create
1868// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1869// for more information on using Contexts.
1870func (c *SES) GetIdentityDkimAttributesWithContext(ctx aws.Context, input *GetIdentityDkimAttributesInput, opts ...request.Option) (*GetIdentityDkimAttributesOutput, error) {
1871	req, out := c.GetIdentityDkimAttributesRequest(input)
1872	req.SetContext(ctx)
1873	req.ApplyOptions(opts...)
1874	return out, req.Send()
1875}
1876
1877const opGetIdentityMailFromDomainAttributes = "GetIdentityMailFromDomainAttributes"
1878
1879// GetIdentityMailFromDomainAttributesRequest generates a "aws/request.Request" representing the
1880// client's request for the GetIdentityMailFromDomainAttributes operation. The "output" return
1881// value will be populated with the request's response once the request complets
1882// successfuly.
1883//
1884// Use "Send" method on the returned Request to send the API call to the service.
1885// the "output" return value is not valid until after Send returns without error.
1886//
1887// See GetIdentityMailFromDomainAttributes for more information on using the GetIdentityMailFromDomainAttributes
1888// API call, and error handling.
1889//
1890// This method is useful when you want to inject custom logic or configuration
1891// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1892//
1893//
1894//    // Example sending a request using the GetIdentityMailFromDomainAttributesRequest method.
1895//    req, resp := client.GetIdentityMailFromDomainAttributesRequest(params)
1896//
1897//    err := req.Send()
1898//    if err == nil { // resp is now filled
1899//        fmt.Println(resp)
1900//    }
1901//
1902// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetIdentityMailFromDomainAttributes
1903func (c *SES) GetIdentityMailFromDomainAttributesRequest(input *GetIdentityMailFromDomainAttributesInput) (req *request.Request, output *GetIdentityMailFromDomainAttributesOutput) {
1904	op := &request.Operation{
1905		Name:       opGetIdentityMailFromDomainAttributes,
1906		HTTPMethod: "POST",
1907		HTTPPath:   "/",
1908	}
1909
1910	if input == nil {
1911		input = &GetIdentityMailFromDomainAttributesInput{}
1912	}
1913
1914	output = &GetIdentityMailFromDomainAttributesOutput{}
1915	req = c.newRequest(op, input, output)
1916	return
1917}
1918
1919// GetIdentityMailFromDomainAttributes API operation for Amazon Simple Email Service.
1920//
1921// Returns the custom MAIL FROM attributes for a list of identities (email addresses
1922// : domains).
1923//
1924// This operation is throttled at one request per second and can only get custom
1925// MAIL FROM attributes for up to 100 identities at a time.
1926//
1927// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1928// with awserr.Error's Code and Message methods to get detailed information about
1929// the error.
1930//
1931// See the AWS API reference guide for Amazon Simple Email Service's
1932// API operation GetIdentityMailFromDomainAttributes for usage and error information.
1933// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetIdentityMailFromDomainAttributes
1934func (c *SES) GetIdentityMailFromDomainAttributes(input *GetIdentityMailFromDomainAttributesInput) (*GetIdentityMailFromDomainAttributesOutput, error) {
1935	req, out := c.GetIdentityMailFromDomainAttributesRequest(input)
1936	return out, req.Send()
1937}
1938
1939// GetIdentityMailFromDomainAttributesWithContext is the same as GetIdentityMailFromDomainAttributes with the addition of
1940// the ability to pass a context and additional request options.
1941//
1942// See GetIdentityMailFromDomainAttributes for details on how to use this API operation.
1943//
1944// The context must be non-nil and will be used for request cancellation. If
1945// the context is nil a panic will occur. In the future the SDK may create
1946// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1947// for more information on using Contexts.
1948func (c *SES) GetIdentityMailFromDomainAttributesWithContext(ctx aws.Context, input *GetIdentityMailFromDomainAttributesInput, opts ...request.Option) (*GetIdentityMailFromDomainAttributesOutput, error) {
1949	req, out := c.GetIdentityMailFromDomainAttributesRequest(input)
1950	req.SetContext(ctx)
1951	req.ApplyOptions(opts...)
1952	return out, req.Send()
1953}
1954
1955const opGetIdentityNotificationAttributes = "GetIdentityNotificationAttributes"
1956
1957// GetIdentityNotificationAttributesRequest generates a "aws/request.Request" representing the
1958// client's request for the GetIdentityNotificationAttributes operation. The "output" return
1959// value will be populated with the request's response once the request complets
1960// successfuly.
1961//
1962// Use "Send" method on the returned Request to send the API call to the service.
1963// the "output" return value is not valid until after Send returns without error.
1964//
1965// See GetIdentityNotificationAttributes for more information on using the GetIdentityNotificationAttributes
1966// API call, and error handling.
1967//
1968// This method is useful when you want to inject custom logic or configuration
1969// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1970//
1971//
1972//    // Example sending a request using the GetIdentityNotificationAttributesRequest method.
1973//    req, resp := client.GetIdentityNotificationAttributesRequest(params)
1974//
1975//    err := req.Send()
1976//    if err == nil { // resp is now filled
1977//        fmt.Println(resp)
1978//    }
1979//
1980// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetIdentityNotificationAttributes
1981func (c *SES) GetIdentityNotificationAttributesRequest(input *GetIdentityNotificationAttributesInput) (req *request.Request, output *GetIdentityNotificationAttributesOutput) {
1982	op := &request.Operation{
1983		Name:       opGetIdentityNotificationAttributes,
1984		HTTPMethod: "POST",
1985		HTTPPath:   "/",
1986	}
1987
1988	if input == nil {
1989		input = &GetIdentityNotificationAttributesInput{}
1990	}
1991
1992	output = &GetIdentityNotificationAttributesOutput{}
1993	req = c.newRequest(op, input, output)
1994	return
1995}
1996
1997// GetIdentityNotificationAttributes API operation for Amazon Simple Email Service.
1998//
1999// Given a list of verified identities (email addresses and/or domains), returns
2000// a structure describing identity notification attributes.
2001//
2002// This operation is throttled at one request per second and can only get notification
2003// attributes for up to 100 identities at a time.
2004//
2005// For more information about using notifications with Amazon SES, see the Amazon
2006// SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/notifications.html).
2007//
2008// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2009// with awserr.Error's Code and Message methods to get detailed information about
2010// the error.
2011//
2012// See the AWS API reference guide for Amazon Simple Email Service's
2013// API operation GetIdentityNotificationAttributes for usage and error information.
2014// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetIdentityNotificationAttributes
2015func (c *SES) GetIdentityNotificationAttributes(input *GetIdentityNotificationAttributesInput) (*GetIdentityNotificationAttributesOutput, error) {
2016	req, out := c.GetIdentityNotificationAttributesRequest(input)
2017	return out, req.Send()
2018}
2019
2020// GetIdentityNotificationAttributesWithContext is the same as GetIdentityNotificationAttributes with the addition of
2021// the ability to pass a context and additional request options.
2022//
2023// See GetIdentityNotificationAttributes for details on how to use this API operation.
2024//
2025// The context must be non-nil and will be used for request cancellation. If
2026// the context is nil a panic will occur. In the future the SDK may create
2027// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2028// for more information on using Contexts.
2029func (c *SES) GetIdentityNotificationAttributesWithContext(ctx aws.Context, input *GetIdentityNotificationAttributesInput, opts ...request.Option) (*GetIdentityNotificationAttributesOutput, error) {
2030	req, out := c.GetIdentityNotificationAttributesRequest(input)
2031	req.SetContext(ctx)
2032	req.ApplyOptions(opts...)
2033	return out, req.Send()
2034}
2035
2036const opGetIdentityPolicies = "GetIdentityPolicies"
2037
2038// GetIdentityPoliciesRequest generates a "aws/request.Request" representing the
2039// client's request for the GetIdentityPolicies operation. The "output" return
2040// value will be populated with the request's response once the request complets
2041// successfuly.
2042//
2043// Use "Send" method on the returned Request to send the API call to the service.
2044// the "output" return value is not valid until after Send returns without error.
2045//
2046// See GetIdentityPolicies for more information on using the GetIdentityPolicies
2047// API call, and error handling.
2048//
2049// This method is useful when you want to inject custom logic or configuration
2050// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2051//
2052//
2053//    // Example sending a request using the GetIdentityPoliciesRequest method.
2054//    req, resp := client.GetIdentityPoliciesRequest(params)
2055//
2056//    err := req.Send()
2057//    if err == nil { // resp is now filled
2058//        fmt.Println(resp)
2059//    }
2060//
2061// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetIdentityPolicies
2062func (c *SES) GetIdentityPoliciesRequest(input *GetIdentityPoliciesInput) (req *request.Request, output *GetIdentityPoliciesOutput) {
2063	op := &request.Operation{
2064		Name:       opGetIdentityPolicies,
2065		HTTPMethod: "POST",
2066		HTTPPath:   "/",
2067	}
2068
2069	if input == nil {
2070		input = &GetIdentityPoliciesInput{}
2071	}
2072
2073	output = &GetIdentityPoliciesOutput{}
2074	req = c.newRequest(op, input, output)
2075	return
2076}
2077
2078// GetIdentityPolicies API operation for Amazon Simple Email Service.
2079//
2080// Returns the requested sending authorization policies for the given identity
2081// (an email address or a domain). The policies are returned as a map of policy
2082// names to policy contents. You can retrieve a maximum of 20 policies at a
2083// time.
2084//
2085// This API is for the identity owner only. If you have not verified the identity,
2086// this API will return an error.
2087//
2088// Sending authorization is a feature that enables an identity owner to authorize
2089// other senders to use its identities. For information about using sending
2090// authorization, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html).
2091//
2092// You can execute this operation no more than once per second.
2093//
2094// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2095// with awserr.Error's Code and Message methods to get detailed information about
2096// the error.
2097//
2098// See the AWS API reference guide for Amazon Simple Email Service's
2099// API operation GetIdentityPolicies for usage and error information.
2100// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetIdentityPolicies
2101func (c *SES) GetIdentityPolicies(input *GetIdentityPoliciesInput) (*GetIdentityPoliciesOutput, error) {
2102	req, out := c.GetIdentityPoliciesRequest(input)
2103	return out, req.Send()
2104}
2105
2106// GetIdentityPoliciesWithContext is the same as GetIdentityPolicies with the addition of
2107// the ability to pass a context and additional request options.
2108//
2109// See GetIdentityPolicies for details on how to use this API operation.
2110//
2111// The context must be non-nil and will be used for request cancellation. If
2112// the context is nil a panic will occur. In the future the SDK may create
2113// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2114// for more information on using Contexts.
2115func (c *SES) GetIdentityPoliciesWithContext(ctx aws.Context, input *GetIdentityPoliciesInput, opts ...request.Option) (*GetIdentityPoliciesOutput, error) {
2116	req, out := c.GetIdentityPoliciesRequest(input)
2117	req.SetContext(ctx)
2118	req.ApplyOptions(opts...)
2119	return out, req.Send()
2120}
2121
2122const opGetIdentityVerificationAttributes = "GetIdentityVerificationAttributes"
2123
2124// GetIdentityVerificationAttributesRequest generates a "aws/request.Request" representing the
2125// client's request for the GetIdentityVerificationAttributes operation. The "output" return
2126// value will be populated with the request's response once the request complets
2127// successfuly.
2128//
2129// Use "Send" method on the returned Request to send the API call to the service.
2130// the "output" return value is not valid until after Send returns without error.
2131//
2132// See GetIdentityVerificationAttributes for more information on using the GetIdentityVerificationAttributes
2133// API call, and error handling.
2134//
2135// This method is useful when you want to inject custom logic or configuration
2136// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2137//
2138//
2139//    // Example sending a request using the GetIdentityVerificationAttributesRequest method.
2140//    req, resp := client.GetIdentityVerificationAttributesRequest(params)
2141//
2142//    err := req.Send()
2143//    if err == nil { // resp is now filled
2144//        fmt.Println(resp)
2145//    }
2146//
2147// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetIdentityVerificationAttributes
2148func (c *SES) GetIdentityVerificationAttributesRequest(input *GetIdentityVerificationAttributesInput) (req *request.Request, output *GetIdentityVerificationAttributesOutput) {
2149	op := &request.Operation{
2150		Name:       opGetIdentityVerificationAttributes,
2151		HTTPMethod: "POST",
2152		HTTPPath:   "/",
2153	}
2154
2155	if input == nil {
2156		input = &GetIdentityVerificationAttributesInput{}
2157	}
2158
2159	output = &GetIdentityVerificationAttributesOutput{}
2160	req = c.newRequest(op, input, output)
2161	return
2162}
2163
2164// GetIdentityVerificationAttributes API operation for Amazon Simple Email Service.
2165//
2166// Given a list of identities (email addresses and/or domains), returns the
2167// verification status and (for domain identities) the verification token for
2168// each identity.
2169//
2170// The verification status of an email address is "Pending" until the email
2171// address owner clicks the link within the verification email that Amazon SES
2172// sent to that address. If the email address owner clicks the link within 24
2173// hours, the verification status of the email address changes to "Success".
2174// If the link is not clicked within 24 hours, the verification status changes
2175// to "Failed." In that case, if you still want to verify the email address,
2176// you must restart the verification process from the beginning.
2177//
2178// For domain identities, the domain's verification status is "Pending" as Amazon
2179// SES searches for the required TXT record in the DNS settings of the domain.
2180// When Amazon SES detects the record, the domain's verification status changes
2181// to "Success". If Amazon SES is unable to detect the record within 72 hours,
2182// the domain's verification status changes to "Failed." In that case, if you
2183// still want to verify the domain, you must restart the verification process
2184// from the beginning.
2185//
2186// This operation is throttled at one request per second and can only get verification
2187// attributes for up to 100 identities at a time.
2188//
2189// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2190// with awserr.Error's Code and Message methods to get detailed information about
2191// the error.
2192//
2193// See the AWS API reference guide for Amazon Simple Email Service's
2194// API operation GetIdentityVerificationAttributes for usage and error information.
2195// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetIdentityVerificationAttributes
2196func (c *SES) GetIdentityVerificationAttributes(input *GetIdentityVerificationAttributesInput) (*GetIdentityVerificationAttributesOutput, error) {
2197	req, out := c.GetIdentityVerificationAttributesRequest(input)
2198	return out, req.Send()
2199}
2200
2201// GetIdentityVerificationAttributesWithContext is the same as GetIdentityVerificationAttributes with the addition of
2202// the ability to pass a context and additional request options.
2203//
2204// See GetIdentityVerificationAttributes for details on how to use this API operation.
2205//
2206// The context must be non-nil and will be used for request cancellation. If
2207// the context is nil a panic will occur. In the future the SDK may create
2208// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2209// for more information on using Contexts.
2210func (c *SES) GetIdentityVerificationAttributesWithContext(ctx aws.Context, input *GetIdentityVerificationAttributesInput, opts ...request.Option) (*GetIdentityVerificationAttributesOutput, error) {
2211	req, out := c.GetIdentityVerificationAttributesRequest(input)
2212	req.SetContext(ctx)
2213	req.ApplyOptions(opts...)
2214	return out, req.Send()
2215}
2216
2217const opGetSendQuota = "GetSendQuota"
2218
2219// GetSendQuotaRequest generates a "aws/request.Request" representing the
2220// client's request for the GetSendQuota operation. The "output" return
2221// value will be populated with the request's response once the request complets
2222// successfuly.
2223//
2224// Use "Send" method on the returned Request to send the API call to the service.
2225// the "output" return value is not valid until after Send returns without error.
2226//
2227// See GetSendQuota for more information on using the GetSendQuota
2228// API call, and error handling.
2229//
2230// This method is useful when you want to inject custom logic or configuration
2231// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2232//
2233//
2234//    // Example sending a request using the GetSendQuotaRequest method.
2235//    req, resp := client.GetSendQuotaRequest(params)
2236//
2237//    err := req.Send()
2238//    if err == nil { // resp is now filled
2239//        fmt.Println(resp)
2240//    }
2241//
2242// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetSendQuota
2243func (c *SES) GetSendQuotaRequest(input *GetSendQuotaInput) (req *request.Request, output *GetSendQuotaOutput) {
2244	op := &request.Operation{
2245		Name:       opGetSendQuota,
2246		HTTPMethod: "POST",
2247		HTTPPath:   "/",
2248	}
2249
2250	if input == nil {
2251		input = &GetSendQuotaInput{}
2252	}
2253
2254	output = &GetSendQuotaOutput{}
2255	req = c.newRequest(op, input, output)
2256	return
2257}
2258
2259// GetSendQuota API operation for Amazon Simple Email Service.
2260//
2261// Provides the sending limits for the Amazon SES account.
2262//
2263// You can execute this operation no more than once per second.
2264//
2265// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2266// with awserr.Error's Code and Message methods to get detailed information about
2267// the error.
2268//
2269// See the AWS API reference guide for Amazon Simple Email Service's
2270// API operation GetSendQuota for usage and error information.
2271// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetSendQuota
2272func (c *SES) GetSendQuota(input *GetSendQuotaInput) (*GetSendQuotaOutput, error) {
2273	req, out := c.GetSendQuotaRequest(input)
2274	return out, req.Send()
2275}
2276
2277// GetSendQuotaWithContext is the same as GetSendQuota with the addition of
2278// the ability to pass a context and additional request options.
2279//
2280// See GetSendQuota for details on how to use this API operation.
2281//
2282// The context must be non-nil and will be used for request cancellation. If
2283// the context is nil a panic will occur. In the future the SDK may create
2284// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2285// for more information on using Contexts.
2286func (c *SES) GetSendQuotaWithContext(ctx aws.Context, input *GetSendQuotaInput, opts ...request.Option) (*GetSendQuotaOutput, error) {
2287	req, out := c.GetSendQuotaRequest(input)
2288	req.SetContext(ctx)
2289	req.ApplyOptions(opts...)
2290	return out, req.Send()
2291}
2292
2293const opGetSendStatistics = "GetSendStatistics"
2294
2295// GetSendStatisticsRequest generates a "aws/request.Request" representing the
2296// client's request for the GetSendStatistics operation. The "output" return
2297// value will be populated with the request's response once the request complets
2298// successfuly.
2299//
2300// Use "Send" method on the returned Request to send the API call to the service.
2301// the "output" return value is not valid until after Send returns without error.
2302//
2303// See GetSendStatistics for more information on using the GetSendStatistics
2304// API call, and error handling.
2305//
2306// This method is useful when you want to inject custom logic or configuration
2307// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2308//
2309//
2310//    // Example sending a request using the GetSendStatisticsRequest method.
2311//    req, resp := client.GetSendStatisticsRequest(params)
2312//
2313//    err := req.Send()
2314//    if err == nil { // resp is now filled
2315//        fmt.Println(resp)
2316//    }
2317//
2318// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetSendStatistics
2319func (c *SES) GetSendStatisticsRequest(input *GetSendStatisticsInput) (req *request.Request, output *GetSendStatisticsOutput) {
2320	op := &request.Operation{
2321		Name:       opGetSendStatistics,
2322		HTTPMethod: "POST",
2323		HTTPPath:   "/",
2324	}
2325
2326	if input == nil {
2327		input = &GetSendStatisticsInput{}
2328	}
2329
2330	output = &GetSendStatisticsOutput{}
2331	req = c.newRequest(op, input, output)
2332	return
2333}
2334
2335// GetSendStatistics API operation for Amazon Simple Email Service.
2336//
2337// Provides sending statistics for the Amazon SES account. The result is a list
2338// of data points, representing the last two weeks of sending activity. Each
2339// data point in the list contains statistics for a 15-minute period of time.
2340//
2341// You can execute this operation no more than once per second.
2342//
2343// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2344// with awserr.Error's Code and Message methods to get detailed information about
2345// the error.
2346//
2347// See the AWS API reference guide for Amazon Simple Email Service's
2348// API operation GetSendStatistics for usage and error information.
2349// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetSendStatistics
2350func (c *SES) GetSendStatistics(input *GetSendStatisticsInput) (*GetSendStatisticsOutput, error) {
2351	req, out := c.GetSendStatisticsRequest(input)
2352	return out, req.Send()
2353}
2354
2355// GetSendStatisticsWithContext is the same as GetSendStatistics with the addition of
2356// the ability to pass a context and additional request options.
2357//
2358// See GetSendStatistics for details on how to use this API operation.
2359//
2360// The context must be non-nil and will be used for request cancellation. If
2361// the context is nil a panic will occur. In the future the SDK may create
2362// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2363// for more information on using Contexts.
2364func (c *SES) GetSendStatisticsWithContext(ctx aws.Context, input *GetSendStatisticsInput, opts ...request.Option) (*GetSendStatisticsOutput, error) {
2365	req, out := c.GetSendStatisticsRequest(input)
2366	req.SetContext(ctx)
2367	req.ApplyOptions(opts...)
2368	return out, req.Send()
2369}
2370
2371const opListConfigurationSets = "ListConfigurationSets"
2372
2373// ListConfigurationSetsRequest generates a "aws/request.Request" representing the
2374// client's request for the ListConfigurationSets operation. The "output" return
2375// value will be populated with the request's response once the request complets
2376// successfuly.
2377//
2378// Use "Send" method on the returned Request to send the API call to the service.
2379// the "output" return value is not valid until after Send returns without error.
2380//
2381// See ListConfigurationSets for more information on using the ListConfigurationSets
2382// API call, and error handling.
2383//
2384// This method is useful when you want to inject custom logic or configuration
2385// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2386//
2387//
2388//    // Example sending a request using the ListConfigurationSetsRequest method.
2389//    req, resp := client.ListConfigurationSetsRequest(params)
2390//
2391//    err := req.Send()
2392//    if err == nil { // resp is now filled
2393//        fmt.Println(resp)
2394//    }
2395//
2396// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ListConfigurationSets
2397func (c *SES) ListConfigurationSetsRequest(input *ListConfigurationSetsInput) (req *request.Request, output *ListConfigurationSetsOutput) {
2398	op := &request.Operation{
2399		Name:       opListConfigurationSets,
2400		HTTPMethod: "POST",
2401		HTTPPath:   "/",
2402	}
2403
2404	if input == nil {
2405		input = &ListConfigurationSetsInput{}
2406	}
2407
2408	output = &ListConfigurationSetsOutput{}
2409	req = c.newRequest(op, input, output)
2410	return
2411}
2412
2413// ListConfigurationSets API operation for Amazon Simple Email Service.
2414//
2415// Provides a list of the configuration sets associated with your Amazon SES
2416// account. For information about using configuration sets, see Monitoring Your
2417// Amazon SES Sending Activity (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html)
2418// in the Amazon SES Developer Guide.
2419//
2420// You can execute this operation no more than once per second. This operation
2421// will return up to 50 configuration sets each time it is run. If your Amazon
2422// SES account has more than 50 configuration sets, this operation will also
2423// return a NextToken element. You can then execute the ListConfigurationSets
2424// operation again, passing the NextToken parameter and the value of the NextToken
2425// element to retrieve additional results.
2426//
2427// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2428// with awserr.Error's Code and Message methods to get detailed information about
2429// the error.
2430//
2431// See the AWS API reference guide for Amazon Simple Email Service's
2432// API operation ListConfigurationSets for usage and error information.
2433// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ListConfigurationSets
2434func (c *SES) ListConfigurationSets(input *ListConfigurationSetsInput) (*ListConfigurationSetsOutput, error) {
2435	req, out := c.ListConfigurationSetsRequest(input)
2436	return out, req.Send()
2437}
2438
2439// ListConfigurationSetsWithContext is the same as ListConfigurationSets with the addition of
2440// the ability to pass a context and additional request options.
2441//
2442// See ListConfigurationSets for details on how to use this API operation.
2443//
2444// The context must be non-nil and will be used for request cancellation. If
2445// the context is nil a panic will occur. In the future the SDK may create
2446// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2447// for more information on using Contexts.
2448func (c *SES) ListConfigurationSetsWithContext(ctx aws.Context, input *ListConfigurationSetsInput, opts ...request.Option) (*ListConfigurationSetsOutput, error) {
2449	req, out := c.ListConfigurationSetsRequest(input)
2450	req.SetContext(ctx)
2451	req.ApplyOptions(opts...)
2452	return out, req.Send()
2453}
2454
2455const opListIdentities = "ListIdentities"
2456
2457// ListIdentitiesRequest generates a "aws/request.Request" representing the
2458// client's request for the ListIdentities operation. The "output" return
2459// value will be populated with the request's response once the request complets
2460// successfuly.
2461//
2462// Use "Send" method on the returned Request to send the API call to the service.
2463// the "output" return value is not valid until after Send returns without error.
2464//
2465// See ListIdentities for more information on using the ListIdentities
2466// API call, and error handling.
2467//
2468// This method is useful when you want to inject custom logic or configuration
2469// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2470//
2471//
2472//    // Example sending a request using the ListIdentitiesRequest method.
2473//    req, resp := client.ListIdentitiesRequest(params)
2474//
2475//    err := req.Send()
2476//    if err == nil { // resp is now filled
2477//        fmt.Println(resp)
2478//    }
2479//
2480// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ListIdentities
2481func (c *SES) ListIdentitiesRequest(input *ListIdentitiesInput) (req *request.Request, output *ListIdentitiesOutput) {
2482	op := &request.Operation{
2483		Name:       opListIdentities,
2484		HTTPMethod: "POST",
2485		HTTPPath:   "/",
2486		Paginator: &request.Paginator{
2487			InputTokens:     []string{"NextToken"},
2488			OutputTokens:    []string{"NextToken"},
2489			LimitToken:      "MaxItems",
2490			TruncationToken: "",
2491		},
2492	}
2493
2494	if input == nil {
2495		input = &ListIdentitiesInput{}
2496	}
2497
2498	output = &ListIdentitiesOutput{}
2499	req = c.newRequest(op, input, output)
2500	return
2501}
2502
2503// ListIdentities API operation for Amazon Simple Email Service.
2504//
2505// Returns a list containing all of the identities (email addresses and domains)
2506// for your AWS account, regardless of verification status.
2507//
2508// You can execute this operation no more than once per second.
2509//
2510// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2511// with awserr.Error's Code and Message methods to get detailed information about
2512// the error.
2513//
2514// See the AWS API reference guide for Amazon Simple Email Service's
2515// API operation ListIdentities for usage and error information.
2516// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ListIdentities
2517func (c *SES) ListIdentities(input *ListIdentitiesInput) (*ListIdentitiesOutput, error) {
2518	req, out := c.ListIdentitiesRequest(input)
2519	return out, req.Send()
2520}
2521
2522// ListIdentitiesWithContext is the same as ListIdentities with the addition of
2523// the ability to pass a context and additional request options.
2524//
2525// See ListIdentities for details on how to use this API operation.
2526//
2527// The context must be non-nil and will be used for request cancellation. If
2528// the context is nil a panic will occur. In the future the SDK may create
2529// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2530// for more information on using Contexts.
2531func (c *SES) ListIdentitiesWithContext(ctx aws.Context, input *ListIdentitiesInput, opts ...request.Option) (*ListIdentitiesOutput, error) {
2532	req, out := c.ListIdentitiesRequest(input)
2533	req.SetContext(ctx)
2534	req.ApplyOptions(opts...)
2535	return out, req.Send()
2536}
2537
2538// ListIdentitiesPages iterates over the pages of a ListIdentities operation,
2539// calling the "fn" function with the response data for each page. To stop
2540// iterating, return false from the fn function.
2541//
2542// See ListIdentities method for more information on how to use this operation.
2543//
2544// Note: This operation can generate multiple requests to a service.
2545//
2546//    // Example iterating over at most 3 pages of a ListIdentities operation.
2547//    pageNum := 0
2548//    err := client.ListIdentitiesPages(params,
2549//        func(page *ListIdentitiesOutput, lastPage bool) bool {
2550//            pageNum++
2551//            fmt.Println(page)
2552//            return pageNum <= 3
2553//        })
2554//
2555func (c *SES) ListIdentitiesPages(input *ListIdentitiesInput, fn func(*ListIdentitiesOutput, bool) bool) error {
2556	return c.ListIdentitiesPagesWithContext(aws.BackgroundContext(), input, fn)
2557}
2558
2559// ListIdentitiesPagesWithContext same as ListIdentitiesPages except
2560// it takes a Context and allows setting request options on the pages.
2561//
2562// The context must be non-nil and will be used for request cancellation. If
2563// the context is nil a panic will occur. In the future the SDK may create
2564// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2565// for more information on using Contexts.
2566func (c *SES) ListIdentitiesPagesWithContext(ctx aws.Context, input *ListIdentitiesInput, fn func(*ListIdentitiesOutput, bool) bool, opts ...request.Option) error {
2567	p := request.Pagination{
2568		NewRequest: func() (*request.Request, error) {
2569			var inCpy *ListIdentitiesInput
2570			if input != nil {
2571				tmp := *input
2572				inCpy = &tmp
2573			}
2574			req, _ := c.ListIdentitiesRequest(inCpy)
2575			req.SetContext(ctx)
2576			req.ApplyOptions(opts...)
2577			return req, nil
2578		},
2579	}
2580
2581	cont := true
2582	for p.Next() && cont {
2583		cont = fn(p.Page().(*ListIdentitiesOutput), !p.HasNextPage())
2584	}
2585	return p.Err()
2586}
2587
2588const opListIdentityPolicies = "ListIdentityPolicies"
2589
2590// ListIdentityPoliciesRequest generates a "aws/request.Request" representing the
2591// client's request for the ListIdentityPolicies operation. The "output" return
2592// value will be populated with the request's response once the request complets
2593// successfuly.
2594//
2595// Use "Send" method on the returned Request to send the API call to the service.
2596// the "output" return value is not valid until after Send returns without error.
2597//
2598// See ListIdentityPolicies for more information on using the ListIdentityPolicies
2599// API call, and error handling.
2600//
2601// This method is useful when you want to inject custom logic or configuration
2602// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2603//
2604//
2605//    // Example sending a request using the ListIdentityPoliciesRequest method.
2606//    req, resp := client.ListIdentityPoliciesRequest(params)
2607//
2608//    err := req.Send()
2609//    if err == nil { // resp is now filled
2610//        fmt.Println(resp)
2611//    }
2612//
2613// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ListIdentityPolicies
2614func (c *SES) ListIdentityPoliciesRequest(input *ListIdentityPoliciesInput) (req *request.Request, output *ListIdentityPoliciesOutput) {
2615	op := &request.Operation{
2616		Name:       opListIdentityPolicies,
2617		HTTPMethod: "POST",
2618		HTTPPath:   "/",
2619	}
2620
2621	if input == nil {
2622		input = &ListIdentityPoliciesInput{}
2623	}
2624
2625	output = &ListIdentityPoliciesOutput{}
2626	req = c.newRequest(op, input, output)
2627	return
2628}
2629
2630// ListIdentityPolicies API operation for Amazon Simple Email Service.
2631//
2632// Returns a list of sending authorization policies that are attached to the
2633// given identity (an email address or a domain). This API returns only a list.
2634// If you want the actual policy content, you can use GetIdentityPolicies.
2635//
2636// This API is for the identity owner only. If you have not verified the identity,
2637// this API will return an error.
2638//
2639// Sending authorization is a feature that enables an identity owner to authorize
2640// other senders to use its identities. For information about using sending
2641// authorization, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html).
2642//
2643// You can execute this operation no more than once per second.
2644//
2645// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2646// with awserr.Error's Code and Message methods to get detailed information about
2647// the error.
2648//
2649// See the AWS API reference guide for Amazon Simple Email Service's
2650// API operation ListIdentityPolicies for usage and error information.
2651// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ListIdentityPolicies
2652func (c *SES) ListIdentityPolicies(input *ListIdentityPoliciesInput) (*ListIdentityPoliciesOutput, error) {
2653	req, out := c.ListIdentityPoliciesRequest(input)
2654	return out, req.Send()
2655}
2656
2657// ListIdentityPoliciesWithContext is the same as ListIdentityPolicies with the addition of
2658// the ability to pass a context and additional request options.
2659//
2660// See ListIdentityPolicies for details on how to use this API operation.
2661//
2662// The context must be non-nil and will be used for request cancellation. If
2663// the context is nil a panic will occur. In the future the SDK may create
2664// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2665// for more information on using Contexts.
2666func (c *SES) ListIdentityPoliciesWithContext(ctx aws.Context, input *ListIdentityPoliciesInput, opts ...request.Option) (*ListIdentityPoliciesOutput, error) {
2667	req, out := c.ListIdentityPoliciesRequest(input)
2668	req.SetContext(ctx)
2669	req.ApplyOptions(opts...)
2670	return out, req.Send()
2671}
2672
2673const opListReceiptFilters = "ListReceiptFilters"
2674
2675// ListReceiptFiltersRequest generates a "aws/request.Request" representing the
2676// client's request for the ListReceiptFilters operation. The "output" return
2677// value will be populated with the request's response once the request complets
2678// successfuly.
2679//
2680// Use "Send" method on the returned Request to send the API call to the service.
2681// the "output" return value is not valid until after Send returns without error.
2682//
2683// See ListReceiptFilters for more information on using the ListReceiptFilters
2684// API call, and error handling.
2685//
2686// This method is useful when you want to inject custom logic or configuration
2687// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2688//
2689//
2690//    // Example sending a request using the ListReceiptFiltersRequest method.
2691//    req, resp := client.ListReceiptFiltersRequest(params)
2692//
2693//    err := req.Send()
2694//    if err == nil { // resp is now filled
2695//        fmt.Println(resp)
2696//    }
2697//
2698// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ListReceiptFilters
2699func (c *SES) ListReceiptFiltersRequest(input *ListReceiptFiltersInput) (req *request.Request, output *ListReceiptFiltersOutput) {
2700	op := &request.Operation{
2701		Name:       opListReceiptFilters,
2702		HTTPMethod: "POST",
2703		HTTPPath:   "/",
2704	}
2705
2706	if input == nil {
2707		input = &ListReceiptFiltersInput{}
2708	}
2709
2710	output = &ListReceiptFiltersOutput{}
2711	req = c.newRequest(op, input, output)
2712	return
2713}
2714
2715// ListReceiptFilters API operation for Amazon Simple Email Service.
2716//
2717// Lists the IP address filters associated with your AWS account.
2718//
2719// For information about managing IP address filters, see the Amazon SES Developer
2720// Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-managing-ip-filters.html).
2721//
2722// You can execute this operation no more than once per second.
2723//
2724// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2725// with awserr.Error's Code and Message methods to get detailed information about
2726// the error.
2727//
2728// See the AWS API reference guide for Amazon Simple Email Service's
2729// API operation ListReceiptFilters for usage and error information.
2730// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ListReceiptFilters
2731func (c *SES) ListReceiptFilters(input *ListReceiptFiltersInput) (*ListReceiptFiltersOutput, error) {
2732	req, out := c.ListReceiptFiltersRequest(input)
2733	return out, req.Send()
2734}
2735
2736// ListReceiptFiltersWithContext is the same as ListReceiptFilters with the addition of
2737// the ability to pass a context and additional request options.
2738//
2739// See ListReceiptFilters for details on how to use this API operation.
2740//
2741// The context must be non-nil and will be used for request cancellation. If
2742// the context is nil a panic will occur. In the future the SDK may create
2743// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2744// for more information on using Contexts.
2745func (c *SES) ListReceiptFiltersWithContext(ctx aws.Context, input *ListReceiptFiltersInput, opts ...request.Option) (*ListReceiptFiltersOutput, error) {
2746	req, out := c.ListReceiptFiltersRequest(input)
2747	req.SetContext(ctx)
2748	req.ApplyOptions(opts...)
2749	return out, req.Send()
2750}
2751
2752const opListReceiptRuleSets = "ListReceiptRuleSets"
2753
2754// ListReceiptRuleSetsRequest generates a "aws/request.Request" representing the
2755// client's request for the ListReceiptRuleSets operation. The "output" return
2756// value will be populated with the request's response once the request complets
2757// successfuly.
2758//
2759// Use "Send" method on the returned Request to send the API call to the service.
2760// the "output" return value is not valid until after Send returns without error.
2761//
2762// See ListReceiptRuleSets for more information on using the ListReceiptRuleSets
2763// API call, and error handling.
2764//
2765// This method is useful when you want to inject custom logic or configuration
2766// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2767//
2768//
2769//    // Example sending a request using the ListReceiptRuleSetsRequest method.
2770//    req, resp := client.ListReceiptRuleSetsRequest(params)
2771//
2772//    err := req.Send()
2773//    if err == nil { // resp is now filled
2774//        fmt.Println(resp)
2775//    }
2776//
2777// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ListReceiptRuleSets
2778func (c *SES) ListReceiptRuleSetsRequest(input *ListReceiptRuleSetsInput) (req *request.Request, output *ListReceiptRuleSetsOutput) {
2779	op := &request.Operation{
2780		Name:       opListReceiptRuleSets,
2781		HTTPMethod: "POST",
2782		HTTPPath:   "/",
2783	}
2784
2785	if input == nil {
2786		input = &ListReceiptRuleSetsInput{}
2787	}
2788
2789	output = &ListReceiptRuleSetsOutput{}
2790	req = c.newRequest(op, input, output)
2791	return
2792}
2793
2794// ListReceiptRuleSets API operation for Amazon Simple Email Service.
2795//
2796// Lists the receipt rule sets that exist under your AWS account. If there are
2797// additional receipt rule sets to be retrieved, you will receive a NextToken
2798// that you can provide to the next call to ListReceiptRuleSets to retrieve
2799// the additional entries.
2800//
2801// For information about managing receipt rule sets, see the Amazon SES Developer
2802// Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-managing-receipt-rule-sets.html).
2803//
2804// You can execute this operation no more than once per second.
2805//
2806// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2807// with awserr.Error's Code and Message methods to get detailed information about
2808// the error.
2809//
2810// See the AWS API reference guide for Amazon Simple Email Service's
2811// API operation ListReceiptRuleSets for usage and error information.
2812// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ListReceiptRuleSets
2813func (c *SES) ListReceiptRuleSets(input *ListReceiptRuleSetsInput) (*ListReceiptRuleSetsOutput, error) {
2814	req, out := c.ListReceiptRuleSetsRequest(input)
2815	return out, req.Send()
2816}
2817
2818// ListReceiptRuleSetsWithContext is the same as ListReceiptRuleSets with the addition of
2819// the ability to pass a context and additional request options.
2820//
2821// See ListReceiptRuleSets for details on how to use this API operation.
2822//
2823// The context must be non-nil and will be used for request cancellation. If
2824// the context is nil a panic will occur. In the future the SDK may create
2825// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2826// for more information on using Contexts.
2827func (c *SES) ListReceiptRuleSetsWithContext(ctx aws.Context, input *ListReceiptRuleSetsInput, opts ...request.Option) (*ListReceiptRuleSetsOutput, error) {
2828	req, out := c.ListReceiptRuleSetsRequest(input)
2829	req.SetContext(ctx)
2830	req.ApplyOptions(opts...)
2831	return out, req.Send()
2832}
2833
2834const opListVerifiedEmailAddresses = "ListVerifiedEmailAddresses"
2835
2836// ListVerifiedEmailAddressesRequest generates a "aws/request.Request" representing the
2837// client's request for the ListVerifiedEmailAddresses operation. The "output" return
2838// value will be populated with the request's response once the request complets
2839// successfuly.
2840//
2841// Use "Send" method on the returned Request to send the API call to the service.
2842// the "output" return value is not valid until after Send returns without error.
2843//
2844// See ListVerifiedEmailAddresses for more information on using the ListVerifiedEmailAddresses
2845// API call, and error handling.
2846//
2847// This method is useful when you want to inject custom logic or configuration
2848// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2849//
2850//
2851//    // Example sending a request using the ListVerifiedEmailAddressesRequest method.
2852//    req, resp := client.ListVerifiedEmailAddressesRequest(params)
2853//
2854//    err := req.Send()
2855//    if err == nil { // resp is now filled
2856//        fmt.Println(resp)
2857//    }
2858//
2859// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ListVerifiedEmailAddresses
2860func (c *SES) ListVerifiedEmailAddressesRequest(input *ListVerifiedEmailAddressesInput) (req *request.Request, output *ListVerifiedEmailAddressesOutput) {
2861	op := &request.Operation{
2862		Name:       opListVerifiedEmailAddresses,
2863		HTTPMethod: "POST",
2864		HTTPPath:   "/",
2865	}
2866
2867	if input == nil {
2868		input = &ListVerifiedEmailAddressesInput{}
2869	}
2870
2871	output = &ListVerifiedEmailAddressesOutput{}
2872	req = c.newRequest(op, input, output)
2873	return
2874}
2875
2876// ListVerifiedEmailAddresses API operation for Amazon Simple Email Service.
2877//
2878// Deprecated. Use the ListIdentities operation to list the email addresses
2879// and domains associated with your account.
2880//
2881// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2882// with awserr.Error's Code and Message methods to get detailed information about
2883// the error.
2884//
2885// See the AWS API reference guide for Amazon Simple Email Service's
2886// API operation ListVerifiedEmailAddresses for usage and error information.
2887// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ListVerifiedEmailAddresses
2888func (c *SES) ListVerifiedEmailAddresses(input *ListVerifiedEmailAddressesInput) (*ListVerifiedEmailAddressesOutput, error) {
2889	req, out := c.ListVerifiedEmailAddressesRequest(input)
2890	return out, req.Send()
2891}
2892
2893// ListVerifiedEmailAddressesWithContext is the same as ListVerifiedEmailAddresses with the addition of
2894// the ability to pass a context and additional request options.
2895//
2896// See ListVerifiedEmailAddresses for details on how to use this API operation.
2897//
2898// The context must be non-nil and will be used for request cancellation. If
2899// the context is nil a panic will occur. In the future the SDK may create
2900// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2901// for more information on using Contexts.
2902func (c *SES) ListVerifiedEmailAddressesWithContext(ctx aws.Context, input *ListVerifiedEmailAddressesInput, opts ...request.Option) (*ListVerifiedEmailAddressesOutput, error) {
2903	req, out := c.ListVerifiedEmailAddressesRequest(input)
2904	req.SetContext(ctx)
2905	req.ApplyOptions(opts...)
2906	return out, req.Send()
2907}
2908
2909const opPutIdentityPolicy = "PutIdentityPolicy"
2910
2911// PutIdentityPolicyRequest generates a "aws/request.Request" representing the
2912// client's request for the PutIdentityPolicy operation. The "output" return
2913// value will be populated with the request's response once the request complets
2914// successfuly.
2915//
2916// Use "Send" method on the returned Request to send the API call to the service.
2917// the "output" return value is not valid until after Send returns without error.
2918//
2919// See PutIdentityPolicy for more information on using the PutIdentityPolicy
2920// API call, and error handling.
2921//
2922// This method is useful when you want to inject custom logic or configuration
2923// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2924//
2925//
2926//    // Example sending a request using the PutIdentityPolicyRequest method.
2927//    req, resp := client.PutIdentityPolicyRequest(params)
2928//
2929//    err := req.Send()
2930//    if err == nil { // resp is now filled
2931//        fmt.Println(resp)
2932//    }
2933//
2934// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/PutIdentityPolicy
2935func (c *SES) PutIdentityPolicyRequest(input *PutIdentityPolicyInput) (req *request.Request, output *PutIdentityPolicyOutput) {
2936	op := &request.Operation{
2937		Name:       opPutIdentityPolicy,
2938		HTTPMethod: "POST",
2939		HTTPPath:   "/",
2940	}
2941
2942	if input == nil {
2943		input = &PutIdentityPolicyInput{}
2944	}
2945
2946	output = &PutIdentityPolicyOutput{}
2947	req = c.newRequest(op, input, output)
2948	return
2949}
2950
2951// PutIdentityPolicy API operation for Amazon Simple Email Service.
2952//
2953// Adds or updates a sending authorization policy for the specified identity
2954// (an email address or a domain).
2955//
2956// This API is for the identity owner only. If you have not verified the identity,
2957// this API will return an error.
2958//
2959// Sending authorization is a feature that enables an identity owner to authorize
2960// other senders to use its identities. For information about using sending
2961// authorization, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html).
2962//
2963// You can execute this operation no more than once per second.
2964//
2965// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2966// with awserr.Error's Code and Message methods to get detailed information about
2967// the error.
2968//
2969// See the AWS API reference guide for Amazon Simple Email Service's
2970// API operation PutIdentityPolicy for usage and error information.
2971//
2972// Returned Error Codes:
2973//   * ErrCodeInvalidPolicyException "InvalidPolicy"
2974//   Indicates that the provided policy is invalid. Check the error stack for
2975//   more information about what caused the error.
2976//
2977// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/PutIdentityPolicy
2978func (c *SES) PutIdentityPolicy(input *PutIdentityPolicyInput) (*PutIdentityPolicyOutput, error) {
2979	req, out := c.PutIdentityPolicyRequest(input)
2980	return out, req.Send()
2981}
2982
2983// PutIdentityPolicyWithContext is the same as PutIdentityPolicy with the addition of
2984// the ability to pass a context and additional request options.
2985//
2986// See PutIdentityPolicy for details on how to use this API operation.
2987//
2988// The context must be non-nil and will be used for request cancellation. If
2989// the context is nil a panic will occur. In the future the SDK may create
2990// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2991// for more information on using Contexts.
2992func (c *SES) PutIdentityPolicyWithContext(ctx aws.Context, input *PutIdentityPolicyInput, opts ...request.Option) (*PutIdentityPolicyOutput, error) {
2993	req, out := c.PutIdentityPolicyRequest(input)
2994	req.SetContext(ctx)
2995	req.ApplyOptions(opts...)
2996	return out, req.Send()
2997}
2998
2999const opReorderReceiptRuleSet = "ReorderReceiptRuleSet"
3000
3001// ReorderReceiptRuleSetRequest generates a "aws/request.Request" representing the
3002// client's request for the ReorderReceiptRuleSet operation. The "output" return
3003// value will be populated with the request's response once the request complets
3004// successfuly.
3005//
3006// Use "Send" method on the returned Request to send the API call to the service.
3007// the "output" return value is not valid until after Send returns without error.
3008//
3009// See ReorderReceiptRuleSet for more information on using the ReorderReceiptRuleSet
3010// API call, and error handling.
3011//
3012// This method is useful when you want to inject custom logic or configuration
3013// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3014//
3015//
3016//    // Example sending a request using the ReorderReceiptRuleSetRequest method.
3017//    req, resp := client.ReorderReceiptRuleSetRequest(params)
3018//
3019//    err := req.Send()
3020//    if err == nil { // resp is now filled
3021//        fmt.Println(resp)
3022//    }
3023//
3024// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ReorderReceiptRuleSet
3025func (c *SES) ReorderReceiptRuleSetRequest(input *ReorderReceiptRuleSetInput) (req *request.Request, output *ReorderReceiptRuleSetOutput) {
3026	op := &request.Operation{
3027		Name:       opReorderReceiptRuleSet,
3028		HTTPMethod: "POST",
3029		HTTPPath:   "/",
3030	}
3031
3032	if input == nil {
3033		input = &ReorderReceiptRuleSetInput{}
3034	}
3035
3036	output = &ReorderReceiptRuleSetOutput{}
3037	req = c.newRequest(op, input, output)
3038	return
3039}
3040
3041// ReorderReceiptRuleSet API operation for Amazon Simple Email Service.
3042//
3043// Reorders the receipt rules within a receipt rule set.
3044//
3045// All of the rules in the rule set must be represented in this request. That
3046// is, this API will return an error if the reorder request doesn't explicitly
3047// position all of the rules.
3048//
3049// For information about managing receipt rule sets, see the Amazon SES Developer
3050// Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-managing-receipt-rule-sets.html).
3051//
3052// You can execute this operation no more than once per second.
3053//
3054// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3055// with awserr.Error's Code and Message methods to get detailed information about
3056// the error.
3057//
3058// See the AWS API reference guide for Amazon Simple Email Service's
3059// API operation ReorderReceiptRuleSet for usage and error information.
3060//
3061// Returned Error Codes:
3062//   * ErrCodeRuleSetDoesNotExistException "RuleSetDoesNotExist"
3063//   Indicates that the provided receipt rule set does not exist.
3064//
3065//   * ErrCodeRuleDoesNotExistException "RuleDoesNotExist"
3066//   Indicates that the provided receipt rule does not exist.
3067//
3068// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ReorderReceiptRuleSet
3069func (c *SES) ReorderReceiptRuleSet(input *ReorderReceiptRuleSetInput) (*ReorderReceiptRuleSetOutput, error) {
3070	req, out := c.ReorderReceiptRuleSetRequest(input)
3071	return out, req.Send()
3072}
3073
3074// ReorderReceiptRuleSetWithContext is the same as ReorderReceiptRuleSet with the addition of
3075// the ability to pass a context and additional request options.
3076//
3077// See ReorderReceiptRuleSet for details on how to use this API operation.
3078//
3079// The context must be non-nil and will be used for request cancellation. If
3080// the context is nil a panic will occur. In the future the SDK may create
3081// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3082// for more information on using Contexts.
3083func (c *SES) ReorderReceiptRuleSetWithContext(ctx aws.Context, input *ReorderReceiptRuleSetInput, opts ...request.Option) (*ReorderReceiptRuleSetOutput, error) {
3084	req, out := c.ReorderReceiptRuleSetRequest(input)
3085	req.SetContext(ctx)
3086	req.ApplyOptions(opts...)
3087	return out, req.Send()
3088}
3089
3090const opSendBounce = "SendBounce"
3091
3092// SendBounceRequest generates a "aws/request.Request" representing the
3093// client's request for the SendBounce operation. The "output" return
3094// value will be populated with the request's response once the request complets
3095// successfuly.
3096//
3097// Use "Send" method on the returned Request to send the API call to the service.
3098// the "output" return value is not valid until after Send returns without error.
3099//
3100// See SendBounce for more information on using the SendBounce
3101// API call, and error handling.
3102//
3103// This method is useful when you want to inject custom logic or configuration
3104// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3105//
3106//
3107//    // Example sending a request using the SendBounceRequest method.
3108//    req, resp := client.SendBounceRequest(params)
3109//
3110//    err := req.Send()
3111//    if err == nil { // resp is now filled
3112//        fmt.Println(resp)
3113//    }
3114//
3115// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SendBounce
3116func (c *SES) SendBounceRequest(input *SendBounceInput) (req *request.Request, output *SendBounceOutput) {
3117	op := &request.Operation{
3118		Name:       opSendBounce,
3119		HTTPMethod: "POST",
3120		HTTPPath:   "/",
3121	}
3122
3123	if input == nil {
3124		input = &SendBounceInput{}
3125	}
3126
3127	output = &SendBounceOutput{}
3128	req = c.newRequest(op, input, output)
3129	return
3130}
3131
3132// SendBounce API operation for Amazon Simple Email Service.
3133//
3134// Generates and sends a bounce message to the sender of an email you received
3135// through Amazon SES. You can only use this API on an email up to 24 hours
3136// after you receive it.
3137//
3138// You cannot use this API to send generic bounces for mail that was not received
3139// by Amazon SES.
3140//
3141// For information about receiving email through Amazon SES, see the Amazon
3142// SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email.html).
3143//
3144// You can execute this operation no more than once per second.
3145//
3146// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3147// with awserr.Error's Code and Message methods to get detailed information about
3148// the error.
3149//
3150// See the AWS API reference guide for Amazon Simple Email Service's
3151// API operation SendBounce for usage and error information.
3152//
3153// Returned Error Codes:
3154//   * ErrCodeMessageRejected "MessageRejected"
3155//   Indicates that the action failed, and the message could not be sent. Check
3156//   the error stack for more information about what caused the error.
3157//
3158// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SendBounce
3159func (c *SES) SendBounce(input *SendBounceInput) (*SendBounceOutput, error) {
3160	req, out := c.SendBounceRequest(input)
3161	return out, req.Send()
3162}
3163
3164// SendBounceWithContext is the same as SendBounce with the addition of
3165// the ability to pass a context and additional request options.
3166//
3167// See SendBounce for details on how to use this API operation.
3168//
3169// The context must be non-nil and will be used for request cancellation. If
3170// the context is nil a panic will occur. In the future the SDK may create
3171// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3172// for more information on using Contexts.
3173func (c *SES) SendBounceWithContext(ctx aws.Context, input *SendBounceInput, opts ...request.Option) (*SendBounceOutput, error) {
3174	req, out := c.SendBounceRequest(input)
3175	req.SetContext(ctx)
3176	req.ApplyOptions(opts...)
3177	return out, req.Send()
3178}
3179
3180const opSendEmail = "SendEmail"
3181
3182// SendEmailRequest generates a "aws/request.Request" representing the
3183// client's request for the SendEmail operation. The "output" return
3184// value will be populated with the request's response once the request complets
3185// successfuly.
3186//
3187// Use "Send" method on the returned Request to send the API call to the service.
3188// the "output" return value is not valid until after Send returns without error.
3189//
3190// See SendEmail for more information on using the SendEmail
3191// API call, and error handling.
3192//
3193// This method is useful when you want to inject custom logic or configuration
3194// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3195//
3196//
3197//    // Example sending a request using the SendEmailRequest method.
3198//    req, resp := client.SendEmailRequest(params)
3199//
3200//    err := req.Send()
3201//    if err == nil { // resp is now filled
3202//        fmt.Println(resp)
3203//    }
3204//
3205// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SendEmail
3206func (c *SES) SendEmailRequest(input *SendEmailInput) (req *request.Request, output *SendEmailOutput) {
3207	op := &request.Operation{
3208		Name:       opSendEmail,
3209		HTTPMethod: "POST",
3210		HTTPPath:   "/",
3211	}
3212
3213	if input == nil {
3214		input = &SendEmailInput{}
3215	}
3216
3217	output = &SendEmailOutput{}
3218	req = c.newRequest(op, input, output)
3219	return
3220}
3221
3222// SendEmail API operation for Amazon Simple Email Service.
3223//
3224// Composes an email message and immediately queues it for sending. In order
3225// to send email using the SendEmail operation, your message must meet the following
3226// requirements:
3227//
3228//    * The message must be sent from a verified email address or domain. If
3229//    you attempt to send email using a non-verified address or domain, the
3230//    operation will result in an "Email address not verified" error.
3231//
3232//    * If your account is still in the Amazon SES sandbox, you may only send
3233//    to verified addresses or domains, or to email addresses associated with
3234//    the Amazon SES Mailbox Simulator. For more information, see Verifying
3235//    Email Addresses and Domains (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-addresses-and-domains.html)
3236//    in the Amazon SES Developer Guide.
3237//
3238//    * The total size of the message, including attachments, must be smaller
3239//    than 10 MB.
3240//
3241//    * The message must include at least one recipient email address. The recipient
3242//    address can be a To: address, a CC: address, or a BCC: address. If a recipient
3243//    email address is invalid (that is, it is not in the format UserName@[SubDomain.]Domain.TopLevelDomain),
3244//    the entire message will be rejected, even if the message contains other
3245//    recipients that are valid.
3246//
3247//    * The message may not include more than 50 recipients, across the To:,
3248//    CC: and BCC: fields. If you need to send an email message to a larger
3249//    audience, you can divide your recipient list into groups of 50 or fewer,
3250//    and then call the SendEmail operation several times to send the message
3251//    to each group.
3252//
3253// For every message that you send, the total number of recipients (including
3254// each recipient in the To:, CC: and BCC: fields) is counted against the maximum
3255// number of emails you can send in a 24-hour period (your sending quota). For
3256// more information about sending quotas in Amazon SES, see Managing Your Amazon
3257// SES Sending Limits (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/manage-sending-limits.html)
3258// in the Amazon SES Developer Guide.
3259//
3260// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3261// with awserr.Error's Code and Message methods to get detailed information about
3262// the error.
3263//
3264// See the AWS API reference guide for Amazon Simple Email Service's
3265// API operation SendEmail for usage and error information.
3266//
3267// Returned Error Codes:
3268//   * ErrCodeMessageRejected "MessageRejected"
3269//   Indicates that the action failed, and the message could not be sent. Check
3270//   the error stack for more information about what caused the error.
3271//
3272//   * ErrCodeMailFromDomainNotVerifiedException "MailFromDomainNotVerifiedException"
3273//   Indicates that the message could not be sent because Amazon SES could not
3274//   read the MX record required to use the specified MAIL FROM domain. For information
3275//   about editing the custom MAIL FROM domain settings for an identity, see the
3276//   Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/mail-from-edit.html).
3277//
3278//   * ErrCodeConfigurationSetDoesNotExistException "ConfigurationSetDoesNotExist"
3279//   Indicates that the configuration set does not exist.
3280//
3281// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SendEmail
3282func (c *SES) SendEmail(input *SendEmailInput) (*SendEmailOutput, error) {
3283	req, out := c.SendEmailRequest(input)
3284	return out, req.Send()
3285}
3286
3287// SendEmailWithContext is the same as SendEmail with the addition of
3288// the ability to pass a context and additional request options.
3289//
3290// See SendEmail for details on how to use this API operation.
3291//
3292// The context must be non-nil and will be used for request cancellation. If
3293// the context is nil a panic will occur. In the future the SDK may create
3294// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3295// for more information on using Contexts.
3296func (c *SES) SendEmailWithContext(ctx aws.Context, input *SendEmailInput, opts ...request.Option) (*SendEmailOutput, error) {
3297	req, out := c.SendEmailRequest(input)
3298	req.SetContext(ctx)
3299	req.ApplyOptions(opts...)
3300	return out, req.Send()
3301}
3302
3303const opSendRawEmail = "SendRawEmail"
3304
3305// SendRawEmailRequest generates a "aws/request.Request" representing the
3306// client's request for the SendRawEmail operation. The "output" return
3307// value will be populated with the request's response once the request complets
3308// successfuly.
3309//
3310// Use "Send" method on the returned Request to send the API call to the service.
3311// the "output" return value is not valid until after Send returns without error.
3312//
3313// See SendRawEmail for more information on using the SendRawEmail
3314// API call, and error handling.
3315//
3316// This method is useful when you want to inject custom logic or configuration
3317// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3318//
3319//
3320//    // Example sending a request using the SendRawEmailRequest method.
3321//    req, resp := client.SendRawEmailRequest(params)
3322//
3323//    err := req.Send()
3324//    if err == nil { // resp is now filled
3325//        fmt.Println(resp)
3326//    }
3327//
3328// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SendRawEmail
3329func (c *SES) SendRawEmailRequest(input *SendRawEmailInput) (req *request.Request, output *SendRawEmailOutput) {
3330	op := &request.Operation{
3331		Name:       opSendRawEmail,
3332		HTTPMethod: "POST",
3333		HTTPPath:   "/",
3334	}
3335
3336	if input == nil {
3337		input = &SendRawEmailInput{}
3338	}
3339
3340	output = &SendRawEmailOutput{}
3341	req = c.newRequest(op, input, output)
3342	return
3343}
3344
3345// SendRawEmail API operation for Amazon Simple Email Service.
3346//
3347// Composes an email message and immediately queues it for sending. When calling
3348// this operation, you may specify the message headers as well as the content.
3349// The SendRawEmail operation is particularly useful for sending multipart MIME
3350// emails (such as those that contain both a plain-text and an HTML version).
3351//
3352// In order to send email using the SendRawEmail operation, your message must
3353// meet the following requirements:
3354//
3355//    * The message must be sent from a verified email address or domain. If
3356//    you attempt to send email using a non-verified address or domain, the
3357//    operation will result in an "Email address not verified" error.
3358//
3359//    * If your account is still in the Amazon SES sandbox, you may only send
3360//    to verified addresses or domains, or to email addresses associated with
3361//    the Amazon SES Mailbox Simulator. For more information, see Verifying
3362//    Email Addresses and Domains (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-addresses-and-domains.html)
3363//    in the Amazon SES Developer Guide.
3364//
3365//    * The total size of the message, including attachments, must be smaller
3366//    than 10 MB.
3367//
3368//    * The message must include at least one recipient email address. The recipient
3369//    address can be a To: address, a CC: address, or a BCC: address. If a recipient
3370//    email address is invalid (that is, it is not in the format UserName@[SubDomain.]Domain.TopLevelDomain),
3371//    the entire message will be rejected, even if the message contains other
3372//    recipients that are valid.
3373//
3374//    * The message may not include more than 50 recipients, across the To:,
3375//    CC: and BCC: fields. If you need to send an email message to a larger
3376//    audience, you can divide your recipient list into groups of 50 or fewer,
3377//    and then call the SendRawEmail operation several times to send the message
3378//    to each group.
3379//
3380// For every message that you send, the total number of recipients (including
3381// each recipient in the To:, CC: and BCC: fields) is counted against the maximum
3382// number of emails you can send in a 24-hour period (your sending quota). For
3383// more information about sending quotas in Amazon SES, see Managing Your Amazon
3384// SES Sending Limits (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/manage-sending-limits.html)
3385// in the Amazon SES Developer Guide.
3386//
3387// Additionally, keep the following considerations in mind when using the SendRawEmail
3388// operation:
3389//
3390//    * Although you can customize the message headers when using the SendRawEmail
3391//    operation, Amazon SES will automatically apply its own Message-ID and
3392//    Date headers; if you passed these headers when creating the message, they
3393//    will be overwritten by the values that Amazon SES provides.
3394//
3395//    * If you are using sending authorization to send on behalf of another
3396//    user, SendRawEmail enables you to specify the cross-account identity for
3397//    the email's Source, From, and Return-Path parameters in one of two ways:
3398//    you can pass optional parameters SourceArn, FromArn, and/or ReturnPathArn
3399//    to the API, or you can include the following X-headers in the header of
3400//    your raw email:
3401//
3402// X-SES-SOURCE-ARN
3403//
3404// X-SES-FROM-ARN
3405//
3406// X-SES-RETURN-PATH-ARN
3407//
3408// Do not include these X-headers in the DKIM signature; Amazon SES will remove
3409//    them before sending the email.
3410//
3411// For most common sending authorization scenarios, we recommend that you specify
3412//    the SourceIdentityArn parameter and not the FromIdentityArn or ReturnPathIdentityArn
3413//    parameters. If you only specify the SourceIdentityArn parameter, Amazon
3414//    SES will set the From and Return Path addresses to the identity specified
3415//    in SourceIdentityArn. For more information about sending authorization,
3416//    see the Using Sending Authorization with Amazon SES (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html)
3417//    in the Amazon SES Developer Guide.
3418//
3419// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3420// with awserr.Error's Code and Message methods to get detailed information about
3421// the error.
3422//
3423// See the AWS API reference guide for Amazon Simple Email Service's
3424// API operation SendRawEmail for usage and error information.
3425//
3426// Returned Error Codes:
3427//   * ErrCodeMessageRejected "MessageRejected"
3428//   Indicates that the action failed, and the message could not be sent. Check
3429//   the error stack for more information about what caused the error.
3430//
3431//   * ErrCodeMailFromDomainNotVerifiedException "MailFromDomainNotVerifiedException"
3432//   Indicates that the message could not be sent because Amazon SES could not
3433//   read the MX record required to use the specified MAIL FROM domain. For information
3434//   about editing the custom MAIL FROM domain settings for an identity, see the
3435//   Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/mail-from-edit.html).
3436//
3437//   * ErrCodeConfigurationSetDoesNotExistException "ConfigurationSetDoesNotExist"
3438//   Indicates that the configuration set does not exist.
3439//
3440// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SendRawEmail
3441func (c *SES) SendRawEmail(input *SendRawEmailInput) (*SendRawEmailOutput, error) {
3442	req, out := c.SendRawEmailRequest(input)
3443	return out, req.Send()
3444}
3445
3446// SendRawEmailWithContext is the same as SendRawEmail with the addition of
3447// the ability to pass a context and additional request options.
3448//
3449// See SendRawEmail for details on how to use this API operation.
3450//
3451// The context must be non-nil and will be used for request cancellation. If
3452// the context is nil a panic will occur. In the future the SDK may create
3453// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3454// for more information on using Contexts.
3455func (c *SES) SendRawEmailWithContext(ctx aws.Context, input *SendRawEmailInput, opts ...request.Option) (*SendRawEmailOutput, error) {
3456	req, out := c.SendRawEmailRequest(input)
3457	req.SetContext(ctx)
3458	req.ApplyOptions(opts...)
3459	return out, req.Send()
3460}
3461
3462const opSetActiveReceiptRuleSet = "SetActiveReceiptRuleSet"
3463
3464// SetActiveReceiptRuleSetRequest generates a "aws/request.Request" representing the
3465// client's request for the SetActiveReceiptRuleSet operation. The "output" return
3466// value will be populated with the request's response once the request complets
3467// successfuly.
3468//
3469// Use "Send" method on the returned Request to send the API call to the service.
3470// the "output" return value is not valid until after Send returns without error.
3471//
3472// See SetActiveReceiptRuleSet for more information on using the SetActiveReceiptRuleSet
3473// API call, and error handling.
3474//
3475// This method is useful when you want to inject custom logic or configuration
3476// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3477//
3478//
3479//    // Example sending a request using the SetActiveReceiptRuleSetRequest method.
3480//    req, resp := client.SetActiveReceiptRuleSetRequest(params)
3481//
3482//    err := req.Send()
3483//    if err == nil { // resp is now filled
3484//        fmt.Println(resp)
3485//    }
3486//
3487// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SetActiveReceiptRuleSet
3488func (c *SES) SetActiveReceiptRuleSetRequest(input *SetActiveReceiptRuleSetInput) (req *request.Request, output *SetActiveReceiptRuleSetOutput) {
3489	op := &request.Operation{
3490		Name:       opSetActiveReceiptRuleSet,
3491		HTTPMethod: "POST",
3492		HTTPPath:   "/",
3493	}
3494
3495	if input == nil {
3496		input = &SetActiveReceiptRuleSetInput{}
3497	}
3498
3499	output = &SetActiveReceiptRuleSetOutput{}
3500	req = c.newRequest(op, input, output)
3501	return
3502}
3503
3504// SetActiveReceiptRuleSet API operation for Amazon Simple Email Service.
3505//
3506// Sets the specified receipt rule set as the active receipt rule set.
3507//
3508// To disable your email-receiving through Amazon SES completely, you can call
3509// this API with RuleSetName set to null.
3510//
3511// For information about managing receipt rule sets, see the Amazon SES Developer
3512// Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-managing-receipt-rule-sets.html).
3513//
3514// You can execute this operation no more than once per second.
3515//
3516// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3517// with awserr.Error's Code and Message methods to get detailed information about
3518// the error.
3519//
3520// See the AWS API reference guide for Amazon Simple Email Service's
3521// API operation SetActiveReceiptRuleSet for usage and error information.
3522//
3523// Returned Error Codes:
3524//   * ErrCodeRuleSetDoesNotExistException "RuleSetDoesNotExist"
3525//   Indicates that the provided receipt rule set does not exist.
3526//
3527// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SetActiveReceiptRuleSet
3528func (c *SES) SetActiveReceiptRuleSet(input *SetActiveReceiptRuleSetInput) (*SetActiveReceiptRuleSetOutput, error) {
3529	req, out := c.SetActiveReceiptRuleSetRequest(input)
3530	return out, req.Send()
3531}
3532
3533// SetActiveReceiptRuleSetWithContext is the same as SetActiveReceiptRuleSet with the addition of
3534// the ability to pass a context and additional request options.
3535//
3536// See SetActiveReceiptRuleSet for details on how to use this API operation.
3537//
3538// The context must be non-nil and will be used for request cancellation. If
3539// the context is nil a panic will occur. In the future the SDK may create
3540// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3541// for more information on using Contexts.
3542func (c *SES) SetActiveReceiptRuleSetWithContext(ctx aws.Context, input *SetActiveReceiptRuleSetInput, opts ...request.Option) (*SetActiveReceiptRuleSetOutput, error) {
3543	req, out := c.SetActiveReceiptRuleSetRequest(input)
3544	req.SetContext(ctx)
3545	req.ApplyOptions(opts...)
3546	return out, req.Send()
3547}
3548
3549const opSetIdentityDkimEnabled = "SetIdentityDkimEnabled"
3550
3551// SetIdentityDkimEnabledRequest generates a "aws/request.Request" representing the
3552// client's request for the SetIdentityDkimEnabled operation. The "output" return
3553// value will be populated with the request's response once the request complets
3554// successfuly.
3555//
3556// Use "Send" method on the returned Request to send the API call to the service.
3557// the "output" return value is not valid until after Send returns without error.
3558//
3559// See SetIdentityDkimEnabled for more information on using the SetIdentityDkimEnabled
3560// API call, and error handling.
3561//
3562// This method is useful when you want to inject custom logic or configuration
3563// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3564//
3565//
3566//    // Example sending a request using the SetIdentityDkimEnabledRequest method.
3567//    req, resp := client.SetIdentityDkimEnabledRequest(params)
3568//
3569//    err := req.Send()
3570//    if err == nil { // resp is now filled
3571//        fmt.Println(resp)
3572//    }
3573//
3574// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SetIdentityDkimEnabled
3575func (c *SES) SetIdentityDkimEnabledRequest(input *SetIdentityDkimEnabledInput) (req *request.Request, output *SetIdentityDkimEnabledOutput) {
3576	op := &request.Operation{
3577		Name:       opSetIdentityDkimEnabled,
3578		HTTPMethod: "POST",
3579		HTTPPath:   "/",
3580	}
3581
3582	if input == nil {
3583		input = &SetIdentityDkimEnabledInput{}
3584	}
3585
3586	output = &SetIdentityDkimEnabledOutput{}
3587	req = c.newRequest(op, input, output)
3588	return
3589}
3590
3591// SetIdentityDkimEnabled API operation for Amazon Simple Email Service.
3592//
3593// Enables or disables Easy DKIM signing of email sent from an identity:
3594//
3595//    * If Easy DKIM signing is enabled for a domain name identity (such as
3596//    example.com), then Amazon SES will DKIM-sign all email sent by addresses
3597//    under that domain name (for example, user@example.com).
3598//
3599//    * If Easy DKIM signing is enabled for an email address, then Amazon SES
3600//    will DKIM-sign all email sent by that email address.
3601//
3602// For email addresses (for example, user@example.com), you can only enable
3603// Easy DKIM signing if the corresponding domain (in this case, example.com)
3604// has been set up for Easy DKIM using the AWS Console or the VerifyDomainDkim
3605// operation.
3606//
3607// You can execute this operation no more than once per second.
3608//
3609// For more information about Easy DKIM signing, go to the Amazon SES Developer
3610// Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html).
3611//
3612// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3613// with awserr.Error's Code and Message methods to get detailed information about
3614// the error.
3615//
3616// See the AWS API reference guide for Amazon Simple Email Service's
3617// API operation SetIdentityDkimEnabled for usage and error information.
3618// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SetIdentityDkimEnabled
3619func (c *SES) SetIdentityDkimEnabled(input *SetIdentityDkimEnabledInput) (*SetIdentityDkimEnabledOutput, error) {
3620	req, out := c.SetIdentityDkimEnabledRequest(input)
3621	return out, req.Send()
3622}
3623
3624// SetIdentityDkimEnabledWithContext is the same as SetIdentityDkimEnabled with the addition of
3625// the ability to pass a context and additional request options.
3626//
3627// See SetIdentityDkimEnabled for details on how to use this API operation.
3628//
3629// The context must be non-nil and will be used for request cancellation. If
3630// the context is nil a panic will occur. In the future the SDK may create
3631// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3632// for more information on using Contexts.
3633func (c *SES) SetIdentityDkimEnabledWithContext(ctx aws.Context, input *SetIdentityDkimEnabledInput, opts ...request.Option) (*SetIdentityDkimEnabledOutput, error) {
3634	req, out := c.SetIdentityDkimEnabledRequest(input)
3635	req.SetContext(ctx)
3636	req.ApplyOptions(opts...)
3637	return out, req.Send()
3638}
3639
3640const opSetIdentityFeedbackForwardingEnabled = "SetIdentityFeedbackForwardingEnabled"
3641
3642// SetIdentityFeedbackForwardingEnabledRequest generates a "aws/request.Request" representing the
3643// client's request for the SetIdentityFeedbackForwardingEnabled operation. The "output" return
3644// value will be populated with the request's response once the request complets
3645// successfuly.
3646//
3647// Use "Send" method on the returned Request to send the API call to the service.
3648// the "output" return value is not valid until after Send returns without error.
3649//
3650// See SetIdentityFeedbackForwardingEnabled for more information on using the SetIdentityFeedbackForwardingEnabled
3651// API call, and error handling.
3652//
3653// This method is useful when you want to inject custom logic or configuration
3654// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3655//
3656//
3657//    // Example sending a request using the SetIdentityFeedbackForwardingEnabledRequest method.
3658//    req, resp := client.SetIdentityFeedbackForwardingEnabledRequest(params)
3659//
3660//    err := req.Send()
3661//    if err == nil { // resp is now filled
3662//        fmt.Println(resp)
3663//    }
3664//
3665// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SetIdentityFeedbackForwardingEnabled
3666func (c *SES) SetIdentityFeedbackForwardingEnabledRequest(input *SetIdentityFeedbackForwardingEnabledInput) (req *request.Request, output *SetIdentityFeedbackForwardingEnabledOutput) {
3667	op := &request.Operation{
3668		Name:       opSetIdentityFeedbackForwardingEnabled,
3669		HTTPMethod: "POST",
3670		HTTPPath:   "/",
3671	}
3672
3673	if input == nil {
3674		input = &SetIdentityFeedbackForwardingEnabledInput{}
3675	}
3676
3677	output = &SetIdentityFeedbackForwardingEnabledOutput{}
3678	req = c.newRequest(op, input, output)
3679	return
3680}
3681
3682// SetIdentityFeedbackForwardingEnabled API operation for Amazon Simple Email Service.
3683//
3684// Given an identity (an email address or a domain), enables or disables whether
3685// Amazon SES forwards bounce and complaint notifications as email. Feedback
3686// forwarding can only be disabled when Amazon Simple Notification Service (Amazon
3687// SNS) topics are specified for both bounces and complaints.
3688//
3689// Feedback forwarding does not apply to delivery notifications. Delivery notifications
3690// are only available through Amazon SNS.
3691//
3692// You can execute this operation no more than once per second.
3693//
3694// For more information about using notifications with Amazon SES, see the Amazon
3695// SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/notifications.html).
3696//
3697// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3698// with awserr.Error's Code and Message methods to get detailed information about
3699// the error.
3700//
3701// See the AWS API reference guide for Amazon Simple Email Service's
3702// API operation SetIdentityFeedbackForwardingEnabled for usage and error information.
3703// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SetIdentityFeedbackForwardingEnabled
3704func (c *SES) SetIdentityFeedbackForwardingEnabled(input *SetIdentityFeedbackForwardingEnabledInput) (*SetIdentityFeedbackForwardingEnabledOutput, error) {
3705	req, out := c.SetIdentityFeedbackForwardingEnabledRequest(input)
3706	return out, req.Send()
3707}
3708
3709// SetIdentityFeedbackForwardingEnabledWithContext is the same as SetIdentityFeedbackForwardingEnabled with the addition of
3710// the ability to pass a context and additional request options.
3711//
3712// See SetIdentityFeedbackForwardingEnabled for details on how to use this API operation.
3713//
3714// The context must be non-nil and will be used for request cancellation. If
3715// the context is nil a panic will occur. In the future the SDK may create
3716// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3717// for more information on using Contexts.
3718func (c *SES) SetIdentityFeedbackForwardingEnabledWithContext(ctx aws.Context, input *SetIdentityFeedbackForwardingEnabledInput, opts ...request.Option) (*SetIdentityFeedbackForwardingEnabledOutput, error) {
3719	req, out := c.SetIdentityFeedbackForwardingEnabledRequest(input)
3720	req.SetContext(ctx)
3721	req.ApplyOptions(opts...)
3722	return out, req.Send()
3723}
3724
3725const opSetIdentityHeadersInNotificationsEnabled = "SetIdentityHeadersInNotificationsEnabled"
3726
3727// SetIdentityHeadersInNotificationsEnabledRequest generates a "aws/request.Request" representing the
3728// client's request for the SetIdentityHeadersInNotificationsEnabled operation. The "output" return
3729// value will be populated with the request's response once the request complets
3730// successfuly.
3731//
3732// Use "Send" method on the returned Request to send the API call to the service.
3733// the "output" return value is not valid until after Send returns without error.
3734//
3735// See SetIdentityHeadersInNotificationsEnabled for more information on using the SetIdentityHeadersInNotificationsEnabled
3736// API call, and error handling.
3737//
3738// This method is useful when you want to inject custom logic or configuration
3739// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3740//
3741//
3742//    // Example sending a request using the SetIdentityHeadersInNotificationsEnabledRequest method.
3743//    req, resp := client.SetIdentityHeadersInNotificationsEnabledRequest(params)
3744//
3745//    err := req.Send()
3746//    if err == nil { // resp is now filled
3747//        fmt.Println(resp)
3748//    }
3749//
3750// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SetIdentityHeadersInNotificationsEnabled
3751func (c *SES) SetIdentityHeadersInNotificationsEnabledRequest(input *SetIdentityHeadersInNotificationsEnabledInput) (req *request.Request, output *SetIdentityHeadersInNotificationsEnabledOutput) {
3752	op := &request.Operation{
3753		Name:       opSetIdentityHeadersInNotificationsEnabled,
3754		HTTPMethod: "POST",
3755		HTTPPath:   "/",
3756	}
3757
3758	if input == nil {
3759		input = &SetIdentityHeadersInNotificationsEnabledInput{}
3760	}
3761
3762	output = &SetIdentityHeadersInNotificationsEnabledOutput{}
3763	req = c.newRequest(op, input, output)
3764	return
3765}
3766
3767// SetIdentityHeadersInNotificationsEnabled API operation for Amazon Simple Email Service.
3768//
3769// Given an identity (an email address or a domain), sets whether Amazon SES
3770// includes the original email headers in the Amazon Simple Notification Service
3771// (Amazon SNS) notifications of a specified type.
3772//
3773// You can execute this operation no more than once per second.
3774//
3775// For more information about using notifications with Amazon SES, see the Amazon
3776// SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/notifications.html).
3777//
3778// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3779// with awserr.Error's Code and Message methods to get detailed information about
3780// the error.
3781//
3782// See the AWS API reference guide for Amazon Simple Email Service's
3783// API operation SetIdentityHeadersInNotificationsEnabled for usage and error information.
3784// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SetIdentityHeadersInNotificationsEnabled
3785func (c *SES) SetIdentityHeadersInNotificationsEnabled(input *SetIdentityHeadersInNotificationsEnabledInput) (*SetIdentityHeadersInNotificationsEnabledOutput, error) {
3786	req, out := c.SetIdentityHeadersInNotificationsEnabledRequest(input)
3787	return out, req.Send()
3788}
3789
3790// SetIdentityHeadersInNotificationsEnabledWithContext is the same as SetIdentityHeadersInNotificationsEnabled with the addition of
3791// the ability to pass a context and additional request options.
3792//
3793// See SetIdentityHeadersInNotificationsEnabled for details on how to use this API operation.
3794//
3795// The context must be non-nil and will be used for request cancellation. If
3796// the context is nil a panic will occur. In the future the SDK may create
3797// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3798// for more information on using Contexts.
3799func (c *SES) SetIdentityHeadersInNotificationsEnabledWithContext(ctx aws.Context, input *SetIdentityHeadersInNotificationsEnabledInput, opts ...request.Option) (*SetIdentityHeadersInNotificationsEnabledOutput, error) {
3800	req, out := c.SetIdentityHeadersInNotificationsEnabledRequest(input)
3801	req.SetContext(ctx)
3802	req.ApplyOptions(opts...)
3803	return out, req.Send()
3804}
3805
3806const opSetIdentityMailFromDomain = "SetIdentityMailFromDomain"
3807
3808// SetIdentityMailFromDomainRequest generates a "aws/request.Request" representing the
3809// client's request for the SetIdentityMailFromDomain operation. The "output" return
3810// value will be populated with the request's response once the request complets
3811// successfuly.
3812//
3813// Use "Send" method on the returned Request to send the API call to the service.
3814// the "output" return value is not valid until after Send returns without error.
3815//
3816// See SetIdentityMailFromDomain for more information on using the SetIdentityMailFromDomain
3817// API call, and error handling.
3818//
3819// This method is useful when you want to inject custom logic or configuration
3820// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3821//
3822//
3823//    // Example sending a request using the SetIdentityMailFromDomainRequest method.
3824//    req, resp := client.SetIdentityMailFromDomainRequest(params)
3825//
3826//    err := req.Send()
3827//    if err == nil { // resp is now filled
3828//        fmt.Println(resp)
3829//    }
3830//
3831// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SetIdentityMailFromDomain
3832func (c *SES) SetIdentityMailFromDomainRequest(input *SetIdentityMailFromDomainInput) (req *request.Request, output *SetIdentityMailFromDomainOutput) {
3833	op := &request.Operation{
3834		Name:       opSetIdentityMailFromDomain,
3835		HTTPMethod: "POST",
3836		HTTPPath:   "/",
3837	}
3838
3839	if input == nil {
3840		input = &SetIdentityMailFromDomainInput{}
3841	}
3842
3843	output = &SetIdentityMailFromDomainOutput{}
3844	req = c.newRequest(op, input, output)
3845	return
3846}
3847
3848// SetIdentityMailFromDomain API operation for Amazon Simple Email Service.
3849//
3850// Enables or disables the custom MAIL FROM domain setup for a verified identity
3851// (an email address or a domain).
3852//
3853// To send emails using the specified MAIL FROM domain, you must add an MX record
3854// to your MAIL FROM domain's DNS settings. If you want your emails to pass
3855// Sender Policy Framework (SPF) checks, you must also add or update an SPF
3856// record. For more information, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/mail-from-set.html).
3857//
3858// You can execute this operation no more than once per second.
3859//
3860// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3861// with awserr.Error's Code and Message methods to get detailed information about
3862// the error.
3863//
3864// See the AWS API reference guide for Amazon Simple Email Service's
3865// API operation SetIdentityMailFromDomain for usage and error information.
3866// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SetIdentityMailFromDomain
3867func (c *SES) SetIdentityMailFromDomain(input *SetIdentityMailFromDomainInput) (*SetIdentityMailFromDomainOutput, error) {
3868	req, out := c.SetIdentityMailFromDomainRequest(input)
3869	return out, req.Send()
3870}
3871
3872// SetIdentityMailFromDomainWithContext is the same as SetIdentityMailFromDomain with the addition of
3873// the ability to pass a context and additional request options.
3874//
3875// See SetIdentityMailFromDomain for details on how to use this API operation.
3876//
3877// The context must be non-nil and will be used for request cancellation. If
3878// the context is nil a panic will occur. In the future the SDK may create
3879// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3880// for more information on using Contexts.
3881func (c *SES) SetIdentityMailFromDomainWithContext(ctx aws.Context, input *SetIdentityMailFromDomainInput, opts ...request.Option) (*SetIdentityMailFromDomainOutput, error) {
3882	req, out := c.SetIdentityMailFromDomainRequest(input)
3883	req.SetContext(ctx)
3884	req.ApplyOptions(opts...)
3885	return out, req.Send()
3886}
3887
3888const opSetIdentityNotificationTopic = "SetIdentityNotificationTopic"
3889
3890// SetIdentityNotificationTopicRequest generates a "aws/request.Request" representing the
3891// client's request for the SetIdentityNotificationTopic operation. The "output" return
3892// value will be populated with the request's response once the request complets
3893// successfuly.
3894//
3895// Use "Send" method on the returned Request to send the API call to the service.
3896// the "output" return value is not valid until after Send returns without error.
3897//
3898// See SetIdentityNotificationTopic for more information on using the SetIdentityNotificationTopic
3899// API call, and error handling.
3900//
3901// This method is useful when you want to inject custom logic or configuration
3902// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3903//
3904//
3905//    // Example sending a request using the SetIdentityNotificationTopicRequest method.
3906//    req, resp := client.SetIdentityNotificationTopicRequest(params)
3907//
3908//    err := req.Send()
3909//    if err == nil { // resp is now filled
3910//        fmt.Println(resp)
3911//    }
3912//
3913// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SetIdentityNotificationTopic
3914func (c *SES) SetIdentityNotificationTopicRequest(input *SetIdentityNotificationTopicInput) (req *request.Request, output *SetIdentityNotificationTopicOutput) {
3915	op := &request.Operation{
3916		Name:       opSetIdentityNotificationTopic,
3917		HTTPMethod: "POST",
3918		HTTPPath:   "/",
3919	}
3920
3921	if input == nil {
3922		input = &SetIdentityNotificationTopicInput{}
3923	}
3924
3925	output = &SetIdentityNotificationTopicOutput{}
3926	req = c.newRequest(op, input, output)
3927	return
3928}
3929
3930// SetIdentityNotificationTopic API operation for Amazon Simple Email Service.
3931//
3932// Given an identity (an email address or a domain), sets the Amazon Simple
3933// Notification Service (Amazon SNS) topic to which Amazon SES will publish
3934// bounce, complaint, and/or delivery notifications for emails sent with that
3935// identity as the Source.
3936//
3937// Unless feedback forwarding is enabled, you must specify Amazon SNS topics
3938// for bounce and complaint notifications. For more information, see SetIdentityFeedbackForwardingEnabled.
3939//
3940// You can execute this operation no more than once per second.
3941//
3942// For more information about feedback notification, see the Amazon SES Developer
3943// Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/notifications.html).
3944//
3945// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3946// with awserr.Error's Code and Message methods to get detailed information about
3947// the error.
3948//
3949// See the AWS API reference guide for Amazon Simple Email Service's
3950// API operation SetIdentityNotificationTopic for usage and error information.
3951// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SetIdentityNotificationTopic
3952func (c *SES) SetIdentityNotificationTopic(input *SetIdentityNotificationTopicInput) (*SetIdentityNotificationTopicOutput, error) {
3953	req, out := c.SetIdentityNotificationTopicRequest(input)
3954	return out, req.Send()
3955}
3956
3957// SetIdentityNotificationTopicWithContext is the same as SetIdentityNotificationTopic with the addition of
3958// the ability to pass a context and additional request options.
3959//
3960// See SetIdentityNotificationTopic for details on how to use this API operation.
3961//
3962// The context must be non-nil and will be used for request cancellation. If
3963// the context is nil a panic will occur. In the future the SDK may create
3964// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3965// for more information on using Contexts.
3966func (c *SES) SetIdentityNotificationTopicWithContext(ctx aws.Context, input *SetIdentityNotificationTopicInput, opts ...request.Option) (*SetIdentityNotificationTopicOutput, error) {
3967	req, out := c.SetIdentityNotificationTopicRequest(input)
3968	req.SetContext(ctx)
3969	req.ApplyOptions(opts...)
3970	return out, req.Send()
3971}
3972
3973const opSetReceiptRulePosition = "SetReceiptRulePosition"
3974
3975// SetReceiptRulePositionRequest generates a "aws/request.Request" representing the
3976// client's request for the SetReceiptRulePosition operation. The "output" return
3977// value will be populated with the request's response once the request complets
3978// successfuly.
3979//
3980// Use "Send" method on the returned Request to send the API call to the service.
3981// the "output" return value is not valid until after Send returns without error.
3982//
3983// See SetReceiptRulePosition for more information on using the SetReceiptRulePosition
3984// API call, and error handling.
3985//
3986// This method is useful when you want to inject custom logic or configuration
3987// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3988//
3989//
3990//    // Example sending a request using the SetReceiptRulePositionRequest method.
3991//    req, resp := client.SetReceiptRulePositionRequest(params)
3992//
3993//    err := req.Send()
3994//    if err == nil { // resp is now filled
3995//        fmt.Println(resp)
3996//    }
3997//
3998// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SetReceiptRulePosition
3999func (c *SES) SetReceiptRulePositionRequest(input *SetReceiptRulePositionInput) (req *request.Request, output *SetReceiptRulePositionOutput) {
4000	op := &request.Operation{
4001		Name:       opSetReceiptRulePosition,
4002		HTTPMethod: "POST",
4003		HTTPPath:   "/",
4004	}
4005
4006	if input == nil {
4007		input = &SetReceiptRulePositionInput{}
4008	}
4009
4010	output = &SetReceiptRulePositionOutput{}
4011	req = c.newRequest(op, input, output)
4012	return
4013}
4014
4015// SetReceiptRulePosition API operation for Amazon Simple Email Service.
4016//
4017// Sets the position of the specified receipt rule in the receipt rule set.
4018//
4019// For information about managing receipt rules, see the Amazon SES Developer
4020// Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-managing-receipt-rules.html).
4021//
4022// You can execute this operation no more than once per second.
4023//
4024// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4025// with awserr.Error's Code and Message methods to get detailed information about
4026// the error.
4027//
4028// See the AWS API reference guide for Amazon Simple Email Service's
4029// API operation SetReceiptRulePosition for usage and error information.
4030//
4031// Returned Error Codes:
4032//   * ErrCodeRuleSetDoesNotExistException "RuleSetDoesNotExist"
4033//   Indicates that the provided receipt rule set does not exist.
4034//
4035//   * ErrCodeRuleDoesNotExistException "RuleDoesNotExist"
4036//   Indicates that the provided receipt rule does not exist.
4037//
4038// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SetReceiptRulePosition
4039func (c *SES) SetReceiptRulePosition(input *SetReceiptRulePositionInput) (*SetReceiptRulePositionOutput, error) {
4040	req, out := c.SetReceiptRulePositionRequest(input)
4041	return out, req.Send()
4042}
4043
4044// SetReceiptRulePositionWithContext is the same as SetReceiptRulePosition with the addition of
4045// the ability to pass a context and additional request options.
4046//
4047// See SetReceiptRulePosition for details on how to use this API operation.
4048//
4049// The context must be non-nil and will be used for request cancellation. If
4050// the context is nil a panic will occur. In the future the SDK may create
4051// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4052// for more information on using Contexts.
4053func (c *SES) SetReceiptRulePositionWithContext(ctx aws.Context, input *SetReceiptRulePositionInput, opts ...request.Option) (*SetReceiptRulePositionOutput, error) {
4054	req, out := c.SetReceiptRulePositionRequest(input)
4055	req.SetContext(ctx)
4056	req.ApplyOptions(opts...)
4057	return out, req.Send()
4058}
4059
4060const opUpdateConfigurationSetEventDestination = "UpdateConfigurationSetEventDestination"
4061
4062// UpdateConfigurationSetEventDestinationRequest generates a "aws/request.Request" representing the
4063// client's request for the UpdateConfigurationSetEventDestination operation. The "output" return
4064// value will be populated with the request's response once the request complets
4065// successfuly.
4066//
4067// Use "Send" method on the returned Request to send the API call to the service.
4068// the "output" return value is not valid until after Send returns without error.
4069//
4070// See UpdateConfigurationSetEventDestination for more information on using the UpdateConfigurationSetEventDestination
4071// API call, and error handling.
4072//
4073// This method is useful when you want to inject custom logic or configuration
4074// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4075//
4076//
4077//    // Example sending a request using the UpdateConfigurationSetEventDestinationRequest method.
4078//    req, resp := client.UpdateConfigurationSetEventDestinationRequest(params)
4079//
4080//    err := req.Send()
4081//    if err == nil { // resp is now filled
4082//        fmt.Println(resp)
4083//    }
4084//
4085// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/UpdateConfigurationSetEventDestination
4086func (c *SES) UpdateConfigurationSetEventDestinationRequest(input *UpdateConfigurationSetEventDestinationInput) (req *request.Request, output *UpdateConfigurationSetEventDestinationOutput) {
4087	op := &request.Operation{
4088		Name:       opUpdateConfigurationSetEventDestination,
4089		HTTPMethod: "POST",
4090		HTTPPath:   "/",
4091	}
4092
4093	if input == nil {
4094		input = &UpdateConfigurationSetEventDestinationInput{}
4095	}
4096
4097	output = &UpdateConfigurationSetEventDestinationOutput{}
4098	req = c.newRequest(op, input, output)
4099	return
4100}
4101
4102// UpdateConfigurationSetEventDestination API operation for Amazon Simple Email Service.
4103//
4104// Updates the event destination of a configuration set. Event destinations
4105// are associated with configuration sets, which enable you to publish email
4106// sending events to Amazon CloudWatch, Amazon Kinesis Firehose, or Amazon Simple
4107// Notification Service (Amazon SNS). For information about using configuration
4108// sets, see Monitoring Your Amazon SES Sending Activity (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html)
4109// in the Amazon SES Developer Guide.
4110//
4111// When you create or update an event destination, you must provide one, and
4112// only one, destination. The destination can be Amazon CloudWatch, Amazon Kinesis
4113// Firehose, or Amazon Simple Notification Service (Amazon SNS).
4114//
4115// You can execute this operation no more than once per second.
4116//
4117// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4118// with awserr.Error's Code and Message methods to get detailed information about
4119// the error.
4120//
4121// See the AWS API reference guide for Amazon Simple Email Service's
4122// API operation UpdateConfigurationSetEventDestination for usage and error information.
4123//
4124// Returned Error Codes:
4125//   * ErrCodeConfigurationSetDoesNotExistException "ConfigurationSetDoesNotExist"
4126//   Indicates that the configuration set does not exist.
4127//
4128//   * ErrCodeEventDestinationDoesNotExistException "EventDestinationDoesNotExist"
4129//   Indicates that the event destination does not exist.
4130//
4131//   * ErrCodeInvalidCloudWatchDestinationException "InvalidCloudWatchDestination"
4132//   Indicates that the Amazon CloudWatch destination is invalid. See the error
4133//   message for details.
4134//
4135//   * ErrCodeInvalidFirehoseDestinationException "InvalidFirehoseDestination"
4136//   Indicates that the Amazon Kinesis Firehose destination is invalid. See the
4137//   error message for details.
4138//
4139//   * ErrCodeInvalidSNSDestinationException "InvalidSNSDestination"
4140//   Indicates that the Amazon Simple Notification Service (Amazon SNS) destination
4141//   is invalid. See the error message for details.
4142//
4143// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/UpdateConfigurationSetEventDestination
4144func (c *SES) UpdateConfigurationSetEventDestination(input *UpdateConfigurationSetEventDestinationInput) (*UpdateConfigurationSetEventDestinationOutput, error) {
4145	req, out := c.UpdateConfigurationSetEventDestinationRequest(input)
4146	return out, req.Send()
4147}
4148
4149// UpdateConfigurationSetEventDestinationWithContext is the same as UpdateConfigurationSetEventDestination with the addition of
4150// the ability to pass a context and additional request options.
4151//
4152// See UpdateConfigurationSetEventDestination for details on how to use this API operation.
4153//
4154// The context must be non-nil and will be used for request cancellation. If
4155// the context is nil a panic will occur. In the future the SDK may create
4156// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4157// for more information on using Contexts.
4158func (c *SES) UpdateConfigurationSetEventDestinationWithContext(ctx aws.Context, input *UpdateConfigurationSetEventDestinationInput, opts ...request.Option) (*UpdateConfigurationSetEventDestinationOutput, error) {
4159	req, out := c.UpdateConfigurationSetEventDestinationRequest(input)
4160	req.SetContext(ctx)
4161	req.ApplyOptions(opts...)
4162	return out, req.Send()
4163}
4164
4165const opUpdateConfigurationSetTrackingOptions = "UpdateConfigurationSetTrackingOptions"
4166
4167// UpdateConfigurationSetTrackingOptionsRequest generates a "aws/request.Request" representing the
4168// client's request for the UpdateConfigurationSetTrackingOptions operation. The "output" return
4169// value will be populated with the request's response once the request complets
4170// successfuly.
4171//
4172// Use "Send" method on the returned Request to send the API call to the service.
4173// the "output" return value is not valid until after Send returns without error.
4174//
4175// See UpdateConfigurationSetTrackingOptions for more information on using the UpdateConfigurationSetTrackingOptions
4176// API call, and error handling.
4177//
4178// This method is useful when you want to inject custom logic or configuration
4179// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4180//
4181//
4182//    // Example sending a request using the UpdateConfigurationSetTrackingOptionsRequest method.
4183//    req, resp := client.UpdateConfigurationSetTrackingOptionsRequest(params)
4184//
4185//    err := req.Send()
4186//    if err == nil { // resp is now filled
4187//        fmt.Println(resp)
4188//    }
4189//
4190// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/UpdateConfigurationSetTrackingOptions
4191func (c *SES) UpdateConfigurationSetTrackingOptionsRequest(input *UpdateConfigurationSetTrackingOptionsInput) (req *request.Request, output *UpdateConfigurationSetTrackingOptionsOutput) {
4192	op := &request.Operation{
4193		Name:       opUpdateConfigurationSetTrackingOptions,
4194		HTTPMethod: "POST",
4195		HTTPPath:   "/",
4196	}
4197
4198	if input == nil {
4199		input = &UpdateConfigurationSetTrackingOptionsInput{}
4200	}
4201
4202	output = &UpdateConfigurationSetTrackingOptionsOutput{}
4203	req = c.newRequest(op, input, output)
4204	return
4205}
4206
4207// UpdateConfigurationSetTrackingOptions API operation for Amazon Simple Email Service.
4208//
4209// Modifies an association between a configuration set and a custom domain for
4210// open and click event tracking.
4211//
4212// By default, images and links used for tracking open and click events are
4213// hosted on domains operated by Amazon SES. You can configure a subdomain of
4214// your own to handle these events by redirecting them to the Amazon SES-operated
4215// domain. For information about using configuration sets, see Configuring Custom
4216// Domains to Handle Open and Click Tracking (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/configure-custom-open-click-domains.html)
4217// in the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/Welcome.html).
4218//
4219// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4220// with awserr.Error's Code and Message methods to get detailed information about
4221// the error.
4222//
4223// See the AWS API reference guide for Amazon Simple Email Service's
4224// API operation UpdateConfigurationSetTrackingOptions for usage and error information.
4225//
4226// Returned Error Codes:
4227//   * ErrCodeConfigurationSetDoesNotExistException "ConfigurationSetDoesNotExist"
4228//   Indicates that the configuration set does not exist.
4229//
4230//   * ErrCodeTrackingOptionsDoesNotExistException "TrackingOptionsDoesNotExistException"
4231//   Indicates that the TrackingOptions object you specified does not exist.
4232//
4233//   * ErrCodeInvalidTrackingOptionsException "InvalidTrackingOptions"
4234//   Indicates that the custom domain to be used for open and click tracking redirects
4235//   is invalid. This error appears most often in the following situations:
4236//
4237//      * When the tracking domain you specified is not verified in Amazon SES.
4238//
4239//      * When the tracking domain you specified is not a valid domain or subdomain.
4240//
4241// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/UpdateConfigurationSetTrackingOptions
4242func (c *SES) UpdateConfigurationSetTrackingOptions(input *UpdateConfigurationSetTrackingOptionsInput) (*UpdateConfigurationSetTrackingOptionsOutput, error) {
4243	req, out := c.UpdateConfigurationSetTrackingOptionsRequest(input)
4244	return out, req.Send()
4245}
4246
4247// UpdateConfigurationSetTrackingOptionsWithContext is the same as UpdateConfigurationSetTrackingOptions with the addition of
4248// the ability to pass a context and additional request options.
4249//
4250// See UpdateConfigurationSetTrackingOptions for details on how to use this API operation.
4251//
4252// The context must be non-nil and will be used for request cancellation. If
4253// the context is nil a panic will occur. In the future the SDK may create
4254// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4255// for more information on using Contexts.
4256func (c *SES) UpdateConfigurationSetTrackingOptionsWithContext(ctx aws.Context, input *UpdateConfigurationSetTrackingOptionsInput, opts ...request.Option) (*UpdateConfigurationSetTrackingOptionsOutput, error) {
4257	req, out := c.UpdateConfigurationSetTrackingOptionsRequest(input)
4258	req.SetContext(ctx)
4259	req.ApplyOptions(opts...)
4260	return out, req.Send()
4261}
4262
4263const opUpdateReceiptRule = "UpdateReceiptRule"
4264
4265// UpdateReceiptRuleRequest generates a "aws/request.Request" representing the
4266// client's request for the UpdateReceiptRule operation. The "output" return
4267// value will be populated with the request's response once the request complets
4268// successfuly.
4269//
4270// Use "Send" method on the returned Request to send the API call to the service.
4271// the "output" return value is not valid until after Send returns without error.
4272//
4273// See UpdateReceiptRule for more information on using the UpdateReceiptRule
4274// API call, and error handling.
4275//
4276// This method is useful when you want to inject custom logic or configuration
4277// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4278//
4279//
4280//    // Example sending a request using the UpdateReceiptRuleRequest method.
4281//    req, resp := client.UpdateReceiptRuleRequest(params)
4282//
4283//    err := req.Send()
4284//    if err == nil { // resp is now filled
4285//        fmt.Println(resp)
4286//    }
4287//
4288// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/UpdateReceiptRule
4289func (c *SES) UpdateReceiptRuleRequest(input *UpdateReceiptRuleInput) (req *request.Request, output *UpdateReceiptRuleOutput) {
4290	op := &request.Operation{
4291		Name:       opUpdateReceiptRule,
4292		HTTPMethod: "POST",
4293		HTTPPath:   "/",
4294	}
4295
4296	if input == nil {
4297		input = &UpdateReceiptRuleInput{}
4298	}
4299
4300	output = &UpdateReceiptRuleOutput{}
4301	req = c.newRequest(op, input, output)
4302	return
4303}
4304
4305// UpdateReceiptRule API operation for Amazon Simple Email Service.
4306//
4307// Updates a receipt rule.
4308//
4309// For information about managing receipt rules, see the Amazon SES Developer
4310// Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-managing-receipt-rules.html).
4311//
4312// You can execute this operation no more than once per second.
4313//
4314// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4315// with awserr.Error's Code and Message methods to get detailed information about
4316// the error.
4317//
4318// See the AWS API reference guide for Amazon Simple Email Service's
4319// API operation UpdateReceiptRule for usage and error information.
4320//
4321// Returned Error Codes:
4322//   * ErrCodeInvalidSnsTopicException "InvalidSnsTopic"
4323//   Indicates that the provided Amazon SNS topic is invalid, or that Amazon SES
4324//   could not publish to the topic, possibly due to permissions issues. For information
4325//   about giving permissions, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-permissions.html).
4326//
4327//   * ErrCodeInvalidS3ConfigurationException "InvalidS3Configuration"
4328//   Indicates that the provided Amazon S3 bucket or AWS KMS encryption key is
4329//   invalid, or that Amazon SES could not publish to the bucket, possibly due
4330//   to permissions issues. For information about giving permissions, see the
4331//   Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-permissions.html).
4332//
4333//   * ErrCodeInvalidLambdaFunctionException "InvalidLambdaFunction"
4334//   Indicates that the provided AWS Lambda function is invalid, or that Amazon
4335//   SES could not execute the provided function, possibly due to permissions
4336//   issues. For information about giving permissions, see the Amazon SES Developer
4337//   Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-permissions.html).
4338//
4339//   * ErrCodeRuleSetDoesNotExistException "RuleSetDoesNotExist"
4340//   Indicates that the provided receipt rule set does not exist.
4341//
4342//   * ErrCodeRuleDoesNotExistException "RuleDoesNotExist"
4343//   Indicates that the provided receipt rule does not exist.
4344//
4345//   * ErrCodeLimitExceededException "LimitExceeded"
4346//   Indicates that a resource could not be created because of service limits.
4347//   For a list of Amazon SES limits, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/limits.html).
4348//
4349// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/UpdateReceiptRule
4350func (c *SES) UpdateReceiptRule(input *UpdateReceiptRuleInput) (*UpdateReceiptRuleOutput, error) {
4351	req, out := c.UpdateReceiptRuleRequest(input)
4352	return out, req.Send()
4353}
4354
4355// UpdateReceiptRuleWithContext is the same as UpdateReceiptRule with the addition of
4356// the ability to pass a context and additional request options.
4357//
4358// See UpdateReceiptRule for details on how to use this API operation.
4359//
4360// The context must be non-nil and will be used for request cancellation. If
4361// the context is nil a panic will occur. In the future the SDK may create
4362// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4363// for more information on using Contexts.
4364func (c *SES) UpdateReceiptRuleWithContext(ctx aws.Context, input *UpdateReceiptRuleInput, opts ...request.Option) (*UpdateReceiptRuleOutput, error) {
4365	req, out := c.UpdateReceiptRuleRequest(input)
4366	req.SetContext(ctx)
4367	req.ApplyOptions(opts...)
4368	return out, req.Send()
4369}
4370
4371const opVerifyDomainDkim = "VerifyDomainDkim"
4372
4373// VerifyDomainDkimRequest generates a "aws/request.Request" representing the
4374// client's request for the VerifyDomainDkim operation. The "output" return
4375// value will be populated with the request's response once the request complets
4376// successfuly.
4377//
4378// Use "Send" method on the returned Request to send the API call to the service.
4379// the "output" return value is not valid until after Send returns without error.
4380//
4381// See VerifyDomainDkim for more information on using the VerifyDomainDkim
4382// API call, and error handling.
4383//
4384// This method is useful when you want to inject custom logic or configuration
4385// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4386//
4387//
4388//    // Example sending a request using the VerifyDomainDkimRequest method.
4389//    req, resp := client.VerifyDomainDkimRequest(params)
4390//
4391//    err := req.Send()
4392//    if err == nil { // resp is now filled
4393//        fmt.Println(resp)
4394//    }
4395//
4396// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/VerifyDomainDkim
4397func (c *SES) VerifyDomainDkimRequest(input *VerifyDomainDkimInput) (req *request.Request, output *VerifyDomainDkimOutput) {
4398	op := &request.Operation{
4399		Name:       opVerifyDomainDkim,
4400		HTTPMethod: "POST",
4401		HTTPPath:   "/",
4402	}
4403
4404	if input == nil {
4405		input = &VerifyDomainDkimInput{}
4406	}
4407
4408	output = &VerifyDomainDkimOutput{}
4409	req = c.newRequest(op, input, output)
4410	return
4411}
4412
4413// VerifyDomainDkim API operation for Amazon Simple Email Service.
4414//
4415// Returns a set of DKIM tokens for a domain. DKIM tokens are character strings
4416// that represent your domain's identity. Using these tokens, you will need
4417// to create DNS CNAME records that point to DKIM public keys hosted by Amazon
4418// SES. Amazon Web Services will eventually detect that you have updated your
4419// DNS records; this detection process may take up to 72 hours. Upon successful
4420// detection, Amazon SES will be able to DKIM-sign email originating from that
4421// domain.
4422//
4423// You can execute this operation no more than once per second.
4424//
4425// To enable or disable Easy DKIM signing for a domain, use the SetIdentityDkimEnabled
4426// operation.
4427//
4428// For more information about creating DNS records using DKIM tokens, go to
4429// the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim-dns-records.html).
4430//
4431// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4432// with awserr.Error's Code and Message methods to get detailed information about
4433// the error.
4434//
4435// See the AWS API reference guide for Amazon Simple Email Service's
4436// API operation VerifyDomainDkim for usage and error information.
4437// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/VerifyDomainDkim
4438func (c *SES) VerifyDomainDkim(input *VerifyDomainDkimInput) (*VerifyDomainDkimOutput, error) {
4439	req, out := c.VerifyDomainDkimRequest(input)
4440	return out, req.Send()
4441}
4442
4443// VerifyDomainDkimWithContext is the same as VerifyDomainDkim with the addition of
4444// the ability to pass a context and additional request options.
4445//
4446// See VerifyDomainDkim for details on how to use this API operation.
4447//
4448// The context must be non-nil and will be used for request cancellation. If
4449// the context is nil a panic will occur. In the future the SDK may create
4450// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4451// for more information on using Contexts.
4452func (c *SES) VerifyDomainDkimWithContext(ctx aws.Context, input *VerifyDomainDkimInput, opts ...request.Option) (*VerifyDomainDkimOutput, error) {
4453	req, out := c.VerifyDomainDkimRequest(input)
4454	req.SetContext(ctx)
4455	req.ApplyOptions(opts...)
4456	return out, req.Send()
4457}
4458
4459const opVerifyDomainIdentity = "VerifyDomainIdentity"
4460
4461// VerifyDomainIdentityRequest generates a "aws/request.Request" representing the
4462// client's request for the VerifyDomainIdentity operation. The "output" return
4463// value will be populated with the request's response once the request complets
4464// successfuly.
4465//
4466// Use "Send" method on the returned Request to send the API call to the service.
4467// the "output" return value is not valid until after Send returns without error.
4468//
4469// See VerifyDomainIdentity for more information on using the VerifyDomainIdentity
4470// API call, and error handling.
4471//
4472// This method is useful when you want to inject custom logic or configuration
4473// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4474//
4475//
4476//    // Example sending a request using the VerifyDomainIdentityRequest method.
4477//    req, resp := client.VerifyDomainIdentityRequest(params)
4478//
4479//    err := req.Send()
4480//    if err == nil { // resp is now filled
4481//        fmt.Println(resp)
4482//    }
4483//
4484// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/VerifyDomainIdentity
4485func (c *SES) VerifyDomainIdentityRequest(input *VerifyDomainIdentityInput) (req *request.Request, output *VerifyDomainIdentityOutput) {
4486	op := &request.Operation{
4487		Name:       opVerifyDomainIdentity,
4488		HTTPMethod: "POST",
4489		HTTPPath:   "/",
4490	}
4491
4492	if input == nil {
4493		input = &VerifyDomainIdentityInput{}
4494	}
4495
4496	output = &VerifyDomainIdentityOutput{}
4497	req = c.newRequest(op, input, output)
4498	return
4499}
4500
4501// VerifyDomainIdentity API operation for Amazon Simple Email Service.
4502//
4503// Adds a domain to the list of identities for your Amazon SES account and attempts
4504// to verify it. For more information about verifying domains, see Verifying
4505// Email Addresses and Domains (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-addresses-and-domains.html)
4506// in the Amazon SES Developer Guide.
4507//
4508// You can execute this operation no more than once per second.
4509//
4510// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4511// with awserr.Error's Code and Message methods to get detailed information about
4512// the error.
4513//
4514// See the AWS API reference guide for Amazon Simple Email Service's
4515// API operation VerifyDomainIdentity for usage and error information.
4516// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/VerifyDomainIdentity
4517func (c *SES) VerifyDomainIdentity(input *VerifyDomainIdentityInput) (*VerifyDomainIdentityOutput, error) {
4518	req, out := c.VerifyDomainIdentityRequest(input)
4519	return out, req.Send()
4520}
4521
4522// VerifyDomainIdentityWithContext is the same as VerifyDomainIdentity with the addition of
4523// the ability to pass a context and additional request options.
4524//
4525// See VerifyDomainIdentity for details on how to use this API operation.
4526//
4527// The context must be non-nil and will be used for request cancellation. If
4528// the context is nil a panic will occur. In the future the SDK may create
4529// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4530// for more information on using Contexts.
4531func (c *SES) VerifyDomainIdentityWithContext(ctx aws.Context, input *VerifyDomainIdentityInput, opts ...request.Option) (*VerifyDomainIdentityOutput, error) {
4532	req, out := c.VerifyDomainIdentityRequest(input)
4533	req.SetContext(ctx)
4534	req.ApplyOptions(opts...)
4535	return out, req.Send()
4536}
4537
4538const opVerifyEmailAddress = "VerifyEmailAddress"
4539
4540// VerifyEmailAddressRequest generates a "aws/request.Request" representing the
4541// client's request for the VerifyEmailAddress operation. The "output" return
4542// value will be populated with the request's response once the request complets
4543// successfuly.
4544//
4545// Use "Send" method on the returned Request to send the API call to the service.
4546// the "output" return value is not valid until after Send returns without error.
4547//
4548// See VerifyEmailAddress for more information on using the VerifyEmailAddress
4549// API call, and error handling.
4550//
4551// This method is useful when you want to inject custom logic or configuration
4552// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4553//
4554//
4555//    // Example sending a request using the VerifyEmailAddressRequest method.
4556//    req, resp := client.VerifyEmailAddressRequest(params)
4557//
4558//    err := req.Send()
4559//    if err == nil { // resp is now filled
4560//        fmt.Println(resp)
4561//    }
4562//
4563// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/VerifyEmailAddress
4564func (c *SES) VerifyEmailAddressRequest(input *VerifyEmailAddressInput) (req *request.Request, output *VerifyEmailAddressOutput) {
4565	op := &request.Operation{
4566		Name:       opVerifyEmailAddress,
4567		HTTPMethod: "POST",
4568		HTTPPath:   "/",
4569	}
4570
4571	if input == nil {
4572		input = &VerifyEmailAddressInput{}
4573	}
4574
4575	output = &VerifyEmailAddressOutput{}
4576	req = c.newRequest(op, input, output)
4577	req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
4578	req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
4579	return
4580}
4581
4582// VerifyEmailAddress API operation for Amazon Simple Email Service.
4583//
4584// Deprecated. Use the VerifyEmailIdentity operation to verify a new email address.
4585//
4586// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4587// with awserr.Error's Code and Message methods to get detailed information about
4588// the error.
4589//
4590// See the AWS API reference guide for Amazon Simple Email Service's
4591// API operation VerifyEmailAddress for usage and error information.
4592// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/VerifyEmailAddress
4593func (c *SES) VerifyEmailAddress(input *VerifyEmailAddressInput) (*VerifyEmailAddressOutput, error) {
4594	req, out := c.VerifyEmailAddressRequest(input)
4595	return out, req.Send()
4596}
4597
4598// VerifyEmailAddressWithContext is the same as VerifyEmailAddress with the addition of
4599// the ability to pass a context and additional request options.
4600//
4601// See VerifyEmailAddress for details on how to use this API operation.
4602//
4603// The context must be non-nil and will be used for request cancellation. If
4604// the context is nil a panic will occur. In the future the SDK may create
4605// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4606// for more information on using Contexts.
4607func (c *SES) VerifyEmailAddressWithContext(ctx aws.Context, input *VerifyEmailAddressInput, opts ...request.Option) (*VerifyEmailAddressOutput, error) {
4608	req, out := c.VerifyEmailAddressRequest(input)
4609	req.SetContext(ctx)
4610	req.ApplyOptions(opts...)
4611	return out, req.Send()
4612}
4613
4614const opVerifyEmailIdentity = "VerifyEmailIdentity"
4615
4616// VerifyEmailIdentityRequest generates a "aws/request.Request" representing the
4617// client's request for the VerifyEmailIdentity operation. The "output" return
4618// value will be populated with the request's response once the request complets
4619// successfuly.
4620//
4621// Use "Send" method on the returned Request to send the API call to the service.
4622// the "output" return value is not valid until after Send returns without error.
4623//
4624// See VerifyEmailIdentity for more information on using the VerifyEmailIdentity
4625// API call, and error handling.
4626//
4627// This method is useful when you want to inject custom logic or configuration
4628// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4629//
4630//
4631//    // Example sending a request using the VerifyEmailIdentityRequest method.
4632//    req, resp := client.VerifyEmailIdentityRequest(params)
4633//
4634//    err := req.Send()
4635//    if err == nil { // resp is now filled
4636//        fmt.Println(resp)
4637//    }
4638//
4639// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/VerifyEmailIdentity
4640func (c *SES) VerifyEmailIdentityRequest(input *VerifyEmailIdentityInput) (req *request.Request, output *VerifyEmailIdentityOutput) {
4641	op := &request.Operation{
4642		Name:       opVerifyEmailIdentity,
4643		HTTPMethod: "POST",
4644		HTTPPath:   "/",
4645	}
4646
4647	if input == nil {
4648		input = &VerifyEmailIdentityInput{}
4649	}
4650
4651	output = &VerifyEmailIdentityOutput{}
4652	req = c.newRequest(op, input, output)
4653	return
4654}
4655
4656// VerifyEmailIdentity API operation for Amazon Simple Email Service.
4657//
4658// Adds an email address to the list of identities for your Amazon SES account
4659// and attempts to verify it. This operation causes a confirmation email message
4660// to be sent to the specified address.
4661//
4662// You can execute this operation no more than once per second.
4663//
4664// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4665// with awserr.Error's Code and Message methods to get detailed information about
4666// the error.
4667//
4668// See the AWS API reference guide for Amazon Simple Email Service's
4669// API operation VerifyEmailIdentity for usage and error information.
4670// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/VerifyEmailIdentity
4671func (c *SES) VerifyEmailIdentity(input *VerifyEmailIdentityInput) (*VerifyEmailIdentityOutput, error) {
4672	req, out := c.VerifyEmailIdentityRequest(input)
4673	return out, req.Send()
4674}
4675
4676// VerifyEmailIdentityWithContext is the same as VerifyEmailIdentity with the addition of
4677// the ability to pass a context and additional request options.
4678//
4679// See VerifyEmailIdentity for details on how to use this API operation.
4680//
4681// The context must be non-nil and will be used for request cancellation. If
4682// the context is nil a panic will occur. In the future the SDK may create
4683// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4684// for more information on using Contexts.
4685func (c *SES) VerifyEmailIdentityWithContext(ctx aws.Context, input *VerifyEmailIdentityInput, opts ...request.Option) (*VerifyEmailIdentityOutput, error) {
4686	req, out := c.VerifyEmailIdentityRequest(input)
4687	req.SetContext(ctx)
4688	req.ApplyOptions(opts...)
4689	return out, req.Send()
4690}
4691
4692// When included in a receipt rule, this action adds a header to the received
4693// email.
4694//
4695// For information about adding a header using a receipt rule, see the Amazon
4696// SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-action-add-header.html).
4697// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/AddHeaderAction
4698type AddHeaderAction struct {
4699	_ struct{} `type:"structure"`
4700
4701	// The name of the header to add. Must be between 1 and 50 characters, inclusive,
4702	// and consist of alphanumeric (a-z, A-Z, 0-9) characters and dashes only.
4703	//
4704	// HeaderName is a required field
4705	HeaderName *string `type:"string" required:"true"`
4706
4707	// Must be less than 2048 characters, and must not contain newline characters
4708	// ("\r" or "\n").
4709	//
4710	// HeaderValue is a required field
4711	HeaderValue *string `type:"string" required:"true"`
4712}
4713
4714// String returns the string representation
4715func (s AddHeaderAction) String() string {
4716	return awsutil.Prettify(s)
4717}
4718
4719// GoString returns the string representation
4720func (s AddHeaderAction) GoString() string {
4721	return s.String()
4722}
4723
4724// Validate inspects the fields of the type to determine if they are valid.
4725func (s *AddHeaderAction) Validate() error {
4726	invalidParams := request.ErrInvalidParams{Context: "AddHeaderAction"}
4727	if s.HeaderName == nil {
4728		invalidParams.Add(request.NewErrParamRequired("HeaderName"))
4729	}
4730	if s.HeaderValue == nil {
4731		invalidParams.Add(request.NewErrParamRequired("HeaderValue"))
4732	}
4733
4734	if invalidParams.Len() > 0 {
4735		return invalidParams
4736	}
4737	return nil
4738}
4739
4740// SetHeaderName sets the HeaderName field's value.
4741func (s *AddHeaderAction) SetHeaderName(v string) *AddHeaderAction {
4742	s.HeaderName = &v
4743	return s
4744}
4745
4746// SetHeaderValue sets the HeaderValue field's value.
4747func (s *AddHeaderAction) SetHeaderValue(v string) *AddHeaderAction {
4748	s.HeaderValue = &v
4749	return s
4750}
4751
4752// Represents the body of the message. You can specify text, HTML, or both.
4753// If you use both, then the message should display correctly in the widest
4754// variety of email clients.
4755// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/Body
4756type Body struct {
4757	_ struct{} `type:"structure"`
4758
4759	// The content of the message, in HTML format. Use this for email clients that
4760	// can process HTML. You can include clickable links, formatted text, and much
4761	// more in an HTML message.
4762	Html *Content `type:"structure"`
4763
4764	// The content of the message, in text format. Use this for text-based email
4765	// clients, or clients on high-latency networks (such as mobile devices).
4766	Text *Content `type:"structure"`
4767}
4768
4769// String returns the string representation
4770func (s Body) String() string {
4771	return awsutil.Prettify(s)
4772}
4773
4774// GoString returns the string representation
4775func (s Body) GoString() string {
4776	return s.String()
4777}
4778
4779// Validate inspects the fields of the type to determine if they are valid.
4780func (s *Body) Validate() error {
4781	invalidParams := request.ErrInvalidParams{Context: "Body"}
4782	if s.Html != nil {
4783		if err := s.Html.Validate(); err != nil {
4784			invalidParams.AddNested("Html", err.(request.ErrInvalidParams))
4785		}
4786	}
4787	if s.Text != nil {
4788		if err := s.Text.Validate(); err != nil {
4789			invalidParams.AddNested("Text", err.(request.ErrInvalidParams))
4790		}
4791	}
4792
4793	if invalidParams.Len() > 0 {
4794		return invalidParams
4795	}
4796	return nil
4797}
4798
4799// SetHtml sets the Html field's value.
4800func (s *Body) SetHtml(v *Content) *Body {
4801	s.Html = v
4802	return s
4803}
4804
4805// SetText sets the Text field's value.
4806func (s *Body) SetText(v *Content) *Body {
4807	s.Text = v
4808	return s
4809}
4810
4811// When included in a receipt rule, this action rejects the received email by
4812// returning a bounce response to the sender and, optionally, publishes a notification
4813// to Amazon Simple Notification Service (Amazon SNS).
4814//
4815// For information about sending a bounce message in response to a received
4816// email, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-action-bounce.html).
4817// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/BounceAction
4818type BounceAction struct {
4819	_ struct{} `type:"structure"`
4820
4821	// Human-readable text to include in the bounce message.
4822	//
4823	// Message is a required field
4824	Message *string `type:"string" required:"true"`
4825
4826	// The email address of the sender of the bounced email. This is the address
4827	// from which the bounce message will be sent.
4828	//
4829	// Sender is a required field
4830	Sender *string `type:"string" required:"true"`
4831
4832	// The SMTP reply code, as defined by RFC 5321 (https://tools.ietf.org/html/rfc5321).
4833	//
4834	// SmtpReplyCode is a required field
4835	SmtpReplyCode *string `type:"string" required:"true"`
4836
4837	// The SMTP enhanced status code, as defined by RFC 3463 (https://tools.ietf.org/html/rfc3463).
4838	StatusCode *string `type:"string"`
4839
4840	// The Amazon Resource Name (ARN) of the Amazon SNS topic to notify when the
4841	// bounce action is taken. An example of an Amazon SNS topic ARN is arn:aws:sns:us-west-2:123456789012:MyTopic.
4842	// For more information about Amazon SNS topics, see the Amazon SNS Developer
4843	// Guide (http://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html).
4844	TopicArn *string `type:"string"`
4845}
4846
4847// String returns the string representation
4848func (s BounceAction) String() string {
4849	return awsutil.Prettify(s)
4850}
4851
4852// GoString returns the string representation
4853func (s BounceAction) GoString() string {
4854	return s.String()
4855}
4856
4857// Validate inspects the fields of the type to determine if they are valid.
4858func (s *BounceAction) Validate() error {
4859	invalidParams := request.ErrInvalidParams{Context: "BounceAction"}
4860	if s.Message == nil {
4861		invalidParams.Add(request.NewErrParamRequired("Message"))
4862	}
4863	if s.Sender == nil {
4864		invalidParams.Add(request.NewErrParamRequired("Sender"))
4865	}
4866	if s.SmtpReplyCode == nil {
4867		invalidParams.Add(request.NewErrParamRequired("SmtpReplyCode"))
4868	}
4869
4870	if invalidParams.Len() > 0 {
4871		return invalidParams
4872	}
4873	return nil
4874}
4875
4876// SetMessage sets the Message field's value.
4877func (s *BounceAction) SetMessage(v string) *BounceAction {
4878	s.Message = &v
4879	return s
4880}
4881
4882// SetSender sets the Sender field's value.
4883func (s *BounceAction) SetSender(v string) *BounceAction {
4884	s.Sender = &v
4885	return s
4886}
4887
4888// SetSmtpReplyCode sets the SmtpReplyCode field's value.
4889func (s *BounceAction) SetSmtpReplyCode(v string) *BounceAction {
4890	s.SmtpReplyCode = &v
4891	return s
4892}
4893
4894// SetStatusCode sets the StatusCode field's value.
4895func (s *BounceAction) SetStatusCode(v string) *BounceAction {
4896	s.StatusCode = &v
4897	return s
4898}
4899
4900// SetTopicArn sets the TopicArn field's value.
4901func (s *BounceAction) SetTopicArn(v string) *BounceAction {
4902	s.TopicArn = &v
4903	return s
4904}
4905
4906// Recipient-related information to include in the Delivery Status Notification
4907// (DSN) when an email that Amazon SES receives on your behalf bounces.
4908//
4909// For information about receiving email through Amazon SES, see the Amazon
4910// SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email.html).
4911// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/BouncedRecipientInfo
4912type BouncedRecipientInfo struct {
4913	_ struct{} `type:"structure"`
4914
4915	// The reason for the bounce. You must provide either this parameter or RecipientDsnFields.
4916	BounceType *string `type:"string" enum:"BounceType"`
4917
4918	// The email address of the recipient of the bounced email.
4919	//
4920	// Recipient is a required field
4921	Recipient *string `type:"string" required:"true"`
4922
4923	// This parameter is used only for sending authorization. It is the ARN of the
4924	// identity that is associated with the sending authorization policy that permits
4925	// you to receive email for the recipient of the bounced email. For more information
4926	// about sending authorization, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html).
4927	RecipientArn *string `type:"string"`
4928
4929	// Recipient-related DSN fields, most of which would normally be filled in automatically
4930	// when provided with a BounceType. You must provide either this parameter or
4931	// BounceType.
4932	RecipientDsnFields *RecipientDsnFields `type:"structure"`
4933}
4934
4935// String returns the string representation
4936func (s BouncedRecipientInfo) String() string {
4937	return awsutil.Prettify(s)
4938}
4939
4940// GoString returns the string representation
4941func (s BouncedRecipientInfo) GoString() string {
4942	return s.String()
4943}
4944
4945// Validate inspects the fields of the type to determine if they are valid.
4946func (s *BouncedRecipientInfo) Validate() error {
4947	invalidParams := request.ErrInvalidParams{Context: "BouncedRecipientInfo"}
4948	if s.Recipient == nil {
4949		invalidParams.Add(request.NewErrParamRequired("Recipient"))
4950	}
4951	if s.RecipientDsnFields != nil {
4952		if err := s.RecipientDsnFields.Validate(); err != nil {
4953			invalidParams.AddNested("RecipientDsnFields", err.(request.ErrInvalidParams))
4954		}
4955	}
4956
4957	if invalidParams.Len() > 0 {
4958		return invalidParams
4959	}
4960	return nil
4961}
4962
4963// SetBounceType sets the BounceType field's value.
4964func (s *BouncedRecipientInfo) SetBounceType(v string) *BouncedRecipientInfo {
4965	s.BounceType = &v
4966	return s
4967}
4968
4969// SetRecipient sets the Recipient field's value.
4970func (s *BouncedRecipientInfo) SetRecipient(v string) *BouncedRecipientInfo {
4971	s.Recipient = &v
4972	return s
4973}
4974
4975// SetRecipientArn sets the RecipientArn field's value.
4976func (s *BouncedRecipientInfo) SetRecipientArn(v string) *BouncedRecipientInfo {
4977	s.RecipientArn = &v
4978	return s
4979}
4980
4981// SetRecipientDsnFields sets the RecipientDsnFields field's value.
4982func (s *BouncedRecipientInfo) SetRecipientDsnFields(v *RecipientDsnFields) *BouncedRecipientInfo {
4983	s.RecipientDsnFields = v
4984	return s
4985}
4986
4987// Represents a request to create a receipt rule set by cloning an existing
4988// one. You use receipt rule sets to receive email with Amazon SES. For more
4989// information, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-concepts.html).
4990// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CloneReceiptRuleSetRequest
4991type CloneReceiptRuleSetInput struct {
4992	_ struct{} `type:"structure"`
4993
4994	// The name of the rule set to clone.
4995	//
4996	// OriginalRuleSetName is a required field
4997	OriginalRuleSetName *string `type:"string" required:"true"`
4998
4999	// The name of the rule set to create. The name must:
5000	//
5001	//    * Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.), underscores
5002	//    (_), or dashes (-).
5003	//
5004	//    * Start and end with a letter or number.
5005	//
5006	//    * Contain less than 64 characters.
5007	//
5008	// RuleSetName is a required field
5009	RuleSetName *string `type:"string" required:"true"`
5010}
5011
5012// String returns the string representation
5013func (s CloneReceiptRuleSetInput) String() string {
5014	return awsutil.Prettify(s)
5015}
5016
5017// GoString returns the string representation
5018func (s CloneReceiptRuleSetInput) GoString() string {
5019	return s.String()
5020}
5021
5022// Validate inspects the fields of the type to determine if they are valid.
5023func (s *CloneReceiptRuleSetInput) Validate() error {
5024	invalidParams := request.ErrInvalidParams{Context: "CloneReceiptRuleSetInput"}
5025	if s.OriginalRuleSetName == nil {
5026		invalidParams.Add(request.NewErrParamRequired("OriginalRuleSetName"))
5027	}
5028	if s.RuleSetName == nil {
5029		invalidParams.Add(request.NewErrParamRequired("RuleSetName"))
5030	}
5031
5032	if invalidParams.Len() > 0 {
5033		return invalidParams
5034	}
5035	return nil
5036}
5037
5038// SetOriginalRuleSetName sets the OriginalRuleSetName field's value.
5039func (s *CloneReceiptRuleSetInput) SetOriginalRuleSetName(v string) *CloneReceiptRuleSetInput {
5040	s.OriginalRuleSetName = &v
5041	return s
5042}
5043
5044// SetRuleSetName sets the RuleSetName field's value.
5045func (s *CloneReceiptRuleSetInput) SetRuleSetName(v string) *CloneReceiptRuleSetInput {
5046	s.RuleSetName = &v
5047	return s
5048}
5049
5050// An empty element returned on a successful request.
5051// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CloneReceiptRuleSetResponse
5052type CloneReceiptRuleSetOutput struct {
5053	_ struct{} `type:"structure"`
5054}
5055
5056// String returns the string representation
5057func (s CloneReceiptRuleSetOutput) String() string {
5058	return awsutil.Prettify(s)
5059}
5060
5061// GoString returns the string representation
5062func (s CloneReceiptRuleSetOutput) GoString() string {
5063	return s.String()
5064}
5065
5066// Contains information associated with an Amazon CloudWatch event destination
5067// to which email sending events are published.
5068//
5069// Event destinations, such as Amazon CloudWatch, are associated with configuration
5070// sets, which enable you to publish email sending events. For information about
5071// using configuration sets, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html).
5072// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CloudWatchDestination
5073type CloudWatchDestination struct {
5074	_ struct{} `type:"structure"`
5075
5076	// A list of dimensions upon which to categorize your emails when you publish
5077	// email sending events to Amazon CloudWatch.
5078	//
5079	// DimensionConfigurations is a required field
5080	DimensionConfigurations []*CloudWatchDimensionConfiguration `type:"list" required:"true"`
5081}
5082
5083// String returns the string representation
5084func (s CloudWatchDestination) String() string {
5085	return awsutil.Prettify(s)
5086}
5087
5088// GoString returns the string representation
5089func (s CloudWatchDestination) GoString() string {
5090	return s.String()
5091}
5092
5093// Validate inspects the fields of the type to determine if they are valid.
5094func (s *CloudWatchDestination) Validate() error {
5095	invalidParams := request.ErrInvalidParams{Context: "CloudWatchDestination"}
5096	if s.DimensionConfigurations == nil {
5097		invalidParams.Add(request.NewErrParamRequired("DimensionConfigurations"))
5098	}
5099	if s.DimensionConfigurations != nil {
5100		for i, v := range s.DimensionConfigurations {
5101			if v == nil {
5102				continue
5103			}
5104			if err := v.Validate(); err != nil {
5105				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DimensionConfigurations", i), err.(request.ErrInvalidParams))
5106			}
5107		}
5108	}
5109
5110	if invalidParams.Len() > 0 {
5111		return invalidParams
5112	}
5113	return nil
5114}
5115
5116// SetDimensionConfigurations sets the DimensionConfigurations field's value.
5117func (s *CloudWatchDestination) SetDimensionConfigurations(v []*CloudWatchDimensionConfiguration) *CloudWatchDestination {
5118	s.DimensionConfigurations = v
5119	return s
5120}
5121
5122// Contains the dimension configuration to use when you publish email sending
5123// events to Amazon CloudWatch.
5124//
5125// For information about publishing email sending events to Amazon CloudWatch,
5126// see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html).
5127// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CloudWatchDimensionConfiguration
5128type CloudWatchDimensionConfiguration struct {
5129	_ struct{} `type:"structure"`
5130
5131	// The default value of the dimension that is published to Amazon CloudWatch
5132	// if you do not provide the value of the dimension when you send an email.
5133	// The default value must:
5134	//
5135	//    * Contain only ASCII letters (a-z, A-Z), numbers (0-9), underscores (_),
5136	//    or dashes (-).
5137	//
5138	//    * Contain less than 256 characters.
5139	//
5140	// DefaultDimensionValue is a required field
5141	DefaultDimensionValue *string `type:"string" required:"true"`
5142
5143	// The name of an Amazon CloudWatch dimension associated with an email sending
5144	// metric. The name must:
5145	//
5146	//    * Contain only ASCII letters (a-z, A-Z), numbers (0-9), underscores (_),
5147	//    or dashes (-).
5148	//
5149	//    * Contain less than 256 characters.
5150	//
5151	// DimensionName is a required field
5152	DimensionName *string `type:"string" required:"true"`
5153
5154	// The place where Amazon SES finds the value of a dimension to publish to Amazon
5155	// CloudWatch. If you want Amazon SES to use the message tags that you specify
5156	// using an X-SES-MESSAGE-TAGS header or a parameter to the SendEmail/SendRawEmail
5157	// API, choose messageTag. If you want Amazon SES to use your own email headers,
5158	// choose emailHeader.
5159	//
5160	// DimensionValueSource is a required field
5161	DimensionValueSource *string `type:"string" required:"true" enum:"DimensionValueSource"`
5162}
5163
5164// String returns the string representation
5165func (s CloudWatchDimensionConfiguration) String() string {
5166	return awsutil.Prettify(s)
5167}
5168
5169// GoString returns the string representation
5170func (s CloudWatchDimensionConfiguration) GoString() string {
5171	return s.String()
5172}
5173
5174// Validate inspects the fields of the type to determine if they are valid.
5175func (s *CloudWatchDimensionConfiguration) Validate() error {
5176	invalidParams := request.ErrInvalidParams{Context: "CloudWatchDimensionConfiguration"}
5177	if s.DefaultDimensionValue == nil {
5178		invalidParams.Add(request.NewErrParamRequired("DefaultDimensionValue"))
5179	}
5180	if s.DimensionName == nil {
5181		invalidParams.Add(request.NewErrParamRequired("DimensionName"))
5182	}
5183	if s.DimensionValueSource == nil {
5184		invalidParams.Add(request.NewErrParamRequired("DimensionValueSource"))
5185	}
5186
5187	if invalidParams.Len() > 0 {
5188		return invalidParams
5189	}
5190	return nil
5191}
5192
5193// SetDefaultDimensionValue sets the DefaultDimensionValue field's value.
5194func (s *CloudWatchDimensionConfiguration) SetDefaultDimensionValue(v string) *CloudWatchDimensionConfiguration {
5195	s.DefaultDimensionValue = &v
5196	return s
5197}
5198
5199// SetDimensionName sets the DimensionName field's value.
5200func (s *CloudWatchDimensionConfiguration) SetDimensionName(v string) *CloudWatchDimensionConfiguration {
5201	s.DimensionName = &v
5202	return s
5203}
5204
5205// SetDimensionValueSource sets the DimensionValueSource field's value.
5206func (s *CloudWatchDimensionConfiguration) SetDimensionValueSource(v string) *CloudWatchDimensionConfiguration {
5207	s.DimensionValueSource = &v
5208	return s
5209}
5210
5211// The name of the configuration set.
5212//
5213// Configuration sets let you create groups of rules that you can apply to the
5214// emails you send using Amazon SES. For more information about using configuration
5215// sets, see Using Amazon SES Configuration Sets (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/using-configuration-sets.html)
5216// in the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/).
5217// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ConfigurationSet
5218type ConfigurationSet struct {
5219	_ struct{} `type:"structure"`
5220
5221	// The name of the configuration set. The name must meet the following requirements:
5222	//
5223	//    * Contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or
5224	//    dashes (-).
5225	//
5226	//    * Contain 64 characters or fewer.
5227	//
5228	// Name is a required field
5229	Name *string `type:"string" required:"true"`
5230}
5231
5232// String returns the string representation
5233func (s ConfigurationSet) String() string {
5234	return awsutil.Prettify(s)
5235}
5236
5237// GoString returns the string representation
5238func (s ConfigurationSet) GoString() string {
5239	return s.String()
5240}
5241
5242// Validate inspects the fields of the type to determine if they are valid.
5243func (s *ConfigurationSet) Validate() error {
5244	invalidParams := request.ErrInvalidParams{Context: "ConfigurationSet"}
5245	if s.Name == nil {
5246		invalidParams.Add(request.NewErrParamRequired("Name"))
5247	}
5248
5249	if invalidParams.Len() > 0 {
5250		return invalidParams
5251	}
5252	return nil
5253}
5254
5255// SetName sets the Name field's value.
5256func (s *ConfigurationSet) SetName(v string) *ConfigurationSet {
5257	s.Name = &v
5258	return s
5259}
5260
5261// Represents textual data, plus an optional character set specification.
5262//
5263// By default, the text must be 7-bit ASCII, due to the constraints of the SMTP
5264// protocol. If the text must contain any other characters, then you must also
5265// specify a character set. Examples include UTF-8, ISO-8859-1, and Shift_JIS.
5266// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/Content
5267type Content struct {
5268	_ struct{} `type:"structure"`
5269
5270	// The character set of the content.
5271	Charset *string `type:"string"`
5272
5273	// The textual data of the content.
5274	//
5275	// Data is a required field
5276	Data *string `type:"string" required:"true"`
5277}
5278
5279// String returns the string representation
5280func (s Content) String() string {
5281	return awsutil.Prettify(s)
5282}
5283
5284// GoString returns the string representation
5285func (s Content) GoString() string {
5286	return s.String()
5287}
5288
5289// Validate inspects the fields of the type to determine if they are valid.
5290func (s *Content) Validate() error {
5291	invalidParams := request.ErrInvalidParams{Context: "Content"}
5292	if s.Data == nil {
5293		invalidParams.Add(request.NewErrParamRequired("Data"))
5294	}
5295
5296	if invalidParams.Len() > 0 {
5297		return invalidParams
5298	}
5299	return nil
5300}
5301
5302// SetCharset sets the Charset field's value.
5303func (s *Content) SetCharset(v string) *Content {
5304	s.Charset = &v
5305	return s
5306}
5307
5308// SetData sets the Data field's value.
5309func (s *Content) SetData(v string) *Content {
5310	s.Data = &v
5311	return s
5312}
5313
5314// Represents a request to create a configuration set event destination. A configuration
5315// set event destination, which can be either Amazon CloudWatch or Amazon Kinesis
5316// Firehose, describes an AWS service in which Amazon SES publishes the email
5317// sending events associated with a configuration set. For information about
5318// using configuration sets, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html).
5319// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CreateConfigurationSetEventDestinationRequest
5320type CreateConfigurationSetEventDestinationInput struct {
5321	_ struct{} `type:"structure"`
5322
5323	// The name of the configuration set that the event destination should be associated
5324	// with.
5325	//
5326	// ConfigurationSetName is a required field
5327	ConfigurationSetName *string `type:"string" required:"true"`
5328
5329	// An object that describes the AWS service that email sending event information
5330	// will be published to.
5331	//
5332	// EventDestination is a required field
5333	EventDestination *EventDestination `type:"structure" required:"true"`
5334}
5335
5336// String returns the string representation
5337func (s CreateConfigurationSetEventDestinationInput) String() string {
5338	return awsutil.Prettify(s)
5339}
5340
5341// GoString returns the string representation
5342func (s CreateConfigurationSetEventDestinationInput) GoString() string {
5343	return s.String()
5344}
5345
5346// Validate inspects the fields of the type to determine if they are valid.
5347func (s *CreateConfigurationSetEventDestinationInput) Validate() error {
5348	invalidParams := request.ErrInvalidParams{Context: "CreateConfigurationSetEventDestinationInput"}
5349	if s.ConfigurationSetName == nil {
5350		invalidParams.Add(request.NewErrParamRequired("ConfigurationSetName"))
5351	}
5352	if s.EventDestination == nil {
5353		invalidParams.Add(request.NewErrParamRequired("EventDestination"))
5354	}
5355	if s.EventDestination != nil {
5356		if err := s.EventDestination.Validate(); err != nil {
5357			invalidParams.AddNested("EventDestination", err.(request.ErrInvalidParams))
5358		}
5359	}
5360
5361	if invalidParams.Len() > 0 {
5362		return invalidParams
5363	}
5364	return nil
5365}
5366
5367// SetConfigurationSetName sets the ConfigurationSetName field's value.
5368func (s *CreateConfigurationSetEventDestinationInput) SetConfigurationSetName(v string) *CreateConfigurationSetEventDestinationInput {
5369	s.ConfigurationSetName = &v
5370	return s
5371}
5372
5373// SetEventDestination sets the EventDestination field's value.
5374func (s *CreateConfigurationSetEventDestinationInput) SetEventDestination(v *EventDestination) *CreateConfigurationSetEventDestinationInput {
5375	s.EventDestination = v
5376	return s
5377}
5378
5379// An empty element returned on a successful request.
5380// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CreateConfigurationSetEventDestinationResponse
5381type CreateConfigurationSetEventDestinationOutput struct {
5382	_ struct{} `type:"structure"`
5383}
5384
5385// String returns the string representation
5386func (s CreateConfigurationSetEventDestinationOutput) String() string {
5387	return awsutil.Prettify(s)
5388}
5389
5390// GoString returns the string representation
5391func (s CreateConfigurationSetEventDestinationOutput) GoString() string {
5392	return s.String()
5393}
5394
5395// Represents a request to create a configuration set. Configuration sets enable
5396// you to publish email sending events. For information about using configuration
5397// sets, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html).
5398// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CreateConfigurationSetRequest
5399type CreateConfigurationSetInput struct {
5400	_ struct{} `type:"structure"`
5401
5402	// A data structure that contains the name of the configuration set.
5403	//
5404	// ConfigurationSet is a required field
5405	ConfigurationSet *ConfigurationSet `type:"structure" required:"true"`
5406}
5407
5408// String returns the string representation
5409func (s CreateConfigurationSetInput) String() string {
5410	return awsutil.Prettify(s)
5411}
5412
5413// GoString returns the string representation
5414func (s CreateConfigurationSetInput) GoString() string {
5415	return s.String()
5416}
5417
5418// Validate inspects the fields of the type to determine if they are valid.
5419func (s *CreateConfigurationSetInput) Validate() error {
5420	invalidParams := request.ErrInvalidParams{Context: "CreateConfigurationSetInput"}
5421	if s.ConfigurationSet == nil {
5422		invalidParams.Add(request.NewErrParamRequired("ConfigurationSet"))
5423	}
5424	if s.ConfigurationSet != nil {
5425		if err := s.ConfigurationSet.Validate(); err != nil {
5426			invalidParams.AddNested("ConfigurationSet", err.(request.ErrInvalidParams))
5427		}
5428	}
5429
5430	if invalidParams.Len() > 0 {
5431		return invalidParams
5432	}
5433	return nil
5434}
5435
5436// SetConfigurationSet sets the ConfigurationSet field's value.
5437func (s *CreateConfigurationSetInput) SetConfigurationSet(v *ConfigurationSet) *CreateConfigurationSetInput {
5438	s.ConfigurationSet = v
5439	return s
5440}
5441
5442// An empty element returned on a successful request.
5443// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CreateConfigurationSetResponse
5444type CreateConfigurationSetOutput struct {
5445	_ struct{} `type:"structure"`
5446}
5447
5448// String returns the string representation
5449func (s CreateConfigurationSetOutput) String() string {
5450	return awsutil.Prettify(s)
5451}
5452
5453// GoString returns the string representation
5454func (s CreateConfigurationSetOutput) GoString() string {
5455	return s.String()
5456}
5457
5458// Represents a request to create an open and click tracking option object in
5459// a configuration set.
5460// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CreateConfigurationSetTrackingOptionsRequest
5461type CreateConfigurationSetTrackingOptionsInput struct {
5462	_ struct{} `type:"structure"`
5463
5464	// The name of the configuration set that the tracking options should be associated
5465	// with.
5466	//
5467	// ConfigurationSetName is a required field
5468	ConfigurationSetName *string `type:"string" required:"true"`
5469
5470	// A domain that is used to redirect email recipients to an Amazon SES-operated
5471	// domain. This domain captures open and click events generated by Amazon SES
5472	// emails.
5473	//
5474	// For more information, see Configuring Custom Domains to Handle Open and Click
5475	// Tracking (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/configure-custom-open-click-domains.html)
5476	// in the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/Welcome.html).
5477	//
5478	// TrackingOptions is a required field
5479	TrackingOptions *TrackingOptions `type:"structure" required:"true"`
5480}
5481
5482// String returns the string representation
5483func (s CreateConfigurationSetTrackingOptionsInput) String() string {
5484	return awsutil.Prettify(s)
5485}
5486
5487// GoString returns the string representation
5488func (s CreateConfigurationSetTrackingOptionsInput) GoString() string {
5489	return s.String()
5490}
5491
5492// Validate inspects the fields of the type to determine if they are valid.
5493func (s *CreateConfigurationSetTrackingOptionsInput) Validate() error {
5494	invalidParams := request.ErrInvalidParams{Context: "CreateConfigurationSetTrackingOptionsInput"}
5495	if s.ConfigurationSetName == nil {
5496		invalidParams.Add(request.NewErrParamRequired("ConfigurationSetName"))
5497	}
5498	if s.TrackingOptions == nil {
5499		invalidParams.Add(request.NewErrParamRequired("TrackingOptions"))
5500	}
5501
5502	if invalidParams.Len() > 0 {
5503		return invalidParams
5504	}
5505	return nil
5506}
5507
5508// SetConfigurationSetName sets the ConfigurationSetName field's value.
5509func (s *CreateConfigurationSetTrackingOptionsInput) SetConfigurationSetName(v string) *CreateConfigurationSetTrackingOptionsInput {
5510	s.ConfigurationSetName = &v
5511	return s
5512}
5513
5514// SetTrackingOptions sets the TrackingOptions field's value.
5515func (s *CreateConfigurationSetTrackingOptionsInput) SetTrackingOptions(v *TrackingOptions) *CreateConfigurationSetTrackingOptionsInput {
5516	s.TrackingOptions = v
5517	return s
5518}
5519
5520// An empty element returned on a successful request.
5521// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CreateConfigurationSetTrackingOptionsResponse
5522type CreateConfigurationSetTrackingOptionsOutput struct {
5523	_ struct{} `type:"structure"`
5524}
5525
5526// String returns the string representation
5527func (s CreateConfigurationSetTrackingOptionsOutput) String() string {
5528	return awsutil.Prettify(s)
5529}
5530
5531// GoString returns the string representation
5532func (s CreateConfigurationSetTrackingOptionsOutput) GoString() string {
5533	return s.String()
5534}
5535
5536// Represents a request to create a new IP address filter. You use IP address
5537// filters when you receive email with Amazon SES. For more information, see
5538// the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-concepts.html).
5539// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CreateReceiptFilterRequest
5540type CreateReceiptFilterInput struct {
5541	_ struct{} `type:"structure"`
5542
5543	// A data structure that describes the IP address filter to create, which consists
5544	// of a name, an IP address range, and whether to allow or block mail from it.
5545	//
5546	// Filter is a required field
5547	Filter *ReceiptFilter `type:"structure" required:"true"`
5548}
5549
5550// String returns the string representation
5551func (s CreateReceiptFilterInput) String() string {
5552	return awsutil.Prettify(s)
5553}
5554
5555// GoString returns the string representation
5556func (s CreateReceiptFilterInput) GoString() string {
5557	return s.String()
5558}
5559
5560// Validate inspects the fields of the type to determine if they are valid.
5561func (s *CreateReceiptFilterInput) Validate() error {
5562	invalidParams := request.ErrInvalidParams{Context: "CreateReceiptFilterInput"}
5563	if s.Filter == nil {
5564		invalidParams.Add(request.NewErrParamRequired("Filter"))
5565	}
5566	if s.Filter != nil {
5567		if err := s.Filter.Validate(); err != nil {
5568			invalidParams.AddNested("Filter", err.(request.ErrInvalidParams))
5569		}
5570	}
5571
5572	if invalidParams.Len() > 0 {
5573		return invalidParams
5574	}
5575	return nil
5576}
5577
5578// SetFilter sets the Filter field's value.
5579func (s *CreateReceiptFilterInput) SetFilter(v *ReceiptFilter) *CreateReceiptFilterInput {
5580	s.Filter = v
5581	return s
5582}
5583
5584// An empty element returned on a successful request.
5585// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CreateReceiptFilterResponse
5586type CreateReceiptFilterOutput struct {
5587	_ struct{} `type:"structure"`
5588}
5589
5590// String returns the string representation
5591func (s CreateReceiptFilterOutput) String() string {
5592	return awsutil.Prettify(s)
5593}
5594
5595// GoString returns the string representation
5596func (s CreateReceiptFilterOutput) GoString() string {
5597	return s.String()
5598}
5599
5600// Represents a request to create a receipt rule. You use receipt rules to receive
5601// email with Amazon SES. For more information, see the Amazon SES Developer
5602// Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-concepts.html).
5603// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CreateReceiptRuleRequest
5604type CreateReceiptRuleInput struct {
5605	_ struct{} `type:"structure"`
5606
5607	// The name of an existing rule after which the new rule will be placed. If
5608	// this parameter is null, the new rule will be inserted at the beginning of
5609	// the rule list.
5610	After *string `type:"string"`
5611
5612	// A data structure that contains the specified rule's name, actions, recipients,
5613	// domains, enabled status, scan status, and TLS policy.
5614	//
5615	// Rule is a required field
5616	Rule *ReceiptRule `type:"structure" required:"true"`
5617
5618	// The name of the rule set that the receipt rule will be added to.
5619	//
5620	// RuleSetName is a required field
5621	RuleSetName *string `type:"string" required:"true"`
5622}
5623
5624// String returns the string representation
5625func (s CreateReceiptRuleInput) String() string {
5626	return awsutil.Prettify(s)
5627}
5628
5629// GoString returns the string representation
5630func (s CreateReceiptRuleInput) GoString() string {
5631	return s.String()
5632}
5633
5634// Validate inspects the fields of the type to determine if they are valid.
5635func (s *CreateReceiptRuleInput) Validate() error {
5636	invalidParams := request.ErrInvalidParams{Context: "CreateReceiptRuleInput"}
5637	if s.Rule == nil {
5638		invalidParams.Add(request.NewErrParamRequired("Rule"))
5639	}
5640	if s.RuleSetName == nil {
5641		invalidParams.Add(request.NewErrParamRequired("RuleSetName"))
5642	}
5643	if s.Rule != nil {
5644		if err := s.Rule.Validate(); err != nil {
5645			invalidParams.AddNested("Rule", err.(request.ErrInvalidParams))
5646		}
5647	}
5648
5649	if invalidParams.Len() > 0 {
5650		return invalidParams
5651	}
5652	return nil
5653}
5654
5655// SetAfter sets the After field's value.
5656func (s *CreateReceiptRuleInput) SetAfter(v string) *CreateReceiptRuleInput {
5657	s.After = &v
5658	return s
5659}
5660
5661// SetRule sets the Rule field's value.
5662func (s *CreateReceiptRuleInput) SetRule(v *ReceiptRule) *CreateReceiptRuleInput {
5663	s.Rule = v
5664	return s
5665}
5666
5667// SetRuleSetName sets the RuleSetName field's value.
5668func (s *CreateReceiptRuleInput) SetRuleSetName(v string) *CreateReceiptRuleInput {
5669	s.RuleSetName = &v
5670	return s
5671}
5672
5673// An empty element returned on a successful request.
5674// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CreateReceiptRuleResponse
5675type CreateReceiptRuleOutput struct {
5676	_ struct{} `type:"structure"`
5677}
5678
5679// String returns the string representation
5680func (s CreateReceiptRuleOutput) String() string {
5681	return awsutil.Prettify(s)
5682}
5683
5684// GoString returns the string representation
5685func (s CreateReceiptRuleOutput) GoString() string {
5686	return s.String()
5687}
5688
5689// Represents a request to create an empty receipt rule set. You use receipt
5690// rule sets to receive email with Amazon SES. For more information, see the
5691// Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-concepts.html).
5692// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CreateReceiptRuleSetRequest
5693type CreateReceiptRuleSetInput struct {
5694	_ struct{} `type:"structure"`
5695
5696	// The name of the rule set to create. The name must:
5697	//
5698	//    * Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.), underscores
5699	//    (_), or dashes (-).
5700	//
5701	//    * Start and end with a letter or number.
5702	//
5703	//    * Contain less than 64 characters.
5704	//
5705	// RuleSetName is a required field
5706	RuleSetName *string `type:"string" required:"true"`
5707}
5708
5709// String returns the string representation
5710func (s CreateReceiptRuleSetInput) String() string {
5711	return awsutil.Prettify(s)
5712}
5713
5714// GoString returns the string representation
5715func (s CreateReceiptRuleSetInput) GoString() string {
5716	return s.String()
5717}
5718
5719// Validate inspects the fields of the type to determine if they are valid.
5720func (s *CreateReceiptRuleSetInput) Validate() error {
5721	invalidParams := request.ErrInvalidParams{Context: "CreateReceiptRuleSetInput"}
5722	if s.RuleSetName == nil {
5723		invalidParams.Add(request.NewErrParamRequired("RuleSetName"))
5724	}
5725
5726	if invalidParams.Len() > 0 {
5727		return invalidParams
5728	}
5729	return nil
5730}
5731
5732// SetRuleSetName sets the RuleSetName field's value.
5733func (s *CreateReceiptRuleSetInput) SetRuleSetName(v string) *CreateReceiptRuleSetInput {
5734	s.RuleSetName = &v
5735	return s
5736}
5737
5738// An empty element returned on a successful request.
5739// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CreateReceiptRuleSetResponse
5740type CreateReceiptRuleSetOutput struct {
5741	_ struct{} `type:"structure"`
5742}
5743
5744// String returns the string representation
5745func (s CreateReceiptRuleSetOutput) String() string {
5746	return awsutil.Prettify(s)
5747}
5748
5749// GoString returns the string representation
5750func (s CreateReceiptRuleSetOutput) GoString() string {
5751	return s.String()
5752}
5753
5754// Represents a request to delete a configuration set event destination. Configuration
5755// set event destinations are associated with configuration sets, which enable
5756// you to publish email sending events. For information about using configuration
5757// sets, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html).
5758// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteConfigurationSetEventDestinationRequest
5759type DeleteConfigurationSetEventDestinationInput struct {
5760	_ struct{} `type:"structure"`
5761
5762	// The name of the configuration set from which to delete the event destination.
5763	//
5764	// ConfigurationSetName is a required field
5765	ConfigurationSetName *string `type:"string" required:"true"`
5766
5767	// The name of the event destination to delete.
5768	//
5769	// EventDestinationName is a required field
5770	EventDestinationName *string `type:"string" required:"true"`
5771}
5772
5773// String returns the string representation
5774func (s DeleteConfigurationSetEventDestinationInput) String() string {
5775	return awsutil.Prettify(s)
5776}
5777
5778// GoString returns the string representation
5779func (s DeleteConfigurationSetEventDestinationInput) GoString() string {
5780	return s.String()
5781}
5782
5783// Validate inspects the fields of the type to determine if they are valid.
5784func (s *DeleteConfigurationSetEventDestinationInput) Validate() error {
5785	invalidParams := request.ErrInvalidParams{Context: "DeleteConfigurationSetEventDestinationInput"}
5786	if s.ConfigurationSetName == nil {
5787		invalidParams.Add(request.NewErrParamRequired("ConfigurationSetName"))
5788	}
5789	if s.EventDestinationName == nil {
5790		invalidParams.Add(request.NewErrParamRequired("EventDestinationName"))
5791	}
5792
5793	if invalidParams.Len() > 0 {
5794		return invalidParams
5795	}
5796	return nil
5797}
5798
5799// SetConfigurationSetName sets the ConfigurationSetName field's value.
5800func (s *DeleteConfigurationSetEventDestinationInput) SetConfigurationSetName(v string) *DeleteConfigurationSetEventDestinationInput {
5801	s.ConfigurationSetName = &v
5802	return s
5803}
5804
5805// SetEventDestinationName sets the EventDestinationName field's value.
5806func (s *DeleteConfigurationSetEventDestinationInput) SetEventDestinationName(v string) *DeleteConfigurationSetEventDestinationInput {
5807	s.EventDestinationName = &v
5808	return s
5809}
5810
5811// An empty element returned on a successful request.
5812// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteConfigurationSetEventDestinationResponse
5813type DeleteConfigurationSetEventDestinationOutput struct {
5814	_ struct{} `type:"structure"`
5815}
5816
5817// String returns the string representation
5818func (s DeleteConfigurationSetEventDestinationOutput) String() string {
5819	return awsutil.Prettify(s)
5820}
5821
5822// GoString returns the string representation
5823func (s DeleteConfigurationSetEventDestinationOutput) GoString() string {
5824	return s.String()
5825}
5826
5827// Represents a request to delete a configuration set. Configuration sets enable
5828// you to publish email sending events. For information about using configuration
5829// sets, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html).
5830// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteConfigurationSetRequest
5831type DeleteConfigurationSetInput struct {
5832	_ struct{} `type:"structure"`
5833
5834	// The name of the configuration set to delete.
5835	//
5836	// ConfigurationSetName is a required field
5837	ConfigurationSetName *string `type:"string" required:"true"`
5838}
5839
5840// String returns the string representation
5841func (s DeleteConfigurationSetInput) String() string {
5842	return awsutil.Prettify(s)
5843}
5844
5845// GoString returns the string representation
5846func (s DeleteConfigurationSetInput) GoString() string {
5847	return s.String()
5848}
5849
5850// Validate inspects the fields of the type to determine if they are valid.
5851func (s *DeleteConfigurationSetInput) Validate() error {
5852	invalidParams := request.ErrInvalidParams{Context: "DeleteConfigurationSetInput"}
5853	if s.ConfigurationSetName == nil {
5854		invalidParams.Add(request.NewErrParamRequired("ConfigurationSetName"))
5855	}
5856
5857	if invalidParams.Len() > 0 {
5858		return invalidParams
5859	}
5860	return nil
5861}
5862
5863// SetConfigurationSetName sets the ConfigurationSetName field's value.
5864func (s *DeleteConfigurationSetInput) SetConfigurationSetName(v string) *DeleteConfigurationSetInput {
5865	s.ConfigurationSetName = &v
5866	return s
5867}
5868
5869// An empty element returned on a successful request.
5870// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteConfigurationSetResponse
5871type DeleteConfigurationSetOutput struct {
5872	_ struct{} `type:"structure"`
5873}
5874
5875// String returns the string representation
5876func (s DeleteConfigurationSetOutput) String() string {
5877	return awsutil.Prettify(s)
5878}
5879
5880// GoString returns the string representation
5881func (s DeleteConfigurationSetOutput) GoString() string {
5882	return s.String()
5883}
5884
5885// Represents a request to delete open and click tracking options in a configuration
5886// set.
5887// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteConfigurationSetTrackingOptionsRequest
5888type DeleteConfigurationSetTrackingOptionsInput struct {
5889	_ struct{} `type:"structure"`
5890
5891	// The name of the configuration set from which you want to delete the tracking
5892	// options.
5893	//
5894	// ConfigurationSetName is a required field
5895	ConfigurationSetName *string `type:"string" required:"true"`
5896}
5897
5898// String returns the string representation
5899func (s DeleteConfigurationSetTrackingOptionsInput) String() string {
5900	return awsutil.Prettify(s)
5901}
5902
5903// GoString returns the string representation
5904func (s DeleteConfigurationSetTrackingOptionsInput) GoString() string {
5905	return s.String()
5906}
5907
5908// Validate inspects the fields of the type to determine if they are valid.
5909func (s *DeleteConfigurationSetTrackingOptionsInput) Validate() error {
5910	invalidParams := request.ErrInvalidParams{Context: "DeleteConfigurationSetTrackingOptionsInput"}
5911	if s.ConfigurationSetName == nil {
5912		invalidParams.Add(request.NewErrParamRequired("ConfigurationSetName"))
5913	}
5914
5915	if invalidParams.Len() > 0 {
5916		return invalidParams
5917	}
5918	return nil
5919}
5920
5921// SetConfigurationSetName sets the ConfigurationSetName field's value.
5922func (s *DeleteConfigurationSetTrackingOptionsInput) SetConfigurationSetName(v string) *DeleteConfigurationSetTrackingOptionsInput {
5923	s.ConfigurationSetName = &v
5924	return s
5925}
5926
5927// An empty element returned on a successful request.
5928// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteConfigurationSetTrackingOptionsResponse
5929type DeleteConfigurationSetTrackingOptionsOutput struct {
5930	_ struct{} `type:"structure"`
5931}
5932
5933// String returns the string representation
5934func (s DeleteConfigurationSetTrackingOptionsOutput) String() string {
5935	return awsutil.Prettify(s)
5936}
5937
5938// GoString returns the string representation
5939func (s DeleteConfigurationSetTrackingOptionsOutput) GoString() string {
5940	return s.String()
5941}
5942
5943// Represents a request to delete one of your Amazon SES identities (an email
5944// address or domain).
5945// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteIdentityRequest
5946type DeleteIdentityInput struct {
5947	_ struct{} `type:"structure"`
5948
5949	// The identity to be removed from the list of identities for the AWS Account.
5950	//
5951	// Identity is a required field
5952	Identity *string `type:"string" required:"true"`
5953}
5954
5955// String returns the string representation
5956func (s DeleteIdentityInput) String() string {
5957	return awsutil.Prettify(s)
5958}
5959
5960// GoString returns the string representation
5961func (s DeleteIdentityInput) GoString() string {
5962	return s.String()
5963}
5964
5965// Validate inspects the fields of the type to determine if they are valid.
5966func (s *DeleteIdentityInput) Validate() error {
5967	invalidParams := request.ErrInvalidParams{Context: "DeleteIdentityInput"}
5968	if s.Identity == nil {
5969		invalidParams.Add(request.NewErrParamRequired("Identity"))
5970	}
5971
5972	if invalidParams.Len() > 0 {
5973		return invalidParams
5974	}
5975	return nil
5976}
5977
5978// SetIdentity sets the Identity field's value.
5979func (s *DeleteIdentityInput) SetIdentity(v string) *DeleteIdentityInput {
5980	s.Identity = &v
5981	return s
5982}
5983
5984// An empty element returned on a successful request.
5985// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteIdentityResponse
5986type DeleteIdentityOutput struct {
5987	_ struct{} `type:"structure"`
5988}
5989
5990// String returns the string representation
5991func (s DeleteIdentityOutput) String() string {
5992	return awsutil.Prettify(s)
5993}
5994
5995// GoString returns the string representation
5996func (s DeleteIdentityOutput) GoString() string {
5997	return s.String()
5998}
5999
6000// Represents a request to delete a sending authorization policy for an identity.
6001// Sending authorization is an Amazon SES feature that enables you to authorize
6002// other senders to use your identities. For information, see the Amazon SES
6003// Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html).
6004// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteIdentityPolicyRequest
6005type DeleteIdentityPolicyInput struct {
6006	_ struct{} `type:"structure"`
6007
6008	// The identity that is associated with the policy that you want to delete.
6009	// You can specify the identity by using its name or by using its Amazon Resource
6010	// Name (ARN). Examples: user@example.com, example.com, arn:aws:ses:us-east-1:123456789012:identity/example.com.
6011	//
6012	// To successfully call this API, you must own the identity.
6013	//
6014	// Identity is a required field
6015	Identity *string `type:"string" required:"true"`
6016
6017	// The name of the policy to be deleted.
6018	//
6019	// PolicyName is a required field
6020	PolicyName *string `min:"1" type:"string" required:"true"`
6021}
6022
6023// String returns the string representation
6024func (s DeleteIdentityPolicyInput) String() string {
6025	return awsutil.Prettify(s)
6026}
6027
6028// GoString returns the string representation
6029func (s DeleteIdentityPolicyInput) GoString() string {
6030	return s.String()
6031}
6032
6033// Validate inspects the fields of the type to determine if they are valid.
6034func (s *DeleteIdentityPolicyInput) Validate() error {
6035	invalidParams := request.ErrInvalidParams{Context: "DeleteIdentityPolicyInput"}
6036	if s.Identity == nil {
6037		invalidParams.Add(request.NewErrParamRequired("Identity"))
6038	}
6039	if s.PolicyName == nil {
6040		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
6041	}
6042	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
6043		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
6044	}
6045
6046	if invalidParams.Len() > 0 {
6047		return invalidParams
6048	}
6049	return nil
6050}
6051
6052// SetIdentity sets the Identity field's value.
6053func (s *DeleteIdentityPolicyInput) SetIdentity(v string) *DeleteIdentityPolicyInput {
6054	s.Identity = &v
6055	return s
6056}
6057
6058// SetPolicyName sets the PolicyName field's value.
6059func (s *DeleteIdentityPolicyInput) SetPolicyName(v string) *DeleteIdentityPolicyInput {
6060	s.PolicyName = &v
6061	return s
6062}
6063
6064// An empty element returned on a successful request.
6065// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteIdentityPolicyResponse
6066type DeleteIdentityPolicyOutput struct {
6067	_ struct{} `type:"structure"`
6068}
6069
6070// String returns the string representation
6071func (s DeleteIdentityPolicyOutput) String() string {
6072	return awsutil.Prettify(s)
6073}
6074
6075// GoString returns the string representation
6076func (s DeleteIdentityPolicyOutput) GoString() string {
6077	return s.String()
6078}
6079
6080// Represents a request to delete an IP address filter. You use IP address filters
6081// when you receive email with Amazon SES. For more information, see the Amazon
6082// SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-concepts.html).
6083// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteReceiptFilterRequest
6084type DeleteReceiptFilterInput struct {
6085	_ struct{} `type:"structure"`
6086
6087	// The name of the IP address filter to delete.
6088	//
6089	// FilterName is a required field
6090	FilterName *string `type:"string" required:"true"`
6091}
6092
6093// String returns the string representation
6094func (s DeleteReceiptFilterInput) String() string {
6095	return awsutil.Prettify(s)
6096}
6097
6098// GoString returns the string representation
6099func (s DeleteReceiptFilterInput) GoString() string {
6100	return s.String()
6101}
6102
6103// Validate inspects the fields of the type to determine if they are valid.
6104func (s *DeleteReceiptFilterInput) Validate() error {
6105	invalidParams := request.ErrInvalidParams{Context: "DeleteReceiptFilterInput"}
6106	if s.FilterName == nil {
6107		invalidParams.Add(request.NewErrParamRequired("FilterName"))
6108	}
6109
6110	if invalidParams.Len() > 0 {
6111		return invalidParams
6112	}
6113	return nil
6114}
6115
6116// SetFilterName sets the FilterName field's value.
6117func (s *DeleteReceiptFilterInput) SetFilterName(v string) *DeleteReceiptFilterInput {
6118	s.FilterName = &v
6119	return s
6120}
6121
6122// An empty element returned on a successful request.
6123// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteReceiptFilterResponse
6124type DeleteReceiptFilterOutput struct {
6125	_ struct{} `type:"structure"`
6126}
6127
6128// String returns the string representation
6129func (s DeleteReceiptFilterOutput) String() string {
6130	return awsutil.Prettify(s)
6131}
6132
6133// GoString returns the string representation
6134func (s DeleteReceiptFilterOutput) GoString() string {
6135	return s.String()
6136}
6137
6138// Represents a request to delete a receipt rule. You use receipt rules to receive
6139// email with Amazon SES. For more information, see the Amazon SES Developer
6140// Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-concepts.html).
6141// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteReceiptRuleRequest
6142type DeleteReceiptRuleInput struct {
6143	_ struct{} `type:"structure"`
6144
6145	// The name of the receipt rule to delete.
6146	//
6147	// RuleName is a required field
6148	RuleName *string `type:"string" required:"true"`
6149
6150	// The name of the receipt rule set that contains the receipt rule to delete.
6151	//
6152	// RuleSetName is a required field
6153	RuleSetName *string `type:"string" required:"true"`
6154}
6155
6156// String returns the string representation
6157func (s DeleteReceiptRuleInput) String() string {
6158	return awsutil.Prettify(s)
6159}
6160
6161// GoString returns the string representation
6162func (s DeleteReceiptRuleInput) GoString() string {
6163	return s.String()
6164}
6165
6166// Validate inspects the fields of the type to determine if they are valid.
6167func (s *DeleteReceiptRuleInput) Validate() error {
6168	invalidParams := request.ErrInvalidParams{Context: "DeleteReceiptRuleInput"}
6169	if s.RuleName == nil {
6170		invalidParams.Add(request.NewErrParamRequired("RuleName"))
6171	}
6172	if s.RuleSetName == nil {
6173		invalidParams.Add(request.NewErrParamRequired("RuleSetName"))
6174	}
6175
6176	if invalidParams.Len() > 0 {
6177		return invalidParams
6178	}
6179	return nil
6180}
6181
6182// SetRuleName sets the RuleName field's value.
6183func (s *DeleteReceiptRuleInput) SetRuleName(v string) *DeleteReceiptRuleInput {
6184	s.RuleName = &v
6185	return s
6186}
6187
6188// SetRuleSetName sets the RuleSetName field's value.
6189func (s *DeleteReceiptRuleInput) SetRuleSetName(v string) *DeleteReceiptRuleInput {
6190	s.RuleSetName = &v
6191	return s
6192}
6193
6194// An empty element returned on a successful request.
6195// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteReceiptRuleResponse
6196type DeleteReceiptRuleOutput struct {
6197	_ struct{} `type:"structure"`
6198}
6199
6200// String returns the string representation
6201func (s DeleteReceiptRuleOutput) String() string {
6202	return awsutil.Prettify(s)
6203}
6204
6205// GoString returns the string representation
6206func (s DeleteReceiptRuleOutput) GoString() string {
6207	return s.String()
6208}
6209
6210// Represents a request to delete a receipt rule set and all of the receipt
6211// rules it contains. You use receipt rule sets to receive email with Amazon
6212// SES. For more information, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-concepts.html).
6213// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteReceiptRuleSetRequest
6214type DeleteReceiptRuleSetInput struct {
6215	_ struct{} `type:"structure"`
6216
6217	// The name of the receipt rule set to delete.
6218	//
6219	// RuleSetName is a required field
6220	RuleSetName *string `type:"string" required:"true"`
6221}
6222
6223// String returns the string representation
6224func (s DeleteReceiptRuleSetInput) String() string {
6225	return awsutil.Prettify(s)
6226}
6227
6228// GoString returns the string representation
6229func (s DeleteReceiptRuleSetInput) GoString() string {
6230	return s.String()
6231}
6232
6233// Validate inspects the fields of the type to determine if they are valid.
6234func (s *DeleteReceiptRuleSetInput) Validate() error {
6235	invalidParams := request.ErrInvalidParams{Context: "DeleteReceiptRuleSetInput"}
6236	if s.RuleSetName == nil {
6237		invalidParams.Add(request.NewErrParamRequired("RuleSetName"))
6238	}
6239
6240	if invalidParams.Len() > 0 {
6241		return invalidParams
6242	}
6243	return nil
6244}
6245
6246// SetRuleSetName sets the RuleSetName field's value.
6247func (s *DeleteReceiptRuleSetInput) SetRuleSetName(v string) *DeleteReceiptRuleSetInput {
6248	s.RuleSetName = &v
6249	return s
6250}
6251
6252// An empty element returned on a successful request.
6253// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteReceiptRuleSetResponse
6254type DeleteReceiptRuleSetOutput struct {
6255	_ struct{} `type:"structure"`
6256}
6257
6258// String returns the string representation
6259func (s DeleteReceiptRuleSetOutput) String() string {
6260	return awsutil.Prettify(s)
6261}
6262
6263// GoString returns the string representation
6264func (s DeleteReceiptRuleSetOutput) GoString() string {
6265	return s.String()
6266}
6267
6268// Represents a request to delete an email address from the list of email addresses
6269// you have attempted to verify under your AWS account.
6270// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteVerifiedEmailAddressRequest
6271type DeleteVerifiedEmailAddressInput struct {
6272	_ struct{} `type:"structure"`
6273
6274	// An email address to be removed from the list of verified addresses.
6275	//
6276	// EmailAddress is a required field
6277	EmailAddress *string `type:"string" required:"true"`
6278}
6279
6280// String returns the string representation
6281func (s DeleteVerifiedEmailAddressInput) String() string {
6282	return awsutil.Prettify(s)
6283}
6284
6285// GoString returns the string representation
6286func (s DeleteVerifiedEmailAddressInput) GoString() string {
6287	return s.String()
6288}
6289
6290// Validate inspects the fields of the type to determine if they are valid.
6291func (s *DeleteVerifiedEmailAddressInput) Validate() error {
6292	invalidParams := request.ErrInvalidParams{Context: "DeleteVerifiedEmailAddressInput"}
6293	if s.EmailAddress == nil {
6294		invalidParams.Add(request.NewErrParamRequired("EmailAddress"))
6295	}
6296
6297	if invalidParams.Len() > 0 {
6298		return invalidParams
6299	}
6300	return nil
6301}
6302
6303// SetEmailAddress sets the EmailAddress field's value.
6304func (s *DeleteVerifiedEmailAddressInput) SetEmailAddress(v string) *DeleteVerifiedEmailAddressInput {
6305	s.EmailAddress = &v
6306	return s
6307}
6308
6309// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteVerifiedEmailAddressOutput
6310type DeleteVerifiedEmailAddressOutput struct {
6311	_ struct{} `type:"structure"`
6312}
6313
6314// String returns the string representation
6315func (s DeleteVerifiedEmailAddressOutput) String() string {
6316	return awsutil.Prettify(s)
6317}
6318
6319// GoString returns the string representation
6320func (s DeleteVerifiedEmailAddressOutput) GoString() string {
6321	return s.String()
6322}
6323
6324// Represents a request to return the metadata and receipt rules for the receipt
6325// rule set that is currently active. You use receipt rule sets to receive email
6326// with Amazon SES. For more information, see the Amazon SES Developer Guide
6327// (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-concepts.html).
6328// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DescribeActiveReceiptRuleSetRequest
6329type DescribeActiveReceiptRuleSetInput struct {
6330	_ struct{} `type:"structure"`
6331}
6332
6333// String returns the string representation
6334func (s DescribeActiveReceiptRuleSetInput) String() string {
6335	return awsutil.Prettify(s)
6336}
6337
6338// GoString returns the string representation
6339func (s DescribeActiveReceiptRuleSetInput) GoString() string {
6340	return s.String()
6341}
6342
6343// Represents the metadata and receipt rules for the receipt rule set that is
6344// currently active.
6345// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DescribeActiveReceiptRuleSetResponse
6346type DescribeActiveReceiptRuleSetOutput struct {
6347	_ struct{} `type:"structure"`
6348
6349	// The metadata for the currently active receipt rule set. The metadata consists
6350	// of the rule set name and a timestamp of when the rule set was created.
6351	Metadata *ReceiptRuleSetMetadata `type:"structure"`
6352
6353	// The receipt rules that belong to the active rule set.
6354	Rules []*ReceiptRule `type:"list"`
6355}
6356
6357// String returns the string representation
6358func (s DescribeActiveReceiptRuleSetOutput) String() string {
6359	return awsutil.Prettify(s)
6360}
6361
6362// GoString returns the string representation
6363func (s DescribeActiveReceiptRuleSetOutput) GoString() string {
6364	return s.String()
6365}
6366
6367// SetMetadata sets the Metadata field's value.
6368func (s *DescribeActiveReceiptRuleSetOutput) SetMetadata(v *ReceiptRuleSetMetadata) *DescribeActiveReceiptRuleSetOutput {
6369	s.Metadata = v
6370	return s
6371}
6372
6373// SetRules sets the Rules field's value.
6374func (s *DescribeActiveReceiptRuleSetOutput) SetRules(v []*ReceiptRule) *DescribeActiveReceiptRuleSetOutput {
6375	s.Rules = v
6376	return s
6377}
6378
6379// Represents a request to return the details of a configuration set. Configuration
6380// sets enable you to publish email sending events. For information about using
6381// configuration sets, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html).
6382// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DescribeConfigurationSetRequest
6383type DescribeConfigurationSetInput struct {
6384	_ struct{} `type:"structure"`
6385
6386	// A list of configuration set attributes to return.
6387	ConfigurationSetAttributeNames []*string `type:"list"`
6388
6389	// The name of the configuration set to describe.
6390	//
6391	// ConfigurationSetName is a required field
6392	ConfigurationSetName *string `type:"string" required:"true"`
6393}
6394
6395// String returns the string representation
6396func (s DescribeConfigurationSetInput) String() string {
6397	return awsutil.Prettify(s)
6398}
6399
6400// GoString returns the string representation
6401func (s DescribeConfigurationSetInput) GoString() string {
6402	return s.String()
6403}
6404
6405// Validate inspects the fields of the type to determine if they are valid.
6406func (s *DescribeConfigurationSetInput) Validate() error {
6407	invalidParams := request.ErrInvalidParams{Context: "DescribeConfigurationSetInput"}
6408	if s.ConfigurationSetName == nil {
6409		invalidParams.Add(request.NewErrParamRequired("ConfigurationSetName"))
6410	}
6411
6412	if invalidParams.Len() > 0 {
6413		return invalidParams
6414	}
6415	return nil
6416}
6417
6418// SetConfigurationSetAttributeNames sets the ConfigurationSetAttributeNames field's value.
6419func (s *DescribeConfigurationSetInput) SetConfigurationSetAttributeNames(v []*string) *DescribeConfigurationSetInput {
6420	s.ConfigurationSetAttributeNames = v
6421	return s
6422}
6423
6424// SetConfigurationSetName sets the ConfigurationSetName field's value.
6425func (s *DescribeConfigurationSetInput) SetConfigurationSetName(v string) *DescribeConfigurationSetInput {
6426	s.ConfigurationSetName = &v
6427	return s
6428}
6429
6430// Represents the details of a configuration set. Configuration sets enable
6431// you to publish email sending events. For information about using configuration
6432// sets, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html).
6433// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DescribeConfigurationSetResponse
6434type DescribeConfigurationSetOutput struct {
6435	_ struct{} `type:"structure"`
6436
6437	// The configuration set object associated with the specified configuration
6438	// set.
6439	ConfigurationSet *ConfigurationSet `type:"structure"`
6440
6441	// A list of event destinations associated with the configuration set.
6442	EventDestinations []*EventDestination `type:"list"`
6443
6444	// The name of the custom open and click tracking domain associated with the
6445	// configuration set.
6446	TrackingOptions *TrackingOptions `type:"structure"`
6447}
6448
6449// String returns the string representation
6450func (s DescribeConfigurationSetOutput) String() string {
6451	return awsutil.Prettify(s)
6452}
6453
6454// GoString returns the string representation
6455func (s DescribeConfigurationSetOutput) GoString() string {
6456	return s.String()
6457}
6458
6459// SetConfigurationSet sets the ConfigurationSet field's value.
6460func (s *DescribeConfigurationSetOutput) SetConfigurationSet(v *ConfigurationSet) *DescribeConfigurationSetOutput {
6461	s.ConfigurationSet = v
6462	return s
6463}
6464
6465// SetEventDestinations sets the EventDestinations field's value.
6466func (s *DescribeConfigurationSetOutput) SetEventDestinations(v []*EventDestination) *DescribeConfigurationSetOutput {
6467	s.EventDestinations = v
6468	return s
6469}
6470
6471// SetTrackingOptions sets the TrackingOptions field's value.
6472func (s *DescribeConfigurationSetOutput) SetTrackingOptions(v *TrackingOptions) *DescribeConfigurationSetOutput {
6473	s.TrackingOptions = v
6474	return s
6475}
6476
6477// Represents a request to return the details of a receipt rule. You use receipt
6478// rules to receive email with Amazon SES. For more information, see the Amazon
6479// SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-concepts.html).
6480// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DescribeReceiptRuleRequest
6481type DescribeReceiptRuleInput struct {
6482	_ struct{} `type:"structure"`
6483
6484	// The name of the receipt rule.
6485	//
6486	// RuleName is a required field
6487	RuleName *string `type:"string" required:"true"`
6488
6489	// The name of the receipt rule set that the receipt rule belongs to.
6490	//
6491	// RuleSetName is a required field
6492	RuleSetName *string `type:"string" required:"true"`
6493}
6494
6495// String returns the string representation
6496func (s DescribeReceiptRuleInput) String() string {
6497	return awsutil.Prettify(s)
6498}
6499
6500// GoString returns the string representation
6501func (s DescribeReceiptRuleInput) GoString() string {
6502	return s.String()
6503}
6504
6505// Validate inspects the fields of the type to determine if they are valid.
6506func (s *DescribeReceiptRuleInput) Validate() error {
6507	invalidParams := request.ErrInvalidParams{Context: "DescribeReceiptRuleInput"}
6508	if s.RuleName == nil {
6509		invalidParams.Add(request.NewErrParamRequired("RuleName"))
6510	}
6511	if s.RuleSetName == nil {
6512		invalidParams.Add(request.NewErrParamRequired("RuleSetName"))
6513	}
6514
6515	if invalidParams.Len() > 0 {
6516		return invalidParams
6517	}
6518	return nil
6519}
6520
6521// SetRuleName sets the RuleName field's value.
6522func (s *DescribeReceiptRuleInput) SetRuleName(v string) *DescribeReceiptRuleInput {
6523	s.RuleName = &v
6524	return s
6525}
6526
6527// SetRuleSetName sets the RuleSetName field's value.
6528func (s *DescribeReceiptRuleInput) SetRuleSetName(v string) *DescribeReceiptRuleInput {
6529	s.RuleSetName = &v
6530	return s
6531}
6532
6533// Represents the details of a receipt rule.
6534// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DescribeReceiptRuleResponse
6535type DescribeReceiptRuleOutput struct {
6536	_ struct{} `type:"structure"`
6537
6538	// A data structure that contains the specified receipt rule's name, actions,
6539	// recipients, domains, enabled status, scan status, and Transport Layer Security
6540	// (TLS) policy.
6541	Rule *ReceiptRule `type:"structure"`
6542}
6543
6544// String returns the string representation
6545func (s DescribeReceiptRuleOutput) String() string {
6546	return awsutil.Prettify(s)
6547}
6548
6549// GoString returns the string representation
6550func (s DescribeReceiptRuleOutput) GoString() string {
6551	return s.String()
6552}
6553
6554// SetRule sets the Rule field's value.
6555func (s *DescribeReceiptRuleOutput) SetRule(v *ReceiptRule) *DescribeReceiptRuleOutput {
6556	s.Rule = v
6557	return s
6558}
6559
6560// Represents a request to return the details of a receipt rule set. You use
6561// receipt rule sets to receive email with Amazon SES. For more information,
6562// see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-concepts.html).
6563// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DescribeReceiptRuleSetRequest
6564type DescribeReceiptRuleSetInput struct {
6565	_ struct{} `type:"structure"`
6566
6567	// The name of the receipt rule set to describe.
6568	//
6569	// RuleSetName is a required field
6570	RuleSetName *string `type:"string" required:"true"`
6571}
6572
6573// String returns the string representation
6574func (s DescribeReceiptRuleSetInput) String() string {
6575	return awsutil.Prettify(s)
6576}
6577
6578// GoString returns the string representation
6579func (s DescribeReceiptRuleSetInput) GoString() string {
6580	return s.String()
6581}
6582
6583// Validate inspects the fields of the type to determine if they are valid.
6584func (s *DescribeReceiptRuleSetInput) Validate() error {
6585	invalidParams := request.ErrInvalidParams{Context: "DescribeReceiptRuleSetInput"}
6586	if s.RuleSetName == nil {
6587		invalidParams.Add(request.NewErrParamRequired("RuleSetName"))
6588	}
6589
6590	if invalidParams.Len() > 0 {
6591		return invalidParams
6592	}
6593	return nil
6594}
6595
6596// SetRuleSetName sets the RuleSetName field's value.
6597func (s *DescribeReceiptRuleSetInput) SetRuleSetName(v string) *DescribeReceiptRuleSetInput {
6598	s.RuleSetName = &v
6599	return s
6600}
6601
6602// Represents the details of the specified receipt rule set.
6603// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DescribeReceiptRuleSetResponse
6604type DescribeReceiptRuleSetOutput struct {
6605	_ struct{} `type:"structure"`
6606
6607	// The metadata for the receipt rule set, which consists of the rule set name
6608	// and the timestamp of when the rule set was created.
6609	Metadata *ReceiptRuleSetMetadata `type:"structure"`
6610
6611	// A list of the receipt rules that belong to the specified receipt rule set.
6612	Rules []*ReceiptRule `type:"list"`
6613}
6614
6615// String returns the string representation
6616func (s DescribeReceiptRuleSetOutput) String() string {
6617	return awsutil.Prettify(s)
6618}
6619
6620// GoString returns the string representation
6621func (s DescribeReceiptRuleSetOutput) GoString() string {
6622	return s.String()
6623}
6624
6625// SetMetadata sets the Metadata field's value.
6626func (s *DescribeReceiptRuleSetOutput) SetMetadata(v *ReceiptRuleSetMetadata) *DescribeReceiptRuleSetOutput {
6627	s.Metadata = v
6628	return s
6629}
6630
6631// SetRules sets the Rules field's value.
6632func (s *DescribeReceiptRuleSetOutput) SetRules(v []*ReceiptRule) *DescribeReceiptRuleSetOutput {
6633	s.Rules = v
6634	return s
6635}
6636
6637// Represents the destination of the message, consisting of To:, CC:, and BCC:
6638// fields.
6639//
6640// By default, the string must be 7-bit ASCII. If the text must contain any
6641// other characters, then you must use MIME encoded-word syntax (RFC 2047) instead
6642// of a literal string. MIME encoded-word syntax uses the following form: =?charset?encoding?encoded-text?=.
6643// For more information, see RFC 2047 (https://tools.ietf.org/html/rfc2047).
6644// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/Destination
6645type Destination struct {
6646	_ struct{} `type:"structure"`
6647
6648	// The BCC: field(s) of the message.
6649	BccAddresses []*string `type:"list"`
6650
6651	// The CC: field(s) of the message.
6652	CcAddresses []*string `type:"list"`
6653
6654	// The To: field(s) of the message.
6655	ToAddresses []*string `type:"list"`
6656}
6657
6658// String returns the string representation
6659func (s Destination) String() string {
6660	return awsutil.Prettify(s)
6661}
6662
6663// GoString returns the string representation
6664func (s Destination) GoString() string {
6665	return s.String()
6666}
6667
6668// SetBccAddresses sets the BccAddresses field's value.
6669func (s *Destination) SetBccAddresses(v []*string) *Destination {
6670	s.BccAddresses = v
6671	return s
6672}
6673
6674// SetCcAddresses sets the CcAddresses field's value.
6675func (s *Destination) SetCcAddresses(v []*string) *Destination {
6676	s.CcAddresses = v
6677	return s
6678}
6679
6680// SetToAddresses sets the ToAddresses field's value.
6681func (s *Destination) SetToAddresses(v []*string) *Destination {
6682	s.ToAddresses = v
6683	return s
6684}
6685
6686// Contains information about the event destination that the specified email
6687// sending events will be published to.
6688//
6689// When you create or update an event destination, you must provide one, and
6690// only one, destination. The destination can be Amazon CloudWatch, Amazon Kinesis
6691// Firehose or Amazon Simple Notification Service (Amazon SNS).
6692//
6693// Event destinations are associated with configuration sets, which enable you
6694// to publish email sending events to Amazon CloudWatch, Amazon Kinesis Firehose,
6695// or Amazon Simple Notification Service (Amazon SNS). For information about
6696// using configuration sets, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html).
6697// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/EventDestination
6698type EventDestination struct {
6699	_ struct{} `type:"structure"`
6700
6701	// An object that contains the names, default values, and sources of the dimensions
6702	// associated with an Amazon CloudWatch event destination.
6703	CloudWatchDestination *CloudWatchDestination `type:"structure"`
6704
6705	// Sets whether Amazon SES publishes events to this destination when you send
6706	// an email with the associated configuration set. Set to true to enable publishing
6707	// to this destination; set to false to prevent publishing to this destination.
6708	// The default value is false.
6709	Enabled *bool `type:"boolean"`
6710
6711	// An object that contains the delivery stream ARN and the IAM role ARN associated
6712	// with an Amazon Kinesis Firehose event destination.
6713	KinesisFirehoseDestination *KinesisFirehoseDestination `type:"structure"`
6714
6715	// The type of email sending events to publish to the event destination.
6716	//
6717	// MatchingEventTypes is a required field
6718	MatchingEventTypes []*string `type:"list" required:"true"`
6719
6720	// The name of the event destination. The name must:
6721	//
6722	//    * Contain only ASCII letters (a-z, A-Z), numbers (0-9), underscores (_),
6723	//    or dashes (-).
6724	//
6725	//    * Contain less than 64 characters.
6726	//
6727	// Name is a required field
6728	Name *string `type:"string" required:"true"`
6729
6730	// An object that contains the topic ARN associated with an Amazon Simple Notification
6731	// Service (Amazon SNS) event destination.
6732	SNSDestination *SNSDestination `type:"structure"`
6733}
6734
6735// String returns the string representation
6736func (s EventDestination) String() string {
6737	return awsutil.Prettify(s)
6738}
6739
6740// GoString returns the string representation
6741func (s EventDestination) GoString() string {
6742	return s.String()
6743}
6744
6745// Validate inspects the fields of the type to determine if they are valid.
6746func (s *EventDestination) Validate() error {
6747	invalidParams := request.ErrInvalidParams{Context: "EventDestination"}
6748	if s.MatchingEventTypes == nil {
6749		invalidParams.Add(request.NewErrParamRequired("MatchingEventTypes"))
6750	}
6751	if s.Name == nil {
6752		invalidParams.Add(request.NewErrParamRequired("Name"))
6753	}
6754	if s.CloudWatchDestination != nil {
6755		if err := s.CloudWatchDestination.Validate(); err != nil {
6756			invalidParams.AddNested("CloudWatchDestination", err.(request.ErrInvalidParams))
6757		}
6758	}
6759	if s.KinesisFirehoseDestination != nil {
6760		if err := s.KinesisFirehoseDestination.Validate(); err != nil {
6761			invalidParams.AddNested("KinesisFirehoseDestination", err.(request.ErrInvalidParams))
6762		}
6763	}
6764	if s.SNSDestination != nil {
6765		if err := s.SNSDestination.Validate(); err != nil {
6766			invalidParams.AddNested("SNSDestination", err.(request.ErrInvalidParams))
6767		}
6768	}
6769
6770	if invalidParams.Len() > 0 {
6771		return invalidParams
6772	}
6773	return nil
6774}
6775
6776// SetCloudWatchDestination sets the CloudWatchDestination field's value.
6777func (s *EventDestination) SetCloudWatchDestination(v *CloudWatchDestination) *EventDestination {
6778	s.CloudWatchDestination = v
6779	return s
6780}
6781
6782// SetEnabled sets the Enabled field's value.
6783func (s *EventDestination) SetEnabled(v bool) *EventDestination {
6784	s.Enabled = &v
6785	return s
6786}
6787
6788// SetKinesisFirehoseDestination sets the KinesisFirehoseDestination field's value.
6789func (s *EventDestination) SetKinesisFirehoseDestination(v *KinesisFirehoseDestination) *EventDestination {
6790	s.KinesisFirehoseDestination = v
6791	return s
6792}
6793
6794// SetMatchingEventTypes sets the MatchingEventTypes field's value.
6795func (s *EventDestination) SetMatchingEventTypes(v []*string) *EventDestination {
6796	s.MatchingEventTypes = v
6797	return s
6798}
6799
6800// SetName sets the Name field's value.
6801func (s *EventDestination) SetName(v string) *EventDestination {
6802	s.Name = &v
6803	return s
6804}
6805
6806// SetSNSDestination sets the SNSDestination field's value.
6807func (s *EventDestination) SetSNSDestination(v *SNSDestination) *EventDestination {
6808	s.SNSDestination = v
6809	return s
6810}
6811
6812// Additional X-headers to include in the Delivery Status Notification (DSN)
6813// when an email that Amazon SES receives on your behalf bounces.
6814//
6815// For information about receiving email through Amazon SES, see the Amazon
6816// SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email.html).
6817// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ExtensionField
6818type ExtensionField struct {
6819	_ struct{} `type:"structure"`
6820
6821	// The name of the header to add. Must be between 1 and 50 characters, inclusive,
6822	// and consist of alphanumeric (a-z, A-Z, 0-9) characters and dashes only.
6823	//
6824	// Name is a required field
6825	Name *string `type:"string" required:"true"`
6826
6827	// The value of the header to add. Must be less than 2048 characters, and must
6828	// not contain newline characters ("\r" or "\n").
6829	//
6830	// Value is a required field
6831	Value *string `type:"string" required:"true"`
6832}
6833
6834// String returns the string representation
6835func (s ExtensionField) String() string {
6836	return awsutil.Prettify(s)
6837}
6838
6839// GoString returns the string representation
6840func (s ExtensionField) GoString() string {
6841	return s.String()
6842}
6843
6844// Validate inspects the fields of the type to determine if they are valid.
6845func (s *ExtensionField) Validate() error {
6846	invalidParams := request.ErrInvalidParams{Context: "ExtensionField"}
6847	if s.Name == nil {
6848		invalidParams.Add(request.NewErrParamRequired("Name"))
6849	}
6850	if s.Value == nil {
6851		invalidParams.Add(request.NewErrParamRequired("Value"))
6852	}
6853
6854	if invalidParams.Len() > 0 {
6855		return invalidParams
6856	}
6857	return nil
6858}
6859
6860// SetName sets the Name field's value.
6861func (s *ExtensionField) SetName(v string) *ExtensionField {
6862	s.Name = &v
6863	return s
6864}
6865
6866// SetValue sets the Value field's value.
6867func (s *ExtensionField) SetValue(v string) *ExtensionField {
6868	s.Value = &v
6869	return s
6870}
6871
6872// Represents a request for the status of Amazon SES Easy DKIM signing for an
6873// identity. For domain identities, this request also returns the DKIM tokens
6874// that are required for Easy DKIM signing, and whether Amazon SES successfully
6875// verified that these tokens were published. For more information about Easy
6876// DKIM, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html).
6877// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetIdentityDkimAttributesRequest
6878type GetIdentityDkimAttributesInput struct {
6879	_ struct{} `type:"structure"`
6880
6881	// A list of one or more verified identities - email addresses, domains, or
6882	// both.
6883	//
6884	// Identities is a required field
6885	Identities []*string `type:"list" required:"true"`
6886}
6887
6888// String returns the string representation
6889func (s GetIdentityDkimAttributesInput) String() string {
6890	return awsutil.Prettify(s)
6891}
6892
6893// GoString returns the string representation
6894func (s GetIdentityDkimAttributesInput) GoString() string {
6895	return s.String()
6896}
6897
6898// Validate inspects the fields of the type to determine if they are valid.
6899func (s *GetIdentityDkimAttributesInput) Validate() error {
6900	invalidParams := request.ErrInvalidParams{Context: "GetIdentityDkimAttributesInput"}
6901	if s.Identities == nil {
6902		invalidParams.Add(request.NewErrParamRequired("Identities"))
6903	}
6904
6905	if invalidParams.Len() > 0 {
6906		return invalidParams
6907	}
6908	return nil
6909}
6910
6911// SetIdentities sets the Identities field's value.
6912func (s *GetIdentityDkimAttributesInput) SetIdentities(v []*string) *GetIdentityDkimAttributesInput {
6913	s.Identities = v
6914	return s
6915}
6916
6917// Represents the status of Amazon SES Easy DKIM signing for an identity. For
6918// domain identities, this response also contains the DKIM tokens that are required
6919// for Easy DKIM signing, and whether Amazon SES successfully verified that
6920// these tokens were published.
6921// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetIdentityDkimAttributesResponse
6922type GetIdentityDkimAttributesOutput struct {
6923	_ struct{} `type:"structure"`
6924
6925	// The DKIM attributes for an email address or a domain.
6926	//
6927	// DkimAttributes is a required field
6928	DkimAttributes map[string]*IdentityDkimAttributes `type:"map" required:"true"`
6929}
6930
6931// String returns the string representation
6932func (s GetIdentityDkimAttributesOutput) String() string {
6933	return awsutil.Prettify(s)
6934}
6935
6936// GoString returns the string representation
6937func (s GetIdentityDkimAttributesOutput) GoString() string {
6938	return s.String()
6939}
6940
6941// SetDkimAttributes sets the DkimAttributes field's value.
6942func (s *GetIdentityDkimAttributesOutput) SetDkimAttributes(v map[string]*IdentityDkimAttributes) *GetIdentityDkimAttributesOutput {
6943	s.DkimAttributes = v
6944	return s
6945}
6946
6947// Represents a request to return the Amazon SES custom MAIL FROM attributes
6948// for a list of identities. For information about using a custom MAIL FROM
6949// domain, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/mail-from.html).
6950// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetIdentityMailFromDomainAttributesRequest
6951type GetIdentityMailFromDomainAttributesInput struct {
6952	_ struct{} `type:"structure"`
6953
6954	// A list of one or more identities.
6955	//
6956	// Identities is a required field
6957	Identities []*string `type:"list" required:"true"`
6958}
6959
6960// String returns the string representation
6961func (s GetIdentityMailFromDomainAttributesInput) String() string {
6962	return awsutil.Prettify(s)
6963}
6964
6965// GoString returns the string representation
6966func (s GetIdentityMailFromDomainAttributesInput) GoString() string {
6967	return s.String()
6968}
6969
6970// Validate inspects the fields of the type to determine if they are valid.
6971func (s *GetIdentityMailFromDomainAttributesInput) Validate() error {
6972	invalidParams := request.ErrInvalidParams{Context: "GetIdentityMailFromDomainAttributesInput"}
6973	if s.Identities == nil {
6974		invalidParams.Add(request.NewErrParamRequired("Identities"))
6975	}
6976
6977	if invalidParams.Len() > 0 {
6978		return invalidParams
6979	}
6980	return nil
6981}
6982
6983// SetIdentities sets the Identities field's value.
6984func (s *GetIdentityMailFromDomainAttributesInput) SetIdentities(v []*string) *GetIdentityMailFromDomainAttributesInput {
6985	s.Identities = v
6986	return s
6987}
6988
6989// Represents the custom MAIL FROM attributes for a list of identities.
6990// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetIdentityMailFromDomainAttributesResponse
6991type GetIdentityMailFromDomainAttributesOutput struct {
6992	_ struct{} `type:"structure"`
6993
6994	// A map of identities to custom MAIL FROM attributes.
6995	//
6996	// MailFromDomainAttributes is a required field
6997	MailFromDomainAttributes map[string]*IdentityMailFromDomainAttributes `type:"map" required:"true"`
6998}
6999
7000// String returns the string representation
7001func (s GetIdentityMailFromDomainAttributesOutput) String() string {
7002	return awsutil.Prettify(s)
7003}
7004
7005// GoString returns the string representation
7006func (s GetIdentityMailFromDomainAttributesOutput) GoString() string {
7007	return s.String()
7008}
7009
7010// SetMailFromDomainAttributes sets the MailFromDomainAttributes field's value.
7011func (s *GetIdentityMailFromDomainAttributesOutput) SetMailFromDomainAttributes(v map[string]*IdentityMailFromDomainAttributes) *GetIdentityMailFromDomainAttributesOutput {
7012	s.MailFromDomainAttributes = v
7013	return s
7014}
7015
7016// Represents a request to return the notification attributes for a list of
7017// identities you verified with Amazon SES. For information about Amazon SES
7018// notifications, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/notifications.html).
7019// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetIdentityNotificationAttributesRequest
7020type GetIdentityNotificationAttributesInput struct {
7021	_ struct{} `type:"structure"`
7022
7023	// A list of one or more identities. You can specify an identity by using its
7024	// name or by using its Amazon Resource Name (ARN). Examples: user@example.com,
7025	// example.com, arn:aws:ses:us-east-1:123456789012:identity/example.com.
7026	//
7027	// Identities is a required field
7028	Identities []*string `type:"list" required:"true"`
7029}
7030
7031// String returns the string representation
7032func (s GetIdentityNotificationAttributesInput) String() string {
7033	return awsutil.Prettify(s)
7034}
7035
7036// GoString returns the string representation
7037func (s GetIdentityNotificationAttributesInput) GoString() string {
7038	return s.String()
7039}
7040
7041// Validate inspects the fields of the type to determine if they are valid.
7042func (s *GetIdentityNotificationAttributesInput) Validate() error {
7043	invalidParams := request.ErrInvalidParams{Context: "GetIdentityNotificationAttributesInput"}
7044	if s.Identities == nil {
7045		invalidParams.Add(request.NewErrParamRequired("Identities"))
7046	}
7047
7048	if invalidParams.Len() > 0 {
7049		return invalidParams
7050	}
7051	return nil
7052}
7053
7054// SetIdentities sets the Identities field's value.
7055func (s *GetIdentityNotificationAttributesInput) SetIdentities(v []*string) *GetIdentityNotificationAttributesInput {
7056	s.Identities = v
7057	return s
7058}
7059
7060// Represents the notification attributes for a list of identities.
7061// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetIdentityNotificationAttributesResponse
7062type GetIdentityNotificationAttributesOutput struct {
7063	_ struct{} `type:"structure"`
7064
7065	// A map of Identity to IdentityNotificationAttributes.
7066	//
7067	// NotificationAttributes is a required field
7068	NotificationAttributes map[string]*IdentityNotificationAttributes `type:"map" required:"true"`
7069}
7070
7071// String returns the string representation
7072func (s GetIdentityNotificationAttributesOutput) String() string {
7073	return awsutil.Prettify(s)
7074}
7075
7076// GoString returns the string representation
7077func (s GetIdentityNotificationAttributesOutput) GoString() string {
7078	return s.String()
7079}
7080
7081// SetNotificationAttributes sets the NotificationAttributes field's value.
7082func (s *GetIdentityNotificationAttributesOutput) SetNotificationAttributes(v map[string]*IdentityNotificationAttributes) *GetIdentityNotificationAttributesOutput {
7083	s.NotificationAttributes = v
7084	return s
7085}
7086
7087// Represents a request to return the requested sending authorization policies
7088// for an identity. Sending authorization is an Amazon SES feature that enables
7089// you to authorize other senders to use your identities. For information, see
7090// the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html).
7091// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetIdentityPoliciesRequest
7092type GetIdentityPoliciesInput struct {
7093	_ struct{} `type:"structure"`
7094
7095	// The identity for which the policies will be retrieved. You can specify an
7096	// identity by using its name or by using its Amazon Resource Name (ARN). Examples:
7097	// user@example.com, example.com, arn:aws:ses:us-east-1:123456789012:identity/example.com.
7098	//
7099	// To successfully call this API, you must own the identity.
7100	//
7101	// Identity is a required field
7102	Identity *string `type:"string" required:"true"`
7103
7104	// A list of the names of policies to be retrieved. You can retrieve a maximum
7105	// of 20 policies at a time. If you do not know the names of the policies that
7106	// are attached to the identity, you can use ListIdentityPolicies.
7107	//
7108	// PolicyNames is a required field
7109	PolicyNames []*string `type:"list" required:"true"`
7110}
7111
7112// String returns the string representation
7113func (s GetIdentityPoliciesInput) String() string {
7114	return awsutil.Prettify(s)
7115}
7116
7117// GoString returns the string representation
7118func (s GetIdentityPoliciesInput) GoString() string {
7119	return s.String()
7120}
7121
7122// Validate inspects the fields of the type to determine if they are valid.
7123func (s *GetIdentityPoliciesInput) Validate() error {
7124	invalidParams := request.ErrInvalidParams{Context: "GetIdentityPoliciesInput"}
7125	if s.Identity == nil {
7126		invalidParams.Add(request.NewErrParamRequired("Identity"))
7127	}
7128	if s.PolicyNames == nil {
7129		invalidParams.Add(request.NewErrParamRequired("PolicyNames"))
7130	}
7131
7132	if invalidParams.Len() > 0 {
7133		return invalidParams
7134	}
7135	return nil
7136}
7137
7138// SetIdentity sets the Identity field's value.
7139func (s *GetIdentityPoliciesInput) SetIdentity(v string) *GetIdentityPoliciesInput {
7140	s.Identity = &v
7141	return s
7142}
7143
7144// SetPolicyNames sets the PolicyNames field's value.
7145func (s *GetIdentityPoliciesInput) SetPolicyNames(v []*string) *GetIdentityPoliciesInput {
7146	s.PolicyNames = v
7147	return s
7148}
7149
7150// Represents the requested sending authorization policies.
7151// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetIdentityPoliciesResponse
7152type GetIdentityPoliciesOutput struct {
7153	_ struct{} `type:"structure"`
7154
7155	// A map of policy names to policies.
7156	//
7157	// Policies is a required field
7158	Policies map[string]*string `type:"map" required:"true"`
7159}
7160
7161// String returns the string representation
7162func (s GetIdentityPoliciesOutput) String() string {
7163	return awsutil.Prettify(s)
7164}
7165
7166// GoString returns the string representation
7167func (s GetIdentityPoliciesOutput) GoString() string {
7168	return s.String()
7169}
7170
7171// SetPolicies sets the Policies field's value.
7172func (s *GetIdentityPoliciesOutput) SetPolicies(v map[string]*string) *GetIdentityPoliciesOutput {
7173	s.Policies = v
7174	return s
7175}
7176
7177// Represents a request to return the Amazon SES verification status of a list
7178// of identities. For domain identities, this request also returns the verification
7179// token. For information about verifying identities with Amazon SES, see the
7180// Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-addresses-and-domains.html).
7181// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetIdentityVerificationAttributesRequest
7182type GetIdentityVerificationAttributesInput struct {
7183	_ struct{} `type:"structure"`
7184
7185	// A list of identities.
7186	//
7187	// Identities is a required field
7188	Identities []*string `type:"list" required:"true"`
7189}
7190
7191// String returns the string representation
7192func (s GetIdentityVerificationAttributesInput) String() string {
7193	return awsutil.Prettify(s)
7194}
7195
7196// GoString returns the string representation
7197func (s GetIdentityVerificationAttributesInput) GoString() string {
7198	return s.String()
7199}
7200
7201// Validate inspects the fields of the type to determine if they are valid.
7202func (s *GetIdentityVerificationAttributesInput) Validate() error {
7203	invalidParams := request.ErrInvalidParams{Context: "GetIdentityVerificationAttributesInput"}
7204	if s.Identities == nil {
7205		invalidParams.Add(request.NewErrParamRequired("Identities"))
7206	}
7207
7208	if invalidParams.Len() > 0 {
7209		return invalidParams
7210	}
7211	return nil
7212}
7213
7214// SetIdentities sets the Identities field's value.
7215func (s *GetIdentityVerificationAttributesInput) SetIdentities(v []*string) *GetIdentityVerificationAttributesInput {
7216	s.Identities = v
7217	return s
7218}
7219
7220// The Amazon SES verification status of a list of identities. For domain identities,
7221// this response also contains the verification token.
7222// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetIdentityVerificationAttributesResponse
7223type GetIdentityVerificationAttributesOutput struct {
7224	_ struct{} `type:"structure"`
7225
7226	// A map of Identities to IdentityVerificationAttributes objects.
7227	//
7228	// VerificationAttributes is a required field
7229	VerificationAttributes map[string]*IdentityVerificationAttributes `type:"map" required:"true"`
7230}
7231
7232// String returns the string representation
7233func (s GetIdentityVerificationAttributesOutput) String() string {
7234	return awsutil.Prettify(s)
7235}
7236
7237// GoString returns the string representation
7238func (s GetIdentityVerificationAttributesOutput) GoString() string {
7239	return s.String()
7240}
7241
7242// SetVerificationAttributes sets the VerificationAttributes field's value.
7243func (s *GetIdentityVerificationAttributesOutput) SetVerificationAttributes(v map[string]*IdentityVerificationAttributes) *GetIdentityVerificationAttributesOutput {
7244	s.VerificationAttributes = v
7245	return s
7246}
7247
7248// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetSendQuotaInput
7249type GetSendQuotaInput struct {
7250	_ struct{} `type:"structure"`
7251}
7252
7253// String returns the string representation
7254func (s GetSendQuotaInput) String() string {
7255	return awsutil.Prettify(s)
7256}
7257
7258// GoString returns the string representation
7259func (s GetSendQuotaInput) GoString() string {
7260	return s.String()
7261}
7262
7263// Represents your Amazon SES daily sending quota, maximum send rate, and the
7264// number of emails you have sent in the last 24 hours.
7265// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetSendQuotaResponse
7266type GetSendQuotaOutput struct {
7267	_ struct{} `type:"structure"`
7268
7269	// The maximum number of emails the user is allowed to send in a 24-hour interval.
7270	// A value of -1 signifies an unlimited quota.
7271	Max24HourSend *float64 `type:"double"`
7272
7273	// The maximum number of emails that Amazon SES can accept from the user's account
7274	// per second.
7275	//
7276	// The rate at which Amazon SES accepts the user's messages might be less than
7277	// the maximum send rate.
7278	MaxSendRate *float64 `type:"double"`
7279
7280	// The number of emails sent during the previous 24 hours.
7281	SentLast24Hours *float64 `type:"double"`
7282}
7283
7284// String returns the string representation
7285func (s GetSendQuotaOutput) String() string {
7286	return awsutil.Prettify(s)
7287}
7288
7289// GoString returns the string representation
7290func (s GetSendQuotaOutput) GoString() string {
7291	return s.String()
7292}
7293
7294// SetMax24HourSend sets the Max24HourSend field's value.
7295func (s *GetSendQuotaOutput) SetMax24HourSend(v float64) *GetSendQuotaOutput {
7296	s.Max24HourSend = &v
7297	return s
7298}
7299
7300// SetMaxSendRate sets the MaxSendRate field's value.
7301func (s *GetSendQuotaOutput) SetMaxSendRate(v float64) *GetSendQuotaOutput {
7302	s.MaxSendRate = &v
7303	return s
7304}
7305
7306// SetSentLast24Hours sets the SentLast24Hours field's value.
7307func (s *GetSendQuotaOutput) SetSentLast24Hours(v float64) *GetSendQuotaOutput {
7308	s.SentLast24Hours = &v
7309	return s
7310}
7311
7312// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetSendStatisticsInput
7313type GetSendStatisticsInput struct {
7314	_ struct{} `type:"structure"`
7315}
7316
7317// String returns the string representation
7318func (s GetSendStatisticsInput) String() string {
7319	return awsutil.Prettify(s)
7320}
7321
7322// GoString returns the string representation
7323func (s GetSendStatisticsInput) GoString() string {
7324	return s.String()
7325}
7326
7327// Represents a list of data points. This list contains aggregated data from
7328// the previous two weeks of your sending activity with Amazon SES.
7329// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetSendStatisticsResponse
7330type GetSendStatisticsOutput struct {
7331	_ struct{} `type:"structure"`
7332
7333	// A list of data points, each of which represents 15 minutes of activity.
7334	SendDataPoints []*SendDataPoint `type:"list"`
7335}
7336
7337// String returns the string representation
7338func (s GetSendStatisticsOutput) String() string {
7339	return awsutil.Prettify(s)
7340}
7341
7342// GoString returns the string representation
7343func (s GetSendStatisticsOutput) GoString() string {
7344	return s.String()
7345}
7346
7347// SetSendDataPoints sets the SendDataPoints field's value.
7348func (s *GetSendStatisticsOutput) SetSendDataPoints(v []*SendDataPoint) *GetSendStatisticsOutput {
7349	s.SendDataPoints = v
7350	return s
7351}
7352
7353// Represents the DKIM attributes of a verified email address or a domain.
7354// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/IdentityDkimAttributes
7355type IdentityDkimAttributes struct {
7356	_ struct{} `type:"structure"`
7357
7358	// True if DKIM signing is enabled for email sent from the identity; false otherwise.
7359	// The default value is true.
7360	//
7361	// DkimEnabled is a required field
7362	DkimEnabled *bool `type:"boolean" required:"true"`
7363
7364	// A set of character strings that represent the domain's identity. Using these
7365	// tokens, you will need to create DNS CNAME records that point to DKIM public
7366	// keys hosted by Amazon SES. Amazon Web Services will eventually detect that
7367	// you have updated your DNS records; this detection process may take up to
7368	// 72 hours. Upon successful detection, Amazon SES will be able to DKIM-sign
7369	// email originating from that domain. (This only applies to domain identities,
7370	// not email address identities.)
7371	//
7372	// For more information about creating DNS records using DKIM tokens, go to
7373	// the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim-dns-records.html).
7374	DkimTokens []*string `type:"list"`
7375
7376	// Describes whether Amazon SES has successfully verified the DKIM DNS records
7377	// (tokens) published in the domain name's DNS. (This only applies to domain
7378	// identities, not email address identities.)
7379	//
7380	// DkimVerificationStatus is a required field
7381	DkimVerificationStatus *string `type:"string" required:"true" enum:"VerificationStatus"`
7382}
7383
7384// String returns the string representation
7385func (s IdentityDkimAttributes) String() string {
7386	return awsutil.Prettify(s)
7387}
7388
7389// GoString returns the string representation
7390func (s IdentityDkimAttributes) GoString() string {
7391	return s.String()
7392}
7393
7394// SetDkimEnabled sets the DkimEnabled field's value.
7395func (s *IdentityDkimAttributes) SetDkimEnabled(v bool) *IdentityDkimAttributes {
7396	s.DkimEnabled = &v
7397	return s
7398}
7399
7400// SetDkimTokens sets the DkimTokens field's value.
7401func (s *IdentityDkimAttributes) SetDkimTokens(v []*string) *IdentityDkimAttributes {
7402	s.DkimTokens = v
7403	return s
7404}
7405
7406// SetDkimVerificationStatus sets the DkimVerificationStatus field's value.
7407func (s *IdentityDkimAttributes) SetDkimVerificationStatus(v string) *IdentityDkimAttributes {
7408	s.DkimVerificationStatus = &v
7409	return s
7410}
7411
7412// Represents the custom MAIL FROM domain attributes of a verified identity
7413// (email address or domain).
7414// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/IdentityMailFromDomainAttributes
7415type IdentityMailFromDomainAttributes struct {
7416	_ struct{} `type:"structure"`
7417
7418	// The action that Amazon SES takes if it cannot successfully read the required
7419	// MX record when you send an email. A value of UseDefaultValue indicates that
7420	// if Amazon SES cannot read the required MX record, it uses amazonses.com (or
7421	// a subdomain of that) as the MAIL FROM domain. A value of RejectMessage indicates
7422	// that if Amazon SES cannot read the required MX record, Amazon SES returns
7423	// a MailFromDomainNotVerified error and does not send the email.
7424	//
7425	// The custom MAIL FROM setup states that result in this behavior are Pending,
7426	// Failed, and TemporaryFailure.
7427	//
7428	// BehaviorOnMXFailure is a required field
7429	BehaviorOnMXFailure *string `type:"string" required:"true" enum:"BehaviorOnMXFailure"`
7430
7431	// The custom MAIL FROM domain that the identity is configured to use.
7432	//
7433	// MailFromDomain is a required field
7434	MailFromDomain *string `type:"string" required:"true"`
7435
7436	// The state that indicates whether Amazon SES has successfully read the MX
7437	// record required for custom MAIL FROM domain setup. If the state is Success,
7438	// Amazon SES uses the specified custom MAIL FROM domain when the verified identity
7439	// sends an email. All other states indicate that Amazon SES takes the action
7440	// described by BehaviorOnMXFailure.
7441	//
7442	// MailFromDomainStatus is a required field
7443	MailFromDomainStatus *string `type:"string" required:"true" enum:"CustomMailFromStatus"`
7444}
7445
7446// String returns the string representation
7447func (s IdentityMailFromDomainAttributes) String() string {
7448	return awsutil.Prettify(s)
7449}
7450
7451// GoString returns the string representation
7452func (s IdentityMailFromDomainAttributes) GoString() string {
7453	return s.String()
7454}
7455
7456// SetBehaviorOnMXFailure sets the BehaviorOnMXFailure field's value.
7457func (s *IdentityMailFromDomainAttributes) SetBehaviorOnMXFailure(v string) *IdentityMailFromDomainAttributes {
7458	s.BehaviorOnMXFailure = &v
7459	return s
7460}
7461
7462// SetMailFromDomain sets the MailFromDomain field's value.
7463func (s *IdentityMailFromDomainAttributes) SetMailFromDomain(v string) *IdentityMailFromDomainAttributes {
7464	s.MailFromDomain = &v
7465	return s
7466}
7467
7468// SetMailFromDomainStatus sets the MailFromDomainStatus field's value.
7469func (s *IdentityMailFromDomainAttributes) SetMailFromDomainStatus(v string) *IdentityMailFromDomainAttributes {
7470	s.MailFromDomainStatus = &v
7471	return s
7472}
7473
7474// Represents the notification attributes of an identity, including whether
7475// an identity has Amazon Simple Notification Service (Amazon SNS) topics set
7476// for bounce, complaint, and/or delivery notifications, and whether feedback
7477// forwarding is enabled for bounce and complaint notifications.
7478// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/IdentityNotificationAttributes
7479type IdentityNotificationAttributes struct {
7480	_ struct{} `type:"structure"`
7481
7482	// The Amazon Resource Name (ARN) of the Amazon SNS topic where Amazon SES will
7483	// publish bounce notifications.
7484	//
7485	// BounceTopic is a required field
7486	BounceTopic *string `type:"string" required:"true"`
7487
7488	// The Amazon Resource Name (ARN) of the Amazon SNS topic where Amazon SES will
7489	// publish complaint notifications.
7490	//
7491	// ComplaintTopic is a required field
7492	ComplaintTopic *string `type:"string" required:"true"`
7493
7494	// The Amazon Resource Name (ARN) of the Amazon SNS topic where Amazon SES will
7495	// publish delivery notifications.
7496	//
7497	// DeliveryTopic is a required field
7498	DeliveryTopic *string `type:"string" required:"true"`
7499
7500	// Describes whether Amazon SES will forward bounce and complaint notifications
7501	// as email. true indicates that Amazon SES will forward bounce and complaint
7502	// notifications as email, while false indicates that bounce and complaint notifications
7503	// will be published only to the specified bounce and complaint Amazon SNS topics.
7504	//
7505	// ForwardingEnabled is a required field
7506	ForwardingEnabled *bool `type:"boolean" required:"true"`
7507
7508	// Describes whether Amazon SES includes the original email headers in Amazon
7509	// SNS notifications of type Bounce. A value of true specifies that Amazon SES
7510	// will include headers in bounce notifications, and a value of false specifies
7511	// that Amazon SES will not include headers in bounce notifications.
7512	HeadersInBounceNotificationsEnabled *bool `type:"boolean"`
7513
7514	// Describes whether Amazon SES includes the original email headers in Amazon
7515	// SNS notifications of type Complaint. A value of true specifies that Amazon
7516	// SES will include headers in complaint notifications, and a value of false
7517	// specifies that Amazon SES will not include headers in complaint notifications.
7518	HeadersInComplaintNotificationsEnabled *bool `type:"boolean"`
7519
7520	// Describes whether Amazon SES includes the original email headers in Amazon
7521	// SNS notifications of type Delivery. A value of true specifies that Amazon
7522	// SES will include headers in delivery notifications, and a value of false
7523	// specifies that Amazon SES will not include headers in delivery notifications.
7524	HeadersInDeliveryNotificationsEnabled *bool `type:"boolean"`
7525}
7526
7527// String returns the string representation
7528func (s IdentityNotificationAttributes) String() string {
7529	return awsutil.Prettify(s)
7530}
7531
7532// GoString returns the string representation
7533func (s IdentityNotificationAttributes) GoString() string {
7534	return s.String()
7535}
7536
7537// SetBounceTopic sets the BounceTopic field's value.
7538func (s *IdentityNotificationAttributes) SetBounceTopic(v string) *IdentityNotificationAttributes {
7539	s.BounceTopic = &v
7540	return s
7541}
7542
7543// SetComplaintTopic sets the ComplaintTopic field's value.
7544func (s *IdentityNotificationAttributes) SetComplaintTopic(v string) *IdentityNotificationAttributes {
7545	s.ComplaintTopic = &v
7546	return s
7547}
7548
7549// SetDeliveryTopic sets the DeliveryTopic field's value.
7550func (s *IdentityNotificationAttributes) SetDeliveryTopic(v string) *IdentityNotificationAttributes {
7551	s.DeliveryTopic = &v
7552	return s
7553}
7554
7555// SetForwardingEnabled sets the ForwardingEnabled field's value.
7556func (s *IdentityNotificationAttributes) SetForwardingEnabled(v bool) *IdentityNotificationAttributes {
7557	s.ForwardingEnabled = &v
7558	return s
7559}
7560
7561// SetHeadersInBounceNotificationsEnabled sets the HeadersInBounceNotificationsEnabled field's value.
7562func (s *IdentityNotificationAttributes) SetHeadersInBounceNotificationsEnabled(v bool) *IdentityNotificationAttributes {
7563	s.HeadersInBounceNotificationsEnabled = &v
7564	return s
7565}
7566
7567// SetHeadersInComplaintNotificationsEnabled sets the HeadersInComplaintNotificationsEnabled field's value.
7568func (s *IdentityNotificationAttributes) SetHeadersInComplaintNotificationsEnabled(v bool) *IdentityNotificationAttributes {
7569	s.HeadersInComplaintNotificationsEnabled = &v
7570	return s
7571}
7572
7573// SetHeadersInDeliveryNotificationsEnabled sets the HeadersInDeliveryNotificationsEnabled field's value.
7574func (s *IdentityNotificationAttributes) SetHeadersInDeliveryNotificationsEnabled(v bool) *IdentityNotificationAttributes {
7575	s.HeadersInDeliveryNotificationsEnabled = &v
7576	return s
7577}
7578
7579// Represents the verification attributes of a single identity.
7580// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/IdentityVerificationAttributes
7581type IdentityVerificationAttributes struct {
7582	_ struct{} `type:"structure"`
7583
7584	// The verification status of the identity: "Pending", "Success", "Failed",
7585	// or "TemporaryFailure".
7586	//
7587	// VerificationStatus is a required field
7588	VerificationStatus *string `type:"string" required:"true" enum:"VerificationStatus"`
7589
7590	// The verification token for a domain identity. Null for email address identities.
7591	VerificationToken *string `type:"string"`
7592}
7593
7594// String returns the string representation
7595func (s IdentityVerificationAttributes) String() string {
7596	return awsutil.Prettify(s)
7597}
7598
7599// GoString returns the string representation
7600func (s IdentityVerificationAttributes) GoString() string {
7601	return s.String()
7602}
7603
7604// SetVerificationStatus sets the VerificationStatus field's value.
7605func (s *IdentityVerificationAttributes) SetVerificationStatus(v string) *IdentityVerificationAttributes {
7606	s.VerificationStatus = &v
7607	return s
7608}
7609
7610// SetVerificationToken sets the VerificationToken field's value.
7611func (s *IdentityVerificationAttributes) SetVerificationToken(v string) *IdentityVerificationAttributes {
7612	s.VerificationToken = &v
7613	return s
7614}
7615
7616// Contains the delivery stream ARN and the IAM role ARN associated with an
7617// Amazon Kinesis Firehose event destination.
7618//
7619// Event destinations, such as Amazon Kinesis Firehose, are associated with
7620// configuration sets, which enable you to publish email sending events. For
7621// information about using configuration sets, see the Amazon SES Developer
7622// Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html).
7623// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/KinesisFirehoseDestination
7624type KinesisFirehoseDestination struct {
7625	_ struct{} `type:"structure"`
7626
7627	// The ARN of the Amazon Kinesis Firehose stream that email sending events should
7628	// be published to.
7629	//
7630	// DeliveryStreamARN is a required field
7631	DeliveryStreamARN *string `type:"string" required:"true"`
7632
7633	// The ARN of the IAM role under which Amazon SES publishes email sending events
7634	// to the Amazon Kinesis Firehose stream.
7635	//
7636	// IAMRoleARN is a required field
7637	IAMRoleARN *string `type:"string" required:"true"`
7638}
7639
7640// String returns the string representation
7641func (s KinesisFirehoseDestination) String() string {
7642	return awsutil.Prettify(s)
7643}
7644
7645// GoString returns the string representation
7646func (s KinesisFirehoseDestination) GoString() string {
7647	return s.String()
7648}
7649
7650// Validate inspects the fields of the type to determine if they are valid.
7651func (s *KinesisFirehoseDestination) Validate() error {
7652	invalidParams := request.ErrInvalidParams{Context: "KinesisFirehoseDestination"}
7653	if s.DeliveryStreamARN == nil {
7654		invalidParams.Add(request.NewErrParamRequired("DeliveryStreamARN"))
7655	}
7656	if s.IAMRoleARN == nil {
7657		invalidParams.Add(request.NewErrParamRequired("IAMRoleARN"))
7658	}
7659
7660	if invalidParams.Len() > 0 {
7661		return invalidParams
7662	}
7663	return nil
7664}
7665
7666// SetDeliveryStreamARN sets the DeliveryStreamARN field's value.
7667func (s *KinesisFirehoseDestination) SetDeliveryStreamARN(v string) *KinesisFirehoseDestination {
7668	s.DeliveryStreamARN = &v
7669	return s
7670}
7671
7672// SetIAMRoleARN sets the IAMRoleARN field's value.
7673func (s *KinesisFirehoseDestination) SetIAMRoleARN(v string) *KinesisFirehoseDestination {
7674	s.IAMRoleARN = &v
7675	return s
7676}
7677
7678// When included in a receipt rule, this action calls an AWS Lambda function
7679// and, optionally, publishes a notification to Amazon Simple Notification Service
7680// (Amazon SNS).
7681//
7682// To enable Amazon SES to call your AWS Lambda function or to publish to an
7683// Amazon SNS topic of another account, Amazon SES must have permission to access
7684// those resources. For information about giving permissions, see the Amazon
7685// SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-permissions.html).
7686//
7687// For information about using AWS Lambda actions in receipt rules, see the
7688// Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-action-lambda.html).
7689// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/LambdaAction
7690type LambdaAction struct {
7691	_ struct{} `type:"structure"`
7692
7693	// The Amazon Resource Name (ARN) of the AWS Lambda function. An example of
7694	// an AWS Lambda function ARN is arn:aws:lambda:us-west-2:account-id:function:MyFunction.
7695	// For more information about AWS Lambda, see the AWS Lambda Developer Guide
7696	// (http://docs.aws.amazon.com/lambda/latest/dg/welcome.html).
7697	//
7698	// FunctionArn is a required field
7699	FunctionArn *string `type:"string" required:"true"`
7700
7701	// The invocation type of the AWS Lambda function. An invocation type of RequestResponse
7702	// means that the execution of the function will immediately result in a response,
7703	// and a value of Event means that the function will be invoked asynchronously.
7704	// The default value is Event. For information about AWS Lambda invocation types,
7705	// see the AWS Lambda Developer Guide (http://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html).
7706	//
7707	// There is a 30-second timeout on RequestResponse invocations. You should use
7708	// Event invocation in most cases. Use RequestResponse only when you want to
7709	// make a mail flow decision, such as whether to stop the receipt rule or the
7710	// receipt rule set.
7711	InvocationType *string `type:"string" enum:"InvocationType"`
7712
7713	// The Amazon Resource Name (ARN) of the Amazon SNS topic to notify when the
7714	// Lambda action is taken. An example of an Amazon SNS topic ARN is arn:aws:sns:us-west-2:123456789012:MyTopic.
7715	// For more information about Amazon SNS topics, see the Amazon SNS Developer
7716	// Guide (http://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html).
7717	TopicArn *string `type:"string"`
7718}
7719
7720// String returns the string representation
7721func (s LambdaAction) String() string {
7722	return awsutil.Prettify(s)
7723}
7724
7725// GoString returns the string representation
7726func (s LambdaAction) GoString() string {
7727	return s.String()
7728}
7729
7730// Validate inspects the fields of the type to determine if they are valid.
7731func (s *LambdaAction) Validate() error {
7732	invalidParams := request.ErrInvalidParams{Context: "LambdaAction"}
7733	if s.FunctionArn == nil {
7734		invalidParams.Add(request.NewErrParamRequired("FunctionArn"))
7735	}
7736
7737	if invalidParams.Len() > 0 {
7738		return invalidParams
7739	}
7740	return nil
7741}
7742
7743// SetFunctionArn sets the FunctionArn field's value.
7744func (s *LambdaAction) SetFunctionArn(v string) *LambdaAction {
7745	s.FunctionArn = &v
7746	return s
7747}
7748
7749// SetInvocationType sets the InvocationType field's value.
7750func (s *LambdaAction) SetInvocationType(v string) *LambdaAction {
7751	s.InvocationType = &v
7752	return s
7753}
7754
7755// SetTopicArn sets the TopicArn field's value.
7756func (s *LambdaAction) SetTopicArn(v string) *LambdaAction {
7757	s.TopicArn = &v
7758	return s
7759}
7760
7761// Represents a request to list the configuration sets associated with your
7762// AWS account. Configuration sets enable you to publish email sending events.
7763// For information about using configuration sets, see the Amazon SES Developer
7764// Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html).
7765// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ListConfigurationSetsRequest
7766type ListConfigurationSetsInput struct {
7767	_ struct{} `type:"structure"`
7768
7769	// The number of configuration sets to return.
7770	MaxItems *int64 `type:"integer"`
7771
7772	// A token returned from a previous call to ListConfigurationSets to indicate
7773	// the position of the configuration set in the configuration set list.
7774	NextToken *string `type:"string"`
7775}
7776
7777// String returns the string representation
7778func (s ListConfigurationSetsInput) String() string {
7779	return awsutil.Prettify(s)
7780}
7781
7782// GoString returns the string representation
7783func (s ListConfigurationSetsInput) GoString() string {
7784	return s.String()
7785}
7786
7787// SetMaxItems sets the MaxItems field's value.
7788func (s *ListConfigurationSetsInput) SetMaxItems(v int64) *ListConfigurationSetsInput {
7789	s.MaxItems = &v
7790	return s
7791}
7792
7793// SetNextToken sets the NextToken field's value.
7794func (s *ListConfigurationSetsInput) SetNextToken(v string) *ListConfigurationSetsInput {
7795	s.NextToken = &v
7796	return s
7797}
7798
7799// A list of configuration sets associated with your AWS account. Configuration
7800// sets enable you to publish email sending events. For information about using
7801// configuration sets, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html).
7802// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ListConfigurationSetsResponse
7803type ListConfigurationSetsOutput struct {
7804	_ struct{} `type:"structure"`
7805
7806	// A list of configuration sets.
7807	ConfigurationSets []*ConfigurationSet `type:"list"`
7808
7809	// A token indicating that there are additional configuration sets available
7810	// to be listed. Pass this token to successive calls of ListConfigurationSets.
7811	NextToken *string `type:"string"`
7812}
7813
7814// String returns the string representation
7815func (s ListConfigurationSetsOutput) String() string {
7816	return awsutil.Prettify(s)
7817}
7818
7819// GoString returns the string representation
7820func (s ListConfigurationSetsOutput) GoString() string {
7821	return s.String()
7822}
7823
7824// SetConfigurationSets sets the ConfigurationSets field's value.
7825func (s *ListConfigurationSetsOutput) SetConfigurationSets(v []*ConfigurationSet) *ListConfigurationSetsOutput {
7826	s.ConfigurationSets = v
7827	return s
7828}
7829
7830// SetNextToken sets the NextToken field's value.
7831func (s *ListConfigurationSetsOutput) SetNextToken(v string) *ListConfigurationSetsOutput {
7832	s.NextToken = &v
7833	return s
7834}
7835
7836// Represents a request to return a list of all identities (email addresses
7837// and domains) that you have attempted to verify under your AWS account, regardless
7838// of verification status.
7839// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ListIdentitiesRequest
7840type ListIdentitiesInput struct {
7841	_ struct{} `type:"structure"`
7842
7843	// The type of the identities to list. Possible values are "EmailAddress" and
7844	// "Domain". If this parameter is omitted, then all identities will be listed.
7845	IdentityType *string `type:"string" enum:"IdentityType"`
7846
7847	// The maximum number of identities per page. Possible values are 1-1000 inclusive.
7848	MaxItems *int64 `type:"integer"`
7849
7850	// The token to use for pagination.
7851	NextToken *string `type:"string"`
7852}
7853
7854// String returns the string representation
7855func (s ListIdentitiesInput) String() string {
7856	return awsutil.Prettify(s)
7857}
7858
7859// GoString returns the string representation
7860func (s ListIdentitiesInput) GoString() string {
7861	return s.String()
7862}
7863
7864// SetIdentityType sets the IdentityType field's value.
7865func (s *ListIdentitiesInput) SetIdentityType(v string) *ListIdentitiesInput {
7866	s.IdentityType = &v
7867	return s
7868}
7869
7870// SetMaxItems sets the MaxItems field's value.
7871func (s *ListIdentitiesInput) SetMaxItems(v int64) *ListIdentitiesInput {
7872	s.MaxItems = &v
7873	return s
7874}
7875
7876// SetNextToken sets the NextToken field's value.
7877func (s *ListIdentitiesInput) SetNextToken(v string) *ListIdentitiesInput {
7878	s.NextToken = &v
7879	return s
7880}
7881
7882// A list of all identities that you have attempted to verify under your AWS
7883// account, regardless of verification status.
7884// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ListIdentitiesResponse
7885type ListIdentitiesOutput struct {
7886	_ struct{} `type:"structure"`
7887
7888	// A list of identities.
7889	//
7890	// Identities is a required field
7891	Identities []*string `type:"list" required:"true"`
7892
7893	// The token used for pagination.
7894	NextToken *string `type:"string"`
7895}
7896
7897// String returns the string representation
7898func (s ListIdentitiesOutput) String() string {
7899	return awsutil.Prettify(s)
7900}
7901
7902// GoString returns the string representation
7903func (s ListIdentitiesOutput) GoString() string {
7904	return s.String()
7905}
7906
7907// SetIdentities sets the Identities field's value.
7908func (s *ListIdentitiesOutput) SetIdentities(v []*string) *ListIdentitiesOutput {
7909	s.Identities = v
7910	return s
7911}
7912
7913// SetNextToken sets the NextToken field's value.
7914func (s *ListIdentitiesOutput) SetNextToken(v string) *ListIdentitiesOutput {
7915	s.NextToken = &v
7916	return s
7917}
7918
7919// Represents a request to return a list of sending authorization policies that
7920// are attached to an identity. Sending authorization is an Amazon SES feature
7921// that enables you to authorize other senders to use your identities. For information,
7922// see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html).
7923// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ListIdentityPoliciesRequest
7924type ListIdentityPoliciesInput struct {
7925	_ struct{} `type:"structure"`
7926
7927	// The identity that is associated with the policy for which the policies will
7928	// be listed. You can specify an identity by using its name or by using its
7929	// Amazon Resource Name (ARN). Examples: user@example.com, example.com, arn:aws:ses:us-east-1:123456789012:identity/example.com.
7930	//
7931	// To successfully call this API, you must own the identity.
7932	//
7933	// Identity is a required field
7934	Identity *string `type:"string" required:"true"`
7935}
7936
7937// String returns the string representation
7938func (s ListIdentityPoliciesInput) String() string {
7939	return awsutil.Prettify(s)
7940}
7941
7942// GoString returns the string representation
7943func (s ListIdentityPoliciesInput) GoString() string {
7944	return s.String()
7945}
7946
7947// Validate inspects the fields of the type to determine if they are valid.
7948func (s *ListIdentityPoliciesInput) Validate() error {
7949	invalidParams := request.ErrInvalidParams{Context: "ListIdentityPoliciesInput"}
7950	if s.Identity == nil {
7951		invalidParams.Add(request.NewErrParamRequired("Identity"))
7952	}
7953
7954	if invalidParams.Len() > 0 {
7955		return invalidParams
7956	}
7957	return nil
7958}
7959
7960// SetIdentity sets the Identity field's value.
7961func (s *ListIdentityPoliciesInput) SetIdentity(v string) *ListIdentityPoliciesInput {
7962	s.Identity = &v
7963	return s
7964}
7965
7966// A list of names of sending authorization policies that apply to an identity.
7967// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ListIdentityPoliciesResponse
7968type ListIdentityPoliciesOutput struct {
7969	_ struct{} `type:"structure"`
7970
7971	// A list of names of policies that apply to the specified identity.
7972	//
7973	// PolicyNames is a required field
7974	PolicyNames []*string `type:"list" required:"true"`
7975}
7976
7977// String returns the string representation
7978func (s ListIdentityPoliciesOutput) String() string {
7979	return awsutil.Prettify(s)
7980}
7981
7982// GoString returns the string representation
7983func (s ListIdentityPoliciesOutput) GoString() string {
7984	return s.String()
7985}
7986
7987// SetPolicyNames sets the PolicyNames field's value.
7988func (s *ListIdentityPoliciesOutput) SetPolicyNames(v []*string) *ListIdentityPoliciesOutput {
7989	s.PolicyNames = v
7990	return s
7991}
7992
7993// Represents a request to list the IP address filters that exist under your
7994// AWS account. You use IP address filters when you receive email with Amazon
7995// SES. For more information, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-concepts.html).
7996// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ListReceiptFiltersRequest
7997type ListReceiptFiltersInput struct {
7998	_ struct{} `type:"structure"`
7999}
8000
8001// String returns the string representation
8002func (s ListReceiptFiltersInput) String() string {
8003	return awsutil.Prettify(s)
8004}
8005
8006// GoString returns the string representation
8007func (s ListReceiptFiltersInput) GoString() string {
8008	return s.String()
8009}
8010
8011// A list of IP address filters that exist under your AWS account.
8012// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ListReceiptFiltersResponse
8013type ListReceiptFiltersOutput struct {
8014	_ struct{} `type:"structure"`
8015
8016	// A list of IP address filter data structures, which each consist of a name,
8017	// an IP address range, and whether to allow or block mail from it.
8018	Filters []*ReceiptFilter `type:"list"`
8019}
8020
8021// String returns the string representation
8022func (s ListReceiptFiltersOutput) String() string {
8023	return awsutil.Prettify(s)
8024}
8025
8026// GoString returns the string representation
8027func (s ListReceiptFiltersOutput) GoString() string {
8028	return s.String()
8029}
8030
8031// SetFilters sets the Filters field's value.
8032func (s *ListReceiptFiltersOutput) SetFilters(v []*ReceiptFilter) *ListReceiptFiltersOutput {
8033	s.Filters = v
8034	return s
8035}
8036
8037// Represents a request to list the receipt rule sets that exist under your
8038// AWS account. You use receipt rule sets to receive email with Amazon SES.
8039// For more information, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-concepts.html).
8040// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ListReceiptRuleSetsRequest
8041type ListReceiptRuleSetsInput struct {
8042	_ struct{} `type:"structure"`
8043
8044	// A token returned from a previous call to ListReceiptRuleSets to indicate
8045	// the position in the receipt rule set list.
8046	NextToken *string `type:"string"`
8047}
8048
8049// String returns the string representation
8050func (s ListReceiptRuleSetsInput) String() string {
8051	return awsutil.Prettify(s)
8052}
8053
8054// GoString returns the string representation
8055func (s ListReceiptRuleSetsInput) GoString() string {
8056	return s.String()
8057}
8058
8059// SetNextToken sets the NextToken field's value.
8060func (s *ListReceiptRuleSetsInput) SetNextToken(v string) *ListReceiptRuleSetsInput {
8061	s.NextToken = &v
8062	return s
8063}
8064
8065// A list of receipt rule sets that exist under your AWS account.
8066// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ListReceiptRuleSetsResponse
8067type ListReceiptRuleSetsOutput struct {
8068	_ struct{} `type:"structure"`
8069
8070	// A token indicating that there are additional receipt rule sets available
8071	// to be listed. Pass this token to successive calls of ListReceiptRuleSets
8072	// to retrieve up to 100 receipt rule sets at a time.
8073	NextToken *string `type:"string"`
8074
8075	// The metadata for the currently active receipt rule set. The metadata consists
8076	// of the rule set name and the timestamp of when the rule set was created.
8077	RuleSets []*ReceiptRuleSetMetadata `type:"list"`
8078}
8079
8080// String returns the string representation
8081func (s ListReceiptRuleSetsOutput) String() string {
8082	return awsutil.Prettify(s)
8083}
8084
8085// GoString returns the string representation
8086func (s ListReceiptRuleSetsOutput) GoString() string {
8087	return s.String()
8088}
8089
8090// SetNextToken sets the NextToken field's value.
8091func (s *ListReceiptRuleSetsOutput) SetNextToken(v string) *ListReceiptRuleSetsOutput {
8092	s.NextToken = &v
8093	return s
8094}
8095
8096// SetRuleSets sets the RuleSets field's value.
8097func (s *ListReceiptRuleSetsOutput) SetRuleSets(v []*ReceiptRuleSetMetadata) *ListReceiptRuleSetsOutput {
8098	s.RuleSets = v
8099	return s
8100}
8101
8102// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ListVerifiedEmailAddressesInput
8103type ListVerifiedEmailAddressesInput struct {
8104	_ struct{} `type:"structure"`
8105}
8106
8107// String returns the string representation
8108func (s ListVerifiedEmailAddressesInput) String() string {
8109	return awsutil.Prettify(s)
8110}
8111
8112// GoString returns the string representation
8113func (s ListVerifiedEmailAddressesInput) GoString() string {
8114	return s.String()
8115}
8116
8117// A list of email addresses that you have verified with Amazon SES under your
8118// AWS account.
8119// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ListVerifiedEmailAddressesResponse
8120type ListVerifiedEmailAddressesOutput struct {
8121	_ struct{} `type:"structure"`
8122
8123	// A list of email addresses that have been verified.
8124	VerifiedEmailAddresses []*string `type:"list"`
8125}
8126
8127// String returns the string representation
8128func (s ListVerifiedEmailAddressesOutput) String() string {
8129	return awsutil.Prettify(s)
8130}
8131
8132// GoString returns the string representation
8133func (s ListVerifiedEmailAddressesOutput) GoString() string {
8134	return s.String()
8135}
8136
8137// SetVerifiedEmailAddresses sets the VerifiedEmailAddresses field's value.
8138func (s *ListVerifiedEmailAddressesOutput) SetVerifiedEmailAddresses(v []*string) *ListVerifiedEmailAddressesOutput {
8139	s.VerifiedEmailAddresses = v
8140	return s
8141}
8142
8143// Represents the message to be sent, composed of a subject and a body.
8144// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/Message
8145type Message struct {
8146	_ struct{} `type:"structure"`
8147
8148	// The message body.
8149	//
8150	// Body is a required field
8151	Body *Body `type:"structure" required:"true"`
8152
8153	// The subject of the message: A short summary of the content, which will appear
8154	// in the recipient's inbox.
8155	//
8156	// Subject is a required field
8157	Subject *Content `type:"structure" required:"true"`
8158}
8159
8160// String returns the string representation
8161func (s Message) String() string {
8162	return awsutil.Prettify(s)
8163}
8164
8165// GoString returns the string representation
8166func (s Message) GoString() string {
8167	return s.String()
8168}
8169
8170// Validate inspects the fields of the type to determine if they are valid.
8171func (s *Message) Validate() error {
8172	invalidParams := request.ErrInvalidParams{Context: "Message"}
8173	if s.Body == nil {
8174		invalidParams.Add(request.NewErrParamRequired("Body"))
8175	}
8176	if s.Subject == nil {
8177		invalidParams.Add(request.NewErrParamRequired("Subject"))
8178	}
8179	if s.Body != nil {
8180		if err := s.Body.Validate(); err != nil {
8181			invalidParams.AddNested("Body", err.(request.ErrInvalidParams))
8182		}
8183	}
8184	if s.Subject != nil {
8185		if err := s.Subject.Validate(); err != nil {
8186			invalidParams.AddNested("Subject", err.(request.ErrInvalidParams))
8187		}
8188	}
8189
8190	if invalidParams.Len() > 0 {
8191		return invalidParams
8192	}
8193	return nil
8194}
8195
8196// SetBody sets the Body field's value.
8197func (s *Message) SetBody(v *Body) *Message {
8198	s.Body = v
8199	return s
8200}
8201
8202// SetSubject sets the Subject field's value.
8203func (s *Message) SetSubject(v *Content) *Message {
8204	s.Subject = v
8205	return s
8206}
8207
8208// Message-related information to include in the Delivery Status Notification
8209// (DSN) when an email that Amazon SES receives on your behalf bounces.
8210//
8211// For information about receiving email through Amazon SES, see the Amazon
8212// SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email.html).
8213// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/MessageDsn
8214type MessageDsn struct {
8215	_ struct{} `type:"structure"`
8216
8217	// When the message was received by the reporting mail transfer agent (MTA),
8218	// in RFC 822 (https://www.ietf.org/rfc/rfc0822.txt) date-time format.
8219	ArrivalDate *time.Time `type:"timestamp" timestampFormat:"iso8601"`
8220
8221	// Additional X-headers to include in the DSN.
8222	ExtensionFields []*ExtensionField `type:"list"`
8223
8224	// The reporting MTA that attempted to deliver the message, formatted as specified
8225	// in RFC 3464 (https://tools.ietf.org/html/rfc3464) (mta-name-type; mta-name).
8226	// The default value is dns; inbound-smtp.[region].amazonaws.com.
8227	//
8228	// ReportingMta is a required field
8229	ReportingMta *string `type:"string" required:"true"`
8230}
8231
8232// String returns the string representation
8233func (s MessageDsn) String() string {
8234	return awsutil.Prettify(s)
8235}
8236
8237// GoString returns the string representation
8238func (s MessageDsn) GoString() string {
8239	return s.String()
8240}
8241
8242// Validate inspects the fields of the type to determine if they are valid.
8243func (s *MessageDsn) Validate() error {
8244	invalidParams := request.ErrInvalidParams{Context: "MessageDsn"}
8245	if s.ReportingMta == nil {
8246		invalidParams.Add(request.NewErrParamRequired("ReportingMta"))
8247	}
8248	if s.ExtensionFields != nil {
8249		for i, v := range s.ExtensionFields {
8250			if v == nil {
8251				continue
8252			}
8253			if err := v.Validate(); err != nil {
8254				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ExtensionFields", i), err.(request.ErrInvalidParams))
8255			}
8256		}
8257	}
8258
8259	if invalidParams.Len() > 0 {
8260		return invalidParams
8261	}
8262	return nil
8263}
8264
8265// SetArrivalDate sets the ArrivalDate field's value.
8266func (s *MessageDsn) SetArrivalDate(v time.Time) *MessageDsn {
8267	s.ArrivalDate = &v
8268	return s
8269}
8270
8271// SetExtensionFields sets the ExtensionFields field's value.
8272func (s *MessageDsn) SetExtensionFields(v []*ExtensionField) *MessageDsn {
8273	s.ExtensionFields = v
8274	return s
8275}
8276
8277// SetReportingMta sets the ReportingMta field's value.
8278func (s *MessageDsn) SetReportingMta(v string) *MessageDsn {
8279	s.ReportingMta = &v
8280	return s
8281}
8282
8283// Contains the name and value of a tag that you can provide to SendEmail or
8284// SendRawEmail to apply to an email.
8285//
8286// Message tags, which you use with configuration sets, enable you to publish
8287// email sending events. For information about using configuration sets, see
8288// the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html).
8289// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/MessageTag
8290type MessageTag struct {
8291	_ struct{} `type:"structure"`
8292
8293	// The name of the tag. The name must:
8294	//
8295	//    * Contain only ASCII letters (a-z, A-Z), numbers (0-9), underscores (_),
8296	//    or dashes (-).
8297	//
8298	//    * Contain less than 256 characters.
8299	//
8300	// Name is a required field
8301	Name *string `type:"string" required:"true"`
8302
8303	// The value of the tag. The value must:
8304	//
8305	//    * Contain only ASCII letters (a-z, A-Z), numbers (0-9), underscores (_),
8306	//    or dashes (-).
8307	//
8308	//    * Contain less than 256 characters.
8309	//
8310	// Value is a required field
8311	Value *string `type:"string" required:"true"`
8312}
8313
8314// String returns the string representation
8315func (s MessageTag) String() string {
8316	return awsutil.Prettify(s)
8317}
8318
8319// GoString returns the string representation
8320func (s MessageTag) GoString() string {
8321	return s.String()
8322}
8323
8324// Validate inspects the fields of the type to determine if they are valid.
8325func (s *MessageTag) Validate() error {
8326	invalidParams := request.ErrInvalidParams{Context: "MessageTag"}
8327	if s.Name == nil {
8328		invalidParams.Add(request.NewErrParamRequired("Name"))
8329	}
8330	if s.Value == nil {
8331		invalidParams.Add(request.NewErrParamRequired("Value"))
8332	}
8333
8334	if invalidParams.Len() > 0 {
8335		return invalidParams
8336	}
8337	return nil
8338}
8339
8340// SetName sets the Name field's value.
8341func (s *MessageTag) SetName(v string) *MessageTag {
8342	s.Name = &v
8343	return s
8344}
8345
8346// SetValue sets the Value field's value.
8347func (s *MessageTag) SetValue(v string) *MessageTag {
8348	s.Value = &v
8349	return s
8350}
8351
8352// Represents a request to add or update a sending authorization policy for
8353// an identity. Sending authorization is an Amazon SES feature that enables
8354// you to authorize other senders to use your identities. For information, see
8355// the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html).
8356// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/PutIdentityPolicyRequest
8357type PutIdentityPolicyInput struct {
8358	_ struct{} `type:"structure"`
8359
8360	// The identity that the policy will apply to. You can specify an identity by
8361	// using its name or by using its Amazon Resource Name (ARN). Examples: user@example.com,
8362	// example.com, arn:aws:ses:us-east-1:123456789012:identity/example.com.
8363	//
8364	// To successfully call this API, you must own the identity.
8365	//
8366	// Identity is a required field
8367	Identity *string `type:"string" required:"true"`
8368
8369	// The text of the policy in JSON format. The policy cannot exceed 4 KB.
8370	//
8371	// For information about the syntax of sending authorization policies, see the
8372	// Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-policies.html).
8373	//
8374	// Policy is a required field
8375	Policy *string `min:"1" type:"string" required:"true"`
8376
8377	// The name of the policy.
8378	//
8379	// The policy name cannot exceed 64 characters and can only include alphanumeric
8380	// characters, dashes, and underscores.
8381	//
8382	// PolicyName is a required field
8383	PolicyName *string `min:"1" type:"string" required:"true"`
8384}
8385
8386// String returns the string representation
8387func (s PutIdentityPolicyInput) String() string {
8388	return awsutil.Prettify(s)
8389}
8390
8391// GoString returns the string representation
8392func (s PutIdentityPolicyInput) GoString() string {
8393	return s.String()
8394}
8395
8396// Validate inspects the fields of the type to determine if they are valid.
8397func (s *PutIdentityPolicyInput) Validate() error {
8398	invalidParams := request.ErrInvalidParams{Context: "PutIdentityPolicyInput"}
8399	if s.Identity == nil {
8400		invalidParams.Add(request.NewErrParamRequired("Identity"))
8401	}
8402	if s.Policy == nil {
8403		invalidParams.Add(request.NewErrParamRequired("Policy"))
8404	}
8405	if s.Policy != nil && len(*s.Policy) < 1 {
8406		invalidParams.Add(request.NewErrParamMinLen("Policy", 1))
8407	}
8408	if s.PolicyName == nil {
8409		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
8410	}
8411	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
8412		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
8413	}
8414
8415	if invalidParams.Len() > 0 {
8416		return invalidParams
8417	}
8418	return nil
8419}
8420
8421// SetIdentity sets the Identity field's value.
8422func (s *PutIdentityPolicyInput) SetIdentity(v string) *PutIdentityPolicyInput {
8423	s.Identity = &v
8424	return s
8425}
8426
8427// SetPolicy sets the Policy field's value.
8428func (s *PutIdentityPolicyInput) SetPolicy(v string) *PutIdentityPolicyInput {
8429	s.Policy = &v
8430	return s
8431}
8432
8433// SetPolicyName sets the PolicyName field's value.
8434func (s *PutIdentityPolicyInput) SetPolicyName(v string) *PutIdentityPolicyInput {
8435	s.PolicyName = &v
8436	return s
8437}
8438
8439// An empty element returned on a successful request.
8440// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/PutIdentityPolicyResponse
8441type PutIdentityPolicyOutput struct {
8442	_ struct{} `type:"structure"`
8443}
8444
8445// String returns the string representation
8446func (s PutIdentityPolicyOutput) String() string {
8447	return awsutil.Prettify(s)
8448}
8449
8450// GoString returns the string representation
8451func (s PutIdentityPolicyOutput) GoString() string {
8452	return s.String()
8453}
8454
8455// Represents the raw data of the message.
8456// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/RawMessage
8457type RawMessage struct {
8458	_ struct{} `type:"structure"`
8459
8460	// The raw data of the message. This data needs to base64-encoded if you are
8461	// accessing Amazon SES directly through the HTTPS interface. If you are accessing
8462	// Amazon SES using an AWS SDK, the SDK takes care of the base 64-encoding for
8463	// you. In all cases, the client must ensure that the message format complies
8464	// with Internet email standards regarding email header fields, MIME types,
8465	// and MIME encoding.
8466	//
8467	// The To:, CC:, and BCC: headers in the raw message can contain a group list.
8468	//
8469	// If you are using SendRawEmail with sending authorization, you can include
8470	// X-headers in the raw message to specify the "Source," "From," and "Return-Path"
8471	// addresses. For more information, see the documentation for SendRawEmail.
8472	//
8473	// Do not include these X-headers in the DKIM signature, because they are removed
8474	// by Amazon SES before sending the email.
8475	//
8476	// For more information, go to the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-raw.html).
8477	//
8478	// Data is automatically base64 encoded/decoded by the SDK.
8479	//
8480	// Data is a required field
8481	Data []byte `type:"blob" required:"true"`
8482}
8483
8484// String returns the string representation
8485func (s RawMessage) String() string {
8486	return awsutil.Prettify(s)
8487}
8488
8489// GoString returns the string representation
8490func (s RawMessage) GoString() string {
8491	return s.String()
8492}
8493
8494// Validate inspects the fields of the type to determine if they are valid.
8495func (s *RawMessage) Validate() error {
8496	invalidParams := request.ErrInvalidParams{Context: "RawMessage"}
8497	if s.Data == nil {
8498		invalidParams.Add(request.NewErrParamRequired("Data"))
8499	}
8500
8501	if invalidParams.Len() > 0 {
8502		return invalidParams
8503	}
8504	return nil
8505}
8506
8507// SetData sets the Data field's value.
8508func (s *RawMessage) SetData(v []byte) *RawMessage {
8509	s.Data = v
8510	return s
8511}
8512
8513// An action that Amazon SES can take when it receives an email on behalf of
8514// one or more email addresses or domains that you own. An instance of this
8515// data type can represent only one action.
8516//
8517// For information about setting up receipt rules, see the Amazon SES Developer
8518// Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-receipt-rules.html).
8519// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ReceiptAction
8520type ReceiptAction struct {
8521	_ struct{} `type:"structure"`
8522
8523	// Adds a header to the received email.
8524	AddHeaderAction *AddHeaderAction `type:"structure"`
8525
8526	// Rejects the received email by returning a bounce response to the sender and,
8527	// optionally, publishes a notification to Amazon Simple Notification Service
8528	// (Amazon SNS).
8529	BounceAction *BounceAction `type:"structure"`
8530
8531	// Calls an AWS Lambda function, and optionally, publishes a notification to
8532	// Amazon SNS.
8533	LambdaAction *LambdaAction `type:"structure"`
8534
8535	// Saves the received message to an Amazon Simple Storage Service (Amazon S3)
8536	// bucket and, optionally, publishes a notification to Amazon SNS.
8537	S3Action *S3Action `type:"structure"`
8538
8539	// Publishes the email content within a notification to Amazon SNS.
8540	SNSAction *SNSAction `type:"structure"`
8541
8542	// Terminates the evaluation of the receipt rule set and optionally publishes
8543	// a notification to Amazon SNS.
8544	StopAction *StopAction `type:"structure"`
8545
8546	// Calls Amazon WorkMail and, optionally, publishes a notification to Amazon
8547	// SNS.
8548	WorkmailAction *WorkmailAction `type:"structure"`
8549}
8550
8551// String returns the string representation
8552func (s ReceiptAction) String() string {
8553	return awsutil.Prettify(s)
8554}
8555
8556// GoString returns the string representation
8557func (s ReceiptAction) GoString() string {
8558	return s.String()
8559}
8560
8561// Validate inspects the fields of the type to determine if they are valid.
8562func (s *ReceiptAction) Validate() error {
8563	invalidParams := request.ErrInvalidParams{Context: "ReceiptAction"}
8564	if s.AddHeaderAction != nil {
8565		if err := s.AddHeaderAction.Validate(); err != nil {
8566			invalidParams.AddNested("AddHeaderAction", err.(request.ErrInvalidParams))
8567		}
8568	}
8569	if s.BounceAction != nil {
8570		if err := s.BounceAction.Validate(); err != nil {
8571			invalidParams.AddNested("BounceAction", err.(request.ErrInvalidParams))
8572		}
8573	}
8574	if s.LambdaAction != nil {
8575		if err := s.LambdaAction.Validate(); err != nil {
8576			invalidParams.AddNested("LambdaAction", err.(request.ErrInvalidParams))
8577		}
8578	}
8579	if s.S3Action != nil {
8580		if err := s.S3Action.Validate(); err != nil {
8581			invalidParams.AddNested("S3Action", err.(request.ErrInvalidParams))
8582		}
8583	}
8584	if s.SNSAction != nil {
8585		if err := s.SNSAction.Validate(); err != nil {
8586			invalidParams.AddNested("SNSAction", err.(request.ErrInvalidParams))
8587		}
8588	}
8589	if s.StopAction != nil {
8590		if err := s.StopAction.Validate(); err != nil {
8591			invalidParams.AddNested("StopAction", err.(request.ErrInvalidParams))
8592		}
8593	}
8594	if s.WorkmailAction != nil {
8595		if err := s.WorkmailAction.Validate(); err != nil {
8596			invalidParams.AddNested("WorkmailAction", err.(request.ErrInvalidParams))
8597		}
8598	}
8599
8600	if invalidParams.Len() > 0 {
8601		return invalidParams
8602	}
8603	return nil
8604}
8605
8606// SetAddHeaderAction sets the AddHeaderAction field's value.
8607func (s *ReceiptAction) SetAddHeaderAction(v *AddHeaderAction) *ReceiptAction {
8608	s.AddHeaderAction = v
8609	return s
8610}
8611
8612// SetBounceAction sets the BounceAction field's value.
8613func (s *ReceiptAction) SetBounceAction(v *BounceAction) *ReceiptAction {
8614	s.BounceAction = v
8615	return s
8616}
8617
8618// SetLambdaAction sets the LambdaAction field's value.
8619func (s *ReceiptAction) SetLambdaAction(v *LambdaAction) *ReceiptAction {
8620	s.LambdaAction = v
8621	return s
8622}
8623
8624// SetS3Action sets the S3Action field's value.
8625func (s *ReceiptAction) SetS3Action(v *S3Action) *ReceiptAction {
8626	s.S3Action = v
8627	return s
8628}
8629
8630// SetSNSAction sets the SNSAction field's value.
8631func (s *ReceiptAction) SetSNSAction(v *SNSAction) *ReceiptAction {
8632	s.SNSAction = v
8633	return s
8634}
8635
8636// SetStopAction sets the StopAction field's value.
8637func (s *ReceiptAction) SetStopAction(v *StopAction) *ReceiptAction {
8638	s.StopAction = v
8639	return s
8640}
8641
8642// SetWorkmailAction sets the WorkmailAction field's value.
8643func (s *ReceiptAction) SetWorkmailAction(v *WorkmailAction) *ReceiptAction {
8644	s.WorkmailAction = v
8645	return s
8646}
8647
8648// A receipt IP address filter enables you to specify whether to accept or reject
8649// mail originating from an IP address or range of IP addresses.
8650//
8651// For information about setting up IP address filters, see the Amazon SES Developer
8652// Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-ip-filters.html).
8653// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ReceiptFilter
8654type ReceiptFilter struct {
8655	_ struct{} `type:"structure"`
8656
8657	// A structure that provides the IP addresses to block or allow, and whether
8658	// to block or allow incoming mail from them.
8659	//
8660	// IpFilter is a required field
8661	IpFilter *ReceiptIpFilter `type:"structure" required:"true"`
8662
8663	// The name of the IP address filter. The name must:
8664	//
8665	//    * Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.), underscores
8666	//    (_), or dashes (-).
8667	//
8668	//    * Start and end with a letter or number.
8669	//
8670	//    * Contain less than 64 characters.
8671	//
8672	// Name is a required field
8673	Name *string `type:"string" required:"true"`
8674}
8675
8676// String returns the string representation
8677func (s ReceiptFilter) String() string {
8678	return awsutil.Prettify(s)
8679}
8680
8681// GoString returns the string representation
8682func (s ReceiptFilter) GoString() string {
8683	return s.String()
8684}
8685
8686// Validate inspects the fields of the type to determine if they are valid.
8687func (s *ReceiptFilter) Validate() error {
8688	invalidParams := request.ErrInvalidParams{Context: "ReceiptFilter"}
8689	if s.IpFilter == nil {
8690		invalidParams.Add(request.NewErrParamRequired("IpFilter"))
8691	}
8692	if s.Name == nil {
8693		invalidParams.Add(request.NewErrParamRequired("Name"))
8694	}
8695	if s.IpFilter != nil {
8696		if err := s.IpFilter.Validate(); err != nil {
8697			invalidParams.AddNested("IpFilter", err.(request.ErrInvalidParams))
8698		}
8699	}
8700
8701	if invalidParams.Len() > 0 {
8702		return invalidParams
8703	}
8704	return nil
8705}
8706
8707// SetIpFilter sets the IpFilter field's value.
8708func (s *ReceiptFilter) SetIpFilter(v *ReceiptIpFilter) *ReceiptFilter {
8709	s.IpFilter = v
8710	return s
8711}
8712
8713// SetName sets the Name field's value.
8714func (s *ReceiptFilter) SetName(v string) *ReceiptFilter {
8715	s.Name = &v
8716	return s
8717}
8718
8719// A receipt IP address filter enables you to specify whether to accept or reject
8720// mail originating from an IP address or range of IP addresses.
8721//
8722// For information about setting up IP address filters, see the Amazon SES Developer
8723// Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-ip-filters.html).
8724// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ReceiptIpFilter
8725type ReceiptIpFilter struct {
8726	_ struct{} `type:"structure"`
8727
8728	// A single IP address or a range of IP addresses that you want to block or
8729	// allow, specified in Classless Inter-Domain Routing (CIDR) notation. An example
8730	// of a single email address is 10.0.0.1. An example of a range of IP addresses
8731	// is 10.0.0.1/24. For more information about CIDR notation, see RFC 2317 (https://tools.ietf.org/html/rfc2317).
8732	//
8733	// Cidr is a required field
8734	Cidr *string `type:"string" required:"true"`
8735
8736	// Indicates whether to block or allow incoming mail from the specified IP addresses.
8737	//
8738	// Policy is a required field
8739	Policy *string `type:"string" required:"true" enum:"ReceiptFilterPolicy"`
8740}
8741
8742// String returns the string representation
8743func (s ReceiptIpFilter) String() string {
8744	return awsutil.Prettify(s)
8745}
8746
8747// GoString returns the string representation
8748func (s ReceiptIpFilter) GoString() string {
8749	return s.String()
8750}
8751
8752// Validate inspects the fields of the type to determine if they are valid.
8753func (s *ReceiptIpFilter) Validate() error {
8754	invalidParams := request.ErrInvalidParams{Context: "ReceiptIpFilter"}
8755	if s.Cidr == nil {
8756		invalidParams.Add(request.NewErrParamRequired("Cidr"))
8757	}
8758	if s.Policy == nil {
8759		invalidParams.Add(request.NewErrParamRequired("Policy"))
8760	}
8761
8762	if invalidParams.Len() > 0 {
8763		return invalidParams
8764	}
8765	return nil
8766}
8767
8768// SetCidr sets the Cidr field's value.
8769func (s *ReceiptIpFilter) SetCidr(v string) *ReceiptIpFilter {
8770	s.Cidr = &v
8771	return s
8772}
8773
8774// SetPolicy sets the Policy field's value.
8775func (s *ReceiptIpFilter) SetPolicy(v string) *ReceiptIpFilter {
8776	s.Policy = &v
8777	return s
8778}
8779
8780// Receipt rules enable you to specify which actions Amazon SES should take
8781// when it receives mail on behalf of one or more email addresses or domains
8782// that you own.
8783//
8784// Each receipt rule defines a set of email addresses or domains that it applies
8785// to. If the email addresses or domains match at least one recipient address
8786// of the message, Amazon SES executes all of the receipt rule's actions on
8787// the message.
8788//
8789// For information about setting up receipt rules, see the Amazon SES Developer
8790// Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-receipt-rules.html).
8791// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ReceiptRule
8792type ReceiptRule struct {
8793	_ struct{} `type:"structure"`
8794
8795	// An ordered list of actions to perform on messages that match at least one
8796	// of the recipient email addresses or domains specified in the receipt rule.
8797	Actions []*ReceiptAction `type:"list"`
8798
8799	// If true, the receipt rule is active. The default value is false.
8800	Enabled *bool `type:"boolean"`
8801
8802	// The name of the receipt rule. The name must:
8803	//
8804	//    * Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.), underscores
8805	//    (_), or dashes (-).
8806	//
8807	//    * Start and end with a letter or number.
8808	//
8809	//    * Contain less than 64 characters.
8810	//
8811	// Name is a required field
8812	Name *string `type:"string" required:"true"`
8813
8814	// The recipient domains and email addresses that the receipt rule applies to.
8815	// If this field is not specified, this rule will match all recipients under
8816	// all verified domains.
8817	Recipients []*string `type:"list"`
8818
8819	// If true, then messages that this receipt rule applies to are scanned for
8820	// spam and viruses. The default value is false.
8821	ScanEnabled *bool `type:"boolean"`
8822
8823	// Specifies whether Amazon SES should require that incoming email is delivered
8824	// over a connection encrypted with Transport Layer Security (TLS). If this
8825	// parameter is set to Require, Amazon SES will bounce emails that are not received
8826	// over TLS. The default is Optional.
8827	TlsPolicy *string `type:"string" enum:"TlsPolicy"`
8828}
8829
8830// String returns the string representation
8831func (s ReceiptRule) String() string {
8832	return awsutil.Prettify(s)
8833}
8834
8835// GoString returns the string representation
8836func (s ReceiptRule) GoString() string {
8837	return s.String()
8838}
8839
8840// Validate inspects the fields of the type to determine if they are valid.
8841func (s *ReceiptRule) Validate() error {
8842	invalidParams := request.ErrInvalidParams{Context: "ReceiptRule"}
8843	if s.Name == nil {
8844		invalidParams.Add(request.NewErrParamRequired("Name"))
8845	}
8846	if s.Actions != nil {
8847		for i, v := range s.Actions {
8848			if v == nil {
8849				continue
8850			}
8851			if err := v.Validate(); err != nil {
8852				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Actions", i), err.(request.ErrInvalidParams))
8853			}
8854		}
8855	}
8856
8857	if invalidParams.Len() > 0 {
8858		return invalidParams
8859	}
8860	return nil
8861}
8862
8863// SetActions sets the Actions field's value.
8864func (s *ReceiptRule) SetActions(v []*ReceiptAction) *ReceiptRule {
8865	s.Actions = v
8866	return s
8867}
8868
8869// SetEnabled sets the Enabled field's value.
8870func (s *ReceiptRule) SetEnabled(v bool) *ReceiptRule {
8871	s.Enabled = &v
8872	return s
8873}
8874
8875// SetName sets the Name field's value.
8876func (s *ReceiptRule) SetName(v string) *ReceiptRule {
8877	s.Name = &v
8878	return s
8879}
8880
8881// SetRecipients sets the Recipients field's value.
8882func (s *ReceiptRule) SetRecipients(v []*string) *ReceiptRule {
8883	s.Recipients = v
8884	return s
8885}
8886
8887// SetScanEnabled sets the ScanEnabled field's value.
8888func (s *ReceiptRule) SetScanEnabled(v bool) *ReceiptRule {
8889	s.ScanEnabled = &v
8890	return s
8891}
8892
8893// SetTlsPolicy sets the TlsPolicy field's value.
8894func (s *ReceiptRule) SetTlsPolicy(v string) *ReceiptRule {
8895	s.TlsPolicy = &v
8896	return s
8897}
8898
8899// Information about a receipt rule set.
8900//
8901// A receipt rule set is a collection of rules that specify what Amazon SES
8902// should do with mail it receives on behalf of your account's verified domains.
8903//
8904// For information about setting up receipt rule sets, see the Amazon SES Developer
8905// Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-receipt-rule-set.html).
8906// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ReceiptRuleSetMetadata
8907type ReceiptRuleSetMetadata struct {
8908	_ struct{} `type:"structure"`
8909
8910	// The date and time the receipt rule set was created.
8911	CreatedTimestamp *time.Time `type:"timestamp" timestampFormat:"iso8601"`
8912
8913	// The name of the receipt rule set. The name must:
8914	//
8915	//    * Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.), underscores
8916	//    (_), or dashes (-).
8917	//
8918	//    * Start and end with a letter or number.
8919	//
8920	//    * Contain less than 64 characters.
8921	Name *string `type:"string"`
8922}
8923
8924// String returns the string representation
8925func (s ReceiptRuleSetMetadata) String() string {
8926	return awsutil.Prettify(s)
8927}
8928
8929// GoString returns the string representation
8930func (s ReceiptRuleSetMetadata) GoString() string {
8931	return s.String()
8932}
8933
8934// SetCreatedTimestamp sets the CreatedTimestamp field's value.
8935func (s *ReceiptRuleSetMetadata) SetCreatedTimestamp(v time.Time) *ReceiptRuleSetMetadata {
8936	s.CreatedTimestamp = &v
8937	return s
8938}
8939
8940// SetName sets the Name field's value.
8941func (s *ReceiptRuleSetMetadata) SetName(v string) *ReceiptRuleSetMetadata {
8942	s.Name = &v
8943	return s
8944}
8945
8946// Recipient-related information to include in the Delivery Status Notification
8947// (DSN) when an email that Amazon SES receives on your behalf bounces.
8948//
8949// For information about receiving email through Amazon SES, see the Amazon
8950// SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email.html).
8951// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/RecipientDsnFields
8952type RecipientDsnFields struct {
8953	_ struct{} `type:"structure"`
8954
8955	// The action performed by the reporting mail transfer agent (MTA) as a result
8956	// of its attempt to deliver the message to the recipient address. This is required
8957	// by RFC 3464 (https://tools.ietf.org/html/rfc3464).
8958	//
8959	// Action is a required field
8960	Action *string `type:"string" required:"true" enum:"DsnAction"`
8961
8962	// An extended explanation of what went wrong; this is usually an SMTP response.
8963	// See RFC 3463 (https://tools.ietf.org/html/rfc3463) for the correct formatting
8964	// of this parameter.
8965	DiagnosticCode *string `type:"string"`
8966
8967	// Additional X-headers to include in the DSN.
8968	ExtensionFields []*ExtensionField `type:"list"`
8969
8970	// The email address that the message was ultimately delivered to. This corresponds
8971	// to the Final-Recipient in the DSN. If not specified, FinalRecipient will
8972	// be set to the Recipient specified in the BouncedRecipientInfo structure.
8973	// Either FinalRecipient or the recipient in BouncedRecipientInfo must be a
8974	// recipient of the original bounced message.
8975	//
8976	// Do not prepend the FinalRecipient email address with rfc 822;, as described
8977	// in RFC 3798 (https://tools.ietf.org/html/rfc3798).
8978	FinalRecipient *string `type:"string"`
8979
8980	// The time the final delivery attempt was made, in RFC 822 (https://www.ietf.org/rfc/rfc0822.txt)
8981	// date-time format.
8982	LastAttemptDate *time.Time `type:"timestamp" timestampFormat:"iso8601"`
8983
8984	// The MTA to which the remote MTA attempted to deliver the message, formatted
8985	// as specified in RFC 3464 (https://tools.ietf.org/html/rfc3464) (mta-name-type;
8986	// mta-name). This parameter typically applies only to propagating synchronous
8987	// bounces.
8988	RemoteMta *string `type:"string"`
8989
8990	// The status code that indicates what went wrong. This is required by RFC 3464
8991	// (https://tools.ietf.org/html/rfc3464).
8992	//
8993	// Status is a required field
8994	Status *string `type:"string" required:"true"`
8995}
8996
8997// String returns the string representation
8998func (s RecipientDsnFields) String() string {
8999	return awsutil.Prettify(s)
9000}
9001
9002// GoString returns the string representation
9003func (s RecipientDsnFields) GoString() string {
9004	return s.String()
9005}
9006
9007// Validate inspects the fields of the type to determine if they are valid.
9008func (s *RecipientDsnFields) Validate() error {
9009	invalidParams := request.ErrInvalidParams{Context: "RecipientDsnFields"}
9010	if s.Action == nil {
9011		invalidParams.Add(request.NewErrParamRequired("Action"))
9012	}
9013	if s.Status == nil {
9014		invalidParams.Add(request.NewErrParamRequired("Status"))
9015	}
9016	if s.ExtensionFields != nil {
9017		for i, v := range s.ExtensionFields {
9018			if v == nil {
9019				continue
9020			}
9021			if err := v.Validate(); err != nil {
9022				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ExtensionFields", i), err.(request.ErrInvalidParams))
9023			}
9024		}
9025	}
9026
9027	if invalidParams.Len() > 0 {
9028		return invalidParams
9029	}
9030	return nil
9031}
9032
9033// SetAction sets the Action field's value.
9034func (s *RecipientDsnFields) SetAction(v string) *RecipientDsnFields {
9035	s.Action = &v
9036	return s
9037}
9038
9039// SetDiagnosticCode sets the DiagnosticCode field's value.
9040func (s *RecipientDsnFields) SetDiagnosticCode(v string) *RecipientDsnFields {
9041	s.DiagnosticCode = &v
9042	return s
9043}
9044
9045// SetExtensionFields sets the ExtensionFields field's value.
9046func (s *RecipientDsnFields) SetExtensionFields(v []*ExtensionField) *RecipientDsnFields {
9047	s.ExtensionFields = v
9048	return s
9049}
9050
9051// SetFinalRecipient sets the FinalRecipient field's value.
9052func (s *RecipientDsnFields) SetFinalRecipient(v string) *RecipientDsnFields {
9053	s.FinalRecipient = &v
9054	return s
9055}
9056
9057// SetLastAttemptDate sets the LastAttemptDate field's value.
9058func (s *RecipientDsnFields) SetLastAttemptDate(v time.Time) *RecipientDsnFields {
9059	s.LastAttemptDate = &v
9060	return s
9061}
9062
9063// SetRemoteMta sets the RemoteMta field's value.
9064func (s *RecipientDsnFields) SetRemoteMta(v string) *RecipientDsnFields {
9065	s.RemoteMta = &v
9066	return s
9067}
9068
9069// SetStatus sets the Status field's value.
9070func (s *RecipientDsnFields) SetStatus(v string) *RecipientDsnFields {
9071	s.Status = &v
9072	return s
9073}
9074
9075// Represents a request to reorder the receipt rules within a receipt rule set.
9076// You use receipt rule sets to receive email with Amazon SES. For more information,
9077// see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-concepts.html).
9078// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ReorderReceiptRuleSetRequest
9079type ReorderReceiptRuleSetInput struct {
9080	_ struct{} `type:"structure"`
9081
9082	// A list of the specified receipt rule set's receipt rules in the order that
9083	// you want to put them.
9084	//
9085	// RuleNames is a required field
9086	RuleNames []*string `type:"list" required:"true"`
9087
9088	// The name of the receipt rule set to reorder.
9089	//
9090	// RuleSetName is a required field
9091	RuleSetName *string `type:"string" required:"true"`
9092}
9093
9094// String returns the string representation
9095func (s ReorderReceiptRuleSetInput) String() string {
9096	return awsutil.Prettify(s)
9097}
9098
9099// GoString returns the string representation
9100func (s ReorderReceiptRuleSetInput) GoString() string {
9101	return s.String()
9102}
9103
9104// Validate inspects the fields of the type to determine if they are valid.
9105func (s *ReorderReceiptRuleSetInput) Validate() error {
9106	invalidParams := request.ErrInvalidParams{Context: "ReorderReceiptRuleSetInput"}
9107	if s.RuleNames == nil {
9108		invalidParams.Add(request.NewErrParamRequired("RuleNames"))
9109	}
9110	if s.RuleSetName == nil {
9111		invalidParams.Add(request.NewErrParamRequired("RuleSetName"))
9112	}
9113
9114	if invalidParams.Len() > 0 {
9115		return invalidParams
9116	}
9117	return nil
9118}
9119
9120// SetRuleNames sets the RuleNames field's value.
9121func (s *ReorderReceiptRuleSetInput) SetRuleNames(v []*string) *ReorderReceiptRuleSetInput {
9122	s.RuleNames = v
9123	return s
9124}
9125
9126// SetRuleSetName sets the RuleSetName field's value.
9127func (s *ReorderReceiptRuleSetInput) SetRuleSetName(v string) *ReorderReceiptRuleSetInput {
9128	s.RuleSetName = &v
9129	return s
9130}
9131
9132// An empty element returned on a successful request.
9133// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ReorderReceiptRuleSetResponse
9134type ReorderReceiptRuleSetOutput struct {
9135	_ struct{} `type:"structure"`
9136}
9137
9138// String returns the string representation
9139func (s ReorderReceiptRuleSetOutput) String() string {
9140	return awsutil.Prettify(s)
9141}
9142
9143// GoString returns the string representation
9144func (s ReorderReceiptRuleSetOutput) GoString() string {
9145	return s.String()
9146}
9147
9148// When included in a receipt rule, this action saves the received message to
9149// an Amazon Simple Storage Service (Amazon S3) bucket and, optionally, publishes
9150// a notification to Amazon Simple Notification Service (Amazon SNS).
9151//
9152// To enable Amazon SES to write emails to your Amazon S3 bucket, use an AWS
9153// KMS key to encrypt your emails, or publish to an Amazon SNS topic of another
9154// account, Amazon SES must have permission to access those resources. For information
9155// about giving permissions, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-permissions.html).
9156//
9157// When you save your emails to an Amazon S3 bucket, the maximum email size
9158// (including headers) is 30 MB. Emails larger than that will bounce.
9159//
9160// For information about specifying Amazon S3 actions in receipt rules, see
9161// the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-action-s3.html).
9162// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/S3Action
9163type S3Action struct {
9164	_ struct{} `type:"structure"`
9165
9166	// The name of the Amazon S3 bucket that incoming email will be saved to.
9167	//
9168	// BucketName is a required field
9169	BucketName *string `type:"string" required:"true"`
9170
9171	// The customer master key that Amazon SES should use to encrypt your emails
9172	// before saving them to the Amazon S3 bucket. You can use the default master
9173	// key or a custom master key you created in AWS KMS as follows:
9174	//
9175	//    * To use the default master key, provide an ARN in the form of arn:aws:kms:REGION:ACCOUNT-ID-WITHOUT-HYPHENS:alias/aws/ses.
9176	//    For example, if your AWS account ID is 123456789012 and you want to use
9177	//    the default master key in the US West (Oregon) region, the ARN of the
9178	//    default master key would be arn:aws:kms:us-west-2:123456789012:alias/aws/ses.
9179	//    If you use the default master key, you don't need to perform any extra
9180	//    steps to give Amazon SES permission to use the key.
9181	//
9182	//    * To use a custom master key you created in AWS KMS, provide the ARN of
9183	//    the master key and ensure that you add a statement to your key's policy
9184	//    to give Amazon SES permission to use it. For more information about giving
9185	//    permissions, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-permissions.html).
9186	//
9187	// For more information about key policies, see the AWS KMS Developer Guide
9188	// (http://docs.aws.amazon.com/kms/latest/developerguide/concepts.html). If
9189	// you do not specify a master key, Amazon SES will not encrypt your emails.
9190	//
9191	// Your mail is encrypted by Amazon SES using the Amazon S3 encryption client
9192	// before the mail is submitted to Amazon S3 for storage. It is not encrypted
9193	// using Amazon S3 server-side encryption. This means that you must use the
9194	// Amazon S3 encryption client to decrypt the email after retrieving it from
9195	// Amazon S3, as the service has no access to use your AWS KMS keys for decryption.
9196	// This encryption client is currently available with the AWS Java SDK (http://aws.amazon.com/sdk-for-java/)
9197	// and AWS Ruby SDK (http://aws.amazon.com/sdk-for-ruby/) only. For more information
9198	// about client-side encryption using AWS KMS master keys, see the Amazon S3
9199	// Developer Guide (AmazonS3/latest/dev/UsingClientSideEncryption.html).
9200	KmsKeyArn *string `type:"string"`
9201
9202	// The key prefix of the Amazon S3 bucket. The key prefix is similar to a directory
9203	// name that enables you to store similar data under the same directory in a
9204	// bucket.
9205	ObjectKeyPrefix *string `type:"string"`
9206
9207	// The ARN of the Amazon SNS topic to notify when the message is saved to the
9208	// Amazon S3 bucket. An example of an Amazon SNS topic ARN is arn:aws:sns:us-west-2:123456789012:MyTopic.
9209	// For more information about Amazon SNS topics, see the Amazon SNS Developer
9210	// Guide (http://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html).
9211	TopicArn *string `type:"string"`
9212}
9213
9214// String returns the string representation
9215func (s S3Action) String() string {
9216	return awsutil.Prettify(s)
9217}
9218
9219// GoString returns the string representation
9220func (s S3Action) GoString() string {
9221	return s.String()
9222}
9223
9224// Validate inspects the fields of the type to determine if they are valid.
9225func (s *S3Action) Validate() error {
9226	invalidParams := request.ErrInvalidParams{Context: "S3Action"}
9227	if s.BucketName == nil {
9228		invalidParams.Add(request.NewErrParamRequired("BucketName"))
9229	}
9230
9231	if invalidParams.Len() > 0 {
9232		return invalidParams
9233	}
9234	return nil
9235}
9236
9237// SetBucketName sets the BucketName field's value.
9238func (s *S3Action) SetBucketName(v string) *S3Action {
9239	s.BucketName = &v
9240	return s
9241}
9242
9243// SetKmsKeyArn sets the KmsKeyArn field's value.
9244func (s *S3Action) SetKmsKeyArn(v string) *S3Action {
9245	s.KmsKeyArn = &v
9246	return s
9247}
9248
9249// SetObjectKeyPrefix sets the ObjectKeyPrefix field's value.
9250func (s *S3Action) SetObjectKeyPrefix(v string) *S3Action {
9251	s.ObjectKeyPrefix = &v
9252	return s
9253}
9254
9255// SetTopicArn sets the TopicArn field's value.
9256func (s *S3Action) SetTopicArn(v string) *S3Action {
9257	s.TopicArn = &v
9258	return s
9259}
9260
9261// When included in a receipt rule, this action publishes a notification to
9262// Amazon Simple Notification Service (Amazon SNS). This action includes a complete
9263// copy of the email content in the Amazon SNS notifications. Amazon SNS notifications
9264// for all other actions simply provide information about the email. They do
9265// not include the email content itself.
9266//
9267// If you own the Amazon SNS topic, you don't need to do anything to give Amazon
9268// SES permission to publish emails to it. However, if you don't own the Amazon
9269// SNS topic, you need to attach a policy to the topic to give Amazon SES permissions
9270// to access it. For information about giving permissions, see the Amazon SES
9271// Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-permissions.html).
9272//
9273// You can only publish emails that are 150 KB or less (including the header)
9274// to Amazon SNS. Larger emails will bounce. If you anticipate emails larger
9275// than 150 KB, use the S3 action instead.
9276//
9277// For information about using a receipt rule to publish an Amazon SNS notification,
9278// see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-action-sns.html).
9279// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SNSAction
9280type SNSAction struct {
9281	_ struct{} `type:"structure"`
9282
9283	// The encoding to use for the email within the Amazon SNS notification. UTF-8
9284	// is easier to use, but may not preserve all special characters when a message
9285	// was encoded with a different encoding format. Base64 preserves all special
9286	// characters. The default value is UTF-8.
9287	Encoding *string `type:"string" enum:"SNSActionEncoding"`
9288
9289	// The Amazon Resource Name (ARN) of the Amazon SNS topic to notify. An example
9290	// of an Amazon SNS topic ARN is arn:aws:sns:us-west-2:123456789012:MyTopic.
9291	// For more information about Amazon SNS topics, see the Amazon SNS Developer
9292	// Guide (http://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html).
9293	//
9294	// TopicArn is a required field
9295	TopicArn *string `type:"string" required:"true"`
9296}
9297
9298// String returns the string representation
9299func (s SNSAction) String() string {
9300	return awsutil.Prettify(s)
9301}
9302
9303// GoString returns the string representation
9304func (s SNSAction) GoString() string {
9305	return s.String()
9306}
9307
9308// Validate inspects the fields of the type to determine if they are valid.
9309func (s *SNSAction) Validate() error {
9310	invalidParams := request.ErrInvalidParams{Context: "SNSAction"}
9311	if s.TopicArn == nil {
9312		invalidParams.Add(request.NewErrParamRequired("TopicArn"))
9313	}
9314
9315	if invalidParams.Len() > 0 {
9316		return invalidParams
9317	}
9318	return nil
9319}
9320
9321// SetEncoding sets the Encoding field's value.
9322func (s *SNSAction) SetEncoding(v string) *SNSAction {
9323	s.Encoding = &v
9324	return s
9325}
9326
9327// SetTopicArn sets the TopicArn field's value.
9328func (s *SNSAction) SetTopicArn(v string) *SNSAction {
9329	s.TopicArn = &v
9330	return s
9331}
9332
9333// Contains the topic ARN associated with an Amazon Simple Notification Service
9334// (Amazon SNS) event destination.
9335//
9336// Event destinations, such as Amazon SNS, are associated with configuration
9337// sets, which enable you to publish email sending events. For information about
9338// using configuration sets, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html).
9339// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SNSDestination
9340type SNSDestination struct {
9341	_ struct{} `type:"structure"`
9342
9343	// The ARN of the Amazon SNS topic that email sending events will be published
9344	// to. An example of an Amazon SNS topic ARN is arn:aws:sns:us-west-2:123456789012:MyTopic.
9345	// For more information about Amazon SNS topics, see the Amazon SNS Developer
9346	// Guide (http://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html).
9347	//
9348	// TopicARN is a required field
9349	TopicARN *string `type:"string" required:"true"`
9350}
9351
9352// String returns the string representation
9353func (s SNSDestination) String() string {
9354	return awsutil.Prettify(s)
9355}
9356
9357// GoString returns the string representation
9358func (s SNSDestination) GoString() string {
9359	return s.String()
9360}
9361
9362// Validate inspects the fields of the type to determine if they are valid.
9363func (s *SNSDestination) Validate() error {
9364	invalidParams := request.ErrInvalidParams{Context: "SNSDestination"}
9365	if s.TopicARN == nil {
9366		invalidParams.Add(request.NewErrParamRequired("TopicARN"))
9367	}
9368
9369	if invalidParams.Len() > 0 {
9370		return invalidParams
9371	}
9372	return nil
9373}
9374
9375// SetTopicARN sets the TopicARN field's value.
9376func (s *SNSDestination) SetTopicARN(v string) *SNSDestination {
9377	s.TopicARN = &v
9378	return s
9379}
9380
9381// Represents a request to send a bounce message to the sender of an email you
9382// received through Amazon SES.
9383// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SendBounceRequest
9384type SendBounceInput struct {
9385	_ struct{} `type:"structure"`
9386
9387	// The address to use in the "From" header of the bounce message. This must
9388	// be an identity that you have verified with Amazon SES.
9389	//
9390	// BounceSender is a required field
9391	BounceSender *string `type:"string" required:"true"`
9392
9393	// This parameter is used only for sending authorization. It is the ARN of the
9394	// identity that is associated with the sending authorization policy that permits
9395	// you to use the address in the "From" header of the bounce. For more information
9396	// about sending authorization, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html).
9397	BounceSenderArn *string `type:"string"`
9398
9399	// A list of recipients of the bounced message, including the information required
9400	// to create the Delivery Status Notifications (DSNs) for the recipients. You
9401	// must specify at least one BouncedRecipientInfo in the list.
9402	//
9403	// BouncedRecipientInfoList is a required field
9404	BouncedRecipientInfoList []*BouncedRecipientInfo `type:"list" required:"true"`
9405
9406	// Human-readable text for the bounce message to explain the failure. If not
9407	// specified, the text will be auto-generated based on the bounced recipient
9408	// information.
9409	Explanation *string `type:"string"`
9410
9411	// Message-related DSN fields. If not specified, Amazon SES will choose the
9412	// values.
9413	MessageDsn *MessageDsn `type:"structure"`
9414
9415	// The message ID of the message to be bounced.
9416	//
9417	// OriginalMessageId is a required field
9418	OriginalMessageId *string `type:"string" required:"true"`
9419}
9420
9421// String returns the string representation
9422func (s SendBounceInput) String() string {
9423	return awsutil.Prettify(s)
9424}
9425
9426// GoString returns the string representation
9427func (s SendBounceInput) GoString() string {
9428	return s.String()
9429}
9430
9431// Validate inspects the fields of the type to determine if they are valid.
9432func (s *SendBounceInput) Validate() error {
9433	invalidParams := request.ErrInvalidParams{Context: "SendBounceInput"}
9434	if s.BounceSender == nil {
9435		invalidParams.Add(request.NewErrParamRequired("BounceSender"))
9436	}
9437	if s.BouncedRecipientInfoList == nil {
9438		invalidParams.Add(request.NewErrParamRequired("BouncedRecipientInfoList"))
9439	}
9440	if s.OriginalMessageId == nil {
9441		invalidParams.Add(request.NewErrParamRequired("OriginalMessageId"))
9442	}
9443	if s.BouncedRecipientInfoList != nil {
9444		for i, v := range s.BouncedRecipientInfoList {
9445			if v == nil {
9446				continue
9447			}
9448			if err := v.Validate(); err != nil {
9449				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "BouncedRecipientInfoList", i), err.(request.ErrInvalidParams))
9450			}
9451		}
9452	}
9453	if s.MessageDsn != nil {
9454		if err := s.MessageDsn.Validate(); err != nil {
9455			invalidParams.AddNested("MessageDsn", err.(request.ErrInvalidParams))
9456		}
9457	}
9458
9459	if invalidParams.Len() > 0 {
9460		return invalidParams
9461	}
9462	return nil
9463}
9464
9465// SetBounceSender sets the BounceSender field's value.
9466func (s *SendBounceInput) SetBounceSender(v string) *SendBounceInput {
9467	s.BounceSender = &v
9468	return s
9469}
9470
9471// SetBounceSenderArn sets the BounceSenderArn field's value.
9472func (s *SendBounceInput) SetBounceSenderArn(v string) *SendBounceInput {
9473	s.BounceSenderArn = &v
9474	return s
9475}
9476
9477// SetBouncedRecipientInfoList sets the BouncedRecipientInfoList field's value.
9478func (s *SendBounceInput) SetBouncedRecipientInfoList(v []*BouncedRecipientInfo) *SendBounceInput {
9479	s.BouncedRecipientInfoList = v
9480	return s
9481}
9482
9483// SetExplanation sets the Explanation field's value.
9484func (s *SendBounceInput) SetExplanation(v string) *SendBounceInput {
9485	s.Explanation = &v
9486	return s
9487}
9488
9489// SetMessageDsn sets the MessageDsn field's value.
9490func (s *SendBounceInput) SetMessageDsn(v *MessageDsn) *SendBounceInput {
9491	s.MessageDsn = v
9492	return s
9493}
9494
9495// SetOriginalMessageId sets the OriginalMessageId field's value.
9496func (s *SendBounceInput) SetOriginalMessageId(v string) *SendBounceInput {
9497	s.OriginalMessageId = &v
9498	return s
9499}
9500
9501// Represents a unique message ID.
9502// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SendBounceResponse
9503type SendBounceOutput struct {
9504	_ struct{} `type:"structure"`
9505
9506	// The message ID of the bounce message.
9507	MessageId *string `type:"string"`
9508}
9509
9510// String returns the string representation
9511func (s SendBounceOutput) String() string {
9512	return awsutil.Prettify(s)
9513}
9514
9515// GoString returns the string representation
9516func (s SendBounceOutput) GoString() string {
9517	return s.String()
9518}
9519
9520// SetMessageId sets the MessageId field's value.
9521func (s *SendBounceOutput) SetMessageId(v string) *SendBounceOutput {
9522	s.MessageId = &v
9523	return s
9524}
9525
9526// Represents sending statistics data. Each SendDataPoint contains statistics
9527// for a 15-minute period of sending activity.
9528// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SendDataPoint
9529type SendDataPoint struct {
9530	_ struct{} `type:"structure"`
9531
9532	// Number of emails that have bounced.
9533	Bounces *int64 `type:"long"`
9534
9535	// Number of unwanted emails that were rejected by recipients.
9536	Complaints *int64 `type:"long"`
9537
9538	// Number of emails that have been sent.
9539	DeliveryAttempts *int64 `type:"long"`
9540
9541	// Number of emails rejected by Amazon SES.
9542	Rejects *int64 `type:"long"`
9543
9544	// Time of the data point.
9545	Timestamp *time.Time `type:"timestamp" timestampFormat:"iso8601"`
9546}
9547
9548// String returns the string representation
9549func (s SendDataPoint) String() string {
9550	return awsutil.Prettify(s)
9551}
9552
9553// GoString returns the string representation
9554func (s SendDataPoint) GoString() string {
9555	return s.String()
9556}
9557
9558// SetBounces sets the Bounces field's value.
9559func (s *SendDataPoint) SetBounces(v int64) *SendDataPoint {
9560	s.Bounces = &v
9561	return s
9562}
9563
9564// SetComplaints sets the Complaints field's value.
9565func (s *SendDataPoint) SetComplaints(v int64) *SendDataPoint {
9566	s.Complaints = &v
9567	return s
9568}
9569
9570// SetDeliveryAttempts sets the DeliveryAttempts field's value.
9571func (s *SendDataPoint) SetDeliveryAttempts(v int64) *SendDataPoint {
9572	s.DeliveryAttempts = &v
9573	return s
9574}
9575
9576// SetRejects sets the Rejects field's value.
9577func (s *SendDataPoint) SetRejects(v int64) *SendDataPoint {
9578	s.Rejects = &v
9579	return s
9580}
9581
9582// SetTimestamp sets the Timestamp field's value.
9583func (s *SendDataPoint) SetTimestamp(v time.Time) *SendDataPoint {
9584	s.Timestamp = &v
9585	return s
9586}
9587
9588// Represents a request to send a single formatted email using Amazon SES. For
9589// more information, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-formatted.html).
9590// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SendEmailRequest
9591type SendEmailInput struct {
9592	_ struct{} `type:"structure"`
9593
9594	// The name of the configuration set to use when you send an email using SendEmail.
9595	ConfigurationSetName *string `type:"string"`
9596
9597	// The destination for this email, composed of To:, CC:, and BCC: fields.
9598	//
9599	// Destination is a required field
9600	Destination *Destination `type:"structure" required:"true"`
9601
9602	// The message to be sent.
9603	//
9604	// Message is a required field
9605	Message *Message `type:"structure" required:"true"`
9606
9607	// The reply-to email address(es) for the message. If the recipient replies
9608	// to the message, each reply-to address will receive the reply.
9609	ReplyToAddresses []*string `type:"list"`
9610
9611	// The email address that bounces and complaints will be forwarded to when feedback
9612	// forwarding is enabled. If the message cannot be delivered to the recipient,
9613	// then an error message will be returned from the recipient's ISP; this message
9614	// will then be forwarded to the email address specified by the ReturnPath parameter.
9615	// The ReturnPath parameter is never overwritten. This email address must be
9616	// either individually verified with Amazon SES, or from a domain that has been
9617	// verified with Amazon SES.
9618	ReturnPath *string `type:"string"`
9619
9620	// This parameter is used only for sending authorization. It is the ARN of the
9621	// identity that is associated with the sending authorization policy that permits
9622	// you to use the email address specified in the ReturnPath parameter.
9623	//
9624	// For example, if the owner of example.com (which has ARN arn:aws:ses:us-east-1:123456789012:identity/example.com)
9625	// attaches a policy to it that authorizes you to use feedback@example.com,
9626	// then you would specify the ReturnPathArn to be arn:aws:ses:us-east-1:123456789012:identity/example.com,
9627	// and the ReturnPath to be feedback@example.com.
9628	//
9629	// For more information about sending authorization, see the Amazon SES Developer
9630	// Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html).
9631	ReturnPathArn *string `type:"string"`
9632
9633	// The email address that is sending the email. This email address must be either
9634	// individually verified with Amazon SES, or from a domain that has been verified
9635	// with Amazon SES. For information about verifying identities, see the Amazon
9636	// SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-addresses-and-domains.html).
9637	//
9638	// If you are sending on behalf of another user and have been permitted to do
9639	// so by a sending authorization policy, then you must also specify the SourceArn
9640	// parameter. For more information about sending authorization, see the Amazon
9641	// SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html).
9642	//
9643	// In all cases, the email address must be 7-bit ASCII. If the text must contain
9644	// any other characters, then you must use MIME encoded-word syntax (RFC 2047)
9645	// instead of a literal string. MIME encoded-word syntax uses the following
9646	// form: =?charset?encoding?encoded-text?=. For more information, see RFC 2047
9647	// (https://tools.ietf.org/html/rfc2047).
9648	//
9649	// Source is a required field
9650	Source *string `type:"string" required:"true"`
9651
9652	// This parameter is used only for sending authorization. It is the ARN of the
9653	// identity that is associated with the sending authorization policy that permits
9654	// you to send for the email address specified in the Source parameter.
9655	//
9656	// For example, if the owner of example.com (which has ARN arn:aws:ses:us-east-1:123456789012:identity/example.com)
9657	// attaches a policy to it that authorizes you to send from user@example.com,
9658	// then you would specify the SourceArn to be arn:aws:ses:us-east-1:123456789012:identity/example.com,
9659	// and the Source to be user@example.com.
9660	//
9661	// For more information about sending authorization, see the Amazon SES Developer
9662	// Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html).
9663	SourceArn *string `type:"string"`
9664
9665	// A list of tags, in the form of name/value pairs, to apply to an email that
9666	// you send using SendEmail. Tags correspond to characteristics of the email
9667	// that you define, so that you can publish email sending events.
9668	Tags []*MessageTag `type:"list"`
9669}
9670
9671// String returns the string representation
9672func (s SendEmailInput) String() string {
9673	return awsutil.Prettify(s)
9674}
9675
9676// GoString returns the string representation
9677func (s SendEmailInput) GoString() string {
9678	return s.String()
9679}
9680
9681// Validate inspects the fields of the type to determine if they are valid.
9682func (s *SendEmailInput) Validate() error {
9683	invalidParams := request.ErrInvalidParams{Context: "SendEmailInput"}
9684	if s.Destination == nil {
9685		invalidParams.Add(request.NewErrParamRequired("Destination"))
9686	}
9687	if s.Message == nil {
9688		invalidParams.Add(request.NewErrParamRequired("Message"))
9689	}
9690	if s.Source == nil {
9691		invalidParams.Add(request.NewErrParamRequired("Source"))
9692	}
9693	if s.Message != nil {
9694		if err := s.Message.Validate(); err != nil {
9695			invalidParams.AddNested("Message", err.(request.ErrInvalidParams))
9696		}
9697	}
9698	if s.Tags != nil {
9699		for i, v := range s.Tags {
9700			if v == nil {
9701				continue
9702			}
9703			if err := v.Validate(); err != nil {
9704				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
9705			}
9706		}
9707	}
9708
9709	if invalidParams.Len() > 0 {
9710		return invalidParams
9711	}
9712	return nil
9713}
9714
9715// SetConfigurationSetName sets the ConfigurationSetName field's value.
9716func (s *SendEmailInput) SetConfigurationSetName(v string) *SendEmailInput {
9717	s.ConfigurationSetName = &v
9718	return s
9719}
9720
9721// SetDestination sets the Destination field's value.
9722func (s *SendEmailInput) SetDestination(v *Destination) *SendEmailInput {
9723	s.Destination = v
9724	return s
9725}
9726
9727// SetMessage sets the Message field's value.
9728func (s *SendEmailInput) SetMessage(v *Message) *SendEmailInput {
9729	s.Message = v
9730	return s
9731}
9732
9733// SetReplyToAddresses sets the ReplyToAddresses field's value.
9734func (s *SendEmailInput) SetReplyToAddresses(v []*string) *SendEmailInput {
9735	s.ReplyToAddresses = v
9736	return s
9737}
9738
9739// SetReturnPath sets the ReturnPath field's value.
9740func (s *SendEmailInput) SetReturnPath(v string) *SendEmailInput {
9741	s.ReturnPath = &v
9742	return s
9743}
9744
9745// SetReturnPathArn sets the ReturnPathArn field's value.
9746func (s *SendEmailInput) SetReturnPathArn(v string) *SendEmailInput {
9747	s.ReturnPathArn = &v
9748	return s
9749}
9750
9751// SetSource sets the Source field's value.
9752func (s *SendEmailInput) SetSource(v string) *SendEmailInput {
9753	s.Source = &v
9754	return s
9755}
9756
9757// SetSourceArn sets the SourceArn field's value.
9758func (s *SendEmailInput) SetSourceArn(v string) *SendEmailInput {
9759	s.SourceArn = &v
9760	return s
9761}
9762
9763// SetTags sets the Tags field's value.
9764func (s *SendEmailInput) SetTags(v []*MessageTag) *SendEmailInput {
9765	s.Tags = v
9766	return s
9767}
9768
9769// Represents a unique message ID.
9770// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SendEmailResponse
9771type SendEmailOutput struct {
9772	_ struct{} `type:"structure"`
9773
9774	// The unique message identifier returned from the SendEmail action.
9775	//
9776	// MessageId is a required field
9777	MessageId *string `type:"string" required:"true"`
9778}
9779
9780// String returns the string representation
9781func (s SendEmailOutput) String() string {
9782	return awsutil.Prettify(s)
9783}
9784
9785// GoString returns the string representation
9786func (s SendEmailOutput) GoString() string {
9787	return s.String()
9788}
9789
9790// SetMessageId sets the MessageId field's value.
9791func (s *SendEmailOutput) SetMessageId(v string) *SendEmailOutput {
9792	s.MessageId = &v
9793	return s
9794}
9795
9796// Represents a request to send a single raw email using Amazon SES. For more
9797// information, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-raw.html).
9798// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SendRawEmailRequest
9799type SendRawEmailInput struct {
9800	_ struct{} `type:"structure"`
9801
9802	// The name of the configuration set to use when you send an email using SendRawEmail.
9803	ConfigurationSetName *string `type:"string"`
9804
9805	// A list of destinations for the message, consisting of To:, CC:, and BCC:
9806	// addresses.
9807	Destinations []*string `type:"list"`
9808
9809	// This parameter is used only for sending authorization. It is the ARN of the
9810	// identity that is associated with the sending authorization policy that permits
9811	// you to specify a particular "From" address in the header of the raw email.
9812	//
9813	// Instead of using this parameter, you can use the X-header X-SES-FROM-ARN
9814	// in the raw message of the email. If you use both the FromArn parameter and
9815	// the corresponding X-header, Amazon SES uses the value of the FromArn parameter.
9816	//
9817	// For information about when to use this parameter, see the description of
9818	// SendRawEmail in this guide, or see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html).
9819	FromArn *string `type:"string"`
9820
9821	// The raw text of the message. The client is responsible for ensuring the following:
9822	//
9823	//    * Message must contain a header and a body, separated by a blank line.
9824	//
9825	//    * All required header fields must be present.
9826	//
9827	//    * Each part of a multipart MIME message must be formatted properly.
9828	//
9829	//    * MIME content types must be among those supported by Amazon SES. For
9830	//    more information, go to the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/mime-types.html).
9831	//
9832	//    * Must be base64-encoded.
9833	//
9834	//    * Per RFC 5321 (https://tools.ietf.org/html/rfc5321#section-4.5.3.1.6),
9835	//    the maximum length of each line of text, including the <CRLF>, must not
9836	//    exceed 1,000 characters.
9837	//
9838	// RawMessage is a required field
9839	RawMessage *RawMessage `type:"structure" required:"true"`
9840
9841	// This parameter is used only for sending authorization. It is the ARN of the
9842	// identity that is associated with the sending authorization policy that permits
9843	// you to use the email address specified in the ReturnPath parameter.
9844	//
9845	// For example, if the owner of example.com (which has ARN arn:aws:ses:us-east-1:123456789012:identity/example.com)
9846	// attaches a policy to it that authorizes you to use feedback@example.com,
9847	// then you would specify the ReturnPathArn to be arn:aws:ses:us-east-1:123456789012:identity/example.com,
9848	// and the ReturnPath to be feedback@example.com.
9849	//
9850	// Instead of using this parameter, you can use the X-header X-SES-RETURN-PATH-ARN
9851	// in the raw message of the email. If you use both the ReturnPathArn parameter
9852	// and the corresponding X-header, Amazon SES uses the value of the ReturnPathArn
9853	// parameter.
9854	//
9855	// For information about when to use this parameter, see the description of
9856	// SendRawEmail in this guide, or see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html).
9857	ReturnPathArn *string `type:"string"`
9858
9859	// The identity's email address. If you do not provide a value for this parameter,
9860	// you must specify a "From" address in the raw text of the message. (You can
9861	// also specify both.)
9862	//
9863	// By default, the string must be 7-bit ASCII. If the text must contain any
9864	// other characters, then you must use MIME encoded-word syntax (RFC 2047) instead
9865	// of a literal string. MIME encoded-word syntax uses the following form: =?charset?encoding?encoded-text?=.
9866	// For more information, see RFC 2047 (https://tools.ietf.org/html/rfc2047).
9867	//
9868	// If you specify the Source parameter and have feedback forwarding enabled,
9869	// then bounces and complaints will be sent to this email address. This takes
9870	// precedence over any Return-Path header that you might include in the raw
9871	// text of the message.
9872	Source *string `type:"string"`
9873
9874	// This parameter is used only for sending authorization. It is the ARN of the
9875	// identity that is associated with the sending authorization policy that permits
9876	// you to send for the email address specified in the Source parameter.
9877	//
9878	// For example, if the owner of example.com (which has ARN arn:aws:ses:us-east-1:123456789012:identity/example.com)
9879	// attaches a policy to it that authorizes you to send from user@example.com,
9880	// then you would specify the SourceArn to be arn:aws:ses:us-east-1:123456789012:identity/example.com,
9881	// and the Source to be user@example.com.
9882	//
9883	// Instead of using this parameter, you can use the X-header X-SES-SOURCE-ARN
9884	// in the raw message of the email. If you use both the SourceArn parameter
9885	// and the corresponding X-header, Amazon SES uses the value of the SourceArn
9886	// parameter.
9887	//
9888	// For information about when to use this parameter, see the description of
9889	// SendRawEmail in this guide, or see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html).
9890	SourceArn *string `type:"string"`
9891
9892	// A list of tags, in the form of name/value pairs, to apply to an email that
9893	// you send using SendRawEmail. Tags correspond to characteristics of the email
9894	// that you define, so that you can publish email sending events.
9895	Tags []*MessageTag `type:"list"`
9896}
9897
9898// String returns the string representation
9899func (s SendRawEmailInput) String() string {
9900	return awsutil.Prettify(s)
9901}
9902
9903// GoString returns the string representation
9904func (s SendRawEmailInput) GoString() string {
9905	return s.String()
9906}
9907
9908// Validate inspects the fields of the type to determine if they are valid.
9909func (s *SendRawEmailInput) Validate() error {
9910	invalidParams := request.ErrInvalidParams{Context: "SendRawEmailInput"}
9911	if s.RawMessage == nil {
9912		invalidParams.Add(request.NewErrParamRequired("RawMessage"))
9913	}
9914	if s.RawMessage != nil {
9915		if err := s.RawMessage.Validate(); err != nil {
9916			invalidParams.AddNested("RawMessage", err.(request.ErrInvalidParams))
9917		}
9918	}
9919	if s.Tags != nil {
9920		for i, v := range s.Tags {
9921			if v == nil {
9922				continue
9923			}
9924			if err := v.Validate(); err != nil {
9925				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
9926			}
9927		}
9928	}
9929
9930	if invalidParams.Len() > 0 {
9931		return invalidParams
9932	}
9933	return nil
9934}
9935
9936// SetConfigurationSetName sets the ConfigurationSetName field's value.
9937func (s *SendRawEmailInput) SetConfigurationSetName(v string) *SendRawEmailInput {
9938	s.ConfigurationSetName = &v
9939	return s
9940}
9941
9942// SetDestinations sets the Destinations field's value.
9943func (s *SendRawEmailInput) SetDestinations(v []*string) *SendRawEmailInput {
9944	s.Destinations = v
9945	return s
9946}
9947
9948// SetFromArn sets the FromArn field's value.
9949func (s *SendRawEmailInput) SetFromArn(v string) *SendRawEmailInput {
9950	s.FromArn = &v
9951	return s
9952}
9953
9954// SetRawMessage sets the RawMessage field's value.
9955func (s *SendRawEmailInput) SetRawMessage(v *RawMessage) *SendRawEmailInput {
9956	s.RawMessage = v
9957	return s
9958}
9959
9960// SetReturnPathArn sets the ReturnPathArn field's value.
9961func (s *SendRawEmailInput) SetReturnPathArn(v string) *SendRawEmailInput {
9962	s.ReturnPathArn = &v
9963	return s
9964}
9965
9966// SetSource sets the Source field's value.
9967func (s *SendRawEmailInput) SetSource(v string) *SendRawEmailInput {
9968	s.Source = &v
9969	return s
9970}
9971
9972// SetSourceArn sets the SourceArn field's value.
9973func (s *SendRawEmailInput) SetSourceArn(v string) *SendRawEmailInput {
9974	s.SourceArn = &v
9975	return s
9976}
9977
9978// SetTags sets the Tags field's value.
9979func (s *SendRawEmailInput) SetTags(v []*MessageTag) *SendRawEmailInput {
9980	s.Tags = v
9981	return s
9982}
9983
9984// Represents a unique message ID.
9985// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SendRawEmailResponse
9986type SendRawEmailOutput struct {
9987	_ struct{} `type:"structure"`
9988
9989	// The unique message identifier returned from the SendRawEmail action.
9990	//
9991	// MessageId is a required field
9992	MessageId *string `type:"string" required:"true"`
9993}
9994
9995// String returns the string representation
9996func (s SendRawEmailOutput) String() string {
9997	return awsutil.Prettify(s)
9998}
9999
10000// GoString returns the string representation
10001func (s SendRawEmailOutput) GoString() string {
10002	return s.String()
10003}
10004
10005// SetMessageId sets the MessageId field's value.
10006func (s *SendRawEmailOutput) SetMessageId(v string) *SendRawEmailOutput {
10007	s.MessageId = &v
10008	return s
10009}
10010
10011// Represents a request to set a receipt rule set as the active receipt rule
10012// set. You use receipt rule sets to receive email with Amazon SES. For more
10013// information, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-concepts.html).
10014// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SetActiveReceiptRuleSetRequest
10015type SetActiveReceiptRuleSetInput struct {
10016	_ struct{} `type:"structure"`
10017
10018	// The name of the receipt rule set to make active. Setting this value to null
10019	// disables all email receiving.
10020	RuleSetName *string `type:"string"`
10021}
10022
10023// String returns the string representation
10024func (s SetActiveReceiptRuleSetInput) String() string {
10025	return awsutil.Prettify(s)
10026}
10027
10028// GoString returns the string representation
10029func (s SetActiveReceiptRuleSetInput) GoString() string {
10030	return s.String()
10031}
10032
10033// SetRuleSetName sets the RuleSetName field's value.
10034func (s *SetActiveReceiptRuleSetInput) SetRuleSetName(v string) *SetActiveReceiptRuleSetInput {
10035	s.RuleSetName = &v
10036	return s
10037}
10038
10039// An empty element returned on a successful request.
10040// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SetActiveReceiptRuleSetResponse
10041type SetActiveReceiptRuleSetOutput struct {
10042	_ struct{} `type:"structure"`
10043}
10044
10045// String returns the string representation
10046func (s SetActiveReceiptRuleSetOutput) String() string {
10047	return awsutil.Prettify(s)
10048}
10049
10050// GoString returns the string representation
10051func (s SetActiveReceiptRuleSetOutput) GoString() string {
10052	return s.String()
10053}
10054
10055// Represents a request to enable or disable Amazon SES Easy DKIM signing for
10056// an identity. For more information about setting up Easy DKIM, see the Amazon
10057// SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html).
10058// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SetIdentityDkimEnabledRequest
10059type SetIdentityDkimEnabledInput struct {
10060	_ struct{} `type:"structure"`
10061
10062	// Sets whether DKIM signing is enabled for an identity. Set to true to enable
10063	// DKIM signing for this identity; false to disable it.
10064	//
10065	// DkimEnabled is a required field
10066	DkimEnabled *bool `type:"boolean" required:"true"`
10067
10068	// The identity for which DKIM signing should be enabled or disabled.
10069	//
10070	// Identity is a required field
10071	Identity *string `type:"string" required:"true"`
10072}
10073
10074// String returns the string representation
10075func (s SetIdentityDkimEnabledInput) String() string {
10076	return awsutil.Prettify(s)
10077}
10078
10079// GoString returns the string representation
10080func (s SetIdentityDkimEnabledInput) GoString() string {
10081	return s.String()
10082}
10083
10084// Validate inspects the fields of the type to determine if they are valid.
10085func (s *SetIdentityDkimEnabledInput) Validate() error {
10086	invalidParams := request.ErrInvalidParams{Context: "SetIdentityDkimEnabledInput"}
10087	if s.DkimEnabled == nil {
10088		invalidParams.Add(request.NewErrParamRequired("DkimEnabled"))
10089	}
10090	if s.Identity == nil {
10091		invalidParams.Add(request.NewErrParamRequired("Identity"))
10092	}
10093
10094	if invalidParams.Len() > 0 {
10095		return invalidParams
10096	}
10097	return nil
10098}
10099
10100// SetDkimEnabled sets the DkimEnabled field's value.
10101func (s *SetIdentityDkimEnabledInput) SetDkimEnabled(v bool) *SetIdentityDkimEnabledInput {
10102	s.DkimEnabled = &v
10103	return s
10104}
10105
10106// SetIdentity sets the Identity field's value.
10107func (s *SetIdentityDkimEnabledInput) SetIdentity(v string) *SetIdentityDkimEnabledInput {
10108	s.Identity = &v
10109	return s
10110}
10111
10112// An empty element returned on a successful request.
10113// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SetIdentityDkimEnabledResponse
10114type SetIdentityDkimEnabledOutput struct {
10115	_ struct{} `type:"structure"`
10116}
10117
10118// String returns the string representation
10119func (s SetIdentityDkimEnabledOutput) String() string {
10120	return awsutil.Prettify(s)
10121}
10122
10123// GoString returns the string representation
10124func (s SetIdentityDkimEnabledOutput) GoString() string {
10125	return s.String()
10126}
10127
10128// Represents a request to enable or disable whether Amazon SES forwards you
10129// bounce and complaint notifications through email. For information about email
10130// feedback forwarding, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/notifications-via-email.html).
10131// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SetIdentityFeedbackForwardingEnabledRequest
10132type SetIdentityFeedbackForwardingEnabledInput struct {
10133	_ struct{} `type:"structure"`
10134
10135	// Sets whether Amazon SES will forward bounce and complaint notifications as
10136	// email. true specifies that Amazon SES will forward bounce and complaint notifications
10137	// as email, in addition to any Amazon SNS topic publishing otherwise specified.
10138	// false specifies that Amazon SES will publish bounce and complaint notifications
10139	// only through Amazon SNS. This value can only be set to false when Amazon
10140	// SNS topics are set for both Bounce and Complaint notification types.
10141	//
10142	// ForwardingEnabled is a required field
10143	ForwardingEnabled *bool `type:"boolean" required:"true"`
10144
10145	// The identity for which to set bounce and complaint notification forwarding.
10146	// Examples: user@example.com, example.com.
10147	//
10148	// Identity is a required field
10149	Identity *string `type:"string" required:"true"`
10150}
10151
10152// String returns the string representation
10153func (s SetIdentityFeedbackForwardingEnabledInput) String() string {
10154	return awsutil.Prettify(s)
10155}
10156
10157// GoString returns the string representation
10158func (s SetIdentityFeedbackForwardingEnabledInput) GoString() string {
10159	return s.String()
10160}
10161
10162// Validate inspects the fields of the type to determine if they are valid.
10163func (s *SetIdentityFeedbackForwardingEnabledInput) Validate() error {
10164	invalidParams := request.ErrInvalidParams{Context: "SetIdentityFeedbackForwardingEnabledInput"}
10165	if s.ForwardingEnabled == nil {
10166		invalidParams.Add(request.NewErrParamRequired("ForwardingEnabled"))
10167	}
10168	if s.Identity == nil {
10169		invalidParams.Add(request.NewErrParamRequired("Identity"))
10170	}
10171
10172	if invalidParams.Len() > 0 {
10173		return invalidParams
10174	}
10175	return nil
10176}
10177
10178// SetForwardingEnabled sets the ForwardingEnabled field's value.
10179func (s *SetIdentityFeedbackForwardingEnabledInput) SetForwardingEnabled(v bool) *SetIdentityFeedbackForwardingEnabledInput {
10180	s.ForwardingEnabled = &v
10181	return s
10182}
10183
10184// SetIdentity sets the Identity field's value.
10185func (s *SetIdentityFeedbackForwardingEnabledInput) SetIdentity(v string) *SetIdentityFeedbackForwardingEnabledInput {
10186	s.Identity = &v
10187	return s
10188}
10189
10190// An empty element returned on a successful request.
10191// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SetIdentityFeedbackForwardingEnabledResponse
10192type SetIdentityFeedbackForwardingEnabledOutput struct {
10193	_ struct{} `type:"structure"`
10194}
10195
10196// String returns the string representation
10197func (s SetIdentityFeedbackForwardingEnabledOutput) String() string {
10198	return awsutil.Prettify(s)
10199}
10200
10201// GoString returns the string representation
10202func (s SetIdentityFeedbackForwardingEnabledOutput) GoString() string {
10203	return s.String()
10204}
10205
10206// Represents a request to set whether Amazon SES includes the original email
10207// headers in the Amazon SNS notifications of a specified type. For information
10208// about notifications, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/notifications-via-sns.html).
10209// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SetIdentityHeadersInNotificationsEnabledRequest
10210type SetIdentityHeadersInNotificationsEnabledInput struct {
10211	_ struct{} `type:"structure"`
10212
10213	// Sets whether Amazon SES includes the original email headers in Amazon SNS
10214	// notifications of the specified notification type. A value of true specifies
10215	// that Amazon SES will include headers in notifications, and a value of false
10216	// specifies that Amazon SES will not include headers in notifications.
10217	//
10218	// This value can only be set when NotificationType is already set to use a
10219	// particular Amazon SNS topic.
10220	//
10221	// Enabled is a required field
10222	Enabled *bool `type:"boolean" required:"true"`
10223
10224	// The identity for which to enable or disable headers in notifications. Examples:
10225	// user@example.com, example.com.
10226	//
10227	// Identity is a required field
10228	Identity *string `type:"string" required:"true"`
10229
10230	// The notification type for which to enable or disable headers in notifications.
10231	//
10232	// NotificationType is a required field
10233	NotificationType *string `type:"string" required:"true" enum:"NotificationType"`
10234}
10235
10236// String returns the string representation
10237func (s SetIdentityHeadersInNotificationsEnabledInput) String() string {
10238	return awsutil.Prettify(s)
10239}
10240
10241// GoString returns the string representation
10242func (s SetIdentityHeadersInNotificationsEnabledInput) GoString() string {
10243	return s.String()
10244}
10245
10246// Validate inspects the fields of the type to determine if they are valid.
10247func (s *SetIdentityHeadersInNotificationsEnabledInput) Validate() error {
10248	invalidParams := request.ErrInvalidParams{Context: "SetIdentityHeadersInNotificationsEnabledInput"}
10249	if s.Enabled == nil {
10250		invalidParams.Add(request.NewErrParamRequired("Enabled"))
10251	}
10252	if s.Identity == nil {
10253		invalidParams.Add(request.NewErrParamRequired("Identity"))
10254	}
10255	if s.NotificationType == nil {
10256		invalidParams.Add(request.NewErrParamRequired("NotificationType"))
10257	}
10258
10259	if invalidParams.Len() > 0 {
10260		return invalidParams
10261	}
10262	return nil
10263}
10264
10265// SetEnabled sets the Enabled field's value.
10266func (s *SetIdentityHeadersInNotificationsEnabledInput) SetEnabled(v bool) *SetIdentityHeadersInNotificationsEnabledInput {
10267	s.Enabled = &v
10268	return s
10269}
10270
10271// SetIdentity sets the Identity field's value.
10272func (s *SetIdentityHeadersInNotificationsEnabledInput) SetIdentity(v string) *SetIdentityHeadersInNotificationsEnabledInput {
10273	s.Identity = &v
10274	return s
10275}
10276
10277// SetNotificationType sets the NotificationType field's value.
10278func (s *SetIdentityHeadersInNotificationsEnabledInput) SetNotificationType(v string) *SetIdentityHeadersInNotificationsEnabledInput {
10279	s.NotificationType = &v
10280	return s
10281}
10282
10283// An empty element returned on a successful request.
10284// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SetIdentityHeadersInNotificationsEnabledResponse
10285type SetIdentityHeadersInNotificationsEnabledOutput struct {
10286	_ struct{} `type:"structure"`
10287}
10288
10289// String returns the string representation
10290func (s SetIdentityHeadersInNotificationsEnabledOutput) String() string {
10291	return awsutil.Prettify(s)
10292}
10293
10294// GoString returns the string representation
10295func (s SetIdentityHeadersInNotificationsEnabledOutput) GoString() string {
10296	return s.String()
10297}
10298
10299// Represents a request to enable or disable the Amazon SES custom MAIL FROM
10300// domain setup for a verified identity. For information about using a custom
10301// MAIL FROM domain, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/mail-from.html).
10302// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SetIdentityMailFromDomainRequest
10303type SetIdentityMailFromDomainInput struct {
10304	_ struct{} `type:"structure"`
10305
10306	// The action that you want Amazon SES to take if it cannot successfully read
10307	// the required MX record when you send an email. If you choose UseDefaultValue,
10308	// Amazon SES will use amazonses.com (or a subdomain of that) as the MAIL FROM
10309	// domain. If you choose RejectMessage, Amazon SES will return a MailFromDomainNotVerified
10310	// error and not send the email.
10311	//
10312	// The action specified in BehaviorOnMXFailure is taken when the custom MAIL
10313	// FROM domain setup is in the Pending, Failed, and TemporaryFailure states.
10314	BehaviorOnMXFailure *string `type:"string" enum:"BehaviorOnMXFailure"`
10315
10316	// The verified identity for which you want to enable or disable the specified
10317	// custom MAIL FROM domain.
10318	//
10319	// Identity is a required field
10320	Identity *string `type:"string" required:"true"`
10321
10322	// The custom MAIL FROM domain that you want the verified identity to use. The
10323	// MAIL FROM domain must 1) be a subdomain of the verified identity, 2) not
10324	// be used in a "From" address if the MAIL FROM domain is the destination of
10325	// email feedback forwarding (for more information, see the Amazon SES Developer
10326	// Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/mail-from.html)),
10327	// and 3) not be used to receive emails. A value of null disables the custom
10328	// MAIL FROM setting for the identity.
10329	MailFromDomain *string `type:"string"`
10330}
10331
10332// String returns the string representation
10333func (s SetIdentityMailFromDomainInput) String() string {
10334	return awsutil.Prettify(s)
10335}
10336
10337// GoString returns the string representation
10338func (s SetIdentityMailFromDomainInput) GoString() string {
10339	return s.String()
10340}
10341
10342// Validate inspects the fields of the type to determine if they are valid.
10343func (s *SetIdentityMailFromDomainInput) Validate() error {
10344	invalidParams := request.ErrInvalidParams{Context: "SetIdentityMailFromDomainInput"}
10345	if s.Identity == nil {
10346		invalidParams.Add(request.NewErrParamRequired("Identity"))
10347	}
10348
10349	if invalidParams.Len() > 0 {
10350		return invalidParams
10351	}
10352	return nil
10353}
10354
10355// SetBehaviorOnMXFailure sets the BehaviorOnMXFailure field's value.
10356func (s *SetIdentityMailFromDomainInput) SetBehaviorOnMXFailure(v string) *SetIdentityMailFromDomainInput {
10357	s.BehaviorOnMXFailure = &v
10358	return s
10359}
10360
10361// SetIdentity sets the Identity field's value.
10362func (s *SetIdentityMailFromDomainInput) SetIdentity(v string) *SetIdentityMailFromDomainInput {
10363	s.Identity = &v
10364	return s
10365}
10366
10367// SetMailFromDomain sets the MailFromDomain field's value.
10368func (s *SetIdentityMailFromDomainInput) SetMailFromDomain(v string) *SetIdentityMailFromDomainInput {
10369	s.MailFromDomain = &v
10370	return s
10371}
10372
10373// An empty element returned on a successful request.
10374// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SetIdentityMailFromDomainResponse
10375type SetIdentityMailFromDomainOutput struct {
10376	_ struct{} `type:"structure"`
10377}
10378
10379// String returns the string representation
10380func (s SetIdentityMailFromDomainOutput) String() string {
10381	return awsutil.Prettify(s)
10382}
10383
10384// GoString returns the string representation
10385func (s SetIdentityMailFromDomainOutput) GoString() string {
10386	return s.String()
10387}
10388
10389// Represents a request to specify the Amazon SNS topic to which Amazon SES
10390// will publish bounce, complaint, or delivery notifications for emails sent
10391// with that identity as the Source. For information about Amazon SES notifications,
10392// see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/notifications-via-sns.html).
10393// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SetIdentityNotificationTopicRequest
10394type SetIdentityNotificationTopicInput struct {
10395	_ struct{} `type:"structure"`
10396
10397	// The identity for which the Amazon SNS topic will be set. You can specify
10398	// an identity by using its name or by using its Amazon Resource Name (ARN).
10399	// Examples: user@example.com, example.com, arn:aws:ses:us-east-1:123456789012:identity/example.com.
10400	//
10401	// Identity is a required field
10402	Identity *string `type:"string" required:"true"`
10403
10404	// The type of notifications that will be published to the specified Amazon
10405	// SNS topic.
10406	//
10407	// NotificationType is a required field
10408	NotificationType *string `type:"string" required:"true" enum:"NotificationType"`
10409
10410	// The Amazon Resource Name (ARN) of the Amazon SNS topic. If the parameter
10411	// is omitted from the request or a null value is passed, SnsTopic is cleared
10412	// and publishing is disabled.
10413	SnsTopic *string `type:"string"`
10414}
10415
10416// String returns the string representation
10417func (s SetIdentityNotificationTopicInput) String() string {
10418	return awsutil.Prettify(s)
10419}
10420
10421// GoString returns the string representation
10422func (s SetIdentityNotificationTopicInput) GoString() string {
10423	return s.String()
10424}
10425
10426// Validate inspects the fields of the type to determine if they are valid.
10427func (s *SetIdentityNotificationTopicInput) Validate() error {
10428	invalidParams := request.ErrInvalidParams{Context: "SetIdentityNotificationTopicInput"}
10429	if s.Identity == nil {
10430		invalidParams.Add(request.NewErrParamRequired("Identity"))
10431	}
10432	if s.NotificationType == nil {
10433		invalidParams.Add(request.NewErrParamRequired("NotificationType"))
10434	}
10435
10436	if invalidParams.Len() > 0 {
10437		return invalidParams
10438	}
10439	return nil
10440}
10441
10442// SetIdentity sets the Identity field's value.
10443func (s *SetIdentityNotificationTopicInput) SetIdentity(v string) *SetIdentityNotificationTopicInput {
10444	s.Identity = &v
10445	return s
10446}
10447
10448// SetNotificationType sets the NotificationType field's value.
10449func (s *SetIdentityNotificationTopicInput) SetNotificationType(v string) *SetIdentityNotificationTopicInput {
10450	s.NotificationType = &v
10451	return s
10452}
10453
10454// SetSnsTopic sets the SnsTopic field's value.
10455func (s *SetIdentityNotificationTopicInput) SetSnsTopic(v string) *SetIdentityNotificationTopicInput {
10456	s.SnsTopic = &v
10457	return s
10458}
10459
10460// An empty element returned on a successful request.
10461// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SetIdentityNotificationTopicResponse
10462type SetIdentityNotificationTopicOutput struct {
10463	_ struct{} `type:"structure"`
10464}
10465
10466// String returns the string representation
10467func (s SetIdentityNotificationTopicOutput) String() string {
10468	return awsutil.Prettify(s)
10469}
10470
10471// GoString returns the string representation
10472func (s SetIdentityNotificationTopicOutput) GoString() string {
10473	return s.String()
10474}
10475
10476// Represents a request to set the position of a receipt rule in a receipt rule
10477// set. You use receipt rule sets to receive email with Amazon SES. For more
10478// information, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-concepts.html).
10479// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SetReceiptRulePositionRequest
10480type SetReceiptRulePositionInput struct {
10481	_ struct{} `type:"structure"`
10482
10483	// The name of the receipt rule after which to place the specified receipt rule.
10484	After *string `type:"string"`
10485
10486	// The name of the receipt rule to reposition.
10487	//
10488	// RuleName is a required field
10489	RuleName *string `type:"string" required:"true"`
10490
10491	// The name of the receipt rule set that contains the receipt rule to reposition.
10492	//
10493	// RuleSetName is a required field
10494	RuleSetName *string `type:"string" required:"true"`
10495}
10496
10497// String returns the string representation
10498func (s SetReceiptRulePositionInput) String() string {
10499	return awsutil.Prettify(s)
10500}
10501
10502// GoString returns the string representation
10503func (s SetReceiptRulePositionInput) GoString() string {
10504	return s.String()
10505}
10506
10507// Validate inspects the fields of the type to determine if they are valid.
10508func (s *SetReceiptRulePositionInput) Validate() error {
10509	invalidParams := request.ErrInvalidParams{Context: "SetReceiptRulePositionInput"}
10510	if s.RuleName == nil {
10511		invalidParams.Add(request.NewErrParamRequired("RuleName"))
10512	}
10513	if s.RuleSetName == nil {
10514		invalidParams.Add(request.NewErrParamRequired("RuleSetName"))
10515	}
10516
10517	if invalidParams.Len() > 0 {
10518		return invalidParams
10519	}
10520	return nil
10521}
10522
10523// SetAfter sets the After field's value.
10524func (s *SetReceiptRulePositionInput) SetAfter(v string) *SetReceiptRulePositionInput {
10525	s.After = &v
10526	return s
10527}
10528
10529// SetRuleName sets the RuleName field's value.
10530func (s *SetReceiptRulePositionInput) SetRuleName(v string) *SetReceiptRulePositionInput {
10531	s.RuleName = &v
10532	return s
10533}
10534
10535// SetRuleSetName sets the RuleSetName field's value.
10536func (s *SetReceiptRulePositionInput) SetRuleSetName(v string) *SetReceiptRulePositionInput {
10537	s.RuleSetName = &v
10538	return s
10539}
10540
10541// An empty element returned on a successful request.
10542// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SetReceiptRulePositionResponse
10543type SetReceiptRulePositionOutput struct {
10544	_ struct{} `type:"structure"`
10545}
10546
10547// String returns the string representation
10548func (s SetReceiptRulePositionOutput) String() string {
10549	return awsutil.Prettify(s)
10550}
10551
10552// GoString returns the string representation
10553func (s SetReceiptRulePositionOutput) GoString() string {
10554	return s.String()
10555}
10556
10557// When included in a receipt rule, this action terminates the evaluation of
10558// the receipt rule set and, optionally, publishes a notification to Amazon
10559// Simple Notification Service (Amazon SNS).
10560//
10561// For information about setting a stop action in a receipt rule, see the Amazon
10562// SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-action-stop.html).
10563// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/StopAction
10564type StopAction struct {
10565	_ struct{} `type:"structure"`
10566
10567	// The name of the RuleSet that is being stopped.
10568	//
10569	// Scope is a required field
10570	Scope *string `type:"string" required:"true" enum:"StopScope"`
10571
10572	// The Amazon Resource Name (ARN) of the Amazon SNS topic to notify when the
10573	// stop action is taken. An example of an Amazon SNS topic ARN is arn:aws:sns:us-west-2:123456789012:MyTopic.
10574	// For more information about Amazon SNS topics, see the Amazon SNS Developer
10575	// Guide (http://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html).
10576	TopicArn *string `type:"string"`
10577}
10578
10579// String returns the string representation
10580func (s StopAction) String() string {
10581	return awsutil.Prettify(s)
10582}
10583
10584// GoString returns the string representation
10585func (s StopAction) GoString() string {
10586	return s.String()
10587}
10588
10589// Validate inspects the fields of the type to determine if they are valid.
10590func (s *StopAction) Validate() error {
10591	invalidParams := request.ErrInvalidParams{Context: "StopAction"}
10592	if s.Scope == nil {
10593		invalidParams.Add(request.NewErrParamRequired("Scope"))
10594	}
10595
10596	if invalidParams.Len() > 0 {
10597		return invalidParams
10598	}
10599	return nil
10600}
10601
10602// SetScope sets the Scope field's value.
10603func (s *StopAction) SetScope(v string) *StopAction {
10604	s.Scope = &v
10605	return s
10606}
10607
10608// SetTopicArn sets the TopicArn field's value.
10609func (s *StopAction) SetTopicArn(v string) *StopAction {
10610	s.TopicArn = &v
10611	return s
10612}
10613
10614// A domain that is used to redirect email recipients to an Amazon SES-operated
10615// domain. This domain captures open and click events generated by Amazon SES
10616// emails.
10617//
10618// For more information, see Configuring Custom Domains to Handle Open and Click
10619// Tracking (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/configure-custom-open-click-domains.html)
10620// in the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/Welcome.html).
10621// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/TrackingOptions
10622type TrackingOptions struct {
10623	_ struct{} `type:"structure"`
10624
10625	// The custom subdomain that will be used to redirect email recipients to the
10626	// Amazon SES event tracking domain.
10627	CustomRedirectDomain *string `type:"string"`
10628}
10629
10630// String returns the string representation
10631func (s TrackingOptions) String() string {
10632	return awsutil.Prettify(s)
10633}
10634
10635// GoString returns the string representation
10636func (s TrackingOptions) GoString() string {
10637	return s.String()
10638}
10639
10640// SetCustomRedirectDomain sets the CustomRedirectDomain field's value.
10641func (s *TrackingOptions) SetCustomRedirectDomain(v string) *TrackingOptions {
10642	s.CustomRedirectDomain = &v
10643	return s
10644}
10645
10646// Represents a request to update the event destination of a configuration set.
10647// Configuration sets enable you to publish email sending events. For information
10648// about using configuration sets, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html).
10649// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/UpdateConfigurationSetEventDestinationRequest
10650type UpdateConfigurationSetEventDestinationInput struct {
10651	_ struct{} `type:"structure"`
10652
10653	// The name of the configuration set that contains the event destination that
10654	// you want to update.
10655	//
10656	// ConfigurationSetName is a required field
10657	ConfigurationSetName *string `type:"string" required:"true"`
10658
10659	// The event destination object that you want to apply to the specified configuration
10660	// set.
10661	//
10662	// EventDestination is a required field
10663	EventDestination *EventDestination `type:"structure" required:"true"`
10664}
10665
10666// String returns the string representation
10667func (s UpdateConfigurationSetEventDestinationInput) String() string {
10668	return awsutil.Prettify(s)
10669}
10670
10671// GoString returns the string representation
10672func (s UpdateConfigurationSetEventDestinationInput) GoString() string {
10673	return s.String()
10674}
10675
10676// Validate inspects the fields of the type to determine if they are valid.
10677func (s *UpdateConfigurationSetEventDestinationInput) Validate() error {
10678	invalidParams := request.ErrInvalidParams{Context: "UpdateConfigurationSetEventDestinationInput"}
10679	if s.ConfigurationSetName == nil {
10680		invalidParams.Add(request.NewErrParamRequired("ConfigurationSetName"))
10681	}
10682	if s.EventDestination == nil {
10683		invalidParams.Add(request.NewErrParamRequired("EventDestination"))
10684	}
10685	if s.EventDestination != nil {
10686		if err := s.EventDestination.Validate(); err != nil {
10687			invalidParams.AddNested("EventDestination", err.(request.ErrInvalidParams))
10688		}
10689	}
10690
10691	if invalidParams.Len() > 0 {
10692		return invalidParams
10693	}
10694	return nil
10695}
10696
10697// SetConfigurationSetName sets the ConfigurationSetName field's value.
10698func (s *UpdateConfigurationSetEventDestinationInput) SetConfigurationSetName(v string) *UpdateConfigurationSetEventDestinationInput {
10699	s.ConfigurationSetName = &v
10700	return s
10701}
10702
10703// SetEventDestination sets the EventDestination field's value.
10704func (s *UpdateConfigurationSetEventDestinationInput) SetEventDestination(v *EventDestination) *UpdateConfigurationSetEventDestinationInput {
10705	s.EventDestination = v
10706	return s
10707}
10708
10709// An empty element returned on a successful request.
10710// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/UpdateConfigurationSetEventDestinationResponse
10711type UpdateConfigurationSetEventDestinationOutput struct {
10712	_ struct{} `type:"structure"`
10713}
10714
10715// String returns the string representation
10716func (s UpdateConfigurationSetEventDestinationOutput) String() string {
10717	return awsutil.Prettify(s)
10718}
10719
10720// GoString returns the string representation
10721func (s UpdateConfigurationSetEventDestinationOutput) GoString() string {
10722	return s.String()
10723}
10724
10725// Represents a request to update the tracking options for a configuration set.
10726// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/UpdateConfigurationSetTrackingOptionsRequest
10727type UpdateConfigurationSetTrackingOptionsInput struct {
10728	_ struct{} `type:"structure"`
10729
10730	// The name of the configuration set for which you want to update the custom
10731	// tracking domain.
10732	//
10733	// ConfigurationSetName is a required field
10734	ConfigurationSetName *string `type:"string" required:"true"`
10735
10736	// A domain that is used to redirect email recipients to an Amazon SES-operated
10737	// domain. This domain captures open and click events generated by Amazon SES
10738	// emails.
10739	//
10740	// For more information, see Configuring Custom Domains to Handle Open and Click
10741	// Tracking (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/configure-custom-open-click-domains.html)
10742	// in the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/Welcome.html).
10743	//
10744	// TrackingOptions is a required field
10745	TrackingOptions *TrackingOptions `type:"structure" required:"true"`
10746}
10747
10748// String returns the string representation
10749func (s UpdateConfigurationSetTrackingOptionsInput) String() string {
10750	return awsutil.Prettify(s)
10751}
10752
10753// GoString returns the string representation
10754func (s UpdateConfigurationSetTrackingOptionsInput) GoString() string {
10755	return s.String()
10756}
10757
10758// Validate inspects the fields of the type to determine if they are valid.
10759func (s *UpdateConfigurationSetTrackingOptionsInput) Validate() error {
10760	invalidParams := request.ErrInvalidParams{Context: "UpdateConfigurationSetTrackingOptionsInput"}
10761	if s.ConfigurationSetName == nil {
10762		invalidParams.Add(request.NewErrParamRequired("ConfigurationSetName"))
10763	}
10764	if s.TrackingOptions == nil {
10765		invalidParams.Add(request.NewErrParamRequired("TrackingOptions"))
10766	}
10767
10768	if invalidParams.Len() > 0 {
10769		return invalidParams
10770	}
10771	return nil
10772}
10773
10774// SetConfigurationSetName sets the ConfigurationSetName field's value.
10775func (s *UpdateConfigurationSetTrackingOptionsInput) SetConfigurationSetName(v string) *UpdateConfigurationSetTrackingOptionsInput {
10776	s.ConfigurationSetName = &v
10777	return s
10778}
10779
10780// SetTrackingOptions sets the TrackingOptions field's value.
10781func (s *UpdateConfigurationSetTrackingOptionsInput) SetTrackingOptions(v *TrackingOptions) *UpdateConfigurationSetTrackingOptionsInput {
10782	s.TrackingOptions = v
10783	return s
10784}
10785
10786// An empty element returned on a successful request.
10787// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/UpdateConfigurationSetTrackingOptionsResponse
10788type UpdateConfigurationSetTrackingOptionsOutput struct {
10789	_ struct{} `type:"structure"`
10790}
10791
10792// String returns the string representation
10793func (s UpdateConfigurationSetTrackingOptionsOutput) String() string {
10794	return awsutil.Prettify(s)
10795}
10796
10797// GoString returns the string representation
10798func (s UpdateConfigurationSetTrackingOptionsOutput) GoString() string {
10799	return s.String()
10800}
10801
10802// Represents a request to update a receipt rule. You use receipt rules to receive
10803// email with Amazon SES. For more information, see the Amazon SES Developer
10804// Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-concepts.html).
10805// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/UpdateReceiptRuleRequest
10806type UpdateReceiptRuleInput struct {
10807	_ struct{} `type:"structure"`
10808
10809	// A data structure that contains the updated receipt rule information.
10810	//
10811	// Rule is a required field
10812	Rule *ReceiptRule `type:"structure" required:"true"`
10813
10814	// The name of the receipt rule set that the receipt rule belongs to.
10815	//
10816	// RuleSetName is a required field
10817	RuleSetName *string `type:"string" required:"true"`
10818}
10819
10820// String returns the string representation
10821func (s UpdateReceiptRuleInput) String() string {
10822	return awsutil.Prettify(s)
10823}
10824
10825// GoString returns the string representation
10826func (s UpdateReceiptRuleInput) GoString() string {
10827	return s.String()
10828}
10829
10830// Validate inspects the fields of the type to determine if they are valid.
10831func (s *UpdateReceiptRuleInput) Validate() error {
10832	invalidParams := request.ErrInvalidParams{Context: "UpdateReceiptRuleInput"}
10833	if s.Rule == nil {
10834		invalidParams.Add(request.NewErrParamRequired("Rule"))
10835	}
10836	if s.RuleSetName == nil {
10837		invalidParams.Add(request.NewErrParamRequired("RuleSetName"))
10838	}
10839	if s.Rule != nil {
10840		if err := s.Rule.Validate(); err != nil {
10841			invalidParams.AddNested("Rule", err.(request.ErrInvalidParams))
10842		}
10843	}
10844
10845	if invalidParams.Len() > 0 {
10846		return invalidParams
10847	}
10848	return nil
10849}
10850
10851// SetRule sets the Rule field's value.
10852func (s *UpdateReceiptRuleInput) SetRule(v *ReceiptRule) *UpdateReceiptRuleInput {
10853	s.Rule = v
10854	return s
10855}
10856
10857// SetRuleSetName sets the RuleSetName field's value.
10858func (s *UpdateReceiptRuleInput) SetRuleSetName(v string) *UpdateReceiptRuleInput {
10859	s.RuleSetName = &v
10860	return s
10861}
10862
10863// An empty element returned on a successful request.
10864// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/UpdateReceiptRuleResponse
10865type UpdateReceiptRuleOutput struct {
10866	_ struct{} `type:"structure"`
10867}
10868
10869// String returns the string representation
10870func (s UpdateReceiptRuleOutput) String() string {
10871	return awsutil.Prettify(s)
10872}
10873
10874// GoString returns the string representation
10875func (s UpdateReceiptRuleOutput) GoString() string {
10876	return s.String()
10877}
10878
10879// Represents a request to generate the CNAME records needed to set up Easy
10880// DKIM with Amazon SES. For more information about setting up Easy DKIM, see
10881// the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html).
10882// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/VerifyDomainDkimRequest
10883type VerifyDomainDkimInput struct {
10884	_ struct{} `type:"structure"`
10885
10886	// The name of the domain to be verified for Easy DKIM signing.
10887	//
10888	// Domain is a required field
10889	Domain *string `type:"string" required:"true"`
10890}
10891
10892// String returns the string representation
10893func (s VerifyDomainDkimInput) String() string {
10894	return awsutil.Prettify(s)
10895}
10896
10897// GoString returns the string representation
10898func (s VerifyDomainDkimInput) GoString() string {
10899	return s.String()
10900}
10901
10902// Validate inspects the fields of the type to determine if they are valid.
10903func (s *VerifyDomainDkimInput) Validate() error {
10904	invalidParams := request.ErrInvalidParams{Context: "VerifyDomainDkimInput"}
10905	if s.Domain == nil {
10906		invalidParams.Add(request.NewErrParamRequired("Domain"))
10907	}
10908
10909	if invalidParams.Len() > 0 {
10910		return invalidParams
10911	}
10912	return nil
10913}
10914
10915// SetDomain sets the Domain field's value.
10916func (s *VerifyDomainDkimInput) SetDomain(v string) *VerifyDomainDkimInput {
10917	s.Domain = &v
10918	return s
10919}
10920
10921// Returns CNAME records that you must publish to the DNS server of your domain
10922// to set up Easy DKIM with Amazon SES.
10923// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/VerifyDomainDkimResponse
10924type VerifyDomainDkimOutput struct {
10925	_ struct{} `type:"structure"`
10926
10927	// A set of character strings that represent the domain's identity. If the identity
10928	// is an email address, the tokens represent the domain of that address.
10929	//
10930	// Using these tokens, you will need to create DNS CNAME records that point
10931	// to DKIM public keys hosted by Amazon SES. Amazon Web Services will eventually
10932	// detect that you have updated your DNS records; this detection process may
10933	// take up to 72 hours. Upon successful detection, Amazon SES will be able to
10934	// DKIM-sign emails originating from that domain.
10935	//
10936	// For more information about creating DNS records using DKIM tokens, go to
10937	// the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim-dns-records.html).
10938	//
10939	// DkimTokens is a required field
10940	DkimTokens []*string `type:"list" required:"true"`
10941}
10942
10943// String returns the string representation
10944func (s VerifyDomainDkimOutput) String() string {
10945	return awsutil.Prettify(s)
10946}
10947
10948// GoString returns the string representation
10949func (s VerifyDomainDkimOutput) GoString() string {
10950	return s.String()
10951}
10952
10953// SetDkimTokens sets the DkimTokens field's value.
10954func (s *VerifyDomainDkimOutput) SetDkimTokens(v []*string) *VerifyDomainDkimOutput {
10955	s.DkimTokens = v
10956	return s
10957}
10958
10959// Represents a request to begin Amazon SES domain verification and to generate
10960// the TXT records that you must publish to the DNS server of your domain to
10961// complete the verification. For information about domain verification, see
10962// the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-domains.html).
10963// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/VerifyDomainIdentityRequest
10964type VerifyDomainIdentityInput struct {
10965	_ struct{} `type:"structure"`
10966
10967	// The domain to be verified.
10968	//
10969	// Domain is a required field
10970	Domain *string `type:"string" required:"true"`
10971}
10972
10973// String returns the string representation
10974func (s VerifyDomainIdentityInput) String() string {
10975	return awsutil.Prettify(s)
10976}
10977
10978// GoString returns the string representation
10979func (s VerifyDomainIdentityInput) GoString() string {
10980	return s.String()
10981}
10982
10983// Validate inspects the fields of the type to determine if they are valid.
10984func (s *VerifyDomainIdentityInput) Validate() error {
10985	invalidParams := request.ErrInvalidParams{Context: "VerifyDomainIdentityInput"}
10986	if s.Domain == nil {
10987		invalidParams.Add(request.NewErrParamRequired("Domain"))
10988	}
10989
10990	if invalidParams.Len() > 0 {
10991		return invalidParams
10992	}
10993	return nil
10994}
10995
10996// SetDomain sets the Domain field's value.
10997func (s *VerifyDomainIdentityInput) SetDomain(v string) *VerifyDomainIdentityInput {
10998	s.Domain = &v
10999	return s
11000}
11001
11002// Returns a TXT record that you must publish to the DNS server of your domain
11003// to complete domain verification with Amazon SES.
11004// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/VerifyDomainIdentityResponse
11005type VerifyDomainIdentityOutput struct {
11006	_ struct{} `type:"structure"`
11007
11008	// A TXT record that you must place in the DNS settings of the domain to complete
11009	// domain verification with Amazon SES.
11010	//
11011	// As Amazon SES searches for the TXT record, the domain's verification status
11012	// is "Pending". When Amazon SES detects the record, the domain's verification
11013	// status changes to "Success". If Amazon SES is unable to detect the record
11014	// within 72 hours, the domain's verification status changes to "Failed." In
11015	// that case, if you still want to verify the domain, you must restart the verification
11016	// process from the beginning.
11017	//
11018	// VerificationToken is a required field
11019	VerificationToken *string `type:"string" required:"true"`
11020}
11021
11022// String returns the string representation
11023func (s VerifyDomainIdentityOutput) String() string {
11024	return awsutil.Prettify(s)
11025}
11026
11027// GoString returns the string representation
11028func (s VerifyDomainIdentityOutput) GoString() string {
11029	return s.String()
11030}
11031
11032// SetVerificationToken sets the VerificationToken field's value.
11033func (s *VerifyDomainIdentityOutput) SetVerificationToken(v string) *VerifyDomainIdentityOutput {
11034	s.VerificationToken = &v
11035	return s
11036}
11037
11038// Represents a request to begin email address verification with Amazon SES.
11039// For information about email address verification, see the Amazon SES Developer
11040// Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-email-addresses.html).
11041// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/VerifyEmailAddressRequest
11042type VerifyEmailAddressInput struct {
11043	_ struct{} `type:"structure"`
11044
11045	// The email address to be verified.
11046	//
11047	// EmailAddress is a required field
11048	EmailAddress *string `type:"string" required:"true"`
11049}
11050
11051// String returns the string representation
11052func (s VerifyEmailAddressInput) String() string {
11053	return awsutil.Prettify(s)
11054}
11055
11056// GoString returns the string representation
11057func (s VerifyEmailAddressInput) GoString() string {
11058	return s.String()
11059}
11060
11061// Validate inspects the fields of the type to determine if they are valid.
11062func (s *VerifyEmailAddressInput) Validate() error {
11063	invalidParams := request.ErrInvalidParams{Context: "VerifyEmailAddressInput"}
11064	if s.EmailAddress == nil {
11065		invalidParams.Add(request.NewErrParamRequired("EmailAddress"))
11066	}
11067
11068	if invalidParams.Len() > 0 {
11069		return invalidParams
11070	}
11071	return nil
11072}
11073
11074// SetEmailAddress sets the EmailAddress field's value.
11075func (s *VerifyEmailAddressInput) SetEmailAddress(v string) *VerifyEmailAddressInput {
11076	s.EmailAddress = &v
11077	return s
11078}
11079
11080// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/VerifyEmailAddressOutput
11081type VerifyEmailAddressOutput struct {
11082	_ struct{} `type:"structure"`
11083}
11084
11085// String returns the string representation
11086func (s VerifyEmailAddressOutput) String() string {
11087	return awsutil.Prettify(s)
11088}
11089
11090// GoString returns the string representation
11091func (s VerifyEmailAddressOutput) GoString() string {
11092	return s.String()
11093}
11094
11095// Represents a request to begin email address verification with Amazon SES.
11096// For information about email address verification, see the Amazon SES Developer
11097// Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-email-addresses.html).
11098// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/VerifyEmailIdentityRequest
11099type VerifyEmailIdentityInput struct {
11100	_ struct{} `type:"structure"`
11101
11102	// The email address to be verified.
11103	//
11104	// EmailAddress is a required field
11105	EmailAddress *string `type:"string" required:"true"`
11106}
11107
11108// String returns the string representation
11109func (s VerifyEmailIdentityInput) String() string {
11110	return awsutil.Prettify(s)
11111}
11112
11113// GoString returns the string representation
11114func (s VerifyEmailIdentityInput) GoString() string {
11115	return s.String()
11116}
11117
11118// Validate inspects the fields of the type to determine if they are valid.
11119func (s *VerifyEmailIdentityInput) Validate() error {
11120	invalidParams := request.ErrInvalidParams{Context: "VerifyEmailIdentityInput"}
11121	if s.EmailAddress == nil {
11122		invalidParams.Add(request.NewErrParamRequired("EmailAddress"))
11123	}
11124
11125	if invalidParams.Len() > 0 {
11126		return invalidParams
11127	}
11128	return nil
11129}
11130
11131// SetEmailAddress sets the EmailAddress field's value.
11132func (s *VerifyEmailIdentityInput) SetEmailAddress(v string) *VerifyEmailIdentityInput {
11133	s.EmailAddress = &v
11134	return s
11135}
11136
11137// An empty element returned on a successful request.
11138// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/VerifyEmailIdentityResponse
11139type VerifyEmailIdentityOutput struct {
11140	_ struct{} `type:"structure"`
11141}
11142
11143// String returns the string representation
11144func (s VerifyEmailIdentityOutput) String() string {
11145	return awsutil.Prettify(s)
11146}
11147
11148// GoString returns the string representation
11149func (s VerifyEmailIdentityOutput) GoString() string {
11150	return s.String()
11151}
11152
11153// When included in a receipt rule, this action calls Amazon WorkMail and, optionally,
11154// publishes a notification to Amazon Simple Notification Service (Amazon SNS).
11155// You will typically not use this action directly because Amazon WorkMail adds
11156// the rule automatically during its setup procedure.
11157//
11158// For information using a receipt rule to call Amazon WorkMail, see the Amazon
11159// SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-action-workmail.html).
11160// Please also see https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/WorkmailAction
11161type WorkmailAction struct {
11162	_ struct{} `type:"structure"`
11163
11164	// The ARN of the Amazon WorkMail organization. An example of an Amazon WorkMail
11165	// organization ARN is arn:aws:workmail:us-west-2:123456789012:organization/m-68755160c4cb4e29a2b2f8fb58f359d7.
11166	// For information about Amazon WorkMail organizations, see the Amazon WorkMail
11167	// Administrator Guide (http://docs.aws.amazon.com/workmail/latest/adminguide/organizations_overview.html).
11168	//
11169	// OrganizationArn is a required field
11170	OrganizationArn *string `type:"string" required:"true"`
11171
11172	// The Amazon Resource Name (ARN) of the Amazon SNS topic to notify when the
11173	// WorkMail action is called. An example of an Amazon SNS topic ARN is arn:aws:sns:us-west-2:123456789012:MyTopic.
11174	// For more information about Amazon SNS topics, see the Amazon SNS Developer
11175	// Guide (http://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html).
11176	TopicArn *string `type:"string"`
11177}
11178
11179// String returns the string representation
11180func (s WorkmailAction) String() string {
11181	return awsutil.Prettify(s)
11182}
11183
11184// GoString returns the string representation
11185func (s WorkmailAction) GoString() string {
11186	return s.String()
11187}
11188
11189// Validate inspects the fields of the type to determine if they are valid.
11190func (s *WorkmailAction) Validate() error {
11191	invalidParams := request.ErrInvalidParams{Context: "WorkmailAction"}
11192	if s.OrganizationArn == nil {
11193		invalidParams.Add(request.NewErrParamRequired("OrganizationArn"))
11194	}
11195
11196	if invalidParams.Len() > 0 {
11197		return invalidParams
11198	}
11199	return nil
11200}
11201
11202// SetOrganizationArn sets the OrganizationArn field's value.
11203func (s *WorkmailAction) SetOrganizationArn(v string) *WorkmailAction {
11204	s.OrganizationArn = &v
11205	return s
11206}
11207
11208// SetTopicArn sets the TopicArn field's value.
11209func (s *WorkmailAction) SetTopicArn(v string) *WorkmailAction {
11210	s.TopicArn = &v
11211	return s
11212}
11213
11214const (
11215	// BehaviorOnMXFailureUseDefaultValue is a BehaviorOnMXFailure enum value
11216	BehaviorOnMXFailureUseDefaultValue = "UseDefaultValue"
11217
11218	// BehaviorOnMXFailureRejectMessage is a BehaviorOnMXFailure enum value
11219	BehaviorOnMXFailureRejectMessage = "RejectMessage"
11220)
11221
11222const (
11223	// BounceTypeDoesNotExist is a BounceType enum value
11224	BounceTypeDoesNotExist = "DoesNotExist"
11225
11226	// BounceTypeMessageTooLarge is a BounceType enum value
11227	BounceTypeMessageTooLarge = "MessageTooLarge"
11228
11229	// BounceTypeExceededQuota is a BounceType enum value
11230	BounceTypeExceededQuota = "ExceededQuota"
11231
11232	// BounceTypeContentRejected is a BounceType enum value
11233	BounceTypeContentRejected = "ContentRejected"
11234
11235	// BounceTypeUndefined is a BounceType enum value
11236	BounceTypeUndefined = "Undefined"
11237
11238	// BounceTypeTemporaryFailure is a BounceType enum value
11239	BounceTypeTemporaryFailure = "TemporaryFailure"
11240)
11241
11242const (
11243	// ConfigurationSetAttributeEventDestinations is a ConfigurationSetAttribute enum value
11244	ConfigurationSetAttributeEventDestinations = "eventDestinations"
11245
11246	// ConfigurationSetAttributeTrackingOptions is a ConfigurationSetAttribute enum value
11247	ConfigurationSetAttributeTrackingOptions = "trackingOptions"
11248)
11249
11250const (
11251	// CustomMailFromStatusPending is a CustomMailFromStatus enum value
11252	CustomMailFromStatusPending = "Pending"
11253
11254	// CustomMailFromStatusSuccess is a CustomMailFromStatus enum value
11255	CustomMailFromStatusSuccess = "Success"
11256
11257	// CustomMailFromStatusFailed is a CustomMailFromStatus enum value
11258	CustomMailFromStatusFailed = "Failed"
11259
11260	// CustomMailFromStatusTemporaryFailure is a CustomMailFromStatus enum value
11261	CustomMailFromStatusTemporaryFailure = "TemporaryFailure"
11262)
11263
11264const (
11265	// DimensionValueSourceMessageTag is a DimensionValueSource enum value
11266	DimensionValueSourceMessageTag = "messageTag"
11267
11268	// DimensionValueSourceEmailHeader is a DimensionValueSource enum value
11269	DimensionValueSourceEmailHeader = "emailHeader"
11270
11271	// DimensionValueSourceLinkTag is a DimensionValueSource enum value
11272	DimensionValueSourceLinkTag = "linkTag"
11273)
11274
11275const (
11276	// DsnActionFailed is a DsnAction enum value
11277	DsnActionFailed = "failed"
11278
11279	// DsnActionDelayed is a DsnAction enum value
11280	DsnActionDelayed = "delayed"
11281
11282	// DsnActionDelivered is a DsnAction enum value
11283	DsnActionDelivered = "delivered"
11284
11285	// DsnActionRelayed is a DsnAction enum value
11286	DsnActionRelayed = "relayed"
11287
11288	// DsnActionExpanded is a DsnAction enum value
11289	DsnActionExpanded = "expanded"
11290)
11291
11292const (
11293	// EventTypeSend is a EventType enum value
11294	EventTypeSend = "send"
11295
11296	// EventTypeReject is a EventType enum value
11297	EventTypeReject = "reject"
11298
11299	// EventTypeBounce is a EventType enum value
11300	EventTypeBounce = "bounce"
11301
11302	// EventTypeComplaint is a EventType enum value
11303	EventTypeComplaint = "complaint"
11304
11305	// EventTypeDelivery is a EventType enum value
11306	EventTypeDelivery = "delivery"
11307
11308	// EventTypeOpen is a EventType enum value
11309	EventTypeOpen = "open"
11310
11311	// EventTypeClick is a EventType enum value
11312	EventTypeClick = "click"
11313)
11314
11315const (
11316	// IdentityTypeEmailAddress is a IdentityType enum value
11317	IdentityTypeEmailAddress = "EmailAddress"
11318
11319	// IdentityTypeDomain is a IdentityType enum value
11320	IdentityTypeDomain = "Domain"
11321)
11322
11323const (
11324	// InvocationTypeEvent is a InvocationType enum value
11325	InvocationTypeEvent = "Event"
11326
11327	// InvocationTypeRequestResponse is a InvocationType enum value
11328	InvocationTypeRequestResponse = "RequestResponse"
11329)
11330
11331const (
11332	// NotificationTypeBounce is a NotificationType enum value
11333	NotificationTypeBounce = "Bounce"
11334
11335	// NotificationTypeComplaint is a NotificationType enum value
11336	NotificationTypeComplaint = "Complaint"
11337
11338	// NotificationTypeDelivery is a NotificationType enum value
11339	NotificationTypeDelivery = "Delivery"
11340)
11341
11342const (
11343	// ReceiptFilterPolicyBlock is a ReceiptFilterPolicy enum value
11344	ReceiptFilterPolicyBlock = "Block"
11345
11346	// ReceiptFilterPolicyAllow is a ReceiptFilterPolicy enum value
11347	ReceiptFilterPolicyAllow = "Allow"
11348)
11349
11350const (
11351	// SNSActionEncodingUtf8 is a SNSActionEncoding enum value
11352	SNSActionEncodingUtf8 = "UTF-8"
11353
11354	// SNSActionEncodingBase64 is a SNSActionEncoding enum value
11355	SNSActionEncodingBase64 = "Base64"
11356)
11357
11358const (
11359	// StopScopeRuleSet is a StopScope enum value
11360	StopScopeRuleSet = "RuleSet"
11361)
11362
11363const (
11364	// TlsPolicyRequire is a TlsPolicy enum value
11365	TlsPolicyRequire = "Require"
11366
11367	// TlsPolicyOptional is a TlsPolicy enum value
11368	TlsPolicyOptional = "Optional"
11369)
11370
11371const (
11372	// VerificationStatusPending is a VerificationStatus enum value
11373	VerificationStatusPending = "Pending"
11374
11375	// VerificationStatusSuccess is a VerificationStatus enum value
11376	VerificationStatusSuccess = "Success"
11377
11378	// VerificationStatusFailed is a VerificationStatus enum value
11379	VerificationStatusFailed = "Failed"
11380
11381	// VerificationStatusTemporaryFailure is a VerificationStatus enum value
11382	VerificationStatusTemporaryFailure = "TemporaryFailure"
11383
11384	// VerificationStatusNotStarted is a VerificationStatus enum value
11385	VerificationStatusNotStarted = "NotStarted"
11386)
11387