1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package sesv2
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/restjson"
14)
15
16const opCreateConfigurationSet = "CreateConfigurationSet"
17
18// CreateConfigurationSetRequest generates a "aws/request.Request" representing the
19// client's request for the CreateConfigurationSet operation. The "output" return
20// value will be populated with the request's response once the request completes
21// successfully.
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 CreateConfigurationSet for more information on using the CreateConfigurationSet
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 CreateConfigurationSetRequest method.
34//    req, resp := client.CreateConfigurationSetRequest(params)
35//
36//    err := req.Send()
37//    if err == nil { // resp is now filled
38//        fmt.Println(resp)
39//    }
40//
41// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/CreateConfigurationSet
42func (c *SESV2) CreateConfigurationSetRequest(input *CreateConfigurationSetInput) (req *request.Request, output *CreateConfigurationSetOutput) {
43	op := &request.Operation{
44		Name:       opCreateConfigurationSet,
45		HTTPMethod: "POST",
46		HTTPPath:   "/v2/email/configuration-sets",
47	}
48
49	if input == nil {
50		input = &CreateConfigurationSetInput{}
51	}
52
53	output = &CreateConfigurationSetOutput{}
54	req = c.newRequest(op, input, output)
55	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
56	return
57}
58
59// CreateConfigurationSet API operation for Amazon Simple Email Service.
60//
61// Create a configuration set. Configuration sets are groups of rules that you
62// can apply to the emails that you send. You apply a configuration set to an
63// email by specifying the name of the configuration set when you call the Amazon
64// SES API v2. When you apply a configuration set to an email, all of the rules
65// in that configuration set are applied to the email.
66//
67// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
68// with awserr.Error's Code and Message methods to get detailed information about
69// the error.
70//
71// See the AWS API reference guide for Amazon Simple Email Service's
72// API operation CreateConfigurationSet for usage and error information.
73//
74// Returned Error Types:
75//   * AlreadyExistsException
76//   The resource specified in your request already exists.
77//
78//   * NotFoundException
79//   The resource you attempted to access doesn't exist.
80//
81//   * TooManyRequestsException
82//   Too many requests have been made to the operation.
83//
84//   * LimitExceededException
85//   There are too many instances of the specified resource type.
86//
87//   * BadRequestException
88//   The input you provided is invalid.
89//
90//   * ConcurrentModificationException
91//   The resource is being modified by another operation or thread.
92//
93// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/CreateConfigurationSet
94func (c *SESV2) CreateConfigurationSet(input *CreateConfigurationSetInput) (*CreateConfigurationSetOutput, error) {
95	req, out := c.CreateConfigurationSetRequest(input)
96	return out, req.Send()
97}
98
99// CreateConfigurationSetWithContext is the same as CreateConfigurationSet with the addition of
100// the ability to pass a context and additional request options.
101//
102// See CreateConfigurationSet for details on how to use this API operation.
103//
104// The context must be non-nil and will be used for request cancellation. If
105// the context is nil a panic will occur. In the future the SDK may create
106// sub-contexts for http.Requests. See https://golang.org/pkg/context/
107// for more information on using Contexts.
108func (c *SESV2) CreateConfigurationSetWithContext(ctx aws.Context, input *CreateConfigurationSetInput, opts ...request.Option) (*CreateConfigurationSetOutput, error) {
109	req, out := c.CreateConfigurationSetRequest(input)
110	req.SetContext(ctx)
111	req.ApplyOptions(opts...)
112	return out, req.Send()
113}
114
115const opCreateConfigurationSetEventDestination = "CreateConfigurationSetEventDestination"
116
117// CreateConfigurationSetEventDestinationRequest generates a "aws/request.Request" representing the
118// client's request for the CreateConfigurationSetEventDestination operation. The "output" return
119// value will be populated with the request's response once the request completes
120// successfully.
121//
122// Use "Send" method on the returned Request to send the API call to the service.
123// the "output" return value is not valid until after Send returns without error.
124//
125// See CreateConfigurationSetEventDestination for more information on using the CreateConfigurationSetEventDestination
126// API call, and error handling.
127//
128// This method is useful when you want to inject custom logic or configuration
129// into the SDK's request lifecycle. Such as custom headers, or retry logic.
130//
131//
132//    // Example sending a request using the CreateConfigurationSetEventDestinationRequest method.
133//    req, resp := client.CreateConfigurationSetEventDestinationRequest(params)
134//
135//    err := req.Send()
136//    if err == nil { // resp is now filled
137//        fmt.Println(resp)
138//    }
139//
140// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/CreateConfigurationSetEventDestination
141func (c *SESV2) CreateConfigurationSetEventDestinationRequest(input *CreateConfigurationSetEventDestinationInput) (req *request.Request, output *CreateConfigurationSetEventDestinationOutput) {
142	op := &request.Operation{
143		Name:       opCreateConfigurationSetEventDestination,
144		HTTPMethod: "POST",
145		HTTPPath:   "/v2/email/configuration-sets/{ConfigurationSetName}/event-destinations",
146	}
147
148	if input == nil {
149		input = &CreateConfigurationSetEventDestinationInput{}
150	}
151
152	output = &CreateConfigurationSetEventDestinationOutput{}
153	req = c.newRequest(op, input, output)
154	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
155	return
156}
157
158// CreateConfigurationSetEventDestination API operation for Amazon Simple Email Service.
159//
160// Create an event destination. Events include message sends, deliveries, opens,
161// clicks, bounces, and complaints. Event destinations are places that you can
162// send information about these events to. For example, you can send event data
163// to Amazon SNS to receive notifications when you receive bounces or complaints,
164// or you can use Amazon Kinesis Data Firehose to stream data to Amazon S3 for
165// long-term storage.
166//
167// A single configuration set can include more than one event destination.
168//
169// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
170// with awserr.Error's Code and Message methods to get detailed information about
171// the error.
172//
173// See the AWS API reference guide for Amazon Simple Email Service's
174// API operation CreateConfigurationSetEventDestination for usage and error information.
175//
176// Returned Error Types:
177//   * NotFoundException
178//   The resource you attempted to access doesn't exist.
179//
180//   * AlreadyExistsException
181//   The resource specified in your request already exists.
182//
183//   * LimitExceededException
184//   There are too many instances of the specified resource type.
185//
186//   * TooManyRequestsException
187//   Too many requests have been made to the operation.
188//
189//   * BadRequestException
190//   The input you provided is invalid.
191//
192// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/CreateConfigurationSetEventDestination
193func (c *SESV2) CreateConfigurationSetEventDestination(input *CreateConfigurationSetEventDestinationInput) (*CreateConfigurationSetEventDestinationOutput, error) {
194	req, out := c.CreateConfigurationSetEventDestinationRequest(input)
195	return out, req.Send()
196}
197
198// CreateConfigurationSetEventDestinationWithContext is the same as CreateConfigurationSetEventDestination with the addition of
199// the ability to pass a context and additional request options.
200//
201// See CreateConfigurationSetEventDestination for details on how to use this API operation.
202//
203// The context must be non-nil and will be used for request cancellation. If
204// the context is nil a panic will occur. In the future the SDK may create
205// sub-contexts for http.Requests. See https://golang.org/pkg/context/
206// for more information on using Contexts.
207func (c *SESV2) CreateConfigurationSetEventDestinationWithContext(ctx aws.Context, input *CreateConfigurationSetEventDestinationInput, opts ...request.Option) (*CreateConfigurationSetEventDestinationOutput, error) {
208	req, out := c.CreateConfigurationSetEventDestinationRequest(input)
209	req.SetContext(ctx)
210	req.ApplyOptions(opts...)
211	return out, req.Send()
212}
213
214const opCreateDedicatedIpPool = "CreateDedicatedIpPool"
215
216// CreateDedicatedIpPoolRequest generates a "aws/request.Request" representing the
217// client's request for the CreateDedicatedIpPool operation. The "output" return
218// value will be populated with the request's response once the request completes
219// successfully.
220//
221// Use "Send" method on the returned Request to send the API call to the service.
222// the "output" return value is not valid until after Send returns without error.
223//
224// See CreateDedicatedIpPool for more information on using the CreateDedicatedIpPool
225// API call, and error handling.
226//
227// This method is useful when you want to inject custom logic or configuration
228// into the SDK's request lifecycle. Such as custom headers, or retry logic.
229//
230//
231//    // Example sending a request using the CreateDedicatedIpPoolRequest method.
232//    req, resp := client.CreateDedicatedIpPoolRequest(params)
233//
234//    err := req.Send()
235//    if err == nil { // resp is now filled
236//        fmt.Println(resp)
237//    }
238//
239// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/CreateDedicatedIpPool
240func (c *SESV2) CreateDedicatedIpPoolRequest(input *CreateDedicatedIpPoolInput) (req *request.Request, output *CreateDedicatedIpPoolOutput) {
241	op := &request.Operation{
242		Name:       opCreateDedicatedIpPool,
243		HTTPMethod: "POST",
244		HTTPPath:   "/v2/email/dedicated-ip-pools",
245	}
246
247	if input == nil {
248		input = &CreateDedicatedIpPoolInput{}
249	}
250
251	output = &CreateDedicatedIpPoolOutput{}
252	req = c.newRequest(op, input, output)
253	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
254	return
255}
256
257// CreateDedicatedIpPool API operation for Amazon Simple Email Service.
258//
259// Create a new pool of dedicated IP addresses. A pool can include one or more
260// dedicated IP addresses that are associated with your AWS account. You can
261// associate a pool with a configuration set. When you send an email that uses
262// that configuration set, the message is sent from one of the addresses in
263// the associated pool.
264//
265// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
266// with awserr.Error's Code and Message methods to get detailed information about
267// the error.
268//
269// See the AWS API reference guide for Amazon Simple Email Service's
270// API operation CreateDedicatedIpPool for usage and error information.
271//
272// Returned Error Types:
273//   * AlreadyExistsException
274//   The resource specified in your request already exists.
275//
276//   * LimitExceededException
277//   There are too many instances of the specified resource type.
278//
279//   * TooManyRequestsException
280//   Too many requests have been made to the operation.
281//
282//   * BadRequestException
283//   The input you provided is invalid.
284//
285//   * ConcurrentModificationException
286//   The resource is being modified by another operation or thread.
287//
288// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/CreateDedicatedIpPool
289func (c *SESV2) CreateDedicatedIpPool(input *CreateDedicatedIpPoolInput) (*CreateDedicatedIpPoolOutput, error) {
290	req, out := c.CreateDedicatedIpPoolRequest(input)
291	return out, req.Send()
292}
293
294// CreateDedicatedIpPoolWithContext is the same as CreateDedicatedIpPool with the addition of
295// the ability to pass a context and additional request options.
296//
297// See CreateDedicatedIpPool for details on how to use this API operation.
298//
299// The context must be non-nil and will be used for request cancellation. If
300// the context is nil a panic will occur. In the future the SDK may create
301// sub-contexts for http.Requests. See https://golang.org/pkg/context/
302// for more information on using Contexts.
303func (c *SESV2) CreateDedicatedIpPoolWithContext(ctx aws.Context, input *CreateDedicatedIpPoolInput, opts ...request.Option) (*CreateDedicatedIpPoolOutput, error) {
304	req, out := c.CreateDedicatedIpPoolRequest(input)
305	req.SetContext(ctx)
306	req.ApplyOptions(opts...)
307	return out, req.Send()
308}
309
310const opCreateDeliverabilityTestReport = "CreateDeliverabilityTestReport"
311
312// CreateDeliverabilityTestReportRequest generates a "aws/request.Request" representing the
313// client's request for the CreateDeliverabilityTestReport operation. The "output" return
314// value will be populated with the request's response once the request completes
315// successfully.
316//
317// Use "Send" method on the returned Request to send the API call to the service.
318// the "output" return value is not valid until after Send returns without error.
319//
320// See CreateDeliverabilityTestReport for more information on using the CreateDeliverabilityTestReport
321// API call, and error handling.
322//
323// This method is useful when you want to inject custom logic or configuration
324// into the SDK's request lifecycle. Such as custom headers, or retry logic.
325//
326//
327//    // Example sending a request using the CreateDeliverabilityTestReportRequest method.
328//    req, resp := client.CreateDeliverabilityTestReportRequest(params)
329//
330//    err := req.Send()
331//    if err == nil { // resp is now filled
332//        fmt.Println(resp)
333//    }
334//
335// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/CreateDeliverabilityTestReport
336func (c *SESV2) CreateDeliverabilityTestReportRequest(input *CreateDeliverabilityTestReportInput) (req *request.Request, output *CreateDeliverabilityTestReportOutput) {
337	op := &request.Operation{
338		Name:       opCreateDeliverabilityTestReport,
339		HTTPMethod: "POST",
340		HTTPPath:   "/v2/email/deliverability-dashboard/test",
341	}
342
343	if input == nil {
344		input = &CreateDeliverabilityTestReportInput{}
345	}
346
347	output = &CreateDeliverabilityTestReportOutput{}
348	req = c.newRequest(op, input, output)
349	return
350}
351
352// CreateDeliverabilityTestReport API operation for Amazon Simple Email Service.
353//
354// Create a new predictive inbox placement test. Predictive inbox placement
355// tests can help you predict how your messages will be handled by various email
356// providers around the world. When you perform a predictive inbox placement
357// test, you provide a sample message that contains the content that you plan
358// to send to your customers. Amazon SES then sends that message to special
359// email addresses spread across several major email providers. After about
360// 24 hours, the test is complete, and you can use the GetDeliverabilityTestReport
361// operation to view the results of the test.
362//
363// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
364// with awserr.Error's Code and Message methods to get detailed information about
365// the error.
366//
367// See the AWS API reference guide for Amazon Simple Email Service's
368// API operation CreateDeliverabilityTestReport for usage and error information.
369//
370// Returned Error Types:
371//   * AccountSuspendedException
372//   The message can't be sent because the account's ability to send email has
373//   been permanently restricted.
374//
375//   * SendingPausedException
376//   The message can't be sent because the account's ability to send email is
377//   currently paused.
378//
379//   * MessageRejected
380//   The message can't be sent because it contains invalid content.
381//
382//   * MailFromDomainNotVerifiedException
383//   The message can't be sent because the sending domain isn't verified.
384//
385//   * NotFoundException
386//   The resource you attempted to access doesn't exist.
387//
388//   * TooManyRequestsException
389//   Too many requests have been made to the operation.
390//
391//   * LimitExceededException
392//   There are too many instances of the specified resource type.
393//
394//   * BadRequestException
395//   The input you provided is invalid.
396//
397//   * ConcurrentModificationException
398//   The resource is being modified by another operation or thread.
399//
400// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/CreateDeliverabilityTestReport
401func (c *SESV2) CreateDeliverabilityTestReport(input *CreateDeliverabilityTestReportInput) (*CreateDeliverabilityTestReportOutput, error) {
402	req, out := c.CreateDeliverabilityTestReportRequest(input)
403	return out, req.Send()
404}
405
406// CreateDeliverabilityTestReportWithContext is the same as CreateDeliverabilityTestReport with the addition of
407// the ability to pass a context and additional request options.
408//
409// See CreateDeliverabilityTestReport for details on how to use this API operation.
410//
411// The context must be non-nil and will be used for request cancellation. If
412// the context is nil a panic will occur. In the future the SDK may create
413// sub-contexts for http.Requests. See https://golang.org/pkg/context/
414// for more information on using Contexts.
415func (c *SESV2) CreateDeliverabilityTestReportWithContext(ctx aws.Context, input *CreateDeliverabilityTestReportInput, opts ...request.Option) (*CreateDeliverabilityTestReportOutput, error) {
416	req, out := c.CreateDeliverabilityTestReportRequest(input)
417	req.SetContext(ctx)
418	req.ApplyOptions(opts...)
419	return out, req.Send()
420}
421
422const opCreateEmailIdentity = "CreateEmailIdentity"
423
424// CreateEmailIdentityRequest generates a "aws/request.Request" representing the
425// client's request for the CreateEmailIdentity operation. The "output" return
426// value will be populated with the request's response once the request completes
427// successfully.
428//
429// Use "Send" method on the returned Request to send the API call to the service.
430// the "output" return value is not valid until after Send returns without error.
431//
432// See CreateEmailIdentity for more information on using the CreateEmailIdentity
433// API call, and error handling.
434//
435// This method is useful when you want to inject custom logic or configuration
436// into the SDK's request lifecycle. Such as custom headers, or retry logic.
437//
438//
439//    // Example sending a request using the CreateEmailIdentityRequest method.
440//    req, resp := client.CreateEmailIdentityRequest(params)
441//
442//    err := req.Send()
443//    if err == nil { // resp is now filled
444//        fmt.Println(resp)
445//    }
446//
447// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/CreateEmailIdentity
448func (c *SESV2) CreateEmailIdentityRequest(input *CreateEmailIdentityInput) (req *request.Request, output *CreateEmailIdentityOutput) {
449	op := &request.Operation{
450		Name:       opCreateEmailIdentity,
451		HTTPMethod: "POST",
452		HTTPPath:   "/v2/email/identities",
453	}
454
455	if input == nil {
456		input = &CreateEmailIdentityInput{}
457	}
458
459	output = &CreateEmailIdentityOutput{}
460	req = c.newRequest(op, input, output)
461	return
462}
463
464// CreateEmailIdentity API operation for Amazon Simple Email Service.
465//
466// Starts the process of verifying an email identity. An identity is an email
467// address or domain that you use when you send email. Before you can use an
468// identity to send email, you first have to verify it. By verifying an identity,
469// you demonstrate that you're the owner of the identity, and that you've given
470// Amazon SES API v2 permission to send email from the identity.
471//
472// When you verify an email address, Amazon SES sends an email to the address.
473// Your email address is verified as soon as you follow the link in the verification
474// email.
475//
476// When you verify a domain without specifying the DkimSigningAttributes object,
477// this operation provides a set of DKIM tokens. You can convert these tokens
478// into CNAME records, which you then add to the DNS configuration for your
479// domain. Your domain is verified when Amazon SES detects these records in
480// the DNS configuration for your domain. This verification method is known
481// as Easy DKIM (https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html).
482//
483// Alternatively, you can perform the verification process by providing your
484// own public-private key pair. This verification method is known as Bring Your
485// Own DKIM (BYODKIM). To use BYODKIM, your call to the CreateEmailIdentity
486// operation has to include the DkimSigningAttributes object. When you specify
487// this object, you provide a selector (a component of the DNS record name that
488// identifies the public key that you want to use for DKIM authentication) and
489// a private key.
490//
491// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
492// with awserr.Error's Code and Message methods to get detailed information about
493// the error.
494//
495// See the AWS API reference guide for Amazon Simple Email Service's
496// API operation CreateEmailIdentity for usage and error information.
497//
498// Returned Error Types:
499//   * AlreadyExistsException
500//   The resource specified in your request already exists.
501//
502//   * LimitExceededException
503//   There are too many instances of the specified resource type.
504//
505//   * TooManyRequestsException
506//   Too many requests have been made to the operation.
507//
508//   * BadRequestException
509//   The input you provided is invalid.
510//
511//   * ConcurrentModificationException
512//   The resource is being modified by another operation or thread.
513//
514// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/CreateEmailIdentity
515func (c *SESV2) CreateEmailIdentity(input *CreateEmailIdentityInput) (*CreateEmailIdentityOutput, error) {
516	req, out := c.CreateEmailIdentityRequest(input)
517	return out, req.Send()
518}
519
520// CreateEmailIdentityWithContext is the same as CreateEmailIdentity with the addition of
521// the ability to pass a context and additional request options.
522//
523// See CreateEmailIdentity for details on how to use this API operation.
524//
525// The context must be non-nil and will be used for request cancellation. If
526// the context is nil a panic will occur. In the future the SDK may create
527// sub-contexts for http.Requests. See https://golang.org/pkg/context/
528// for more information on using Contexts.
529func (c *SESV2) CreateEmailIdentityWithContext(ctx aws.Context, input *CreateEmailIdentityInput, opts ...request.Option) (*CreateEmailIdentityOutput, error) {
530	req, out := c.CreateEmailIdentityRequest(input)
531	req.SetContext(ctx)
532	req.ApplyOptions(opts...)
533	return out, req.Send()
534}
535
536const opDeleteConfigurationSet = "DeleteConfigurationSet"
537
538// DeleteConfigurationSetRequest generates a "aws/request.Request" representing the
539// client's request for the DeleteConfigurationSet operation. The "output" return
540// value will be populated with the request's response once the request completes
541// successfully.
542//
543// Use "Send" method on the returned Request to send the API call to the service.
544// the "output" return value is not valid until after Send returns without error.
545//
546// See DeleteConfigurationSet for more information on using the DeleteConfigurationSet
547// API call, and error handling.
548//
549// This method is useful when you want to inject custom logic or configuration
550// into the SDK's request lifecycle. Such as custom headers, or retry logic.
551//
552//
553//    // Example sending a request using the DeleteConfigurationSetRequest method.
554//    req, resp := client.DeleteConfigurationSetRequest(params)
555//
556//    err := req.Send()
557//    if err == nil { // resp is now filled
558//        fmt.Println(resp)
559//    }
560//
561// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/DeleteConfigurationSet
562func (c *SESV2) DeleteConfigurationSetRequest(input *DeleteConfigurationSetInput) (req *request.Request, output *DeleteConfigurationSetOutput) {
563	op := &request.Operation{
564		Name:       opDeleteConfigurationSet,
565		HTTPMethod: "DELETE",
566		HTTPPath:   "/v2/email/configuration-sets/{ConfigurationSetName}",
567	}
568
569	if input == nil {
570		input = &DeleteConfigurationSetInput{}
571	}
572
573	output = &DeleteConfigurationSetOutput{}
574	req = c.newRequest(op, input, output)
575	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
576	return
577}
578
579// DeleteConfigurationSet API operation for Amazon Simple Email Service.
580//
581// Delete an existing configuration set.
582//
583// Configuration sets are groups of rules that you can apply to the emails you
584// send. You apply a configuration set to an email by including a reference
585// to the configuration set in the headers of the email. When you apply a configuration
586// set to an email, all of the rules in that configuration set are applied to
587// the email.
588//
589// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
590// with awserr.Error's Code and Message methods to get detailed information about
591// the error.
592//
593// See the AWS API reference guide for Amazon Simple Email Service's
594// API operation DeleteConfigurationSet for usage and error information.
595//
596// Returned Error Types:
597//   * NotFoundException
598//   The resource you attempted to access doesn't exist.
599//
600//   * TooManyRequestsException
601//   Too many requests have been made to the operation.
602//
603//   * BadRequestException
604//   The input you provided is invalid.
605//
606//   * ConcurrentModificationException
607//   The resource is being modified by another operation or thread.
608//
609// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/DeleteConfigurationSet
610func (c *SESV2) DeleteConfigurationSet(input *DeleteConfigurationSetInput) (*DeleteConfigurationSetOutput, error) {
611	req, out := c.DeleteConfigurationSetRequest(input)
612	return out, req.Send()
613}
614
615// DeleteConfigurationSetWithContext is the same as DeleteConfigurationSet with the addition of
616// the ability to pass a context and additional request options.
617//
618// See DeleteConfigurationSet for details on how to use this API operation.
619//
620// The context must be non-nil and will be used for request cancellation. If
621// the context is nil a panic will occur. In the future the SDK may create
622// sub-contexts for http.Requests. See https://golang.org/pkg/context/
623// for more information on using Contexts.
624func (c *SESV2) DeleteConfigurationSetWithContext(ctx aws.Context, input *DeleteConfigurationSetInput, opts ...request.Option) (*DeleteConfigurationSetOutput, error) {
625	req, out := c.DeleteConfigurationSetRequest(input)
626	req.SetContext(ctx)
627	req.ApplyOptions(opts...)
628	return out, req.Send()
629}
630
631const opDeleteConfigurationSetEventDestination = "DeleteConfigurationSetEventDestination"
632
633// DeleteConfigurationSetEventDestinationRequest generates a "aws/request.Request" representing the
634// client's request for the DeleteConfigurationSetEventDestination operation. The "output" return
635// value will be populated with the request's response once the request completes
636// successfully.
637//
638// Use "Send" method on the returned Request to send the API call to the service.
639// the "output" return value is not valid until after Send returns without error.
640//
641// See DeleteConfigurationSetEventDestination for more information on using the DeleteConfigurationSetEventDestination
642// API call, and error handling.
643//
644// This method is useful when you want to inject custom logic or configuration
645// into the SDK's request lifecycle. Such as custom headers, or retry logic.
646//
647//
648//    // Example sending a request using the DeleteConfigurationSetEventDestinationRequest method.
649//    req, resp := client.DeleteConfigurationSetEventDestinationRequest(params)
650//
651//    err := req.Send()
652//    if err == nil { // resp is now filled
653//        fmt.Println(resp)
654//    }
655//
656// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/DeleteConfigurationSetEventDestination
657func (c *SESV2) DeleteConfigurationSetEventDestinationRequest(input *DeleteConfigurationSetEventDestinationInput) (req *request.Request, output *DeleteConfigurationSetEventDestinationOutput) {
658	op := &request.Operation{
659		Name:       opDeleteConfigurationSetEventDestination,
660		HTTPMethod: "DELETE",
661		HTTPPath:   "/v2/email/configuration-sets/{ConfigurationSetName}/event-destinations/{EventDestinationName}",
662	}
663
664	if input == nil {
665		input = &DeleteConfigurationSetEventDestinationInput{}
666	}
667
668	output = &DeleteConfigurationSetEventDestinationOutput{}
669	req = c.newRequest(op, input, output)
670	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
671	return
672}
673
674// DeleteConfigurationSetEventDestination API operation for Amazon Simple Email Service.
675//
676// Delete an event destination.
677//
678// Events include message sends, deliveries, opens, clicks, bounces, and complaints.
679// Event destinations are places that you can send information about these events
680// to. For example, you can send event data to Amazon SNS to receive notifications
681// when you receive bounces or complaints, or you can use Amazon Kinesis Data
682// Firehose to stream data to Amazon S3 for long-term storage.
683//
684// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
685// with awserr.Error's Code and Message methods to get detailed information about
686// the error.
687//
688// See the AWS API reference guide for Amazon Simple Email Service's
689// API operation DeleteConfigurationSetEventDestination for usage and error information.
690//
691// Returned Error Types:
692//   * NotFoundException
693//   The resource you attempted to access doesn't exist.
694//
695//   * TooManyRequestsException
696//   Too many requests have been made to the operation.
697//
698//   * BadRequestException
699//   The input you provided is invalid.
700//
701// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/DeleteConfigurationSetEventDestination
702func (c *SESV2) DeleteConfigurationSetEventDestination(input *DeleteConfigurationSetEventDestinationInput) (*DeleteConfigurationSetEventDestinationOutput, error) {
703	req, out := c.DeleteConfigurationSetEventDestinationRequest(input)
704	return out, req.Send()
705}
706
707// DeleteConfigurationSetEventDestinationWithContext is the same as DeleteConfigurationSetEventDestination with the addition of
708// the ability to pass a context and additional request options.
709//
710// See DeleteConfigurationSetEventDestination for details on how to use this API operation.
711//
712// The context must be non-nil and will be used for request cancellation. If
713// the context is nil a panic will occur. In the future the SDK may create
714// sub-contexts for http.Requests. See https://golang.org/pkg/context/
715// for more information on using Contexts.
716func (c *SESV2) DeleteConfigurationSetEventDestinationWithContext(ctx aws.Context, input *DeleteConfigurationSetEventDestinationInput, opts ...request.Option) (*DeleteConfigurationSetEventDestinationOutput, error) {
717	req, out := c.DeleteConfigurationSetEventDestinationRequest(input)
718	req.SetContext(ctx)
719	req.ApplyOptions(opts...)
720	return out, req.Send()
721}
722
723const opDeleteDedicatedIpPool = "DeleteDedicatedIpPool"
724
725// DeleteDedicatedIpPoolRequest generates a "aws/request.Request" representing the
726// client's request for the DeleteDedicatedIpPool operation. The "output" return
727// value will be populated with the request's response once the request completes
728// successfully.
729//
730// Use "Send" method on the returned Request to send the API call to the service.
731// the "output" return value is not valid until after Send returns without error.
732//
733// See DeleteDedicatedIpPool for more information on using the DeleteDedicatedIpPool
734// API call, and error handling.
735//
736// This method is useful when you want to inject custom logic or configuration
737// into the SDK's request lifecycle. Such as custom headers, or retry logic.
738//
739//
740//    // Example sending a request using the DeleteDedicatedIpPoolRequest method.
741//    req, resp := client.DeleteDedicatedIpPoolRequest(params)
742//
743//    err := req.Send()
744//    if err == nil { // resp is now filled
745//        fmt.Println(resp)
746//    }
747//
748// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/DeleteDedicatedIpPool
749func (c *SESV2) DeleteDedicatedIpPoolRequest(input *DeleteDedicatedIpPoolInput) (req *request.Request, output *DeleteDedicatedIpPoolOutput) {
750	op := &request.Operation{
751		Name:       opDeleteDedicatedIpPool,
752		HTTPMethod: "DELETE",
753		HTTPPath:   "/v2/email/dedicated-ip-pools/{PoolName}",
754	}
755
756	if input == nil {
757		input = &DeleteDedicatedIpPoolInput{}
758	}
759
760	output = &DeleteDedicatedIpPoolOutput{}
761	req = c.newRequest(op, input, output)
762	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
763	return
764}
765
766// DeleteDedicatedIpPool API operation for Amazon Simple Email Service.
767//
768// Delete a dedicated IP pool.
769//
770// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
771// with awserr.Error's Code and Message methods to get detailed information about
772// the error.
773//
774// See the AWS API reference guide for Amazon Simple Email Service's
775// API operation DeleteDedicatedIpPool for usage and error information.
776//
777// Returned Error Types:
778//   * NotFoundException
779//   The resource you attempted to access doesn't exist.
780//
781//   * TooManyRequestsException
782//   Too many requests have been made to the operation.
783//
784//   * BadRequestException
785//   The input you provided is invalid.
786//
787//   * ConcurrentModificationException
788//   The resource is being modified by another operation or thread.
789//
790// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/DeleteDedicatedIpPool
791func (c *SESV2) DeleteDedicatedIpPool(input *DeleteDedicatedIpPoolInput) (*DeleteDedicatedIpPoolOutput, error) {
792	req, out := c.DeleteDedicatedIpPoolRequest(input)
793	return out, req.Send()
794}
795
796// DeleteDedicatedIpPoolWithContext is the same as DeleteDedicatedIpPool with the addition of
797// the ability to pass a context and additional request options.
798//
799// See DeleteDedicatedIpPool for details on how to use this API operation.
800//
801// The context must be non-nil and will be used for request cancellation. If
802// the context is nil a panic will occur. In the future the SDK may create
803// sub-contexts for http.Requests. See https://golang.org/pkg/context/
804// for more information on using Contexts.
805func (c *SESV2) DeleteDedicatedIpPoolWithContext(ctx aws.Context, input *DeleteDedicatedIpPoolInput, opts ...request.Option) (*DeleteDedicatedIpPoolOutput, error) {
806	req, out := c.DeleteDedicatedIpPoolRequest(input)
807	req.SetContext(ctx)
808	req.ApplyOptions(opts...)
809	return out, req.Send()
810}
811
812const opDeleteEmailIdentity = "DeleteEmailIdentity"
813
814// DeleteEmailIdentityRequest generates a "aws/request.Request" representing the
815// client's request for the DeleteEmailIdentity operation. The "output" return
816// value will be populated with the request's response once the request completes
817// successfully.
818//
819// Use "Send" method on the returned Request to send the API call to the service.
820// the "output" return value is not valid until after Send returns without error.
821//
822// See DeleteEmailIdentity for more information on using the DeleteEmailIdentity
823// API call, and error handling.
824//
825// This method is useful when you want to inject custom logic or configuration
826// into the SDK's request lifecycle. Such as custom headers, or retry logic.
827//
828//
829//    // Example sending a request using the DeleteEmailIdentityRequest method.
830//    req, resp := client.DeleteEmailIdentityRequest(params)
831//
832//    err := req.Send()
833//    if err == nil { // resp is now filled
834//        fmt.Println(resp)
835//    }
836//
837// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/DeleteEmailIdentity
838func (c *SESV2) DeleteEmailIdentityRequest(input *DeleteEmailIdentityInput) (req *request.Request, output *DeleteEmailIdentityOutput) {
839	op := &request.Operation{
840		Name:       opDeleteEmailIdentity,
841		HTTPMethod: "DELETE",
842		HTTPPath:   "/v2/email/identities/{EmailIdentity}",
843	}
844
845	if input == nil {
846		input = &DeleteEmailIdentityInput{}
847	}
848
849	output = &DeleteEmailIdentityOutput{}
850	req = c.newRequest(op, input, output)
851	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
852	return
853}
854
855// DeleteEmailIdentity API operation for Amazon Simple Email Service.
856//
857// Deletes an email identity. An identity can be either an email address or
858// a domain name.
859//
860// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
861// with awserr.Error's Code and Message methods to get detailed information about
862// the error.
863//
864// See the AWS API reference guide for Amazon Simple Email Service's
865// API operation DeleteEmailIdentity for usage and error information.
866//
867// Returned Error Types:
868//   * NotFoundException
869//   The resource you attempted to access doesn't exist.
870//
871//   * TooManyRequestsException
872//   Too many requests have been made to the operation.
873//
874//   * BadRequestException
875//   The input you provided is invalid.
876//
877//   * ConcurrentModificationException
878//   The resource is being modified by another operation or thread.
879//
880// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/DeleteEmailIdentity
881func (c *SESV2) DeleteEmailIdentity(input *DeleteEmailIdentityInput) (*DeleteEmailIdentityOutput, error) {
882	req, out := c.DeleteEmailIdentityRequest(input)
883	return out, req.Send()
884}
885
886// DeleteEmailIdentityWithContext is the same as DeleteEmailIdentity with the addition of
887// the ability to pass a context and additional request options.
888//
889// See DeleteEmailIdentity for details on how to use this API operation.
890//
891// The context must be non-nil and will be used for request cancellation. If
892// the context is nil a panic will occur. In the future the SDK may create
893// sub-contexts for http.Requests. See https://golang.org/pkg/context/
894// for more information on using Contexts.
895func (c *SESV2) DeleteEmailIdentityWithContext(ctx aws.Context, input *DeleteEmailIdentityInput, opts ...request.Option) (*DeleteEmailIdentityOutput, error) {
896	req, out := c.DeleteEmailIdentityRequest(input)
897	req.SetContext(ctx)
898	req.ApplyOptions(opts...)
899	return out, req.Send()
900}
901
902const opDeleteSuppressedDestination = "DeleteSuppressedDestination"
903
904// DeleteSuppressedDestinationRequest generates a "aws/request.Request" representing the
905// client's request for the DeleteSuppressedDestination operation. The "output" return
906// value will be populated with the request's response once the request completes
907// successfully.
908//
909// Use "Send" method on the returned Request to send the API call to the service.
910// the "output" return value is not valid until after Send returns without error.
911//
912// See DeleteSuppressedDestination for more information on using the DeleteSuppressedDestination
913// API call, and error handling.
914//
915// This method is useful when you want to inject custom logic or configuration
916// into the SDK's request lifecycle. Such as custom headers, or retry logic.
917//
918//
919//    // Example sending a request using the DeleteSuppressedDestinationRequest method.
920//    req, resp := client.DeleteSuppressedDestinationRequest(params)
921//
922//    err := req.Send()
923//    if err == nil { // resp is now filled
924//        fmt.Println(resp)
925//    }
926//
927// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/DeleteSuppressedDestination
928func (c *SESV2) DeleteSuppressedDestinationRequest(input *DeleteSuppressedDestinationInput) (req *request.Request, output *DeleteSuppressedDestinationOutput) {
929	op := &request.Operation{
930		Name:       opDeleteSuppressedDestination,
931		HTTPMethod: "DELETE",
932		HTTPPath:   "/v2/email/suppression/addresses/{EmailAddress}",
933	}
934
935	if input == nil {
936		input = &DeleteSuppressedDestinationInput{}
937	}
938
939	output = &DeleteSuppressedDestinationOutput{}
940	req = c.newRequest(op, input, output)
941	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
942	return
943}
944
945// DeleteSuppressedDestination API operation for Amazon Simple Email Service.
946//
947// Removes an email address from the suppression list for your account.
948//
949// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
950// with awserr.Error's Code and Message methods to get detailed information about
951// the error.
952//
953// See the AWS API reference guide for Amazon Simple Email Service's
954// API operation DeleteSuppressedDestination for usage and error information.
955//
956// Returned Error Types:
957//   * NotFoundException
958//   The resource you attempted to access doesn't exist.
959//
960//   * BadRequestException
961//   The input you provided is invalid.
962//
963//   * TooManyRequestsException
964//   Too many requests have been made to the operation.
965//
966// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/DeleteSuppressedDestination
967func (c *SESV2) DeleteSuppressedDestination(input *DeleteSuppressedDestinationInput) (*DeleteSuppressedDestinationOutput, error) {
968	req, out := c.DeleteSuppressedDestinationRequest(input)
969	return out, req.Send()
970}
971
972// DeleteSuppressedDestinationWithContext is the same as DeleteSuppressedDestination with the addition of
973// the ability to pass a context and additional request options.
974//
975// See DeleteSuppressedDestination for details on how to use this API operation.
976//
977// The context must be non-nil and will be used for request cancellation. If
978// the context is nil a panic will occur. In the future the SDK may create
979// sub-contexts for http.Requests. See https://golang.org/pkg/context/
980// for more information on using Contexts.
981func (c *SESV2) DeleteSuppressedDestinationWithContext(ctx aws.Context, input *DeleteSuppressedDestinationInput, opts ...request.Option) (*DeleteSuppressedDestinationOutput, error) {
982	req, out := c.DeleteSuppressedDestinationRequest(input)
983	req.SetContext(ctx)
984	req.ApplyOptions(opts...)
985	return out, req.Send()
986}
987
988const opGetAccount = "GetAccount"
989
990// GetAccountRequest generates a "aws/request.Request" representing the
991// client's request for the GetAccount operation. The "output" return
992// value will be populated with the request's response once the request completes
993// successfully.
994//
995// Use "Send" method on the returned Request to send the API call to the service.
996// the "output" return value is not valid until after Send returns without error.
997//
998// See GetAccount for more information on using the GetAccount
999// API call, and error handling.
1000//
1001// This method is useful when you want to inject custom logic or configuration
1002// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1003//
1004//
1005//    // Example sending a request using the GetAccountRequest method.
1006//    req, resp := client.GetAccountRequest(params)
1007//
1008//    err := req.Send()
1009//    if err == nil { // resp is now filled
1010//        fmt.Println(resp)
1011//    }
1012//
1013// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/GetAccount
1014func (c *SESV2) GetAccountRequest(input *GetAccountInput) (req *request.Request, output *GetAccountOutput) {
1015	op := &request.Operation{
1016		Name:       opGetAccount,
1017		HTTPMethod: "GET",
1018		HTTPPath:   "/v2/email/account",
1019	}
1020
1021	if input == nil {
1022		input = &GetAccountInput{}
1023	}
1024
1025	output = &GetAccountOutput{}
1026	req = c.newRequest(op, input, output)
1027	return
1028}
1029
1030// GetAccount API operation for Amazon Simple Email Service.
1031//
1032// Obtain information about the email-sending status and capabilities of your
1033// Amazon SES account in the current AWS Region.
1034//
1035// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1036// with awserr.Error's Code and Message methods to get detailed information about
1037// the error.
1038//
1039// See the AWS API reference guide for Amazon Simple Email Service's
1040// API operation GetAccount for usage and error information.
1041//
1042// Returned Error Types:
1043//   * TooManyRequestsException
1044//   Too many requests have been made to the operation.
1045//
1046//   * BadRequestException
1047//   The input you provided is invalid.
1048//
1049// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/GetAccount
1050func (c *SESV2) GetAccount(input *GetAccountInput) (*GetAccountOutput, error) {
1051	req, out := c.GetAccountRequest(input)
1052	return out, req.Send()
1053}
1054
1055// GetAccountWithContext is the same as GetAccount with the addition of
1056// the ability to pass a context and additional request options.
1057//
1058// See GetAccount for details on how to use this API operation.
1059//
1060// The context must be non-nil and will be used for request cancellation. If
1061// the context is nil a panic will occur. In the future the SDK may create
1062// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1063// for more information on using Contexts.
1064func (c *SESV2) GetAccountWithContext(ctx aws.Context, input *GetAccountInput, opts ...request.Option) (*GetAccountOutput, error) {
1065	req, out := c.GetAccountRequest(input)
1066	req.SetContext(ctx)
1067	req.ApplyOptions(opts...)
1068	return out, req.Send()
1069}
1070
1071const opGetBlacklistReports = "GetBlacklistReports"
1072
1073// GetBlacklistReportsRequest generates a "aws/request.Request" representing the
1074// client's request for the GetBlacklistReports operation. The "output" return
1075// value will be populated with the request's response once the request completes
1076// successfully.
1077//
1078// Use "Send" method on the returned Request to send the API call to the service.
1079// the "output" return value is not valid until after Send returns without error.
1080//
1081// See GetBlacklistReports for more information on using the GetBlacklistReports
1082// API call, and error handling.
1083//
1084// This method is useful when you want to inject custom logic or configuration
1085// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1086//
1087//
1088//    // Example sending a request using the GetBlacklistReportsRequest method.
1089//    req, resp := client.GetBlacklistReportsRequest(params)
1090//
1091//    err := req.Send()
1092//    if err == nil { // resp is now filled
1093//        fmt.Println(resp)
1094//    }
1095//
1096// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/GetBlacklistReports
1097func (c *SESV2) GetBlacklistReportsRequest(input *GetBlacklistReportsInput) (req *request.Request, output *GetBlacklistReportsOutput) {
1098	op := &request.Operation{
1099		Name:       opGetBlacklistReports,
1100		HTTPMethod: "GET",
1101		HTTPPath:   "/v2/email/deliverability-dashboard/blacklist-report",
1102	}
1103
1104	if input == nil {
1105		input = &GetBlacklistReportsInput{}
1106	}
1107
1108	output = &GetBlacklistReportsOutput{}
1109	req = c.newRequest(op, input, output)
1110	return
1111}
1112
1113// GetBlacklistReports API operation for Amazon Simple Email Service.
1114//
1115// Retrieve a list of the blacklists that your dedicated IP addresses appear
1116// on.
1117//
1118// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1119// with awserr.Error's Code and Message methods to get detailed information about
1120// the error.
1121//
1122// See the AWS API reference guide for Amazon Simple Email Service's
1123// API operation GetBlacklistReports for usage and error information.
1124//
1125// Returned Error Types:
1126//   * TooManyRequestsException
1127//   Too many requests have been made to the operation.
1128//
1129//   * NotFoundException
1130//   The resource you attempted to access doesn't exist.
1131//
1132//   * BadRequestException
1133//   The input you provided is invalid.
1134//
1135// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/GetBlacklistReports
1136func (c *SESV2) GetBlacklistReports(input *GetBlacklistReportsInput) (*GetBlacklistReportsOutput, error) {
1137	req, out := c.GetBlacklistReportsRequest(input)
1138	return out, req.Send()
1139}
1140
1141// GetBlacklistReportsWithContext is the same as GetBlacklistReports with the addition of
1142// the ability to pass a context and additional request options.
1143//
1144// See GetBlacklistReports for details on how to use this API operation.
1145//
1146// The context must be non-nil and will be used for request cancellation. If
1147// the context is nil a panic will occur. In the future the SDK may create
1148// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1149// for more information on using Contexts.
1150func (c *SESV2) GetBlacklistReportsWithContext(ctx aws.Context, input *GetBlacklistReportsInput, opts ...request.Option) (*GetBlacklistReportsOutput, error) {
1151	req, out := c.GetBlacklistReportsRequest(input)
1152	req.SetContext(ctx)
1153	req.ApplyOptions(opts...)
1154	return out, req.Send()
1155}
1156
1157const opGetConfigurationSet = "GetConfigurationSet"
1158
1159// GetConfigurationSetRequest generates a "aws/request.Request" representing the
1160// client's request for the GetConfigurationSet operation. The "output" return
1161// value will be populated with the request's response once the request completes
1162// successfully.
1163//
1164// Use "Send" method on the returned Request to send the API call to the service.
1165// the "output" return value is not valid until after Send returns without error.
1166//
1167// See GetConfigurationSet for more information on using the GetConfigurationSet
1168// API call, and error handling.
1169//
1170// This method is useful when you want to inject custom logic or configuration
1171// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1172//
1173//
1174//    // Example sending a request using the GetConfigurationSetRequest method.
1175//    req, resp := client.GetConfigurationSetRequest(params)
1176//
1177//    err := req.Send()
1178//    if err == nil { // resp is now filled
1179//        fmt.Println(resp)
1180//    }
1181//
1182// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/GetConfigurationSet
1183func (c *SESV2) GetConfigurationSetRequest(input *GetConfigurationSetInput) (req *request.Request, output *GetConfigurationSetOutput) {
1184	op := &request.Operation{
1185		Name:       opGetConfigurationSet,
1186		HTTPMethod: "GET",
1187		HTTPPath:   "/v2/email/configuration-sets/{ConfigurationSetName}",
1188	}
1189
1190	if input == nil {
1191		input = &GetConfigurationSetInput{}
1192	}
1193
1194	output = &GetConfigurationSetOutput{}
1195	req = c.newRequest(op, input, output)
1196	return
1197}
1198
1199// GetConfigurationSet API operation for Amazon Simple Email Service.
1200//
1201// Get information about an existing configuration set, including the dedicated
1202// IP pool that it's associated with, whether or not it's enabled for sending
1203// email, and more.
1204//
1205// Configuration sets are groups of rules that you can apply to the emails you
1206// send. You apply a configuration set to an email by including a reference
1207// to the configuration set in the headers of the email. When you apply a configuration
1208// set to an email, all of the rules in that configuration set are applied to
1209// the email.
1210//
1211// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1212// with awserr.Error's Code and Message methods to get detailed information about
1213// the error.
1214//
1215// See the AWS API reference guide for Amazon Simple Email Service's
1216// API operation GetConfigurationSet for usage and error information.
1217//
1218// Returned Error Types:
1219//   * NotFoundException
1220//   The resource you attempted to access doesn't exist.
1221//
1222//   * TooManyRequestsException
1223//   Too many requests have been made to the operation.
1224//
1225//   * BadRequestException
1226//   The input you provided is invalid.
1227//
1228// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/GetConfigurationSet
1229func (c *SESV2) GetConfigurationSet(input *GetConfigurationSetInput) (*GetConfigurationSetOutput, error) {
1230	req, out := c.GetConfigurationSetRequest(input)
1231	return out, req.Send()
1232}
1233
1234// GetConfigurationSetWithContext is the same as GetConfigurationSet with the addition of
1235// the ability to pass a context and additional request options.
1236//
1237// See GetConfigurationSet for details on how to use this API operation.
1238//
1239// The context must be non-nil and will be used for request cancellation. If
1240// the context is nil a panic will occur. In the future the SDK may create
1241// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1242// for more information on using Contexts.
1243func (c *SESV2) GetConfigurationSetWithContext(ctx aws.Context, input *GetConfigurationSetInput, opts ...request.Option) (*GetConfigurationSetOutput, error) {
1244	req, out := c.GetConfigurationSetRequest(input)
1245	req.SetContext(ctx)
1246	req.ApplyOptions(opts...)
1247	return out, req.Send()
1248}
1249
1250const opGetConfigurationSetEventDestinations = "GetConfigurationSetEventDestinations"
1251
1252// GetConfigurationSetEventDestinationsRequest generates a "aws/request.Request" representing the
1253// client's request for the GetConfigurationSetEventDestinations operation. The "output" return
1254// value will be populated with the request's response once the request completes
1255// successfully.
1256//
1257// Use "Send" method on the returned Request to send the API call to the service.
1258// the "output" return value is not valid until after Send returns without error.
1259//
1260// See GetConfigurationSetEventDestinations for more information on using the GetConfigurationSetEventDestinations
1261// API call, and error handling.
1262//
1263// This method is useful when you want to inject custom logic or configuration
1264// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1265//
1266//
1267//    // Example sending a request using the GetConfigurationSetEventDestinationsRequest method.
1268//    req, resp := client.GetConfigurationSetEventDestinationsRequest(params)
1269//
1270//    err := req.Send()
1271//    if err == nil { // resp is now filled
1272//        fmt.Println(resp)
1273//    }
1274//
1275// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/GetConfigurationSetEventDestinations
1276func (c *SESV2) GetConfigurationSetEventDestinationsRequest(input *GetConfigurationSetEventDestinationsInput) (req *request.Request, output *GetConfigurationSetEventDestinationsOutput) {
1277	op := &request.Operation{
1278		Name:       opGetConfigurationSetEventDestinations,
1279		HTTPMethod: "GET",
1280		HTTPPath:   "/v2/email/configuration-sets/{ConfigurationSetName}/event-destinations",
1281	}
1282
1283	if input == nil {
1284		input = &GetConfigurationSetEventDestinationsInput{}
1285	}
1286
1287	output = &GetConfigurationSetEventDestinationsOutput{}
1288	req = c.newRequest(op, input, output)
1289	return
1290}
1291
1292// GetConfigurationSetEventDestinations API operation for Amazon Simple Email Service.
1293//
1294// Retrieve a list of event destinations that are associated with a configuration
1295// set.
1296//
1297// Events include message sends, deliveries, opens, clicks, bounces, and complaints.
1298// Event destinations are places that you can send information about these events
1299// to. For example, you can send event data to Amazon SNS to receive notifications
1300// when you receive bounces or complaints, or you can use Amazon Kinesis Data
1301// Firehose to stream data to Amazon S3 for long-term storage.
1302//
1303// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1304// with awserr.Error's Code and Message methods to get detailed information about
1305// the error.
1306//
1307// See the AWS API reference guide for Amazon Simple Email Service's
1308// API operation GetConfigurationSetEventDestinations for usage and error information.
1309//
1310// Returned Error Types:
1311//   * NotFoundException
1312//   The resource you attempted to access doesn't exist.
1313//
1314//   * TooManyRequestsException
1315//   Too many requests have been made to the operation.
1316//
1317//   * BadRequestException
1318//   The input you provided is invalid.
1319//
1320// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/GetConfigurationSetEventDestinations
1321func (c *SESV2) GetConfigurationSetEventDestinations(input *GetConfigurationSetEventDestinationsInput) (*GetConfigurationSetEventDestinationsOutput, error) {
1322	req, out := c.GetConfigurationSetEventDestinationsRequest(input)
1323	return out, req.Send()
1324}
1325
1326// GetConfigurationSetEventDestinationsWithContext is the same as GetConfigurationSetEventDestinations with the addition of
1327// the ability to pass a context and additional request options.
1328//
1329// See GetConfigurationSetEventDestinations for details on how to use this API operation.
1330//
1331// The context must be non-nil and will be used for request cancellation. If
1332// the context is nil a panic will occur. In the future the SDK may create
1333// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1334// for more information on using Contexts.
1335func (c *SESV2) GetConfigurationSetEventDestinationsWithContext(ctx aws.Context, input *GetConfigurationSetEventDestinationsInput, opts ...request.Option) (*GetConfigurationSetEventDestinationsOutput, error) {
1336	req, out := c.GetConfigurationSetEventDestinationsRequest(input)
1337	req.SetContext(ctx)
1338	req.ApplyOptions(opts...)
1339	return out, req.Send()
1340}
1341
1342const opGetDedicatedIp = "GetDedicatedIp"
1343
1344// GetDedicatedIpRequest generates a "aws/request.Request" representing the
1345// client's request for the GetDedicatedIp operation. The "output" return
1346// value will be populated with the request's response once the request completes
1347// successfully.
1348//
1349// Use "Send" method on the returned Request to send the API call to the service.
1350// the "output" return value is not valid until after Send returns without error.
1351//
1352// See GetDedicatedIp for more information on using the GetDedicatedIp
1353// API call, and error handling.
1354//
1355// This method is useful when you want to inject custom logic or configuration
1356// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1357//
1358//
1359//    // Example sending a request using the GetDedicatedIpRequest method.
1360//    req, resp := client.GetDedicatedIpRequest(params)
1361//
1362//    err := req.Send()
1363//    if err == nil { // resp is now filled
1364//        fmt.Println(resp)
1365//    }
1366//
1367// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/GetDedicatedIp
1368func (c *SESV2) GetDedicatedIpRequest(input *GetDedicatedIpInput) (req *request.Request, output *GetDedicatedIpOutput) {
1369	op := &request.Operation{
1370		Name:       opGetDedicatedIp,
1371		HTTPMethod: "GET",
1372		HTTPPath:   "/v2/email/dedicated-ips/{IP}",
1373	}
1374
1375	if input == nil {
1376		input = &GetDedicatedIpInput{}
1377	}
1378
1379	output = &GetDedicatedIpOutput{}
1380	req = c.newRequest(op, input, output)
1381	return
1382}
1383
1384// GetDedicatedIp API operation for Amazon Simple Email Service.
1385//
1386// Get information about a dedicated IP address, including the name of the dedicated
1387// IP pool that it's associated with, as well information about the automatic
1388// warm-up process for the address.
1389//
1390// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1391// with awserr.Error's Code and Message methods to get detailed information about
1392// the error.
1393//
1394// See the AWS API reference guide for Amazon Simple Email Service's
1395// API operation GetDedicatedIp for usage and error information.
1396//
1397// Returned Error Types:
1398//   * TooManyRequestsException
1399//   Too many requests have been made to the operation.
1400//
1401//   * NotFoundException
1402//   The resource you attempted to access doesn't exist.
1403//
1404//   * BadRequestException
1405//   The input you provided is invalid.
1406//
1407// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/GetDedicatedIp
1408func (c *SESV2) GetDedicatedIp(input *GetDedicatedIpInput) (*GetDedicatedIpOutput, error) {
1409	req, out := c.GetDedicatedIpRequest(input)
1410	return out, req.Send()
1411}
1412
1413// GetDedicatedIpWithContext is the same as GetDedicatedIp with the addition of
1414// the ability to pass a context and additional request options.
1415//
1416// See GetDedicatedIp for details on how to use this API operation.
1417//
1418// The context must be non-nil and will be used for request cancellation. If
1419// the context is nil a panic will occur. In the future the SDK may create
1420// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1421// for more information on using Contexts.
1422func (c *SESV2) GetDedicatedIpWithContext(ctx aws.Context, input *GetDedicatedIpInput, opts ...request.Option) (*GetDedicatedIpOutput, error) {
1423	req, out := c.GetDedicatedIpRequest(input)
1424	req.SetContext(ctx)
1425	req.ApplyOptions(opts...)
1426	return out, req.Send()
1427}
1428
1429const opGetDedicatedIps = "GetDedicatedIps"
1430
1431// GetDedicatedIpsRequest generates a "aws/request.Request" representing the
1432// client's request for the GetDedicatedIps operation. The "output" return
1433// value will be populated with the request's response once the request completes
1434// successfully.
1435//
1436// Use "Send" method on the returned Request to send the API call to the service.
1437// the "output" return value is not valid until after Send returns without error.
1438//
1439// See GetDedicatedIps for more information on using the GetDedicatedIps
1440// API call, and error handling.
1441//
1442// This method is useful when you want to inject custom logic or configuration
1443// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1444//
1445//
1446//    // Example sending a request using the GetDedicatedIpsRequest method.
1447//    req, resp := client.GetDedicatedIpsRequest(params)
1448//
1449//    err := req.Send()
1450//    if err == nil { // resp is now filled
1451//        fmt.Println(resp)
1452//    }
1453//
1454// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/GetDedicatedIps
1455func (c *SESV2) GetDedicatedIpsRequest(input *GetDedicatedIpsInput) (req *request.Request, output *GetDedicatedIpsOutput) {
1456	op := &request.Operation{
1457		Name:       opGetDedicatedIps,
1458		HTTPMethod: "GET",
1459		HTTPPath:   "/v2/email/dedicated-ips",
1460		Paginator: &request.Paginator{
1461			InputTokens:     []string{"NextToken"},
1462			OutputTokens:    []string{"NextToken"},
1463			LimitToken:      "PageSize",
1464			TruncationToken: "",
1465		},
1466	}
1467
1468	if input == nil {
1469		input = &GetDedicatedIpsInput{}
1470	}
1471
1472	output = &GetDedicatedIpsOutput{}
1473	req = c.newRequest(op, input, output)
1474	return
1475}
1476
1477// GetDedicatedIps API operation for Amazon Simple Email Service.
1478//
1479// List the dedicated IP addresses that are associated with your AWS account.
1480//
1481// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1482// with awserr.Error's Code and Message methods to get detailed information about
1483// the error.
1484//
1485// See the AWS API reference guide for Amazon Simple Email Service's
1486// API operation GetDedicatedIps for usage and error information.
1487//
1488// Returned Error Types:
1489//   * TooManyRequestsException
1490//   Too many requests have been made to the operation.
1491//
1492//   * NotFoundException
1493//   The resource you attempted to access doesn't exist.
1494//
1495//   * BadRequestException
1496//   The input you provided is invalid.
1497//
1498// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/GetDedicatedIps
1499func (c *SESV2) GetDedicatedIps(input *GetDedicatedIpsInput) (*GetDedicatedIpsOutput, error) {
1500	req, out := c.GetDedicatedIpsRequest(input)
1501	return out, req.Send()
1502}
1503
1504// GetDedicatedIpsWithContext is the same as GetDedicatedIps with the addition of
1505// the ability to pass a context and additional request options.
1506//
1507// See GetDedicatedIps for details on how to use this API operation.
1508//
1509// The context must be non-nil and will be used for request cancellation. If
1510// the context is nil a panic will occur. In the future the SDK may create
1511// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1512// for more information on using Contexts.
1513func (c *SESV2) GetDedicatedIpsWithContext(ctx aws.Context, input *GetDedicatedIpsInput, opts ...request.Option) (*GetDedicatedIpsOutput, error) {
1514	req, out := c.GetDedicatedIpsRequest(input)
1515	req.SetContext(ctx)
1516	req.ApplyOptions(opts...)
1517	return out, req.Send()
1518}
1519
1520// GetDedicatedIpsPages iterates over the pages of a GetDedicatedIps operation,
1521// calling the "fn" function with the response data for each page. To stop
1522// iterating, return false from the fn function.
1523//
1524// See GetDedicatedIps method for more information on how to use this operation.
1525//
1526// Note: This operation can generate multiple requests to a service.
1527//
1528//    // Example iterating over at most 3 pages of a GetDedicatedIps operation.
1529//    pageNum := 0
1530//    err := client.GetDedicatedIpsPages(params,
1531//        func(page *sesv2.GetDedicatedIpsOutput, lastPage bool) bool {
1532//            pageNum++
1533//            fmt.Println(page)
1534//            return pageNum <= 3
1535//        })
1536//
1537func (c *SESV2) GetDedicatedIpsPages(input *GetDedicatedIpsInput, fn func(*GetDedicatedIpsOutput, bool) bool) error {
1538	return c.GetDedicatedIpsPagesWithContext(aws.BackgroundContext(), input, fn)
1539}
1540
1541// GetDedicatedIpsPagesWithContext same as GetDedicatedIpsPages except
1542// it takes a Context and allows setting request options on the pages.
1543//
1544// The context must be non-nil and will be used for request cancellation. If
1545// the context is nil a panic will occur. In the future the SDK may create
1546// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1547// for more information on using Contexts.
1548func (c *SESV2) GetDedicatedIpsPagesWithContext(ctx aws.Context, input *GetDedicatedIpsInput, fn func(*GetDedicatedIpsOutput, bool) bool, opts ...request.Option) error {
1549	p := request.Pagination{
1550		NewRequest: func() (*request.Request, error) {
1551			var inCpy *GetDedicatedIpsInput
1552			if input != nil {
1553				tmp := *input
1554				inCpy = &tmp
1555			}
1556			req, _ := c.GetDedicatedIpsRequest(inCpy)
1557			req.SetContext(ctx)
1558			req.ApplyOptions(opts...)
1559			return req, nil
1560		},
1561	}
1562
1563	for p.Next() {
1564		if !fn(p.Page().(*GetDedicatedIpsOutput), !p.HasNextPage()) {
1565			break
1566		}
1567	}
1568
1569	return p.Err()
1570}
1571
1572const opGetDeliverabilityDashboardOptions = "GetDeliverabilityDashboardOptions"
1573
1574// GetDeliverabilityDashboardOptionsRequest generates a "aws/request.Request" representing the
1575// client's request for the GetDeliverabilityDashboardOptions operation. The "output" return
1576// value will be populated with the request's response once the request completes
1577// successfully.
1578//
1579// Use "Send" method on the returned Request to send the API call to the service.
1580// the "output" return value is not valid until after Send returns without error.
1581//
1582// See GetDeliverabilityDashboardOptions for more information on using the GetDeliverabilityDashboardOptions
1583// API call, and error handling.
1584//
1585// This method is useful when you want to inject custom logic or configuration
1586// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1587//
1588//
1589//    // Example sending a request using the GetDeliverabilityDashboardOptionsRequest method.
1590//    req, resp := client.GetDeliverabilityDashboardOptionsRequest(params)
1591//
1592//    err := req.Send()
1593//    if err == nil { // resp is now filled
1594//        fmt.Println(resp)
1595//    }
1596//
1597// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/GetDeliverabilityDashboardOptions
1598func (c *SESV2) GetDeliverabilityDashboardOptionsRequest(input *GetDeliverabilityDashboardOptionsInput) (req *request.Request, output *GetDeliverabilityDashboardOptionsOutput) {
1599	op := &request.Operation{
1600		Name:       opGetDeliverabilityDashboardOptions,
1601		HTTPMethod: "GET",
1602		HTTPPath:   "/v2/email/deliverability-dashboard",
1603	}
1604
1605	if input == nil {
1606		input = &GetDeliverabilityDashboardOptionsInput{}
1607	}
1608
1609	output = &GetDeliverabilityDashboardOptionsOutput{}
1610	req = c.newRequest(op, input, output)
1611	return
1612}
1613
1614// GetDeliverabilityDashboardOptions API operation for Amazon Simple Email Service.
1615//
1616// Retrieve information about the status of the Deliverability dashboard for
1617// your account. When the Deliverability dashboard is enabled, you gain access
1618// to reputation, deliverability, and other metrics for the domains that you
1619// use to send email. You also gain the ability to perform predictive inbox
1620// placement tests.
1621//
1622// When you use the Deliverability dashboard, you pay a monthly subscription
1623// charge, in addition to any other fees that you accrue by using Amazon SES
1624// and other AWS services. For more information about the features and cost
1625// of a Deliverability dashboard subscription, see Amazon SES Pricing (http://aws.amazon.com/ses/pricing/).
1626//
1627// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1628// with awserr.Error's Code and Message methods to get detailed information about
1629// the error.
1630//
1631// See the AWS API reference guide for Amazon Simple Email Service's
1632// API operation GetDeliverabilityDashboardOptions for usage and error information.
1633//
1634// Returned Error Types:
1635//   * TooManyRequestsException
1636//   Too many requests have been made to the operation.
1637//
1638//   * LimitExceededException
1639//   There are too many instances of the specified resource type.
1640//
1641//   * BadRequestException
1642//   The input you provided is invalid.
1643//
1644// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/GetDeliverabilityDashboardOptions
1645func (c *SESV2) GetDeliverabilityDashboardOptions(input *GetDeliverabilityDashboardOptionsInput) (*GetDeliverabilityDashboardOptionsOutput, error) {
1646	req, out := c.GetDeliverabilityDashboardOptionsRequest(input)
1647	return out, req.Send()
1648}
1649
1650// GetDeliverabilityDashboardOptionsWithContext is the same as GetDeliverabilityDashboardOptions with the addition of
1651// the ability to pass a context and additional request options.
1652//
1653// See GetDeliverabilityDashboardOptions for details on how to use this API operation.
1654//
1655// The context must be non-nil and will be used for request cancellation. If
1656// the context is nil a panic will occur. In the future the SDK may create
1657// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1658// for more information on using Contexts.
1659func (c *SESV2) GetDeliverabilityDashboardOptionsWithContext(ctx aws.Context, input *GetDeliverabilityDashboardOptionsInput, opts ...request.Option) (*GetDeliverabilityDashboardOptionsOutput, error) {
1660	req, out := c.GetDeliverabilityDashboardOptionsRequest(input)
1661	req.SetContext(ctx)
1662	req.ApplyOptions(opts...)
1663	return out, req.Send()
1664}
1665
1666const opGetDeliverabilityTestReport = "GetDeliverabilityTestReport"
1667
1668// GetDeliverabilityTestReportRequest generates a "aws/request.Request" representing the
1669// client's request for the GetDeliverabilityTestReport operation. The "output" return
1670// value will be populated with the request's response once the request completes
1671// successfully.
1672//
1673// Use "Send" method on the returned Request to send the API call to the service.
1674// the "output" return value is not valid until after Send returns without error.
1675//
1676// See GetDeliverabilityTestReport for more information on using the GetDeliverabilityTestReport
1677// API call, and error handling.
1678//
1679// This method is useful when you want to inject custom logic or configuration
1680// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1681//
1682//
1683//    // Example sending a request using the GetDeliverabilityTestReportRequest method.
1684//    req, resp := client.GetDeliverabilityTestReportRequest(params)
1685//
1686//    err := req.Send()
1687//    if err == nil { // resp is now filled
1688//        fmt.Println(resp)
1689//    }
1690//
1691// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/GetDeliverabilityTestReport
1692func (c *SESV2) GetDeliverabilityTestReportRequest(input *GetDeliverabilityTestReportInput) (req *request.Request, output *GetDeliverabilityTestReportOutput) {
1693	op := &request.Operation{
1694		Name:       opGetDeliverabilityTestReport,
1695		HTTPMethod: "GET",
1696		HTTPPath:   "/v2/email/deliverability-dashboard/test-reports/{ReportId}",
1697	}
1698
1699	if input == nil {
1700		input = &GetDeliverabilityTestReportInput{}
1701	}
1702
1703	output = &GetDeliverabilityTestReportOutput{}
1704	req = c.newRequest(op, input, output)
1705	return
1706}
1707
1708// GetDeliverabilityTestReport API operation for Amazon Simple Email Service.
1709//
1710// Retrieve the results of a predictive inbox placement test.
1711//
1712// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1713// with awserr.Error's Code and Message methods to get detailed information about
1714// the error.
1715//
1716// See the AWS API reference guide for Amazon Simple Email Service's
1717// API operation GetDeliverabilityTestReport for usage and error information.
1718//
1719// Returned Error Types:
1720//   * TooManyRequestsException
1721//   Too many requests have been made to the operation.
1722//
1723//   * NotFoundException
1724//   The resource you attempted to access doesn't exist.
1725//
1726//   * BadRequestException
1727//   The input you provided is invalid.
1728//
1729// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/GetDeliverabilityTestReport
1730func (c *SESV2) GetDeliverabilityTestReport(input *GetDeliverabilityTestReportInput) (*GetDeliverabilityTestReportOutput, error) {
1731	req, out := c.GetDeliverabilityTestReportRequest(input)
1732	return out, req.Send()
1733}
1734
1735// GetDeliverabilityTestReportWithContext is the same as GetDeliverabilityTestReport with the addition of
1736// the ability to pass a context and additional request options.
1737//
1738// See GetDeliverabilityTestReport for details on how to use this API operation.
1739//
1740// The context must be non-nil and will be used for request cancellation. If
1741// the context is nil a panic will occur. In the future the SDK may create
1742// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1743// for more information on using Contexts.
1744func (c *SESV2) GetDeliverabilityTestReportWithContext(ctx aws.Context, input *GetDeliverabilityTestReportInput, opts ...request.Option) (*GetDeliverabilityTestReportOutput, error) {
1745	req, out := c.GetDeliverabilityTestReportRequest(input)
1746	req.SetContext(ctx)
1747	req.ApplyOptions(opts...)
1748	return out, req.Send()
1749}
1750
1751const opGetDomainDeliverabilityCampaign = "GetDomainDeliverabilityCampaign"
1752
1753// GetDomainDeliverabilityCampaignRequest generates a "aws/request.Request" representing the
1754// client's request for the GetDomainDeliverabilityCampaign operation. The "output" return
1755// value will be populated with the request's response once the request completes
1756// successfully.
1757//
1758// Use "Send" method on the returned Request to send the API call to the service.
1759// the "output" return value is not valid until after Send returns without error.
1760//
1761// See GetDomainDeliverabilityCampaign for more information on using the GetDomainDeliverabilityCampaign
1762// API call, and error handling.
1763//
1764// This method is useful when you want to inject custom logic or configuration
1765// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1766//
1767//
1768//    // Example sending a request using the GetDomainDeliverabilityCampaignRequest method.
1769//    req, resp := client.GetDomainDeliverabilityCampaignRequest(params)
1770//
1771//    err := req.Send()
1772//    if err == nil { // resp is now filled
1773//        fmt.Println(resp)
1774//    }
1775//
1776// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/GetDomainDeliverabilityCampaign
1777func (c *SESV2) GetDomainDeliverabilityCampaignRequest(input *GetDomainDeliverabilityCampaignInput) (req *request.Request, output *GetDomainDeliverabilityCampaignOutput) {
1778	op := &request.Operation{
1779		Name:       opGetDomainDeliverabilityCampaign,
1780		HTTPMethod: "GET",
1781		HTTPPath:   "/v2/email/deliverability-dashboard/campaigns/{CampaignId}",
1782	}
1783
1784	if input == nil {
1785		input = &GetDomainDeliverabilityCampaignInput{}
1786	}
1787
1788	output = &GetDomainDeliverabilityCampaignOutput{}
1789	req = c.newRequest(op, input, output)
1790	return
1791}
1792
1793// GetDomainDeliverabilityCampaign API operation for Amazon Simple Email Service.
1794//
1795// Retrieve all the deliverability data for a specific campaign. This data is
1796// available for a campaign only if the campaign sent email by using a domain
1797// that the Deliverability dashboard is enabled for.
1798//
1799// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1800// with awserr.Error's Code and Message methods to get detailed information about
1801// the error.
1802//
1803// See the AWS API reference guide for Amazon Simple Email Service's
1804// API operation GetDomainDeliverabilityCampaign for usage and error information.
1805//
1806// Returned Error Types:
1807//   * TooManyRequestsException
1808//   Too many requests have been made to the operation.
1809//
1810//   * BadRequestException
1811//   The input you provided is invalid.
1812//
1813//   * NotFoundException
1814//   The resource you attempted to access doesn't exist.
1815//
1816// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/GetDomainDeliverabilityCampaign
1817func (c *SESV2) GetDomainDeliverabilityCampaign(input *GetDomainDeliverabilityCampaignInput) (*GetDomainDeliverabilityCampaignOutput, error) {
1818	req, out := c.GetDomainDeliverabilityCampaignRequest(input)
1819	return out, req.Send()
1820}
1821
1822// GetDomainDeliverabilityCampaignWithContext is the same as GetDomainDeliverabilityCampaign with the addition of
1823// the ability to pass a context and additional request options.
1824//
1825// See GetDomainDeliverabilityCampaign for details on how to use this API operation.
1826//
1827// The context must be non-nil and will be used for request cancellation. If
1828// the context is nil a panic will occur. In the future the SDK may create
1829// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1830// for more information on using Contexts.
1831func (c *SESV2) GetDomainDeliverabilityCampaignWithContext(ctx aws.Context, input *GetDomainDeliverabilityCampaignInput, opts ...request.Option) (*GetDomainDeliverabilityCampaignOutput, error) {
1832	req, out := c.GetDomainDeliverabilityCampaignRequest(input)
1833	req.SetContext(ctx)
1834	req.ApplyOptions(opts...)
1835	return out, req.Send()
1836}
1837
1838const opGetDomainStatisticsReport = "GetDomainStatisticsReport"
1839
1840// GetDomainStatisticsReportRequest generates a "aws/request.Request" representing the
1841// client's request for the GetDomainStatisticsReport operation. The "output" return
1842// value will be populated with the request's response once the request completes
1843// successfully.
1844//
1845// Use "Send" method on the returned Request to send the API call to the service.
1846// the "output" return value is not valid until after Send returns without error.
1847//
1848// See GetDomainStatisticsReport for more information on using the GetDomainStatisticsReport
1849// API call, and error handling.
1850//
1851// This method is useful when you want to inject custom logic or configuration
1852// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1853//
1854//
1855//    // Example sending a request using the GetDomainStatisticsReportRequest method.
1856//    req, resp := client.GetDomainStatisticsReportRequest(params)
1857//
1858//    err := req.Send()
1859//    if err == nil { // resp is now filled
1860//        fmt.Println(resp)
1861//    }
1862//
1863// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/GetDomainStatisticsReport
1864func (c *SESV2) GetDomainStatisticsReportRequest(input *GetDomainStatisticsReportInput) (req *request.Request, output *GetDomainStatisticsReportOutput) {
1865	op := &request.Operation{
1866		Name:       opGetDomainStatisticsReport,
1867		HTTPMethod: "GET",
1868		HTTPPath:   "/v2/email/deliverability-dashboard/statistics-report/{Domain}",
1869	}
1870
1871	if input == nil {
1872		input = &GetDomainStatisticsReportInput{}
1873	}
1874
1875	output = &GetDomainStatisticsReportOutput{}
1876	req = c.newRequest(op, input, output)
1877	return
1878}
1879
1880// GetDomainStatisticsReport API operation for Amazon Simple Email Service.
1881//
1882// Retrieve inbox placement and engagement rates for the domains that you use
1883// to send email.
1884//
1885// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1886// with awserr.Error's Code and Message methods to get detailed information about
1887// the error.
1888//
1889// See the AWS API reference guide for Amazon Simple Email Service's
1890// API operation GetDomainStatisticsReport for usage and error information.
1891//
1892// Returned Error Types:
1893//   * TooManyRequestsException
1894//   Too many requests have been made to the operation.
1895//
1896//   * NotFoundException
1897//   The resource you attempted to access doesn't exist.
1898//
1899//   * BadRequestException
1900//   The input you provided is invalid.
1901//
1902// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/GetDomainStatisticsReport
1903func (c *SESV2) GetDomainStatisticsReport(input *GetDomainStatisticsReportInput) (*GetDomainStatisticsReportOutput, error) {
1904	req, out := c.GetDomainStatisticsReportRequest(input)
1905	return out, req.Send()
1906}
1907
1908// GetDomainStatisticsReportWithContext is the same as GetDomainStatisticsReport with the addition of
1909// the ability to pass a context and additional request options.
1910//
1911// See GetDomainStatisticsReport for details on how to use this API operation.
1912//
1913// The context must be non-nil and will be used for request cancellation. If
1914// the context is nil a panic will occur. In the future the SDK may create
1915// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1916// for more information on using Contexts.
1917func (c *SESV2) GetDomainStatisticsReportWithContext(ctx aws.Context, input *GetDomainStatisticsReportInput, opts ...request.Option) (*GetDomainStatisticsReportOutput, error) {
1918	req, out := c.GetDomainStatisticsReportRequest(input)
1919	req.SetContext(ctx)
1920	req.ApplyOptions(opts...)
1921	return out, req.Send()
1922}
1923
1924const opGetEmailIdentity = "GetEmailIdentity"
1925
1926// GetEmailIdentityRequest generates a "aws/request.Request" representing the
1927// client's request for the GetEmailIdentity operation. The "output" return
1928// value will be populated with the request's response once the request completes
1929// successfully.
1930//
1931// Use "Send" method on the returned Request to send the API call to the service.
1932// the "output" return value is not valid until after Send returns without error.
1933//
1934// See GetEmailIdentity for more information on using the GetEmailIdentity
1935// API call, and error handling.
1936//
1937// This method is useful when you want to inject custom logic or configuration
1938// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1939//
1940//
1941//    // Example sending a request using the GetEmailIdentityRequest method.
1942//    req, resp := client.GetEmailIdentityRequest(params)
1943//
1944//    err := req.Send()
1945//    if err == nil { // resp is now filled
1946//        fmt.Println(resp)
1947//    }
1948//
1949// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/GetEmailIdentity
1950func (c *SESV2) GetEmailIdentityRequest(input *GetEmailIdentityInput) (req *request.Request, output *GetEmailIdentityOutput) {
1951	op := &request.Operation{
1952		Name:       opGetEmailIdentity,
1953		HTTPMethod: "GET",
1954		HTTPPath:   "/v2/email/identities/{EmailIdentity}",
1955	}
1956
1957	if input == nil {
1958		input = &GetEmailIdentityInput{}
1959	}
1960
1961	output = &GetEmailIdentityOutput{}
1962	req = c.newRequest(op, input, output)
1963	return
1964}
1965
1966// GetEmailIdentity API operation for Amazon Simple Email Service.
1967//
1968// Provides information about a specific identity, including the identity's
1969// verification status, its DKIM authentication status, and its custom Mail-From
1970// settings.
1971//
1972// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1973// with awserr.Error's Code and Message methods to get detailed information about
1974// the error.
1975//
1976// See the AWS API reference guide for Amazon Simple Email Service's
1977// API operation GetEmailIdentity for usage and error information.
1978//
1979// Returned Error Types:
1980//   * NotFoundException
1981//   The resource you attempted to access doesn't exist.
1982//
1983//   * TooManyRequestsException
1984//   Too many requests have been made to the operation.
1985//
1986//   * BadRequestException
1987//   The input you provided is invalid.
1988//
1989// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/GetEmailIdentity
1990func (c *SESV2) GetEmailIdentity(input *GetEmailIdentityInput) (*GetEmailIdentityOutput, error) {
1991	req, out := c.GetEmailIdentityRequest(input)
1992	return out, req.Send()
1993}
1994
1995// GetEmailIdentityWithContext is the same as GetEmailIdentity with the addition of
1996// the ability to pass a context and additional request options.
1997//
1998// See GetEmailIdentity for details on how to use this API operation.
1999//
2000// The context must be non-nil and will be used for request cancellation. If
2001// the context is nil a panic will occur. In the future the SDK may create
2002// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2003// for more information on using Contexts.
2004func (c *SESV2) GetEmailIdentityWithContext(ctx aws.Context, input *GetEmailIdentityInput, opts ...request.Option) (*GetEmailIdentityOutput, error) {
2005	req, out := c.GetEmailIdentityRequest(input)
2006	req.SetContext(ctx)
2007	req.ApplyOptions(opts...)
2008	return out, req.Send()
2009}
2010
2011const opGetSuppressedDestination = "GetSuppressedDestination"
2012
2013// GetSuppressedDestinationRequest generates a "aws/request.Request" representing the
2014// client's request for the GetSuppressedDestination operation. The "output" return
2015// value will be populated with the request's response once the request completes
2016// successfully.
2017//
2018// Use "Send" method on the returned Request to send the API call to the service.
2019// the "output" return value is not valid until after Send returns without error.
2020//
2021// See GetSuppressedDestination for more information on using the GetSuppressedDestination
2022// API call, and error handling.
2023//
2024// This method is useful when you want to inject custom logic or configuration
2025// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2026//
2027//
2028//    // Example sending a request using the GetSuppressedDestinationRequest method.
2029//    req, resp := client.GetSuppressedDestinationRequest(params)
2030//
2031//    err := req.Send()
2032//    if err == nil { // resp is now filled
2033//        fmt.Println(resp)
2034//    }
2035//
2036// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/GetSuppressedDestination
2037func (c *SESV2) GetSuppressedDestinationRequest(input *GetSuppressedDestinationInput) (req *request.Request, output *GetSuppressedDestinationOutput) {
2038	op := &request.Operation{
2039		Name:       opGetSuppressedDestination,
2040		HTTPMethod: "GET",
2041		HTTPPath:   "/v2/email/suppression/addresses/{EmailAddress}",
2042	}
2043
2044	if input == nil {
2045		input = &GetSuppressedDestinationInput{}
2046	}
2047
2048	output = &GetSuppressedDestinationOutput{}
2049	req = c.newRequest(op, input, output)
2050	return
2051}
2052
2053// GetSuppressedDestination API operation for Amazon Simple Email Service.
2054//
2055// Retrieves information about a specific email address that's on the suppression
2056// list for your account.
2057//
2058// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2059// with awserr.Error's Code and Message methods to get detailed information about
2060// the error.
2061//
2062// See the AWS API reference guide for Amazon Simple Email Service's
2063// API operation GetSuppressedDestination for usage and error information.
2064//
2065// Returned Error Types:
2066//   * BadRequestException
2067//   The input you provided is invalid.
2068//
2069//   * TooManyRequestsException
2070//   Too many requests have been made to the operation.
2071//
2072//   * NotFoundException
2073//   The resource you attempted to access doesn't exist.
2074//
2075// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/GetSuppressedDestination
2076func (c *SESV2) GetSuppressedDestination(input *GetSuppressedDestinationInput) (*GetSuppressedDestinationOutput, error) {
2077	req, out := c.GetSuppressedDestinationRequest(input)
2078	return out, req.Send()
2079}
2080
2081// GetSuppressedDestinationWithContext is the same as GetSuppressedDestination with the addition of
2082// the ability to pass a context and additional request options.
2083//
2084// See GetSuppressedDestination for details on how to use this API operation.
2085//
2086// The context must be non-nil and will be used for request cancellation. If
2087// the context is nil a panic will occur. In the future the SDK may create
2088// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2089// for more information on using Contexts.
2090func (c *SESV2) GetSuppressedDestinationWithContext(ctx aws.Context, input *GetSuppressedDestinationInput, opts ...request.Option) (*GetSuppressedDestinationOutput, error) {
2091	req, out := c.GetSuppressedDestinationRequest(input)
2092	req.SetContext(ctx)
2093	req.ApplyOptions(opts...)
2094	return out, req.Send()
2095}
2096
2097const opListConfigurationSets = "ListConfigurationSets"
2098
2099// ListConfigurationSetsRequest generates a "aws/request.Request" representing the
2100// client's request for the ListConfigurationSets operation. The "output" return
2101// value will be populated with the request's response once the request completes
2102// successfully.
2103//
2104// Use "Send" method on the returned Request to send the API call to the service.
2105// the "output" return value is not valid until after Send returns without error.
2106//
2107// See ListConfigurationSets for more information on using the ListConfigurationSets
2108// API call, and error handling.
2109//
2110// This method is useful when you want to inject custom logic or configuration
2111// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2112//
2113//
2114//    // Example sending a request using the ListConfigurationSetsRequest method.
2115//    req, resp := client.ListConfigurationSetsRequest(params)
2116//
2117//    err := req.Send()
2118//    if err == nil { // resp is now filled
2119//        fmt.Println(resp)
2120//    }
2121//
2122// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/ListConfigurationSets
2123func (c *SESV2) ListConfigurationSetsRequest(input *ListConfigurationSetsInput) (req *request.Request, output *ListConfigurationSetsOutput) {
2124	op := &request.Operation{
2125		Name:       opListConfigurationSets,
2126		HTTPMethod: "GET",
2127		HTTPPath:   "/v2/email/configuration-sets",
2128		Paginator: &request.Paginator{
2129			InputTokens:     []string{"NextToken"},
2130			OutputTokens:    []string{"NextToken"},
2131			LimitToken:      "PageSize",
2132			TruncationToken: "",
2133		},
2134	}
2135
2136	if input == nil {
2137		input = &ListConfigurationSetsInput{}
2138	}
2139
2140	output = &ListConfigurationSetsOutput{}
2141	req = c.newRequest(op, input, output)
2142	return
2143}
2144
2145// ListConfigurationSets API operation for Amazon Simple Email Service.
2146//
2147// List all of the configuration sets associated with your account in the current
2148// region.
2149//
2150// Configuration sets are groups of rules that you can apply to the emails you
2151// send. You apply a configuration set to an email by including a reference
2152// to the configuration set in the headers of the email. When you apply a configuration
2153// set to an email, all of the rules in that configuration set are applied to
2154// the email.
2155//
2156// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2157// with awserr.Error's Code and Message methods to get detailed information about
2158// the error.
2159//
2160// See the AWS API reference guide for Amazon Simple Email Service's
2161// API operation ListConfigurationSets for usage and error information.
2162//
2163// Returned Error Types:
2164//   * TooManyRequestsException
2165//   Too many requests have been made to the operation.
2166//
2167//   * BadRequestException
2168//   The input you provided is invalid.
2169//
2170// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/ListConfigurationSets
2171func (c *SESV2) ListConfigurationSets(input *ListConfigurationSetsInput) (*ListConfigurationSetsOutput, error) {
2172	req, out := c.ListConfigurationSetsRequest(input)
2173	return out, req.Send()
2174}
2175
2176// ListConfigurationSetsWithContext is the same as ListConfigurationSets with the addition of
2177// the ability to pass a context and additional request options.
2178//
2179// See ListConfigurationSets for details on how to use this API operation.
2180//
2181// The context must be non-nil and will be used for request cancellation. If
2182// the context is nil a panic will occur. In the future the SDK may create
2183// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2184// for more information on using Contexts.
2185func (c *SESV2) ListConfigurationSetsWithContext(ctx aws.Context, input *ListConfigurationSetsInput, opts ...request.Option) (*ListConfigurationSetsOutput, error) {
2186	req, out := c.ListConfigurationSetsRequest(input)
2187	req.SetContext(ctx)
2188	req.ApplyOptions(opts...)
2189	return out, req.Send()
2190}
2191
2192// ListConfigurationSetsPages iterates over the pages of a ListConfigurationSets operation,
2193// calling the "fn" function with the response data for each page. To stop
2194// iterating, return false from the fn function.
2195//
2196// See ListConfigurationSets method for more information on how to use this operation.
2197//
2198// Note: This operation can generate multiple requests to a service.
2199//
2200//    // Example iterating over at most 3 pages of a ListConfigurationSets operation.
2201//    pageNum := 0
2202//    err := client.ListConfigurationSetsPages(params,
2203//        func(page *sesv2.ListConfigurationSetsOutput, lastPage bool) bool {
2204//            pageNum++
2205//            fmt.Println(page)
2206//            return pageNum <= 3
2207//        })
2208//
2209func (c *SESV2) ListConfigurationSetsPages(input *ListConfigurationSetsInput, fn func(*ListConfigurationSetsOutput, bool) bool) error {
2210	return c.ListConfigurationSetsPagesWithContext(aws.BackgroundContext(), input, fn)
2211}
2212
2213// ListConfigurationSetsPagesWithContext same as ListConfigurationSetsPages except
2214// it takes a Context and allows setting request options on the pages.
2215//
2216// The context must be non-nil and will be used for request cancellation. If
2217// the context is nil a panic will occur. In the future the SDK may create
2218// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2219// for more information on using Contexts.
2220func (c *SESV2) ListConfigurationSetsPagesWithContext(ctx aws.Context, input *ListConfigurationSetsInput, fn func(*ListConfigurationSetsOutput, bool) bool, opts ...request.Option) error {
2221	p := request.Pagination{
2222		NewRequest: func() (*request.Request, error) {
2223			var inCpy *ListConfigurationSetsInput
2224			if input != nil {
2225				tmp := *input
2226				inCpy = &tmp
2227			}
2228			req, _ := c.ListConfigurationSetsRequest(inCpy)
2229			req.SetContext(ctx)
2230			req.ApplyOptions(opts...)
2231			return req, nil
2232		},
2233	}
2234
2235	for p.Next() {
2236		if !fn(p.Page().(*ListConfigurationSetsOutput), !p.HasNextPage()) {
2237			break
2238		}
2239	}
2240
2241	return p.Err()
2242}
2243
2244const opListDedicatedIpPools = "ListDedicatedIpPools"
2245
2246// ListDedicatedIpPoolsRequest generates a "aws/request.Request" representing the
2247// client's request for the ListDedicatedIpPools operation. The "output" return
2248// value will be populated with the request's response once the request completes
2249// successfully.
2250//
2251// Use "Send" method on the returned Request to send the API call to the service.
2252// the "output" return value is not valid until after Send returns without error.
2253//
2254// See ListDedicatedIpPools for more information on using the ListDedicatedIpPools
2255// API call, and error handling.
2256//
2257// This method is useful when you want to inject custom logic or configuration
2258// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2259//
2260//
2261//    // Example sending a request using the ListDedicatedIpPoolsRequest method.
2262//    req, resp := client.ListDedicatedIpPoolsRequest(params)
2263//
2264//    err := req.Send()
2265//    if err == nil { // resp is now filled
2266//        fmt.Println(resp)
2267//    }
2268//
2269// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/ListDedicatedIpPools
2270func (c *SESV2) ListDedicatedIpPoolsRequest(input *ListDedicatedIpPoolsInput) (req *request.Request, output *ListDedicatedIpPoolsOutput) {
2271	op := &request.Operation{
2272		Name:       opListDedicatedIpPools,
2273		HTTPMethod: "GET",
2274		HTTPPath:   "/v2/email/dedicated-ip-pools",
2275		Paginator: &request.Paginator{
2276			InputTokens:     []string{"NextToken"},
2277			OutputTokens:    []string{"NextToken"},
2278			LimitToken:      "PageSize",
2279			TruncationToken: "",
2280		},
2281	}
2282
2283	if input == nil {
2284		input = &ListDedicatedIpPoolsInput{}
2285	}
2286
2287	output = &ListDedicatedIpPoolsOutput{}
2288	req = c.newRequest(op, input, output)
2289	return
2290}
2291
2292// ListDedicatedIpPools API operation for Amazon Simple Email Service.
2293//
2294// List all of the dedicated IP pools that exist in your AWS account in the
2295// current Region.
2296//
2297// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2298// with awserr.Error's Code and Message methods to get detailed information about
2299// the error.
2300//
2301// See the AWS API reference guide for Amazon Simple Email Service's
2302// API operation ListDedicatedIpPools for usage and error information.
2303//
2304// Returned Error Types:
2305//   * TooManyRequestsException
2306//   Too many requests have been made to the operation.
2307//
2308//   * BadRequestException
2309//   The input you provided is invalid.
2310//
2311// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/ListDedicatedIpPools
2312func (c *SESV2) ListDedicatedIpPools(input *ListDedicatedIpPoolsInput) (*ListDedicatedIpPoolsOutput, error) {
2313	req, out := c.ListDedicatedIpPoolsRequest(input)
2314	return out, req.Send()
2315}
2316
2317// ListDedicatedIpPoolsWithContext is the same as ListDedicatedIpPools with the addition of
2318// the ability to pass a context and additional request options.
2319//
2320// See ListDedicatedIpPools for details on how to use this API operation.
2321//
2322// The context must be non-nil and will be used for request cancellation. If
2323// the context is nil a panic will occur. In the future the SDK may create
2324// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2325// for more information on using Contexts.
2326func (c *SESV2) ListDedicatedIpPoolsWithContext(ctx aws.Context, input *ListDedicatedIpPoolsInput, opts ...request.Option) (*ListDedicatedIpPoolsOutput, error) {
2327	req, out := c.ListDedicatedIpPoolsRequest(input)
2328	req.SetContext(ctx)
2329	req.ApplyOptions(opts...)
2330	return out, req.Send()
2331}
2332
2333// ListDedicatedIpPoolsPages iterates over the pages of a ListDedicatedIpPools operation,
2334// calling the "fn" function with the response data for each page. To stop
2335// iterating, return false from the fn function.
2336//
2337// See ListDedicatedIpPools method for more information on how to use this operation.
2338//
2339// Note: This operation can generate multiple requests to a service.
2340//
2341//    // Example iterating over at most 3 pages of a ListDedicatedIpPools operation.
2342//    pageNum := 0
2343//    err := client.ListDedicatedIpPoolsPages(params,
2344//        func(page *sesv2.ListDedicatedIpPoolsOutput, lastPage bool) bool {
2345//            pageNum++
2346//            fmt.Println(page)
2347//            return pageNum <= 3
2348//        })
2349//
2350func (c *SESV2) ListDedicatedIpPoolsPages(input *ListDedicatedIpPoolsInput, fn func(*ListDedicatedIpPoolsOutput, bool) bool) error {
2351	return c.ListDedicatedIpPoolsPagesWithContext(aws.BackgroundContext(), input, fn)
2352}
2353
2354// ListDedicatedIpPoolsPagesWithContext same as ListDedicatedIpPoolsPages except
2355// it takes a Context and allows setting request options on the pages.
2356//
2357// The context must be non-nil and will be used for request cancellation. If
2358// the context is nil a panic will occur. In the future the SDK may create
2359// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2360// for more information on using Contexts.
2361func (c *SESV2) ListDedicatedIpPoolsPagesWithContext(ctx aws.Context, input *ListDedicatedIpPoolsInput, fn func(*ListDedicatedIpPoolsOutput, bool) bool, opts ...request.Option) error {
2362	p := request.Pagination{
2363		NewRequest: func() (*request.Request, error) {
2364			var inCpy *ListDedicatedIpPoolsInput
2365			if input != nil {
2366				tmp := *input
2367				inCpy = &tmp
2368			}
2369			req, _ := c.ListDedicatedIpPoolsRequest(inCpy)
2370			req.SetContext(ctx)
2371			req.ApplyOptions(opts...)
2372			return req, nil
2373		},
2374	}
2375
2376	for p.Next() {
2377		if !fn(p.Page().(*ListDedicatedIpPoolsOutput), !p.HasNextPage()) {
2378			break
2379		}
2380	}
2381
2382	return p.Err()
2383}
2384
2385const opListDeliverabilityTestReports = "ListDeliverabilityTestReports"
2386
2387// ListDeliverabilityTestReportsRequest generates a "aws/request.Request" representing the
2388// client's request for the ListDeliverabilityTestReports operation. The "output" return
2389// value will be populated with the request's response once the request completes
2390// successfully.
2391//
2392// Use "Send" method on the returned Request to send the API call to the service.
2393// the "output" return value is not valid until after Send returns without error.
2394//
2395// See ListDeliverabilityTestReports for more information on using the ListDeliverabilityTestReports
2396// API call, and error handling.
2397//
2398// This method is useful when you want to inject custom logic or configuration
2399// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2400//
2401//
2402//    // Example sending a request using the ListDeliverabilityTestReportsRequest method.
2403//    req, resp := client.ListDeliverabilityTestReportsRequest(params)
2404//
2405//    err := req.Send()
2406//    if err == nil { // resp is now filled
2407//        fmt.Println(resp)
2408//    }
2409//
2410// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/ListDeliverabilityTestReports
2411func (c *SESV2) ListDeliverabilityTestReportsRequest(input *ListDeliverabilityTestReportsInput) (req *request.Request, output *ListDeliverabilityTestReportsOutput) {
2412	op := &request.Operation{
2413		Name:       opListDeliverabilityTestReports,
2414		HTTPMethod: "GET",
2415		HTTPPath:   "/v2/email/deliverability-dashboard/test-reports",
2416		Paginator: &request.Paginator{
2417			InputTokens:     []string{"NextToken"},
2418			OutputTokens:    []string{"NextToken"},
2419			LimitToken:      "PageSize",
2420			TruncationToken: "",
2421		},
2422	}
2423
2424	if input == nil {
2425		input = &ListDeliverabilityTestReportsInput{}
2426	}
2427
2428	output = &ListDeliverabilityTestReportsOutput{}
2429	req = c.newRequest(op, input, output)
2430	return
2431}
2432
2433// ListDeliverabilityTestReports API operation for Amazon Simple Email Service.
2434//
2435// Show a list of the predictive inbox placement tests that you've performed,
2436// regardless of their statuses. For predictive inbox placement tests that are
2437// complete, you can use the GetDeliverabilityTestReport operation to view the
2438// results.
2439//
2440// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2441// with awserr.Error's Code and Message methods to get detailed information about
2442// the error.
2443//
2444// See the AWS API reference guide for Amazon Simple Email Service's
2445// API operation ListDeliverabilityTestReports for usage and error information.
2446//
2447// Returned Error Types:
2448//   * TooManyRequestsException
2449//   Too many requests have been made to the operation.
2450//
2451//   * NotFoundException
2452//   The resource you attempted to access doesn't exist.
2453//
2454//   * BadRequestException
2455//   The input you provided is invalid.
2456//
2457// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/ListDeliverabilityTestReports
2458func (c *SESV2) ListDeliverabilityTestReports(input *ListDeliverabilityTestReportsInput) (*ListDeliverabilityTestReportsOutput, error) {
2459	req, out := c.ListDeliverabilityTestReportsRequest(input)
2460	return out, req.Send()
2461}
2462
2463// ListDeliverabilityTestReportsWithContext is the same as ListDeliverabilityTestReports with the addition of
2464// the ability to pass a context and additional request options.
2465//
2466// See ListDeliverabilityTestReports for details on how to use this API operation.
2467//
2468// The context must be non-nil and will be used for request cancellation. If
2469// the context is nil a panic will occur. In the future the SDK may create
2470// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2471// for more information on using Contexts.
2472func (c *SESV2) ListDeliverabilityTestReportsWithContext(ctx aws.Context, input *ListDeliverabilityTestReportsInput, opts ...request.Option) (*ListDeliverabilityTestReportsOutput, error) {
2473	req, out := c.ListDeliverabilityTestReportsRequest(input)
2474	req.SetContext(ctx)
2475	req.ApplyOptions(opts...)
2476	return out, req.Send()
2477}
2478
2479// ListDeliverabilityTestReportsPages iterates over the pages of a ListDeliverabilityTestReports operation,
2480// calling the "fn" function with the response data for each page. To stop
2481// iterating, return false from the fn function.
2482//
2483// See ListDeliverabilityTestReports method for more information on how to use this operation.
2484//
2485// Note: This operation can generate multiple requests to a service.
2486//
2487//    // Example iterating over at most 3 pages of a ListDeliverabilityTestReports operation.
2488//    pageNum := 0
2489//    err := client.ListDeliverabilityTestReportsPages(params,
2490//        func(page *sesv2.ListDeliverabilityTestReportsOutput, lastPage bool) bool {
2491//            pageNum++
2492//            fmt.Println(page)
2493//            return pageNum <= 3
2494//        })
2495//
2496func (c *SESV2) ListDeliverabilityTestReportsPages(input *ListDeliverabilityTestReportsInput, fn func(*ListDeliverabilityTestReportsOutput, bool) bool) error {
2497	return c.ListDeliverabilityTestReportsPagesWithContext(aws.BackgroundContext(), input, fn)
2498}
2499
2500// ListDeliverabilityTestReportsPagesWithContext same as ListDeliverabilityTestReportsPages except
2501// it takes a Context and allows setting request options on the pages.
2502//
2503// The context must be non-nil and will be used for request cancellation. If
2504// the context is nil a panic will occur. In the future the SDK may create
2505// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2506// for more information on using Contexts.
2507func (c *SESV2) ListDeliverabilityTestReportsPagesWithContext(ctx aws.Context, input *ListDeliverabilityTestReportsInput, fn func(*ListDeliverabilityTestReportsOutput, bool) bool, opts ...request.Option) error {
2508	p := request.Pagination{
2509		NewRequest: func() (*request.Request, error) {
2510			var inCpy *ListDeliverabilityTestReportsInput
2511			if input != nil {
2512				tmp := *input
2513				inCpy = &tmp
2514			}
2515			req, _ := c.ListDeliverabilityTestReportsRequest(inCpy)
2516			req.SetContext(ctx)
2517			req.ApplyOptions(opts...)
2518			return req, nil
2519		},
2520	}
2521
2522	for p.Next() {
2523		if !fn(p.Page().(*ListDeliverabilityTestReportsOutput), !p.HasNextPage()) {
2524			break
2525		}
2526	}
2527
2528	return p.Err()
2529}
2530
2531const opListDomainDeliverabilityCampaigns = "ListDomainDeliverabilityCampaigns"
2532
2533// ListDomainDeliverabilityCampaignsRequest generates a "aws/request.Request" representing the
2534// client's request for the ListDomainDeliverabilityCampaigns operation. The "output" return
2535// value will be populated with the request's response once the request completes
2536// successfully.
2537//
2538// Use "Send" method on the returned Request to send the API call to the service.
2539// the "output" return value is not valid until after Send returns without error.
2540//
2541// See ListDomainDeliverabilityCampaigns for more information on using the ListDomainDeliverabilityCampaigns
2542// API call, and error handling.
2543//
2544// This method is useful when you want to inject custom logic or configuration
2545// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2546//
2547//
2548//    // Example sending a request using the ListDomainDeliverabilityCampaignsRequest method.
2549//    req, resp := client.ListDomainDeliverabilityCampaignsRequest(params)
2550//
2551//    err := req.Send()
2552//    if err == nil { // resp is now filled
2553//        fmt.Println(resp)
2554//    }
2555//
2556// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/ListDomainDeliverabilityCampaigns
2557func (c *SESV2) ListDomainDeliverabilityCampaignsRequest(input *ListDomainDeliverabilityCampaignsInput) (req *request.Request, output *ListDomainDeliverabilityCampaignsOutput) {
2558	op := &request.Operation{
2559		Name:       opListDomainDeliverabilityCampaigns,
2560		HTTPMethod: "GET",
2561		HTTPPath:   "/v2/email/deliverability-dashboard/domains/{SubscribedDomain}/campaigns",
2562		Paginator: &request.Paginator{
2563			InputTokens:     []string{"NextToken"},
2564			OutputTokens:    []string{"NextToken"},
2565			LimitToken:      "PageSize",
2566			TruncationToken: "",
2567		},
2568	}
2569
2570	if input == nil {
2571		input = &ListDomainDeliverabilityCampaignsInput{}
2572	}
2573
2574	output = &ListDomainDeliverabilityCampaignsOutput{}
2575	req = c.newRequest(op, input, output)
2576	return
2577}
2578
2579// ListDomainDeliverabilityCampaigns API operation for Amazon Simple Email Service.
2580//
2581// Retrieve deliverability data for all the campaigns that used a specific domain
2582// to send email during a specified time range. This data is available for a
2583// domain only if you enabled the Deliverability dashboard for the domain.
2584//
2585// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2586// with awserr.Error's Code and Message methods to get detailed information about
2587// the error.
2588//
2589// See the AWS API reference guide for Amazon Simple Email Service's
2590// API operation ListDomainDeliverabilityCampaigns for usage and error information.
2591//
2592// Returned Error Types:
2593//   * TooManyRequestsException
2594//   Too many requests have been made to the operation.
2595//
2596//   * BadRequestException
2597//   The input you provided is invalid.
2598//
2599//   * NotFoundException
2600//   The resource you attempted to access doesn't exist.
2601//
2602// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/ListDomainDeliverabilityCampaigns
2603func (c *SESV2) ListDomainDeliverabilityCampaigns(input *ListDomainDeliverabilityCampaignsInput) (*ListDomainDeliverabilityCampaignsOutput, error) {
2604	req, out := c.ListDomainDeliverabilityCampaignsRequest(input)
2605	return out, req.Send()
2606}
2607
2608// ListDomainDeliverabilityCampaignsWithContext is the same as ListDomainDeliverabilityCampaigns with the addition of
2609// the ability to pass a context and additional request options.
2610//
2611// See ListDomainDeliverabilityCampaigns for details on how to use this API operation.
2612//
2613// The context must be non-nil and will be used for request cancellation. If
2614// the context is nil a panic will occur. In the future the SDK may create
2615// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2616// for more information on using Contexts.
2617func (c *SESV2) ListDomainDeliverabilityCampaignsWithContext(ctx aws.Context, input *ListDomainDeliverabilityCampaignsInput, opts ...request.Option) (*ListDomainDeliverabilityCampaignsOutput, error) {
2618	req, out := c.ListDomainDeliverabilityCampaignsRequest(input)
2619	req.SetContext(ctx)
2620	req.ApplyOptions(opts...)
2621	return out, req.Send()
2622}
2623
2624// ListDomainDeliverabilityCampaignsPages iterates over the pages of a ListDomainDeliverabilityCampaigns operation,
2625// calling the "fn" function with the response data for each page. To stop
2626// iterating, return false from the fn function.
2627//
2628// See ListDomainDeliverabilityCampaigns method for more information on how to use this operation.
2629//
2630// Note: This operation can generate multiple requests to a service.
2631//
2632//    // Example iterating over at most 3 pages of a ListDomainDeliverabilityCampaigns operation.
2633//    pageNum := 0
2634//    err := client.ListDomainDeliverabilityCampaignsPages(params,
2635//        func(page *sesv2.ListDomainDeliverabilityCampaignsOutput, lastPage bool) bool {
2636//            pageNum++
2637//            fmt.Println(page)
2638//            return pageNum <= 3
2639//        })
2640//
2641func (c *SESV2) ListDomainDeliverabilityCampaignsPages(input *ListDomainDeliverabilityCampaignsInput, fn func(*ListDomainDeliverabilityCampaignsOutput, bool) bool) error {
2642	return c.ListDomainDeliverabilityCampaignsPagesWithContext(aws.BackgroundContext(), input, fn)
2643}
2644
2645// ListDomainDeliverabilityCampaignsPagesWithContext same as ListDomainDeliverabilityCampaignsPages except
2646// it takes a Context and allows setting request options on the pages.
2647//
2648// The context must be non-nil and will be used for request cancellation. If
2649// the context is nil a panic will occur. In the future the SDK may create
2650// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2651// for more information on using Contexts.
2652func (c *SESV2) ListDomainDeliverabilityCampaignsPagesWithContext(ctx aws.Context, input *ListDomainDeliverabilityCampaignsInput, fn func(*ListDomainDeliverabilityCampaignsOutput, bool) bool, opts ...request.Option) error {
2653	p := request.Pagination{
2654		NewRequest: func() (*request.Request, error) {
2655			var inCpy *ListDomainDeliverabilityCampaignsInput
2656			if input != nil {
2657				tmp := *input
2658				inCpy = &tmp
2659			}
2660			req, _ := c.ListDomainDeliverabilityCampaignsRequest(inCpy)
2661			req.SetContext(ctx)
2662			req.ApplyOptions(opts...)
2663			return req, nil
2664		},
2665	}
2666
2667	for p.Next() {
2668		if !fn(p.Page().(*ListDomainDeliverabilityCampaignsOutput), !p.HasNextPage()) {
2669			break
2670		}
2671	}
2672
2673	return p.Err()
2674}
2675
2676const opListEmailIdentities = "ListEmailIdentities"
2677
2678// ListEmailIdentitiesRequest generates a "aws/request.Request" representing the
2679// client's request for the ListEmailIdentities operation. The "output" return
2680// value will be populated with the request's response once the request completes
2681// successfully.
2682//
2683// Use "Send" method on the returned Request to send the API call to the service.
2684// the "output" return value is not valid until after Send returns without error.
2685//
2686// See ListEmailIdentities for more information on using the ListEmailIdentities
2687// API call, and error handling.
2688//
2689// This method is useful when you want to inject custom logic or configuration
2690// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2691//
2692//
2693//    // Example sending a request using the ListEmailIdentitiesRequest method.
2694//    req, resp := client.ListEmailIdentitiesRequest(params)
2695//
2696//    err := req.Send()
2697//    if err == nil { // resp is now filled
2698//        fmt.Println(resp)
2699//    }
2700//
2701// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/ListEmailIdentities
2702func (c *SESV2) ListEmailIdentitiesRequest(input *ListEmailIdentitiesInput) (req *request.Request, output *ListEmailIdentitiesOutput) {
2703	op := &request.Operation{
2704		Name:       opListEmailIdentities,
2705		HTTPMethod: "GET",
2706		HTTPPath:   "/v2/email/identities",
2707		Paginator: &request.Paginator{
2708			InputTokens:     []string{"NextToken"},
2709			OutputTokens:    []string{"NextToken"},
2710			LimitToken:      "PageSize",
2711			TruncationToken: "",
2712		},
2713	}
2714
2715	if input == nil {
2716		input = &ListEmailIdentitiesInput{}
2717	}
2718
2719	output = &ListEmailIdentitiesOutput{}
2720	req = c.newRequest(op, input, output)
2721	return
2722}
2723
2724// ListEmailIdentities API operation for Amazon Simple Email Service.
2725//
2726// Returns a list of all of the email identities that are associated with your
2727// AWS account. An identity can be either an email address or a domain. This
2728// operation returns identities that are verified as well as those that aren't.
2729// This operation returns identities that are associated with Amazon SES and
2730// Amazon Pinpoint.
2731//
2732// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2733// with awserr.Error's Code and Message methods to get detailed information about
2734// the error.
2735//
2736// See the AWS API reference guide for Amazon Simple Email Service's
2737// API operation ListEmailIdentities for usage and error information.
2738//
2739// Returned Error Types:
2740//   * TooManyRequestsException
2741//   Too many requests have been made to the operation.
2742//
2743//   * BadRequestException
2744//   The input you provided is invalid.
2745//
2746// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/ListEmailIdentities
2747func (c *SESV2) ListEmailIdentities(input *ListEmailIdentitiesInput) (*ListEmailIdentitiesOutput, error) {
2748	req, out := c.ListEmailIdentitiesRequest(input)
2749	return out, req.Send()
2750}
2751
2752// ListEmailIdentitiesWithContext is the same as ListEmailIdentities with the addition of
2753// the ability to pass a context and additional request options.
2754//
2755// See ListEmailIdentities for details on how to use this API operation.
2756//
2757// The context must be non-nil and will be used for request cancellation. If
2758// the context is nil a panic will occur. In the future the SDK may create
2759// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2760// for more information on using Contexts.
2761func (c *SESV2) ListEmailIdentitiesWithContext(ctx aws.Context, input *ListEmailIdentitiesInput, opts ...request.Option) (*ListEmailIdentitiesOutput, error) {
2762	req, out := c.ListEmailIdentitiesRequest(input)
2763	req.SetContext(ctx)
2764	req.ApplyOptions(opts...)
2765	return out, req.Send()
2766}
2767
2768// ListEmailIdentitiesPages iterates over the pages of a ListEmailIdentities operation,
2769// calling the "fn" function with the response data for each page. To stop
2770// iterating, return false from the fn function.
2771//
2772// See ListEmailIdentities method for more information on how to use this operation.
2773//
2774// Note: This operation can generate multiple requests to a service.
2775//
2776//    // Example iterating over at most 3 pages of a ListEmailIdentities operation.
2777//    pageNum := 0
2778//    err := client.ListEmailIdentitiesPages(params,
2779//        func(page *sesv2.ListEmailIdentitiesOutput, lastPage bool) bool {
2780//            pageNum++
2781//            fmt.Println(page)
2782//            return pageNum <= 3
2783//        })
2784//
2785func (c *SESV2) ListEmailIdentitiesPages(input *ListEmailIdentitiesInput, fn func(*ListEmailIdentitiesOutput, bool) bool) error {
2786	return c.ListEmailIdentitiesPagesWithContext(aws.BackgroundContext(), input, fn)
2787}
2788
2789// ListEmailIdentitiesPagesWithContext same as ListEmailIdentitiesPages except
2790// it takes a Context and allows setting request options on the pages.
2791//
2792// The context must be non-nil and will be used for request cancellation. If
2793// the context is nil a panic will occur. In the future the SDK may create
2794// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2795// for more information on using Contexts.
2796func (c *SESV2) ListEmailIdentitiesPagesWithContext(ctx aws.Context, input *ListEmailIdentitiesInput, fn func(*ListEmailIdentitiesOutput, bool) bool, opts ...request.Option) error {
2797	p := request.Pagination{
2798		NewRequest: func() (*request.Request, error) {
2799			var inCpy *ListEmailIdentitiesInput
2800			if input != nil {
2801				tmp := *input
2802				inCpy = &tmp
2803			}
2804			req, _ := c.ListEmailIdentitiesRequest(inCpy)
2805			req.SetContext(ctx)
2806			req.ApplyOptions(opts...)
2807			return req, nil
2808		},
2809	}
2810
2811	for p.Next() {
2812		if !fn(p.Page().(*ListEmailIdentitiesOutput), !p.HasNextPage()) {
2813			break
2814		}
2815	}
2816
2817	return p.Err()
2818}
2819
2820const opListSuppressedDestinations = "ListSuppressedDestinations"
2821
2822// ListSuppressedDestinationsRequest generates a "aws/request.Request" representing the
2823// client's request for the ListSuppressedDestinations operation. The "output" return
2824// value will be populated with the request's response once the request completes
2825// successfully.
2826//
2827// Use "Send" method on the returned Request to send the API call to the service.
2828// the "output" return value is not valid until after Send returns without error.
2829//
2830// See ListSuppressedDestinations for more information on using the ListSuppressedDestinations
2831// API call, and error handling.
2832//
2833// This method is useful when you want to inject custom logic or configuration
2834// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2835//
2836//
2837//    // Example sending a request using the ListSuppressedDestinationsRequest method.
2838//    req, resp := client.ListSuppressedDestinationsRequest(params)
2839//
2840//    err := req.Send()
2841//    if err == nil { // resp is now filled
2842//        fmt.Println(resp)
2843//    }
2844//
2845// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/ListSuppressedDestinations
2846func (c *SESV2) ListSuppressedDestinationsRequest(input *ListSuppressedDestinationsInput) (req *request.Request, output *ListSuppressedDestinationsOutput) {
2847	op := &request.Operation{
2848		Name:       opListSuppressedDestinations,
2849		HTTPMethod: "GET",
2850		HTTPPath:   "/v2/email/suppression/addresses",
2851		Paginator: &request.Paginator{
2852			InputTokens:     []string{"NextToken"},
2853			OutputTokens:    []string{"NextToken"},
2854			LimitToken:      "PageSize",
2855			TruncationToken: "",
2856		},
2857	}
2858
2859	if input == nil {
2860		input = &ListSuppressedDestinationsInput{}
2861	}
2862
2863	output = &ListSuppressedDestinationsOutput{}
2864	req = c.newRequest(op, input, output)
2865	return
2866}
2867
2868// ListSuppressedDestinations API operation for Amazon Simple Email Service.
2869//
2870// Retrieves a list of email addresses that are on the suppression list for
2871// your account.
2872//
2873// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2874// with awserr.Error's Code and Message methods to get detailed information about
2875// the error.
2876//
2877// See the AWS API reference guide for Amazon Simple Email Service's
2878// API operation ListSuppressedDestinations for usage and error information.
2879//
2880// Returned Error Types:
2881//   * BadRequestException
2882//   The input you provided is invalid.
2883//
2884//   * TooManyRequestsException
2885//   Too many requests have been made to the operation.
2886//
2887//   * InvalidNextTokenException
2888//   The specified request includes an invalid or expired token.
2889//
2890// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/ListSuppressedDestinations
2891func (c *SESV2) ListSuppressedDestinations(input *ListSuppressedDestinationsInput) (*ListSuppressedDestinationsOutput, error) {
2892	req, out := c.ListSuppressedDestinationsRequest(input)
2893	return out, req.Send()
2894}
2895
2896// ListSuppressedDestinationsWithContext is the same as ListSuppressedDestinations with the addition of
2897// the ability to pass a context and additional request options.
2898//
2899// See ListSuppressedDestinations for details on how to use this API operation.
2900//
2901// The context must be non-nil and will be used for request cancellation. If
2902// the context is nil a panic will occur. In the future the SDK may create
2903// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2904// for more information on using Contexts.
2905func (c *SESV2) ListSuppressedDestinationsWithContext(ctx aws.Context, input *ListSuppressedDestinationsInput, opts ...request.Option) (*ListSuppressedDestinationsOutput, error) {
2906	req, out := c.ListSuppressedDestinationsRequest(input)
2907	req.SetContext(ctx)
2908	req.ApplyOptions(opts...)
2909	return out, req.Send()
2910}
2911
2912// ListSuppressedDestinationsPages iterates over the pages of a ListSuppressedDestinations operation,
2913// calling the "fn" function with the response data for each page. To stop
2914// iterating, return false from the fn function.
2915//
2916// See ListSuppressedDestinations method for more information on how to use this operation.
2917//
2918// Note: This operation can generate multiple requests to a service.
2919//
2920//    // Example iterating over at most 3 pages of a ListSuppressedDestinations operation.
2921//    pageNum := 0
2922//    err := client.ListSuppressedDestinationsPages(params,
2923//        func(page *sesv2.ListSuppressedDestinationsOutput, lastPage bool) bool {
2924//            pageNum++
2925//            fmt.Println(page)
2926//            return pageNum <= 3
2927//        })
2928//
2929func (c *SESV2) ListSuppressedDestinationsPages(input *ListSuppressedDestinationsInput, fn func(*ListSuppressedDestinationsOutput, bool) bool) error {
2930	return c.ListSuppressedDestinationsPagesWithContext(aws.BackgroundContext(), input, fn)
2931}
2932
2933// ListSuppressedDestinationsPagesWithContext same as ListSuppressedDestinationsPages except
2934// it takes a Context and allows setting request options on the pages.
2935//
2936// The context must be non-nil and will be used for request cancellation. If
2937// the context is nil a panic will occur. In the future the SDK may create
2938// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2939// for more information on using Contexts.
2940func (c *SESV2) ListSuppressedDestinationsPagesWithContext(ctx aws.Context, input *ListSuppressedDestinationsInput, fn func(*ListSuppressedDestinationsOutput, bool) bool, opts ...request.Option) error {
2941	p := request.Pagination{
2942		NewRequest: func() (*request.Request, error) {
2943			var inCpy *ListSuppressedDestinationsInput
2944			if input != nil {
2945				tmp := *input
2946				inCpy = &tmp
2947			}
2948			req, _ := c.ListSuppressedDestinationsRequest(inCpy)
2949			req.SetContext(ctx)
2950			req.ApplyOptions(opts...)
2951			return req, nil
2952		},
2953	}
2954
2955	for p.Next() {
2956		if !fn(p.Page().(*ListSuppressedDestinationsOutput), !p.HasNextPage()) {
2957			break
2958		}
2959	}
2960
2961	return p.Err()
2962}
2963
2964const opListTagsForResource = "ListTagsForResource"
2965
2966// ListTagsForResourceRequest generates a "aws/request.Request" representing the
2967// client's request for the ListTagsForResource operation. The "output" return
2968// value will be populated with the request's response once the request completes
2969// successfully.
2970//
2971// Use "Send" method on the returned Request to send the API call to the service.
2972// the "output" return value is not valid until after Send returns without error.
2973//
2974// See ListTagsForResource for more information on using the ListTagsForResource
2975// API call, and error handling.
2976//
2977// This method is useful when you want to inject custom logic or configuration
2978// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2979//
2980//
2981//    // Example sending a request using the ListTagsForResourceRequest method.
2982//    req, resp := client.ListTagsForResourceRequest(params)
2983//
2984//    err := req.Send()
2985//    if err == nil { // resp is now filled
2986//        fmt.Println(resp)
2987//    }
2988//
2989// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/ListTagsForResource
2990func (c *SESV2) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
2991	op := &request.Operation{
2992		Name:       opListTagsForResource,
2993		HTTPMethod: "GET",
2994		HTTPPath:   "/v2/email/tags",
2995	}
2996
2997	if input == nil {
2998		input = &ListTagsForResourceInput{}
2999	}
3000
3001	output = &ListTagsForResourceOutput{}
3002	req = c.newRequest(op, input, output)
3003	return
3004}
3005
3006// ListTagsForResource API operation for Amazon Simple Email Service.
3007//
3008// Retrieve a list of the tags (keys and values) that are associated with a
3009// specified resource. A tag is a label that you optionally define and associate
3010// with a resource. Each tag consists of a required tag key and an optional
3011// associated tag value. A tag key is a general label that acts as a category
3012// for more specific tag values. A tag value acts as a descriptor within a tag
3013// key.
3014//
3015// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3016// with awserr.Error's Code and Message methods to get detailed information about
3017// the error.
3018//
3019// See the AWS API reference guide for Amazon Simple Email Service's
3020// API operation ListTagsForResource for usage and error information.
3021//
3022// Returned Error Types:
3023//   * BadRequestException
3024//   The input you provided is invalid.
3025//
3026//   * NotFoundException
3027//   The resource you attempted to access doesn't exist.
3028//
3029//   * TooManyRequestsException
3030//   Too many requests have been made to the operation.
3031//
3032// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/ListTagsForResource
3033func (c *SESV2) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
3034	req, out := c.ListTagsForResourceRequest(input)
3035	return out, req.Send()
3036}
3037
3038// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
3039// the ability to pass a context and additional request options.
3040//
3041// See ListTagsForResource for details on how to use this API operation.
3042//
3043// The context must be non-nil and will be used for request cancellation. If
3044// the context is nil a panic will occur. In the future the SDK may create
3045// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3046// for more information on using Contexts.
3047func (c *SESV2) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
3048	req, out := c.ListTagsForResourceRequest(input)
3049	req.SetContext(ctx)
3050	req.ApplyOptions(opts...)
3051	return out, req.Send()
3052}
3053
3054const opPutAccountDedicatedIpWarmupAttributes = "PutAccountDedicatedIpWarmupAttributes"
3055
3056// PutAccountDedicatedIpWarmupAttributesRequest generates a "aws/request.Request" representing the
3057// client's request for the PutAccountDedicatedIpWarmupAttributes operation. The "output" return
3058// value will be populated with the request's response once the request completes
3059// successfully.
3060//
3061// Use "Send" method on the returned Request to send the API call to the service.
3062// the "output" return value is not valid until after Send returns without error.
3063//
3064// See PutAccountDedicatedIpWarmupAttributes for more information on using the PutAccountDedicatedIpWarmupAttributes
3065// API call, and error handling.
3066//
3067// This method is useful when you want to inject custom logic or configuration
3068// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3069//
3070//
3071//    // Example sending a request using the PutAccountDedicatedIpWarmupAttributesRequest method.
3072//    req, resp := client.PutAccountDedicatedIpWarmupAttributesRequest(params)
3073//
3074//    err := req.Send()
3075//    if err == nil { // resp is now filled
3076//        fmt.Println(resp)
3077//    }
3078//
3079// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/PutAccountDedicatedIpWarmupAttributes
3080func (c *SESV2) PutAccountDedicatedIpWarmupAttributesRequest(input *PutAccountDedicatedIpWarmupAttributesInput) (req *request.Request, output *PutAccountDedicatedIpWarmupAttributesOutput) {
3081	op := &request.Operation{
3082		Name:       opPutAccountDedicatedIpWarmupAttributes,
3083		HTTPMethod: "PUT",
3084		HTTPPath:   "/v2/email/account/dedicated-ips/warmup",
3085	}
3086
3087	if input == nil {
3088		input = &PutAccountDedicatedIpWarmupAttributesInput{}
3089	}
3090
3091	output = &PutAccountDedicatedIpWarmupAttributesOutput{}
3092	req = c.newRequest(op, input, output)
3093	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3094	return
3095}
3096
3097// PutAccountDedicatedIpWarmupAttributes API operation for Amazon Simple Email Service.
3098//
3099// Enable or disable the automatic warm-up feature for dedicated IP addresses.
3100//
3101// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3102// with awserr.Error's Code and Message methods to get detailed information about
3103// the error.
3104//
3105// See the AWS API reference guide for Amazon Simple Email Service's
3106// API operation PutAccountDedicatedIpWarmupAttributes for usage and error information.
3107//
3108// Returned Error Types:
3109//   * TooManyRequestsException
3110//   Too many requests have been made to the operation.
3111//
3112//   * BadRequestException
3113//   The input you provided is invalid.
3114//
3115// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/PutAccountDedicatedIpWarmupAttributes
3116func (c *SESV2) PutAccountDedicatedIpWarmupAttributes(input *PutAccountDedicatedIpWarmupAttributesInput) (*PutAccountDedicatedIpWarmupAttributesOutput, error) {
3117	req, out := c.PutAccountDedicatedIpWarmupAttributesRequest(input)
3118	return out, req.Send()
3119}
3120
3121// PutAccountDedicatedIpWarmupAttributesWithContext is the same as PutAccountDedicatedIpWarmupAttributes with the addition of
3122// the ability to pass a context and additional request options.
3123//
3124// See PutAccountDedicatedIpWarmupAttributes for details on how to use this API operation.
3125//
3126// The context must be non-nil and will be used for request cancellation. If
3127// the context is nil a panic will occur. In the future the SDK may create
3128// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3129// for more information on using Contexts.
3130func (c *SESV2) PutAccountDedicatedIpWarmupAttributesWithContext(ctx aws.Context, input *PutAccountDedicatedIpWarmupAttributesInput, opts ...request.Option) (*PutAccountDedicatedIpWarmupAttributesOutput, error) {
3131	req, out := c.PutAccountDedicatedIpWarmupAttributesRequest(input)
3132	req.SetContext(ctx)
3133	req.ApplyOptions(opts...)
3134	return out, req.Send()
3135}
3136
3137const opPutAccountSendingAttributes = "PutAccountSendingAttributes"
3138
3139// PutAccountSendingAttributesRequest generates a "aws/request.Request" representing the
3140// client's request for the PutAccountSendingAttributes operation. The "output" return
3141// value will be populated with the request's response once the request completes
3142// successfully.
3143//
3144// Use "Send" method on the returned Request to send the API call to the service.
3145// the "output" return value is not valid until after Send returns without error.
3146//
3147// See PutAccountSendingAttributes for more information on using the PutAccountSendingAttributes
3148// API call, and error handling.
3149//
3150// This method is useful when you want to inject custom logic or configuration
3151// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3152//
3153//
3154//    // Example sending a request using the PutAccountSendingAttributesRequest method.
3155//    req, resp := client.PutAccountSendingAttributesRequest(params)
3156//
3157//    err := req.Send()
3158//    if err == nil { // resp is now filled
3159//        fmt.Println(resp)
3160//    }
3161//
3162// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/PutAccountSendingAttributes
3163func (c *SESV2) PutAccountSendingAttributesRequest(input *PutAccountSendingAttributesInput) (req *request.Request, output *PutAccountSendingAttributesOutput) {
3164	op := &request.Operation{
3165		Name:       opPutAccountSendingAttributes,
3166		HTTPMethod: "PUT",
3167		HTTPPath:   "/v2/email/account/sending",
3168	}
3169
3170	if input == nil {
3171		input = &PutAccountSendingAttributesInput{}
3172	}
3173
3174	output = &PutAccountSendingAttributesOutput{}
3175	req = c.newRequest(op, input, output)
3176	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3177	return
3178}
3179
3180// PutAccountSendingAttributes API operation for Amazon Simple Email Service.
3181//
3182// Enable or disable the ability of your account to send email.
3183//
3184// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3185// with awserr.Error's Code and Message methods to get detailed information about
3186// the error.
3187//
3188// See the AWS API reference guide for Amazon Simple Email Service's
3189// API operation PutAccountSendingAttributes for usage and error information.
3190//
3191// Returned Error Types:
3192//   * TooManyRequestsException
3193//   Too many requests have been made to the operation.
3194//
3195//   * BadRequestException
3196//   The input you provided is invalid.
3197//
3198// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/PutAccountSendingAttributes
3199func (c *SESV2) PutAccountSendingAttributes(input *PutAccountSendingAttributesInput) (*PutAccountSendingAttributesOutput, error) {
3200	req, out := c.PutAccountSendingAttributesRequest(input)
3201	return out, req.Send()
3202}
3203
3204// PutAccountSendingAttributesWithContext is the same as PutAccountSendingAttributes with the addition of
3205// the ability to pass a context and additional request options.
3206//
3207// See PutAccountSendingAttributes for details on how to use this API operation.
3208//
3209// The context must be non-nil and will be used for request cancellation. If
3210// the context is nil a panic will occur. In the future the SDK may create
3211// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3212// for more information on using Contexts.
3213func (c *SESV2) PutAccountSendingAttributesWithContext(ctx aws.Context, input *PutAccountSendingAttributesInput, opts ...request.Option) (*PutAccountSendingAttributesOutput, error) {
3214	req, out := c.PutAccountSendingAttributesRequest(input)
3215	req.SetContext(ctx)
3216	req.ApplyOptions(opts...)
3217	return out, req.Send()
3218}
3219
3220const opPutAccountSuppressionAttributes = "PutAccountSuppressionAttributes"
3221
3222// PutAccountSuppressionAttributesRequest generates a "aws/request.Request" representing the
3223// client's request for the PutAccountSuppressionAttributes operation. The "output" return
3224// value will be populated with the request's response once the request completes
3225// successfully.
3226//
3227// Use "Send" method on the returned Request to send the API call to the service.
3228// the "output" return value is not valid until after Send returns without error.
3229//
3230// See PutAccountSuppressionAttributes for more information on using the PutAccountSuppressionAttributes
3231// API call, and error handling.
3232//
3233// This method is useful when you want to inject custom logic or configuration
3234// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3235//
3236//
3237//    // Example sending a request using the PutAccountSuppressionAttributesRequest method.
3238//    req, resp := client.PutAccountSuppressionAttributesRequest(params)
3239//
3240//    err := req.Send()
3241//    if err == nil { // resp is now filled
3242//        fmt.Println(resp)
3243//    }
3244//
3245// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/PutAccountSuppressionAttributes
3246func (c *SESV2) PutAccountSuppressionAttributesRequest(input *PutAccountSuppressionAttributesInput) (req *request.Request, output *PutAccountSuppressionAttributesOutput) {
3247	op := &request.Operation{
3248		Name:       opPutAccountSuppressionAttributes,
3249		HTTPMethod: "PUT",
3250		HTTPPath:   "/v2/email/account/suppression",
3251	}
3252
3253	if input == nil {
3254		input = &PutAccountSuppressionAttributesInput{}
3255	}
3256
3257	output = &PutAccountSuppressionAttributesOutput{}
3258	req = c.newRequest(op, input, output)
3259	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3260	return
3261}
3262
3263// PutAccountSuppressionAttributes API operation for Amazon Simple Email Service.
3264//
3265// Change the settings for the account-level suppression list.
3266//
3267// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3268// with awserr.Error's Code and Message methods to get detailed information about
3269// the error.
3270//
3271// See the AWS API reference guide for Amazon Simple Email Service's
3272// API operation PutAccountSuppressionAttributes for usage and error information.
3273//
3274// Returned Error Types:
3275//   * TooManyRequestsException
3276//   Too many requests have been made to the operation.
3277//
3278//   * BadRequestException
3279//   The input you provided is invalid.
3280//
3281// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/PutAccountSuppressionAttributes
3282func (c *SESV2) PutAccountSuppressionAttributes(input *PutAccountSuppressionAttributesInput) (*PutAccountSuppressionAttributesOutput, error) {
3283	req, out := c.PutAccountSuppressionAttributesRequest(input)
3284	return out, req.Send()
3285}
3286
3287// PutAccountSuppressionAttributesWithContext is the same as PutAccountSuppressionAttributes with the addition of
3288// the ability to pass a context and additional request options.
3289//
3290// See PutAccountSuppressionAttributes 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 *SESV2) PutAccountSuppressionAttributesWithContext(ctx aws.Context, input *PutAccountSuppressionAttributesInput, opts ...request.Option) (*PutAccountSuppressionAttributesOutput, error) {
3297	req, out := c.PutAccountSuppressionAttributesRequest(input)
3298	req.SetContext(ctx)
3299	req.ApplyOptions(opts...)
3300	return out, req.Send()
3301}
3302
3303const opPutConfigurationSetDeliveryOptions = "PutConfigurationSetDeliveryOptions"
3304
3305// PutConfigurationSetDeliveryOptionsRequest generates a "aws/request.Request" representing the
3306// client's request for the PutConfigurationSetDeliveryOptions operation. The "output" return
3307// value will be populated with the request's response once the request completes
3308// successfully.
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 PutConfigurationSetDeliveryOptions for more information on using the PutConfigurationSetDeliveryOptions
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 PutConfigurationSetDeliveryOptionsRequest method.
3321//    req, resp := client.PutConfigurationSetDeliveryOptionsRequest(params)
3322//
3323//    err := req.Send()
3324//    if err == nil { // resp is now filled
3325//        fmt.Println(resp)
3326//    }
3327//
3328// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/PutConfigurationSetDeliveryOptions
3329func (c *SESV2) PutConfigurationSetDeliveryOptionsRequest(input *PutConfigurationSetDeliveryOptionsInput) (req *request.Request, output *PutConfigurationSetDeliveryOptionsOutput) {
3330	op := &request.Operation{
3331		Name:       opPutConfigurationSetDeliveryOptions,
3332		HTTPMethod: "PUT",
3333		HTTPPath:   "/v2/email/configuration-sets/{ConfigurationSetName}/delivery-options",
3334	}
3335
3336	if input == nil {
3337		input = &PutConfigurationSetDeliveryOptionsInput{}
3338	}
3339
3340	output = &PutConfigurationSetDeliveryOptionsOutput{}
3341	req = c.newRequest(op, input, output)
3342	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3343	return
3344}
3345
3346// PutConfigurationSetDeliveryOptions API operation for Amazon Simple Email Service.
3347//
3348// Associate a configuration set with a dedicated IP pool. You can use dedicated
3349// IP pools to create groups of dedicated IP addresses for sending specific
3350// types of email.
3351//
3352// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3353// with awserr.Error's Code and Message methods to get detailed information about
3354// the error.
3355//
3356// See the AWS API reference guide for Amazon Simple Email Service's
3357// API operation PutConfigurationSetDeliveryOptions for usage and error information.
3358//
3359// Returned Error Types:
3360//   * NotFoundException
3361//   The resource you attempted to access doesn't exist.
3362//
3363//   * TooManyRequestsException
3364//   Too many requests have been made to the operation.
3365//
3366//   * BadRequestException
3367//   The input you provided is invalid.
3368//
3369// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/PutConfigurationSetDeliveryOptions
3370func (c *SESV2) PutConfigurationSetDeliveryOptions(input *PutConfigurationSetDeliveryOptionsInput) (*PutConfigurationSetDeliveryOptionsOutput, error) {
3371	req, out := c.PutConfigurationSetDeliveryOptionsRequest(input)
3372	return out, req.Send()
3373}
3374
3375// PutConfigurationSetDeliveryOptionsWithContext is the same as PutConfigurationSetDeliveryOptions with the addition of
3376// the ability to pass a context and additional request options.
3377//
3378// See PutConfigurationSetDeliveryOptions for details on how to use this API operation.
3379//
3380// The context must be non-nil and will be used for request cancellation. If
3381// the context is nil a panic will occur. In the future the SDK may create
3382// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3383// for more information on using Contexts.
3384func (c *SESV2) PutConfigurationSetDeliveryOptionsWithContext(ctx aws.Context, input *PutConfigurationSetDeliveryOptionsInput, opts ...request.Option) (*PutConfigurationSetDeliveryOptionsOutput, error) {
3385	req, out := c.PutConfigurationSetDeliveryOptionsRequest(input)
3386	req.SetContext(ctx)
3387	req.ApplyOptions(opts...)
3388	return out, req.Send()
3389}
3390
3391const opPutConfigurationSetReputationOptions = "PutConfigurationSetReputationOptions"
3392
3393// PutConfigurationSetReputationOptionsRequest generates a "aws/request.Request" representing the
3394// client's request for the PutConfigurationSetReputationOptions operation. The "output" return
3395// value will be populated with the request's response once the request completes
3396// successfully.
3397//
3398// Use "Send" method on the returned Request to send the API call to the service.
3399// the "output" return value is not valid until after Send returns without error.
3400//
3401// See PutConfigurationSetReputationOptions for more information on using the PutConfigurationSetReputationOptions
3402// API call, and error handling.
3403//
3404// This method is useful when you want to inject custom logic or configuration
3405// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3406//
3407//
3408//    // Example sending a request using the PutConfigurationSetReputationOptionsRequest method.
3409//    req, resp := client.PutConfigurationSetReputationOptionsRequest(params)
3410//
3411//    err := req.Send()
3412//    if err == nil { // resp is now filled
3413//        fmt.Println(resp)
3414//    }
3415//
3416// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/PutConfigurationSetReputationOptions
3417func (c *SESV2) PutConfigurationSetReputationOptionsRequest(input *PutConfigurationSetReputationOptionsInput) (req *request.Request, output *PutConfigurationSetReputationOptionsOutput) {
3418	op := &request.Operation{
3419		Name:       opPutConfigurationSetReputationOptions,
3420		HTTPMethod: "PUT",
3421		HTTPPath:   "/v2/email/configuration-sets/{ConfigurationSetName}/reputation-options",
3422	}
3423
3424	if input == nil {
3425		input = &PutConfigurationSetReputationOptionsInput{}
3426	}
3427
3428	output = &PutConfigurationSetReputationOptionsOutput{}
3429	req = c.newRequest(op, input, output)
3430	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3431	return
3432}
3433
3434// PutConfigurationSetReputationOptions API operation for Amazon Simple Email Service.
3435//
3436// Enable or disable collection of reputation metrics for emails that you send
3437// using a particular configuration set in a specific AWS Region.
3438//
3439// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3440// with awserr.Error's Code and Message methods to get detailed information about
3441// the error.
3442//
3443// See the AWS API reference guide for Amazon Simple Email Service's
3444// API operation PutConfigurationSetReputationOptions for usage and error information.
3445//
3446// Returned Error Types:
3447//   * NotFoundException
3448//   The resource you attempted to access doesn't exist.
3449//
3450//   * TooManyRequestsException
3451//   Too many requests have been made to the operation.
3452//
3453//   * BadRequestException
3454//   The input you provided is invalid.
3455//
3456// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/PutConfigurationSetReputationOptions
3457func (c *SESV2) PutConfigurationSetReputationOptions(input *PutConfigurationSetReputationOptionsInput) (*PutConfigurationSetReputationOptionsOutput, error) {
3458	req, out := c.PutConfigurationSetReputationOptionsRequest(input)
3459	return out, req.Send()
3460}
3461
3462// PutConfigurationSetReputationOptionsWithContext is the same as PutConfigurationSetReputationOptions with the addition of
3463// the ability to pass a context and additional request options.
3464//
3465// See PutConfigurationSetReputationOptions for details on how to use this API operation.
3466//
3467// The context must be non-nil and will be used for request cancellation. If
3468// the context is nil a panic will occur. In the future the SDK may create
3469// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3470// for more information on using Contexts.
3471func (c *SESV2) PutConfigurationSetReputationOptionsWithContext(ctx aws.Context, input *PutConfigurationSetReputationOptionsInput, opts ...request.Option) (*PutConfigurationSetReputationOptionsOutput, error) {
3472	req, out := c.PutConfigurationSetReputationOptionsRequest(input)
3473	req.SetContext(ctx)
3474	req.ApplyOptions(opts...)
3475	return out, req.Send()
3476}
3477
3478const opPutConfigurationSetSendingOptions = "PutConfigurationSetSendingOptions"
3479
3480// PutConfigurationSetSendingOptionsRequest generates a "aws/request.Request" representing the
3481// client's request for the PutConfigurationSetSendingOptions operation. The "output" return
3482// value will be populated with the request's response once the request completes
3483// successfully.
3484//
3485// Use "Send" method on the returned Request to send the API call to the service.
3486// the "output" return value is not valid until after Send returns without error.
3487//
3488// See PutConfigurationSetSendingOptions for more information on using the PutConfigurationSetSendingOptions
3489// API call, and error handling.
3490//
3491// This method is useful when you want to inject custom logic or configuration
3492// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3493//
3494//
3495//    // Example sending a request using the PutConfigurationSetSendingOptionsRequest method.
3496//    req, resp := client.PutConfigurationSetSendingOptionsRequest(params)
3497//
3498//    err := req.Send()
3499//    if err == nil { // resp is now filled
3500//        fmt.Println(resp)
3501//    }
3502//
3503// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/PutConfigurationSetSendingOptions
3504func (c *SESV2) PutConfigurationSetSendingOptionsRequest(input *PutConfigurationSetSendingOptionsInput) (req *request.Request, output *PutConfigurationSetSendingOptionsOutput) {
3505	op := &request.Operation{
3506		Name:       opPutConfigurationSetSendingOptions,
3507		HTTPMethod: "PUT",
3508		HTTPPath:   "/v2/email/configuration-sets/{ConfigurationSetName}/sending",
3509	}
3510
3511	if input == nil {
3512		input = &PutConfigurationSetSendingOptionsInput{}
3513	}
3514
3515	output = &PutConfigurationSetSendingOptionsOutput{}
3516	req = c.newRequest(op, input, output)
3517	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3518	return
3519}
3520
3521// PutConfigurationSetSendingOptions API operation for Amazon Simple Email Service.
3522//
3523// Enable or disable email sending for messages that use a particular configuration
3524// set in a specific AWS Region.
3525//
3526// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3527// with awserr.Error's Code and Message methods to get detailed information about
3528// the error.
3529//
3530// See the AWS API reference guide for Amazon Simple Email Service's
3531// API operation PutConfigurationSetSendingOptions for usage and error information.
3532//
3533// Returned Error Types:
3534//   * NotFoundException
3535//   The resource you attempted to access doesn't exist.
3536//
3537//   * TooManyRequestsException
3538//   Too many requests have been made to the operation.
3539//
3540//   * BadRequestException
3541//   The input you provided is invalid.
3542//
3543// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/PutConfigurationSetSendingOptions
3544func (c *SESV2) PutConfigurationSetSendingOptions(input *PutConfigurationSetSendingOptionsInput) (*PutConfigurationSetSendingOptionsOutput, error) {
3545	req, out := c.PutConfigurationSetSendingOptionsRequest(input)
3546	return out, req.Send()
3547}
3548
3549// PutConfigurationSetSendingOptionsWithContext is the same as PutConfigurationSetSendingOptions with the addition of
3550// the ability to pass a context and additional request options.
3551//
3552// See PutConfigurationSetSendingOptions for details on how to use this API operation.
3553//
3554// The context must be non-nil and will be used for request cancellation. If
3555// the context is nil a panic will occur. In the future the SDK may create
3556// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3557// for more information on using Contexts.
3558func (c *SESV2) PutConfigurationSetSendingOptionsWithContext(ctx aws.Context, input *PutConfigurationSetSendingOptionsInput, opts ...request.Option) (*PutConfigurationSetSendingOptionsOutput, error) {
3559	req, out := c.PutConfigurationSetSendingOptionsRequest(input)
3560	req.SetContext(ctx)
3561	req.ApplyOptions(opts...)
3562	return out, req.Send()
3563}
3564
3565const opPutConfigurationSetSuppressionOptions = "PutConfigurationSetSuppressionOptions"
3566
3567// PutConfigurationSetSuppressionOptionsRequest generates a "aws/request.Request" representing the
3568// client's request for the PutConfigurationSetSuppressionOptions operation. The "output" return
3569// value will be populated with the request's response once the request completes
3570// successfully.
3571//
3572// Use "Send" method on the returned Request to send the API call to the service.
3573// the "output" return value is not valid until after Send returns without error.
3574//
3575// See PutConfigurationSetSuppressionOptions for more information on using the PutConfigurationSetSuppressionOptions
3576// API call, and error handling.
3577//
3578// This method is useful when you want to inject custom logic or configuration
3579// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3580//
3581//
3582//    // Example sending a request using the PutConfigurationSetSuppressionOptionsRequest method.
3583//    req, resp := client.PutConfigurationSetSuppressionOptionsRequest(params)
3584//
3585//    err := req.Send()
3586//    if err == nil { // resp is now filled
3587//        fmt.Println(resp)
3588//    }
3589//
3590// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/PutConfigurationSetSuppressionOptions
3591func (c *SESV2) PutConfigurationSetSuppressionOptionsRequest(input *PutConfigurationSetSuppressionOptionsInput) (req *request.Request, output *PutConfigurationSetSuppressionOptionsOutput) {
3592	op := &request.Operation{
3593		Name:       opPutConfigurationSetSuppressionOptions,
3594		HTTPMethod: "PUT",
3595		HTTPPath:   "/v2/email/configuration-sets/{ConfigurationSetName}/suppression-options",
3596	}
3597
3598	if input == nil {
3599		input = &PutConfigurationSetSuppressionOptionsInput{}
3600	}
3601
3602	output = &PutConfigurationSetSuppressionOptionsOutput{}
3603	req = c.newRequest(op, input, output)
3604	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3605	return
3606}
3607
3608// PutConfigurationSetSuppressionOptions API operation for Amazon Simple Email Service.
3609//
3610// Specify the account suppression list preferences for a configuration set.
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 PutConfigurationSetSuppressionOptions for usage and error information.
3618//
3619// Returned Error Types:
3620//   * NotFoundException
3621//   The resource you attempted to access doesn't exist.
3622//
3623//   * TooManyRequestsException
3624//   Too many requests have been made to the operation.
3625//
3626//   * BadRequestException
3627//   The input you provided is invalid.
3628//
3629// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/PutConfigurationSetSuppressionOptions
3630func (c *SESV2) PutConfigurationSetSuppressionOptions(input *PutConfigurationSetSuppressionOptionsInput) (*PutConfigurationSetSuppressionOptionsOutput, error) {
3631	req, out := c.PutConfigurationSetSuppressionOptionsRequest(input)
3632	return out, req.Send()
3633}
3634
3635// PutConfigurationSetSuppressionOptionsWithContext is the same as PutConfigurationSetSuppressionOptions with the addition of
3636// the ability to pass a context and additional request options.
3637//
3638// See PutConfigurationSetSuppressionOptions for details on how to use this API operation.
3639//
3640// The context must be non-nil and will be used for request cancellation. If
3641// the context is nil a panic will occur. In the future the SDK may create
3642// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3643// for more information on using Contexts.
3644func (c *SESV2) PutConfigurationSetSuppressionOptionsWithContext(ctx aws.Context, input *PutConfigurationSetSuppressionOptionsInput, opts ...request.Option) (*PutConfigurationSetSuppressionOptionsOutput, error) {
3645	req, out := c.PutConfigurationSetSuppressionOptionsRequest(input)
3646	req.SetContext(ctx)
3647	req.ApplyOptions(opts...)
3648	return out, req.Send()
3649}
3650
3651const opPutConfigurationSetTrackingOptions = "PutConfigurationSetTrackingOptions"
3652
3653// PutConfigurationSetTrackingOptionsRequest generates a "aws/request.Request" representing the
3654// client's request for the PutConfigurationSetTrackingOptions operation. The "output" return
3655// value will be populated with the request's response once the request completes
3656// successfully.
3657//
3658// Use "Send" method on the returned Request to send the API call to the service.
3659// the "output" return value is not valid until after Send returns without error.
3660//
3661// See PutConfigurationSetTrackingOptions for more information on using the PutConfigurationSetTrackingOptions
3662// API call, and error handling.
3663//
3664// This method is useful when you want to inject custom logic or configuration
3665// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3666//
3667//
3668//    // Example sending a request using the PutConfigurationSetTrackingOptionsRequest method.
3669//    req, resp := client.PutConfigurationSetTrackingOptionsRequest(params)
3670//
3671//    err := req.Send()
3672//    if err == nil { // resp is now filled
3673//        fmt.Println(resp)
3674//    }
3675//
3676// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/PutConfigurationSetTrackingOptions
3677func (c *SESV2) PutConfigurationSetTrackingOptionsRequest(input *PutConfigurationSetTrackingOptionsInput) (req *request.Request, output *PutConfigurationSetTrackingOptionsOutput) {
3678	op := &request.Operation{
3679		Name:       opPutConfigurationSetTrackingOptions,
3680		HTTPMethod: "PUT",
3681		HTTPPath:   "/v2/email/configuration-sets/{ConfigurationSetName}/tracking-options",
3682	}
3683
3684	if input == nil {
3685		input = &PutConfigurationSetTrackingOptionsInput{}
3686	}
3687
3688	output = &PutConfigurationSetTrackingOptionsOutput{}
3689	req = c.newRequest(op, input, output)
3690	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3691	return
3692}
3693
3694// PutConfigurationSetTrackingOptions API operation for Amazon Simple Email Service.
3695//
3696// Specify a custom domain to use for open and click tracking elements in email
3697// that you send.
3698//
3699// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3700// with awserr.Error's Code and Message methods to get detailed information about
3701// the error.
3702//
3703// See the AWS API reference guide for Amazon Simple Email Service's
3704// API operation PutConfigurationSetTrackingOptions for usage and error information.
3705//
3706// Returned Error Types:
3707//   * NotFoundException
3708//   The resource you attempted to access doesn't exist.
3709//
3710//   * TooManyRequestsException
3711//   Too many requests have been made to the operation.
3712//
3713//   * BadRequestException
3714//   The input you provided is invalid.
3715//
3716// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/PutConfigurationSetTrackingOptions
3717func (c *SESV2) PutConfigurationSetTrackingOptions(input *PutConfigurationSetTrackingOptionsInput) (*PutConfigurationSetTrackingOptionsOutput, error) {
3718	req, out := c.PutConfigurationSetTrackingOptionsRequest(input)
3719	return out, req.Send()
3720}
3721
3722// PutConfigurationSetTrackingOptionsWithContext is the same as PutConfigurationSetTrackingOptions with the addition of
3723// the ability to pass a context and additional request options.
3724//
3725// See PutConfigurationSetTrackingOptions for details on how to use this API operation.
3726//
3727// The context must be non-nil and will be used for request cancellation. If
3728// the context is nil a panic will occur. In the future the SDK may create
3729// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3730// for more information on using Contexts.
3731func (c *SESV2) PutConfigurationSetTrackingOptionsWithContext(ctx aws.Context, input *PutConfigurationSetTrackingOptionsInput, opts ...request.Option) (*PutConfigurationSetTrackingOptionsOutput, error) {
3732	req, out := c.PutConfigurationSetTrackingOptionsRequest(input)
3733	req.SetContext(ctx)
3734	req.ApplyOptions(opts...)
3735	return out, req.Send()
3736}
3737
3738const opPutDedicatedIpInPool = "PutDedicatedIpInPool"
3739
3740// PutDedicatedIpInPoolRequest generates a "aws/request.Request" representing the
3741// client's request for the PutDedicatedIpInPool operation. The "output" return
3742// value will be populated with the request's response once the request completes
3743// successfully.
3744//
3745// Use "Send" method on the returned Request to send the API call to the service.
3746// the "output" return value is not valid until after Send returns without error.
3747//
3748// See PutDedicatedIpInPool for more information on using the PutDedicatedIpInPool
3749// API call, and error handling.
3750//
3751// This method is useful when you want to inject custom logic or configuration
3752// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3753//
3754//
3755//    // Example sending a request using the PutDedicatedIpInPoolRequest method.
3756//    req, resp := client.PutDedicatedIpInPoolRequest(params)
3757//
3758//    err := req.Send()
3759//    if err == nil { // resp is now filled
3760//        fmt.Println(resp)
3761//    }
3762//
3763// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/PutDedicatedIpInPool
3764func (c *SESV2) PutDedicatedIpInPoolRequest(input *PutDedicatedIpInPoolInput) (req *request.Request, output *PutDedicatedIpInPoolOutput) {
3765	op := &request.Operation{
3766		Name:       opPutDedicatedIpInPool,
3767		HTTPMethod: "PUT",
3768		HTTPPath:   "/v2/email/dedicated-ips/{IP}/pool",
3769	}
3770
3771	if input == nil {
3772		input = &PutDedicatedIpInPoolInput{}
3773	}
3774
3775	output = &PutDedicatedIpInPoolOutput{}
3776	req = c.newRequest(op, input, output)
3777	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3778	return
3779}
3780
3781// PutDedicatedIpInPool API operation for Amazon Simple Email Service.
3782//
3783// Move a dedicated IP address to an existing dedicated IP pool.
3784//
3785// The dedicated IP address that you specify must already exist, and must be
3786// associated with your AWS account.
3787//
3788// The dedicated IP pool you specify must already exist. You can create a new
3789// pool by using the CreateDedicatedIpPool operation.
3790//
3791// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3792// with awserr.Error's Code and Message methods to get detailed information about
3793// the error.
3794//
3795// See the AWS API reference guide for Amazon Simple Email Service's
3796// API operation PutDedicatedIpInPool for usage and error information.
3797//
3798// Returned Error Types:
3799//   * NotFoundException
3800//   The resource you attempted to access doesn't exist.
3801//
3802//   * TooManyRequestsException
3803//   Too many requests have been made to the operation.
3804//
3805//   * BadRequestException
3806//   The input you provided is invalid.
3807//
3808// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/PutDedicatedIpInPool
3809func (c *SESV2) PutDedicatedIpInPool(input *PutDedicatedIpInPoolInput) (*PutDedicatedIpInPoolOutput, error) {
3810	req, out := c.PutDedicatedIpInPoolRequest(input)
3811	return out, req.Send()
3812}
3813
3814// PutDedicatedIpInPoolWithContext is the same as PutDedicatedIpInPool with the addition of
3815// the ability to pass a context and additional request options.
3816//
3817// See PutDedicatedIpInPool for details on how to use this API operation.
3818//
3819// The context must be non-nil and will be used for request cancellation. If
3820// the context is nil a panic will occur. In the future the SDK may create
3821// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3822// for more information on using Contexts.
3823func (c *SESV2) PutDedicatedIpInPoolWithContext(ctx aws.Context, input *PutDedicatedIpInPoolInput, opts ...request.Option) (*PutDedicatedIpInPoolOutput, error) {
3824	req, out := c.PutDedicatedIpInPoolRequest(input)
3825	req.SetContext(ctx)
3826	req.ApplyOptions(opts...)
3827	return out, req.Send()
3828}
3829
3830const opPutDedicatedIpWarmupAttributes = "PutDedicatedIpWarmupAttributes"
3831
3832// PutDedicatedIpWarmupAttributesRequest generates a "aws/request.Request" representing the
3833// client's request for the PutDedicatedIpWarmupAttributes operation. The "output" return
3834// value will be populated with the request's response once the request completes
3835// successfully.
3836//
3837// Use "Send" method on the returned Request to send the API call to the service.
3838// the "output" return value is not valid until after Send returns without error.
3839//
3840// See PutDedicatedIpWarmupAttributes for more information on using the PutDedicatedIpWarmupAttributes
3841// API call, and error handling.
3842//
3843// This method is useful when you want to inject custom logic or configuration
3844// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3845//
3846//
3847//    // Example sending a request using the PutDedicatedIpWarmupAttributesRequest method.
3848//    req, resp := client.PutDedicatedIpWarmupAttributesRequest(params)
3849//
3850//    err := req.Send()
3851//    if err == nil { // resp is now filled
3852//        fmt.Println(resp)
3853//    }
3854//
3855// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/PutDedicatedIpWarmupAttributes
3856func (c *SESV2) PutDedicatedIpWarmupAttributesRequest(input *PutDedicatedIpWarmupAttributesInput) (req *request.Request, output *PutDedicatedIpWarmupAttributesOutput) {
3857	op := &request.Operation{
3858		Name:       opPutDedicatedIpWarmupAttributes,
3859		HTTPMethod: "PUT",
3860		HTTPPath:   "/v2/email/dedicated-ips/{IP}/warmup",
3861	}
3862
3863	if input == nil {
3864		input = &PutDedicatedIpWarmupAttributesInput{}
3865	}
3866
3867	output = &PutDedicatedIpWarmupAttributesOutput{}
3868	req = c.newRequest(op, input, output)
3869	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3870	return
3871}
3872
3873// PutDedicatedIpWarmupAttributes API operation for Amazon Simple Email Service.
3874//
3875// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3876// with awserr.Error's Code and Message methods to get detailed information about
3877// the error.
3878//
3879// See the AWS API reference guide for Amazon Simple Email Service's
3880// API operation PutDedicatedIpWarmupAttributes for usage and error information.
3881//
3882// Returned Error Types:
3883//   * NotFoundException
3884//   The resource you attempted to access doesn't exist.
3885//
3886//   * TooManyRequestsException
3887//   Too many requests have been made to the operation.
3888//
3889//   * BadRequestException
3890//   The input you provided is invalid.
3891//
3892// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/PutDedicatedIpWarmupAttributes
3893func (c *SESV2) PutDedicatedIpWarmupAttributes(input *PutDedicatedIpWarmupAttributesInput) (*PutDedicatedIpWarmupAttributesOutput, error) {
3894	req, out := c.PutDedicatedIpWarmupAttributesRequest(input)
3895	return out, req.Send()
3896}
3897
3898// PutDedicatedIpWarmupAttributesWithContext is the same as PutDedicatedIpWarmupAttributes with the addition of
3899// the ability to pass a context and additional request options.
3900//
3901// See PutDedicatedIpWarmupAttributes for details on how to use this API operation.
3902//
3903// The context must be non-nil and will be used for request cancellation. If
3904// the context is nil a panic will occur. In the future the SDK may create
3905// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3906// for more information on using Contexts.
3907func (c *SESV2) PutDedicatedIpWarmupAttributesWithContext(ctx aws.Context, input *PutDedicatedIpWarmupAttributesInput, opts ...request.Option) (*PutDedicatedIpWarmupAttributesOutput, error) {
3908	req, out := c.PutDedicatedIpWarmupAttributesRequest(input)
3909	req.SetContext(ctx)
3910	req.ApplyOptions(opts...)
3911	return out, req.Send()
3912}
3913
3914const opPutDeliverabilityDashboardOption = "PutDeliverabilityDashboardOption"
3915
3916// PutDeliverabilityDashboardOptionRequest generates a "aws/request.Request" representing the
3917// client's request for the PutDeliverabilityDashboardOption operation. The "output" return
3918// value will be populated with the request's response once the request completes
3919// successfully.
3920//
3921// Use "Send" method on the returned Request to send the API call to the service.
3922// the "output" return value is not valid until after Send returns without error.
3923//
3924// See PutDeliverabilityDashboardOption for more information on using the PutDeliverabilityDashboardOption
3925// API call, and error handling.
3926//
3927// This method is useful when you want to inject custom logic or configuration
3928// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3929//
3930//
3931//    // Example sending a request using the PutDeliverabilityDashboardOptionRequest method.
3932//    req, resp := client.PutDeliverabilityDashboardOptionRequest(params)
3933//
3934//    err := req.Send()
3935//    if err == nil { // resp is now filled
3936//        fmt.Println(resp)
3937//    }
3938//
3939// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/PutDeliverabilityDashboardOption
3940func (c *SESV2) PutDeliverabilityDashboardOptionRequest(input *PutDeliverabilityDashboardOptionInput) (req *request.Request, output *PutDeliverabilityDashboardOptionOutput) {
3941	op := &request.Operation{
3942		Name:       opPutDeliverabilityDashboardOption,
3943		HTTPMethod: "PUT",
3944		HTTPPath:   "/v2/email/deliverability-dashboard",
3945	}
3946
3947	if input == nil {
3948		input = &PutDeliverabilityDashboardOptionInput{}
3949	}
3950
3951	output = &PutDeliverabilityDashboardOptionOutput{}
3952	req = c.newRequest(op, input, output)
3953	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3954	return
3955}
3956
3957// PutDeliverabilityDashboardOption API operation for Amazon Simple Email Service.
3958//
3959// Enable or disable the Deliverability dashboard. When you enable the Deliverability
3960// dashboard, you gain access to reputation, deliverability, and other metrics
3961// for the domains that you use to send email. You also gain the ability to
3962// perform predictive inbox placement tests.
3963//
3964// When you use the Deliverability dashboard, you pay a monthly subscription
3965// charge, in addition to any other fees that you accrue by using Amazon SES
3966// and other AWS services. For more information about the features and cost
3967// of a Deliverability dashboard subscription, see Amazon SES Pricing (http://aws.amazon.com/ses/pricing/).
3968//
3969// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3970// with awserr.Error's Code and Message methods to get detailed information about
3971// the error.
3972//
3973// See the AWS API reference guide for Amazon Simple Email Service's
3974// API operation PutDeliverabilityDashboardOption for usage and error information.
3975//
3976// Returned Error Types:
3977//   * AlreadyExistsException
3978//   The resource specified in your request already exists.
3979//
3980//   * NotFoundException
3981//   The resource you attempted to access doesn't exist.
3982//
3983//   * TooManyRequestsException
3984//   Too many requests have been made to the operation.
3985//
3986//   * LimitExceededException
3987//   There are too many instances of the specified resource type.
3988//
3989//   * BadRequestException
3990//   The input you provided is invalid.
3991//
3992// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/PutDeliverabilityDashboardOption
3993func (c *SESV2) PutDeliverabilityDashboardOption(input *PutDeliverabilityDashboardOptionInput) (*PutDeliverabilityDashboardOptionOutput, error) {
3994	req, out := c.PutDeliverabilityDashboardOptionRequest(input)
3995	return out, req.Send()
3996}
3997
3998// PutDeliverabilityDashboardOptionWithContext is the same as PutDeliverabilityDashboardOption with the addition of
3999// the ability to pass a context and additional request options.
4000//
4001// See PutDeliverabilityDashboardOption for details on how to use this API operation.
4002//
4003// The context must be non-nil and will be used for request cancellation. If
4004// the context is nil a panic will occur. In the future the SDK may create
4005// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4006// for more information on using Contexts.
4007func (c *SESV2) PutDeliverabilityDashboardOptionWithContext(ctx aws.Context, input *PutDeliverabilityDashboardOptionInput, opts ...request.Option) (*PutDeliverabilityDashboardOptionOutput, error) {
4008	req, out := c.PutDeliverabilityDashboardOptionRequest(input)
4009	req.SetContext(ctx)
4010	req.ApplyOptions(opts...)
4011	return out, req.Send()
4012}
4013
4014const opPutEmailIdentityDkimAttributes = "PutEmailIdentityDkimAttributes"
4015
4016// PutEmailIdentityDkimAttributesRequest generates a "aws/request.Request" representing the
4017// client's request for the PutEmailIdentityDkimAttributes operation. The "output" return
4018// value will be populated with the request's response once the request completes
4019// successfully.
4020//
4021// Use "Send" method on the returned Request to send the API call to the service.
4022// the "output" return value is not valid until after Send returns without error.
4023//
4024// See PutEmailIdentityDkimAttributes for more information on using the PutEmailIdentityDkimAttributes
4025// API call, and error handling.
4026//
4027// This method is useful when you want to inject custom logic or configuration
4028// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4029//
4030//
4031//    // Example sending a request using the PutEmailIdentityDkimAttributesRequest method.
4032//    req, resp := client.PutEmailIdentityDkimAttributesRequest(params)
4033//
4034//    err := req.Send()
4035//    if err == nil { // resp is now filled
4036//        fmt.Println(resp)
4037//    }
4038//
4039// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/PutEmailIdentityDkimAttributes
4040func (c *SESV2) PutEmailIdentityDkimAttributesRequest(input *PutEmailIdentityDkimAttributesInput) (req *request.Request, output *PutEmailIdentityDkimAttributesOutput) {
4041	op := &request.Operation{
4042		Name:       opPutEmailIdentityDkimAttributes,
4043		HTTPMethod: "PUT",
4044		HTTPPath:   "/v2/email/identities/{EmailIdentity}/dkim",
4045	}
4046
4047	if input == nil {
4048		input = &PutEmailIdentityDkimAttributesInput{}
4049	}
4050
4051	output = &PutEmailIdentityDkimAttributesOutput{}
4052	req = c.newRequest(op, input, output)
4053	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4054	return
4055}
4056
4057// PutEmailIdentityDkimAttributes API operation for Amazon Simple Email Service.
4058//
4059// Used to enable or disable DKIM authentication for an email identity.
4060//
4061// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4062// with awserr.Error's Code and Message methods to get detailed information about
4063// the error.
4064//
4065// See the AWS API reference guide for Amazon Simple Email Service's
4066// API operation PutEmailIdentityDkimAttributes for usage and error information.
4067//
4068// Returned Error Types:
4069//   * NotFoundException
4070//   The resource you attempted to access doesn't exist.
4071//
4072//   * TooManyRequestsException
4073//   Too many requests have been made to the operation.
4074//
4075//   * BadRequestException
4076//   The input you provided is invalid.
4077//
4078// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/PutEmailIdentityDkimAttributes
4079func (c *SESV2) PutEmailIdentityDkimAttributes(input *PutEmailIdentityDkimAttributesInput) (*PutEmailIdentityDkimAttributesOutput, error) {
4080	req, out := c.PutEmailIdentityDkimAttributesRequest(input)
4081	return out, req.Send()
4082}
4083
4084// PutEmailIdentityDkimAttributesWithContext is the same as PutEmailIdentityDkimAttributes with the addition of
4085// the ability to pass a context and additional request options.
4086//
4087// See PutEmailIdentityDkimAttributes for details on how to use this API operation.
4088//
4089// The context must be non-nil and will be used for request cancellation. If
4090// the context is nil a panic will occur. In the future the SDK may create
4091// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4092// for more information on using Contexts.
4093func (c *SESV2) PutEmailIdentityDkimAttributesWithContext(ctx aws.Context, input *PutEmailIdentityDkimAttributesInput, opts ...request.Option) (*PutEmailIdentityDkimAttributesOutput, error) {
4094	req, out := c.PutEmailIdentityDkimAttributesRequest(input)
4095	req.SetContext(ctx)
4096	req.ApplyOptions(opts...)
4097	return out, req.Send()
4098}
4099
4100const opPutEmailIdentityDkimSigningAttributes = "PutEmailIdentityDkimSigningAttributes"
4101
4102// PutEmailIdentityDkimSigningAttributesRequest generates a "aws/request.Request" representing the
4103// client's request for the PutEmailIdentityDkimSigningAttributes operation. The "output" return
4104// value will be populated with the request's response once the request completes
4105// successfully.
4106//
4107// Use "Send" method on the returned Request to send the API call to the service.
4108// the "output" return value is not valid until after Send returns without error.
4109//
4110// See PutEmailIdentityDkimSigningAttributes for more information on using the PutEmailIdentityDkimSigningAttributes
4111// API call, and error handling.
4112//
4113// This method is useful when you want to inject custom logic or configuration
4114// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4115//
4116//
4117//    // Example sending a request using the PutEmailIdentityDkimSigningAttributesRequest method.
4118//    req, resp := client.PutEmailIdentityDkimSigningAttributesRequest(params)
4119//
4120//    err := req.Send()
4121//    if err == nil { // resp is now filled
4122//        fmt.Println(resp)
4123//    }
4124//
4125// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/PutEmailIdentityDkimSigningAttributes
4126func (c *SESV2) PutEmailIdentityDkimSigningAttributesRequest(input *PutEmailIdentityDkimSigningAttributesInput) (req *request.Request, output *PutEmailIdentityDkimSigningAttributesOutput) {
4127	op := &request.Operation{
4128		Name:       opPutEmailIdentityDkimSigningAttributes,
4129		HTTPMethod: "PUT",
4130		HTTPPath:   "/v1/email/identities/{EmailIdentity}/dkim/signing",
4131	}
4132
4133	if input == nil {
4134		input = &PutEmailIdentityDkimSigningAttributesInput{}
4135	}
4136
4137	output = &PutEmailIdentityDkimSigningAttributesOutput{}
4138	req = c.newRequest(op, input, output)
4139	return
4140}
4141
4142// PutEmailIdentityDkimSigningAttributes API operation for Amazon Simple Email Service.
4143//
4144// Used to configure or change the DKIM authentication settings for an email
4145// domain identity. You can use this operation to do any of the following:
4146//
4147//    * Update the signing attributes for an identity that uses Bring Your Own
4148//    DKIM (BYODKIM).
4149//
4150//    * Change from using no DKIM authentication to using Easy DKIM.
4151//
4152//    * Change from using no DKIM authentication to using BYODKIM.
4153//
4154//    * Change from using Easy DKIM to using BYODKIM.
4155//
4156//    * Change from using BYODKIM to using Easy DKIM.
4157//
4158// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4159// with awserr.Error's Code and Message methods to get detailed information about
4160// the error.
4161//
4162// See the AWS API reference guide for Amazon Simple Email Service's
4163// API operation PutEmailIdentityDkimSigningAttributes for usage and error information.
4164//
4165// Returned Error Types:
4166//   * NotFoundException
4167//   The resource you attempted to access doesn't exist.
4168//
4169//   * TooManyRequestsException
4170//   Too many requests have been made to the operation.
4171//
4172//   * BadRequestException
4173//   The input you provided is invalid.
4174//
4175// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/PutEmailIdentityDkimSigningAttributes
4176func (c *SESV2) PutEmailIdentityDkimSigningAttributes(input *PutEmailIdentityDkimSigningAttributesInput) (*PutEmailIdentityDkimSigningAttributesOutput, error) {
4177	req, out := c.PutEmailIdentityDkimSigningAttributesRequest(input)
4178	return out, req.Send()
4179}
4180
4181// PutEmailIdentityDkimSigningAttributesWithContext is the same as PutEmailIdentityDkimSigningAttributes with the addition of
4182// the ability to pass a context and additional request options.
4183//
4184// See PutEmailIdentityDkimSigningAttributes for details on how to use this API operation.
4185//
4186// The context must be non-nil and will be used for request cancellation. If
4187// the context is nil a panic will occur. In the future the SDK may create
4188// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4189// for more information on using Contexts.
4190func (c *SESV2) PutEmailIdentityDkimSigningAttributesWithContext(ctx aws.Context, input *PutEmailIdentityDkimSigningAttributesInput, opts ...request.Option) (*PutEmailIdentityDkimSigningAttributesOutput, error) {
4191	req, out := c.PutEmailIdentityDkimSigningAttributesRequest(input)
4192	req.SetContext(ctx)
4193	req.ApplyOptions(opts...)
4194	return out, req.Send()
4195}
4196
4197const opPutEmailIdentityFeedbackAttributes = "PutEmailIdentityFeedbackAttributes"
4198
4199// PutEmailIdentityFeedbackAttributesRequest generates a "aws/request.Request" representing the
4200// client's request for the PutEmailIdentityFeedbackAttributes operation. The "output" return
4201// value will be populated with the request's response once the request completes
4202// successfully.
4203//
4204// Use "Send" method on the returned Request to send the API call to the service.
4205// the "output" return value is not valid until after Send returns without error.
4206//
4207// See PutEmailIdentityFeedbackAttributes for more information on using the PutEmailIdentityFeedbackAttributes
4208// API call, and error handling.
4209//
4210// This method is useful when you want to inject custom logic or configuration
4211// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4212//
4213//
4214//    // Example sending a request using the PutEmailIdentityFeedbackAttributesRequest method.
4215//    req, resp := client.PutEmailIdentityFeedbackAttributesRequest(params)
4216//
4217//    err := req.Send()
4218//    if err == nil { // resp is now filled
4219//        fmt.Println(resp)
4220//    }
4221//
4222// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/PutEmailIdentityFeedbackAttributes
4223func (c *SESV2) PutEmailIdentityFeedbackAttributesRequest(input *PutEmailIdentityFeedbackAttributesInput) (req *request.Request, output *PutEmailIdentityFeedbackAttributesOutput) {
4224	op := &request.Operation{
4225		Name:       opPutEmailIdentityFeedbackAttributes,
4226		HTTPMethod: "PUT",
4227		HTTPPath:   "/v2/email/identities/{EmailIdentity}/feedback",
4228	}
4229
4230	if input == nil {
4231		input = &PutEmailIdentityFeedbackAttributesInput{}
4232	}
4233
4234	output = &PutEmailIdentityFeedbackAttributesOutput{}
4235	req = c.newRequest(op, input, output)
4236	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4237	return
4238}
4239
4240// PutEmailIdentityFeedbackAttributes API operation for Amazon Simple Email Service.
4241//
4242// Used to enable or disable feedback forwarding for an identity. This setting
4243// determines what happens when an identity is used to send an email that results
4244// in a bounce or complaint event.
4245//
4246// If the value is true, you receive email notifications when bounce or complaint
4247// events occur. These notifications are sent to the address that you specified
4248// in the Return-Path header of the original email.
4249//
4250// You're required to have a method of tracking bounces and complaints. If you
4251// haven't set up another mechanism for receiving bounce or complaint notifications
4252// (for example, by setting up an event destination), you receive an email notification
4253// when these events occur (even if this setting is disabled).
4254//
4255// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4256// with awserr.Error's Code and Message methods to get detailed information about
4257// the error.
4258//
4259// See the AWS API reference guide for Amazon Simple Email Service's
4260// API operation PutEmailIdentityFeedbackAttributes for usage and error information.
4261//
4262// Returned Error Types:
4263//   * NotFoundException
4264//   The resource you attempted to access doesn't exist.
4265//
4266//   * TooManyRequestsException
4267//   Too many requests have been made to the operation.
4268//
4269//   * BadRequestException
4270//   The input you provided is invalid.
4271//
4272// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/PutEmailIdentityFeedbackAttributes
4273func (c *SESV2) PutEmailIdentityFeedbackAttributes(input *PutEmailIdentityFeedbackAttributesInput) (*PutEmailIdentityFeedbackAttributesOutput, error) {
4274	req, out := c.PutEmailIdentityFeedbackAttributesRequest(input)
4275	return out, req.Send()
4276}
4277
4278// PutEmailIdentityFeedbackAttributesWithContext is the same as PutEmailIdentityFeedbackAttributes with the addition of
4279// the ability to pass a context and additional request options.
4280//
4281// See PutEmailIdentityFeedbackAttributes for details on how to use this API operation.
4282//
4283// The context must be non-nil and will be used for request cancellation. If
4284// the context is nil a panic will occur. In the future the SDK may create
4285// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4286// for more information on using Contexts.
4287func (c *SESV2) PutEmailIdentityFeedbackAttributesWithContext(ctx aws.Context, input *PutEmailIdentityFeedbackAttributesInput, opts ...request.Option) (*PutEmailIdentityFeedbackAttributesOutput, error) {
4288	req, out := c.PutEmailIdentityFeedbackAttributesRequest(input)
4289	req.SetContext(ctx)
4290	req.ApplyOptions(opts...)
4291	return out, req.Send()
4292}
4293
4294const opPutEmailIdentityMailFromAttributes = "PutEmailIdentityMailFromAttributes"
4295
4296// PutEmailIdentityMailFromAttributesRequest generates a "aws/request.Request" representing the
4297// client's request for the PutEmailIdentityMailFromAttributes operation. The "output" return
4298// value will be populated with the request's response once the request completes
4299// successfully.
4300//
4301// Use "Send" method on the returned Request to send the API call to the service.
4302// the "output" return value is not valid until after Send returns without error.
4303//
4304// See PutEmailIdentityMailFromAttributes for more information on using the PutEmailIdentityMailFromAttributes
4305// API call, and error handling.
4306//
4307// This method is useful when you want to inject custom logic or configuration
4308// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4309//
4310//
4311//    // Example sending a request using the PutEmailIdentityMailFromAttributesRequest method.
4312//    req, resp := client.PutEmailIdentityMailFromAttributesRequest(params)
4313//
4314//    err := req.Send()
4315//    if err == nil { // resp is now filled
4316//        fmt.Println(resp)
4317//    }
4318//
4319// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/PutEmailIdentityMailFromAttributes
4320func (c *SESV2) PutEmailIdentityMailFromAttributesRequest(input *PutEmailIdentityMailFromAttributesInput) (req *request.Request, output *PutEmailIdentityMailFromAttributesOutput) {
4321	op := &request.Operation{
4322		Name:       opPutEmailIdentityMailFromAttributes,
4323		HTTPMethod: "PUT",
4324		HTTPPath:   "/v2/email/identities/{EmailIdentity}/mail-from",
4325	}
4326
4327	if input == nil {
4328		input = &PutEmailIdentityMailFromAttributesInput{}
4329	}
4330
4331	output = &PutEmailIdentityMailFromAttributesOutput{}
4332	req = c.newRequest(op, input, output)
4333	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4334	return
4335}
4336
4337// PutEmailIdentityMailFromAttributes API operation for Amazon Simple Email Service.
4338//
4339// Used to enable or disable the custom Mail-From domain configuration for an
4340// email identity.
4341//
4342// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4343// with awserr.Error's Code and Message methods to get detailed information about
4344// the error.
4345//
4346// See the AWS API reference guide for Amazon Simple Email Service's
4347// API operation PutEmailIdentityMailFromAttributes for usage and error information.
4348//
4349// Returned Error Types:
4350//   * NotFoundException
4351//   The resource you attempted to access doesn't exist.
4352//
4353//   * TooManyRequestsException
4354//   Too many requests have been made to the operation.
4355//
4356//   * BadRequestException
4357//   The input you provided is invalid.
4358//
4359// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/PutEmailIdentityMailFromAttributes
4360func (c *SESV2) PutEmailIdentityMailFromAttributes(input *PutEmailIdentityMailFromAttributesInput) (*PutEmailIdentityMailFromAttributesOutput, error) {
4361	req, out := c.PutEmailIdentityMailFromAttributesRequest(input)
4362	return out, req.Send()
4363}
4364
4365// PutEmailIdentityMailFromAttributesWithContext is the same as PutEmailIdentityMailFromAttributes with the addition of
4366// the ability to pass a context and additional request options.
4367//
4368// See PutEmailIdentityMailFromAttributes for details on how to use this API operation.
4369//
4370// The context must be non-nil and will be used for request cancellation. If
4371// the context is nil a panic will occur. In the future the SDK may create
4372// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4373// for more information on using Contexts.
4374func (c *SESV2) PutEmailIdentityMailFromAttributesWithContext(ctx aws.Context, input *PutEmailIdentityMailFromAttributesInput, opts ...request.Option) (*PutEmailIdentityMailFromAttributesOutput, error) {
4375	req, out := c.PutEmailIdentityMailFromAttributesRequest(input)
4376	req.SetContext(ctx)
4377	req.ApplyOptions(opts...)
4378	return out, req.Send()
4379}
4380
4381const opPutSuppressedDestination = "PutSuppressedDestination"
4382
4383// PutSuppressedDestinationRequest generates a "aws/request.Request" representing the
4384// client's request for the PutSuppressedDestination operation. The "output" return
4385// value will be populated with the request's response once the request completes
4386// successfully.
4387//
4388// Use "Send" method on the returned Request to send the API call to the service.
4389// the "output" return value is not valid until after Send returns without error.
4390//
4391// See PutSuppressedDestination for more information on using the PutSuppressedDestination
4392// API call, and error handling.
4393//
4394// This method is useful when you want to inject custom logic or configuration
4395// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4396//
4397//
4398//    // Example sending a request using the PutSuppressedDestinationRequest method.
4399//    req, resp := client.PutSuppressedDestinationRequest(params)
4400//
4401//    err := req.Send()
4402//    if err == nil { // resp is now filled
4403//        fmt.Println(resp)
4404//    }
4405//
4406// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/PutSuppressedDestination
4407func (c *SESV2) PutSuppressedDestinationRequest(input *PutSuppressedDestinationInput) (req *request.Request, output *PutSuppressedDestinationOutput) {
4408	op := &request.Operation{
4409		Name:       opPutSuppressedDestination,
4410		HTTPMethod: "PUT",
4411		HTTPPath:   "/v2/email/suppression/addresses",
4412	}
4413
4414	if input == nil {
4415		input = &PutSuppressedDestinationInput{}
4416	}
4417
4418	output = &PutSuppressedDestinationOutput{}
4419	req = c.newRequest(op, input, output)
4420	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4421	return
4422}
4423
4424// PutSuppressedDestination API operation for Amazon Simple Email Service.
4425//
4426// Adds an email address to the suppression list for your account.
4427//
4428// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4429// with awserr.Error's Code and Message methods to get detailed information about
4430// the error.
4431//
4432// See the AWS API reference guide for Amazon Simple Email Service's
4433// API operation PutSuppressedDestination for usage and error information.
4434//
4435// Returned Error Types:
4436//   * BadRequestException
4437//   The input you provided is invalid.
4438//
4439//   * TooManyRequestsException
4440//   Too many requests have been made to the operation.
4441//
4442// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/PutSuppressedDestination
4443func (c *SESV2) PutSuppressedDestination(input *PutSuppressedDestinationInput) (*PutSuppressedDestinationOutput, error) {
4444	req, out := c.PutSuppressedDestinationRequest(input)
4445	return out, req.Send()
4446}
4447
4448// PutSuppressedDestinationWithContext is the same as PutSuppressedDestination with the addition of
4449// the ability to pass a context and additional request options.
4450//
4451// See PutSuppressedDestination for details on how to use this API operation.
4452//
4453// The context must be non-nil and will be used for request cancellation. If
4454// the context is nil a panic will occur. In the future the SDK may create
4455// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4456// for more information on using Contexts.
4457func (c *SESV2) PutSuppressedDestinationWithContext(ctx aws.Context, input *PutSuppressedDestinationInput, opts ...request.Option) (*PutSuppressedDestinationOutput, error) {
4458	req, out := c.PutSuppressedDestinationRequest(input)
4459	req.SetContext(ctx)
4460	req.ApplyOptions(opts...)
4461	return out, req.Send()
4462}
4463
4464const opSendEmail = "SendEmail"
4465
4466// SendEmailRequest generates a "aws/request.Request" representing the
4467// client's request for the SendEmail operation. The "output" return
4468// value will be populated with the request's response once the request completes
4469// successfully.
4470//
4471// Use "Send" method on the returned Request to send the API call to the service.
4472// the "output" return value is not valid until after Send returns without error.
4473//
4474// See SendEmail for more information on using the SendEmail
4475// API call, and error handling.
4476//
4477// This method is useful when you want to inject custom logic or configuration
4478// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4479//
4480//
4481//    // Example sending a request using the SendEmailRequest method.
4482//    req, resp := client.SendEmailRequest(params)
4483//
4484//    err := req.Send()
4485//    if err == nil { // resp is now filled
4486//        fmt.Println(resp)
4487//    }
4488//
4489// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/SendEmail
4490func (c *SESV2) SendEmailRequest(input *SendEmailInput) (req *request.Request, output *SendEmailOutput) {
4491	op := &request.Operation{
4492		Name:       opSendEmail,
4493		HTTPMethod: "POST",
4494		HTTPPath:   "/v2/email/outbound-emails",
4495	}
4496
4497	if input == nil {
4498		input = &SendEmailInput{}
4499	}
4500
4501	output = &SendEmailOutput{}
4502	req = c.newRequest(op, input, output)
4503	return
4504}
4505
4506// SendEmail API operation for Amazon Simple Email Service.
4507//
4508// Sends an email message. You can use the Amazon SES API v2 to send two types
4509// of messages:
4510//
4511//    * Simple – A standard email message. When you create this type of message,
4512//    you specify the sender, the recipient, and the message body, and Amazon
4513//    SES assembles the message for you.
4514//
4515//    * Raw – A raw, MIME-formatted email message. When you send this type
4516//    of email, you have to specify all of the message headers, as well as the
4517//    message body. You can use this message type to send messages that contain
4518//    attachments. The message that you specify has to be a valid MIME message.
4519//
4520// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4521// with awserr.Error's Code and Message methods to get detailed information about
4522// the error.
4523//
4524// See the AWS API reference guide for Amazon Simple Email Service's
4525// API operation SendEmail for usage and error information.
4526//
4527// Returned Error Types:
4528//   * TooManyRequestsException
4529//   Too many requests have been made to the operation.
4530//
4531//   * LimitExceededException
4532//   There are too many instances of the specified resource type.
4533//
4534//   * AccountSuspendedException
4535//   The message can't be sent because the account's ability to send email has
4536//   been permanently restricted.
4537//
4538//   * SendingPausedException
4539//   The message can't be sent because the account's ability to send email is
4540//   currently paused.
4541//
4542//   * MessageRejected
4543//   The message can't be sent because it contains invalid content.
4544//
4545//   * MailFromDomainNotVerifiedException
4546//   The message can't be sent because the sending domain isn't verified.
4547//
4548//   * NotFoundException
4549//   The resource you attempted to access doesn't exist.
4550//
4551//   * BadRequestException
4552//   The input you provided is invalid.
4553//
4554// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/SendEmail
4555func (c *SESV2) SendEmail(input *SendEmailInput) (*SendEmailOutput, error) {
4556	req, out := c.SendEmailRequest(input)
4557	return out, req.Send()
4558}
4559
4560// SendEmailWithContext is the same as SendEmail with the addition of
4561// the ability to pass a context and additional request options.
4562//
4563// See SendEmail for details on how to use this API operation.
4564//
4565// The context must be non-nil and will be used for request cancellation. If
4566// the context is nil a panic will occur. In the future the SDK may create
4567// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4568// for more information on using Contexts.
4569func (c *SESV2) SendEmailWithContext(ctx aws.Context, input *SendEmailInput, opts ...request.Option) (*SendEmailOutput, error) {
4570	req, out := c.SendEmailRequest(input)
4571	req.SetContext(ctx)
4572	req.ApplyOptions(opts...)
4573	return out, req.Send()
4574}
4575
4576const opTagResource = "TagResource"
4577
4578// TagResourceRequest generates a "aws/request.Request" representing the
4579// client's request for the TagResource operation. The "output" return
4580// value will be populated with the request's response once the request completes
4581// successfully.
4582//
4583// Use "Send" method on the returned Request to send the API call to the service.
4584// the "output" return value is not valid until after Send returns without error.
4585//
4586// See TagResource for more information on using the TagResource
4587// API call, and error handling.
4588//
4589// This method is useful when you want to inject custom logic or configuration
4590// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4591//
4592//
4593//    // Example sending a request using the TagResourceRequest method.
4594//    req, resp := client.TagResourceRequest(params)
4595//
4596//    err := req.Send()
4597//    if err == nil { // resp is now filled
4598//        fmt.Println(resp)
4599//    }
4600//
4601// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/TagResource
4602func (c *SESV2) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
4603	op := &request.Operation{
4604		Name:       opTagResource,
4605		HTTPMethod: "POST",
4606		HTTPPath:   "/v2/email/tags",
4607	}
4608
4609	if input == nil {
4610		input = &TagResourceInput{}
4611	}
4612
4613	output = &TagResourceOutput{}
4614	req = c.newRequest(op, input, output)
4615	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4616	return
4617}
4618
4619// TagResource API operation for Amazon Simple Email Service.
4620//
4621// Add one or more tags (keys and values) to a specified resource. A tag is
4622// a label that you optionally define and associate with a resource. Tags can
4623// help you categorize and manage resources in different ways, such as by purpose,
4624// owner, environment, or other criteria. A resource can have as many as 50
4625// tags.
4626//
4627// Each tag consists of a required tag key and an associated tag value, both
4628// of which you define. A tag key is a general label that acts as a category
4629// for more specific tag values. A tag value acts as a descriptor within a tag
4630// key.
4631//
4632// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4633// with awserr.Error's Code and Message methods to get detailed information about
4634// the error.
4635//
4636// See the AWS API reference guide for Amazon Simple Email Service's
4637// API operation TagResource for usage and error information.
4638//
4639// Returned Error Types:
4640//   * BadRequestException
4641//   The input you provided is invalid.
4642//
4643//   * ConcurrentModificationException
4644//   The resource is being modified by another operation or thread.
4645//
4646//   * NotFoundException
4647//   The resource you attempted to access doesn't exist.
4648//
4649//   * TooManyRequestsException
4650//   Too many requests have been made to the operation.
4651//
4652// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/TagResource
4653func (c *SESV2) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
4654	req, out := c.TagResourceRequest(input)
4655	return out, req.Send()
4656}
4657
4658// TagResourceWithContext is the same as TagResource with the addition of
4659// the ability to pass a context and additional request options.
4660//
4661// See TagResource for details on how to use this API operation.
4662//
4663// The context must be non-nil and will be used for request cancellation. If
4664// the context is nil a panic will occur. In the future the SDK may create
4665// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4666// for more information on using Contexts.
4667func (c *SESV2) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
4668	req, out := c.TagResourceRequest(input)
4669	req.SetContext(ctx)
4670	req.ApplyOptions(opts...)
4671	return out, req.Send()
4672}
4673
4674const opUntagResource = "UntagResource"
4675
4676// UntagResourceRequest generates a "aws/request.Request" representing the
4677// client's request for the UntagResource operation. The "output" return
4678// value will be populated with the request's response once the request completes
4679// successfully.
4680//
4681// Use "Send" method on the returned Request to send the API call to the service.
4682// the "output" return value is not valid until after Send returns without error.
4683//
4684// See UntagResource for more information on using the UntagResource
4685// API call, and error handling.
4686//
4687// This method is useful when you want to inject custom logic or configuration
4688// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4689//
4690//
4691//    // Example sending a request using the UntagResourceRequest method.
4692//    req, resp := client.UntagResourceRequest(params)
4693//
4694//    err := req.Send()
4695//    if err == nil { // resp is now filled
4696//        fmt.Println(resp)
4697//    }
4698//
4699// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/UntagResource
4700func (c *SESV2) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
4701	op := &request.Operation{
4702		Name:       opUntagResource,
4703		HTTPMethod: "DELETE",
4704		HTTPPath:   "/v2/email/tags",
4705	}
4706
4707	if input == nil {
4708		input = &UntagResourceInput{}
4709	}
4710
4711	output = &UntagResourceOutput{}
4712	req = c.newRequest(op, input, output)
4713	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4714	return
4715}
4716
4717// UntagResource API operation for Amazon Simple Email Service.
4718//
4719// Remove one or more tags (keys and values) from a specified resource.
4720//
4721// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4722// with awserr.Error's Code and Message methods to get detailed information about
4723// the error.
4724//
4725// See the AWS API reference guide for Amazon Simple Email Service's
4726// API operation UntagResource for usage and error information.
4727//
4728// Returned Error Types:
4729//   * BadRequestException
4730//   The input you provided is invalid.
4731//
4732//   * ConcurrentModificationException
4733//   The resource is being modified by another operation or thread.
4734//
4735//   * NotFoundException
4736//   The resource you attempted to access doesn't exist.
4737//
4738//   * TooManyRequestsException
4739//   Too many requests have been made to the operation.
4740//
4741// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/UntagResource
4742func (c *SESV2) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
4743	req, out := c.UntagResourceRequest(input)
4744	return out, req.Send()
4745}
4746
4747// UntagResourceWithContext is the same as UntagResource with the addition of
4748// the ability to pass a context and additional request options.
4749//
4750// See UntagResource for details on how to use this API operation.
4751//
4752// The context must be non-nil and will be used for request cancellation. If
4753// the context is nil a panic will occur. In the future the SDK may create
4754// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4755// for more information on using Contexts.
4756func (c *SESV2) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
4757	req, out := c.UntagResourceRequest(input)
4758	req.SetContext(ctx)
4759	req.ApplyOptions(opts...)
4760	return out, req.Send()
4761}
4762
4763const opUpdateConfigurationSetEventDestination = "UpdateConfigurationSetEventDestination"
4764
4765// UpdateConfigurationSetEventDestinationRequest generates a "aws/request.Request" representing the
4766// client's request for the UpdateConfigurationSetEventDestination operation. The "output" return
4767// value will be populated with the request's response once the request completes
4768// successfully.
4769//
4770// Use "Send" method on the returned Request to send the API call to the service.
4771// the "output" return value is not valid until after Send returns without error.
4772//
4773// See UpdateConfigurationSetEventDestination for more information on using the UpdateConfigurationSetEventDestination
4774// API call, and error handling.
4775//
4776// This method is useful when you want to inject custom logic or configuration
4777// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4778//
4779//
4780//    // Example sending a request using the UpdateConfigurationSetEventDestinationRequest method.
4781//    req, resp := client.UpdateConfigurationSetEventDestinationRequest(params)
4782//
4783//    err := req.Send()
4784//    if err == nil { // resp is now filled
4785//        fmt.Println(resp)
4786//    }
4787//
4788// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/UpdateConfigurationSetEventDestination
4789func (c *SESV2) UpdateConfigurationSetEventDestinationRequest(input *UpdateConfigurationSetEventDestinationInput) (req *request.Request, output *UpdateConfigurationSetEventDestinationOutput) {
4790	op := &request.Operation{
4791		Name:       opUpdateConfigurationSetEventDestination,
4792		HTTPMethod: "PUT",
4793		HTTPPath:   "/v2/email/configuration-sets/{ConfigurationSetName}/event-destinations/{EventDestinationName}",
4794	}
4795
4796	if input == nil {
4797		input = &UpdateConfigurationSetEventDestinationInput{}
4798	}
4799
4800	output = &UpdateConfigurationSetEventDestinationOutput{}
4801	req = c.newRequest(op, input, output)
4802	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4803	return
4804}
4805
4806// UpdateConfigurationSetEventDestination API operation for Amazon Simple Email Service.
4807//
4808// Update the configuration of an event destination for a configuration set.
4809//
4810// Events include message sends, deliveries, opens, clicks, bounces, and complaints.
4811// Event destinations are places that you can send information about these events
4812// to. For example, you can send event data to Amazon SNS to receive notifications
4813// when you receive bounces or complaints, or you can use Amazon Kinesis Data
4814// Firehose to stream data to Amazon S3 for long-term storage.
4815//
4816// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4817// with awserr.Error's Code and Message methods to get detailed information about
4818// the error.
4819//
4820// See the AWS API reference guide for Amazon Simple Email Service's
4821// API operation UpdateConfigurationSetEventDestination for usage and error information.
4822//
4823// Returned Error Types:
4824//   * NotFoundException
4825//   The resource you attempted to access doesn't exist.
4826//
4827//   * TooManyRequestsException
4828//   Too many requests have been made to the operation.
4829//
4830//   * BadRequestException
4831//   The input you provided is invalid.
4832//
4833// See also, https://docs.aws.amazon.com/goto/WebAPI/sesv2-2019-09-27/UpdateConfigurationSetEventDestination
4834func (c *SESV2) UpdateConfigurationSetEventDestination(input *UpdateConfigurationSetEventDestinationInput) (*UpdateConfigurationSetEventDestinationOutput, error) {
4835	req, out := c.UpdateConfigurationSetEventDestinationRequest(input)
4836	return out, req.Send()
4837}
4838
4839// UpdateConfigurationSetEventDestinationWithContext is the same as UpdateConfigurationSetEventDestination with the addition of
4840// the ability to pass a context and additional request options.
4841//
4842// See UpdateConfigurationSetEventDestination for details on how to use this API operation.
4843//
4844// The context must be non-nil and will be used for request cancellation. If
4845// the context is nil a panic will occur. In the future the SDK may create
4846// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4847// for more information on using Contexts.
4848func (c *SESV2) UpdateConfigurationSetEventDestinationWithContext(ctx aws.Context, input *UpdateConfigurationSetEventDestinationInput, opts ...request.Option) (*UpdateConfigurationSetEventDestinationOutput, error) {
4849	req, out := c.UpdateConfigurationSetEventDestinationRequest(input)
4850	req.SetContext(ctx)
4851	req.ApplyOptions(opts...)
4852	return out, req.Send()
4853}
4854
4855// The message can't be sent because the account's ability to send email has
4856// been permanently restricted.
4857type AccountSuspendedException struct {
4858	_            struct{}                  `type:"structure"`
4859	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4860
4861	Message_ *string `locationName:"message" type:"string"`
4862}
4863
4864// String returns the string representation
4865func (s AccountSuspendedException) String() string {
4866	return awsutil.Prettify(s)
4867}
4868
4869// GoString returns the string representation
4870func (s AccountSuspendedException) GoString() string {
4871	return s.String()
4872}
4873
4874func newErrorAccountSuspendedException(v protocol.ResponseMetadata) error {
4875	return &AccountSuspendedException{
4876		RespMetadata: v,
4877	}
4878}
4879
4880// Code returns the exception type name.
4881func (s *AccountSuspendedException) Code() string {
4882	return "AccountSuspendedException"
4883}
4884
4885// Message returns the exception's message.
4886func (s *AccountSuspendedException) Message() string {
4887	if s.Message_ != nil {
4888		return *s.Message_
4889	}
4890	return ""
4891}
4892
4893// OrigErr always returns nil, satisfies awserr.Error interface.
4894func (s *AccountSuspendedException) OrigErr() error {
4895	return nil
4896}
4897
4898func (s *AccountSuspendedException) Error() string {
4899	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4900}
4901
4902// Status code returns the HTTP status code for the request's response error.
4903func (s *AccountSuspendedException) StatusCode() int {
4904	return s.RespMetadata.StatusCode
4905}
4906
4907// RequestID returns the service's response RequestID for request.
4908func (s *AccountSuspendedException) RequestID() string {
4909	return s.RespMetadata.RequestID
4910}
4911
4912// The resource specified in your request already exists.
4913type AlreadyExistsException struct {
4914	_            struct{}                  `type:"structure"`
4915	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4916
4917	Message_ *string `locationName:"message" type:"string"`
4918}
4919
4920// String returns the string representation
4921func (s AlreadyExistsException) String() string {
4922	return awsutil.Prettify(s)
4923}
4924
4925// GoString returns the string representation
4926func (s AlreadyExistsException) GoString() string {
4927	return s.String()
4928}
4929
4930func newErrorAlreadyExistsException(v protocol.ResponseMetadata) error {
4931	return &AlreadyExistsException{
4932		RespMetadata: v,
4933	}
4934}
4935
4936// Code returns the exception type name.
4937func (s *AlreadyExistsException) Code() string {
4938	return "AlreadyExistsException"
4939}
4940
4941// Message returns the exception's message.
4942func (s *AlreadyExistsException) Message() string {
4943	if s.Message_ != nil {
4944		return *s.Message_
4945	}
4946	return ""
4947}
4948
4949// OrigErr always returns nil, satisfies awserr.Error interface.
4950func (s *AlreadyExistsException) OrigErr() error {
4951	return nil
4952}
4953
4954func (s *AlreadyExistsException) Error() string {
4955	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4956}
4957
4958// Status code returns the HTTP status code for the request's response error.
4959func (s *AlreadyExistsException) StatusCode() int {
4960	return s.RespMetadata.StatusCode
4961}
4962
4963// RequestID returns the service's response RequestID for request.
4964func (s *AlreadyExistsException) RequestID() string {
4965	return s.RespMetadata.RequestID
4966}
4967
4968// The input you provided is invalid.
4969type BadRequestException struct {
4970	_            struct{}                  `type:"structure"`
4971	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4972
4973	Message_ *string `locationName:"message" type:"string"`
4974}
4975
4976// String returns the string representation
4977func (s BadRequestException) String() string {
4978	return awsutil.Prettify(s)
4979}
4980
4981// GoString returns the string representation
4982func (s BadRequestException) GoString() string {
4983	return s.String()
4984}
4985
4986func newErrorBadRequestException(v protocol.ResponseMetadata) error {
4987	return &BadRequestException{
4988		RespMetadata: v,
4989	}
4990}
4991
4992// Code returns the exception type name.
4993func (s *BadRequestException) Code() string {
4994	return "BadRequestException"
4995}
4996
4997// Message returns the exception's message.
4998func (s *BadRequestException) Message() string {
4999	if s.Message_ != nil {
5000		return *s.Message_
5001	}
5002	return ""
5003}
5004
5005// OrigErr always returns nil, satisfies awserr.Error interface.
5006func (s *BadRequestException) OrigErr() error {
5007	return nil
5008}
5009
5010func (s *BadRequestException) Error() string {
5011	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5012}
5013
5014// Status code returns the HTTP status code for the request's response error.
5015func (s *BadRequestException) StatusCode() int {
5016	return s.RespMetadata.StatusCode
5017}
5018
5019// RequestID returns the service's response RequestID for request.
5020func (s *BadRequestException) RequestID() string {
5021	return s.RespMetadata.RequestID
5022}
5023
5024// An object that contains information about a blacklisting event that impacts
5025// one of the dedicated IP addresses that is associated with your account.
5026type BlacklistEntry struct {
5027	_ struct{} `type:"structure"`
5028
5029	// Additional information about the blacklisting event, as provided by the blacklist
5030	// maintainer.
5031	Description *string `type:"string"`
5032
5033	// The time when the blacklisting event occurred, shown in Unix time format.
5034	ListingTime *time.Time `type:"timestamp"`
5035
5036	// The name of the blacklist that the IP address appears on.
5037	RblName *string `type:"string"`
5038}
5039
5040// String returns the string representation
5041func (s BlacklistEntry) String() string {
5042	return awsutil.Prettify(s)
5043}
5044
5045// GoString returns the string representation
5046func (s BlacklistEntry) GoString() string {
5047	return s.String()
5048}
5049
5050// SetDescription sets the Description field's value.
5051func (s *BlacklistEntry) SetDescription(v string) *BlacklistEntry {
5052	s.Description = &v
5053	return s
5054}
5055
5056// SetListingTime sets the ListingTime field's value.
5057func (s *BlacklistEntry) SetListingTime(v time.Time) *BlacklistEntry {
5058	s.ListingTime = &v
5059	return s
5060}
5061
5062// SetRblName sets the RblName field's value.
5063func (s *BlacklistEntry) SetRblName(v string) *BlacklistEntry {
5064	s.RblName = &v
5065	return s
5066}
5067
5068// Represents the body of the email message.
5069type Body struct {
5070	_ struct{} `type:"structure"`
5071
5072	// An object that represents the version of the message that is displayed in
5073	// email clients that support HTML. HTML messages can include formatted text,
5074	// hyperlinks, images, and more.
5075	Html *Content `type:"structure"`
5076
5077	// An object that represents the version of the message that is displayed in
5078	// email clients that don't support HTML, or clients where the recipient has
5079	// disabled HTML rendering.
5080	Text *Content `type:"structure"`
5081}
5082
5083// String returns the string representation
5084func (s Body) String() string {
5085	return awsutil.Prettify(s)
5086}
5087
5088// GoString returns the string representation
5089func (s Body) GoString() string {
5090	return s.String()
5091}
5092
5093// Validate inspects the fields of the type to determine if they are valid.
5094func (s *Body) Validate() error {
5095	invalidParams := request.ErrInvalidParams{Context: "Body"}
5096	if s.Html != nil {
5097		if err := s.Html.Validate(); err != nil {
5098			invalidParams.AddNested("Html", err.(request.ErrInvalidParams))
5099		}
5100	}
5101	if s.Text != nil {
5102		if err := s.Text.Validate(); err != nil {
5103			invalidParams.AddNested("Text", err.(request.ErrInvalidParams))
5104		}
5105	}
5106
5107	if invalidParams.Len() > 0 {
5108		return invalidParams
5109	}
5110	return nil
5111}
5112
5113// SetHtml sets the Html field's value.
5114func (s *Body) SetHtml(v *Content) *Body {
5115	s.Html = v
5116	return s
5117}
5118
5119// SetText sets the Text field's value.
5120func (s *Body) SetText(v *Content) *Body {
5121	s.Text = v
5122	return s
5123}
5124
5125// An object that defines an Amazon CloudWatch destination for email events.
5126// You can use Amazon CloudWatch to monitor and gain insights on your email
5127// sending metrics.
5128type CloudWatchDestination struct {
5129	_ struct{} `type:"structure"`
5130
5131	// An array of objects that define the dimensions to use when you send email
5132	// events to Amazon CloudWatch.
5133	//
5134	// DimensionConfigurations is a required field
5135	DimensionConfigurations []*CloudWatchDimensionConfiguration `type:"list" required:"true"`
5136}
5137
5138// String returns the string representation
5139func (s CloudWatchDestination) String() string {
5140	return awsutil.Prettify(s)
5141}
5142
5143// GoString returns the string representation
5144func (s CloudWatchDestination) GoString() string {
5145	return s.String()
5146}
5147
5148// Validate inspects the fields of the type to determine if they are valid.
5149func (s *CloudWatchDestination) Validate() error {
5150	invalidParams := request.ErrInvalidParams{Context: "CloudWatchDestination"}
5151	if s.DimensionConfigurations == nil {
5152		invalidParams.Add(request.NewErrParamRequired("DimensionConfigurations"))
5153	}
5154	if s.DimensionConfigurations != nil {
5155		for i, v := range s.DimensionConfigurations {
5156			if v == nil {
5157				continue
5158			}
5159			if err := v.Validate(); err != nil {
5160				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DimensionConfigurations", i), err.(request.ErrInvalidParams))
5161			}
5162		}
5163	}
5164
5165	if invalidParams.Len() > 0 {
5166		return invalidParams
5167	}
5168	return nil
5169}
5170
5171// SetDimensionConfigurations sets the DimensionConfigurations field's value.
5172func (s *CloudWatchDestination) SetDimensionConfigurations(v []*CloudWatchDimensionConfiguration) *CloudWatchDestination {
5173	s.DimensionConfigurations = v
5174	return s
5175}
5176
5177// An object that defines the dimension configuration to use when you send email
5178// events to Amazon CloudWatch.
5179type CloudWatchDimensionConfiguration struct {
5180	_ struct{} `type:"structure"`
5181
5182	// The default value of the dimension that is published to Amazon CloudWatch
5183	// if you don't provide the value of the dimension when you send an email. This
5184	// value has to meet the following criteria:
5185	//
5186	//    * It can only contain ASCII letters (a–z, A–Z), numbers (0–9), underscores
5187	//    (_), or dashes (-).
5188	//
5189	//    * It can contain no more than 256 characters.
5190	//
5191	// DefaultDimensionValue is a required field
5192	DefaultDimensionValue *string `type:"string" required:"true"`
5193
5194	// The name of an Amazon CloudWatch dimension associated with an email sending
5195	// metric. The name has to meet the following criteria:
5196	//
5197	//    * It can only contain ASCII letters (a–z, A–Z), numbers (0–9), underscores
5198	//    (_), or dashes (-).
5199	//
5200	//    * It can contain no more than 256 characters.
5201	//
5202	// DimensionName is a required field
5203	DimensionName *string `type:"string" required:"true"`
5204
5205	// The location where the Amazon SES API v2 finds the value of a dimension to
5206	// publish to Amazon CloudWatch. If you want to use the message tags that you
5207	// specify using an X-SES-MESSAGE-TAGS header or a parameter to the SendEmail
5208	// or SendRawEmail API, choose messageTag. If you want to use your own email
5209	// headers, choose emailHeader. If you want to use link tags, choose linkTags.
5210	//
5211	// DimensionValueSource is a required field
5212	DimensionValueSource *string `type:"string" required:"true" enum:"DimensionValueSource"`
5213}
5214
5215// String returns the string representation
5216func (s CloudWatchDimensionConfiguration) String() string {
5217	return awsutil.Prettify(s)
5218}
5219
5220// GoString returns the string representation
5221func (s CloudWatchDimensionConfiguration) GoString() string {
5222	return s.String()
5223}
5224
5225// Validate inspects the fields of the type to determine if they are valid.
5226func (s *CloudWatchDimensionConfiguration) Validate() error {
5227	invalidParams := request.ErrInvalidParams{Context: "CloudWatchDimensionConfiguration"}
5228	if s.DefaultDimensionValue == nil {
5229		invalidParams.Add(request.NewErrParamRequired("DefaultDimensionValue"))
5230	}
5231	if s.DimensionName == nil {
5232		invalidParams.Add(request.NewErrParamRequired("DimensionName"))
5233	}
5234	if s.DimensionValueSource == nil {
5235		invalidParams.Add(request.NewErrParamRequired("DimensionValueSource"))
5236	}
5237
5238	if invalidParams.Len() > 0 {
5239		return invalidParams
5240	}
5241	return nil
5242}
5243
5244// SetDefaultDimensionValue sets the DefaultDimensionValue field's value.
5245func (s *CloudWatchDimensionConfiguration) SetDefaultDimensionValue(v string) *CloudWatchDimensionConfiguration {
5246	s.DefaultDimensionValue = &v
5247	return s
5248}
5249
5250// SetDimensionName sets the DimensionName field's value.
5251func (s *CloudWatchDimensionConfiguration) SetDimensionName(v string) *CloudWatchDimensionConfiguration {
5252	s.DimensionName = &v
5253	return s
5254}
5255
5256// SetDimensionValueSource sets the DimensionValueSource field's value.
5257func (s *CloudWatchDimensionConfiguration) SetDimensionValueSource(v string) *CloudWatchDimensionConfiguration {
5258	s.DimensionValueSource = &v
5259	return s
5260}
5261
5262// The resource is being modified by another operation or thread.
5263type ConcurrentModificationException struct {
5264	_            struct{}                  `type:"structure"`
5265	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5266
5267	Message_ *string `locationName:"message" type:"string"`
5268}
5269
5270// String returns the string representation
5271func (s ConcurrentModificationException) String() string {
5272	return awsutil.Prettify(s)
5273}
5274
5275// GoString returns the string representation
5276func (s ConcurrentModificationException) GoString() string {
5277	return s.String()
5278}
5279
5280func newErrorConcurrentModificationException(v protocol.ResponseMetadata) error {
5281	return &ConcurrentModificationException{
5282		RespMetadata: v,
5283	}
5284}
5285
5286// Code returns the exception type name.
5287func (s *ConcurrentModificationException) Code() string {
5288	return "ConcurrentModificationException"
5289}
5290
5291// Message returns the exception's message.
5292func (s *ConcurrentModificationException) Message() string {
5293	if s.Message_ != nil {
5294		return *s.Message_
5295	}
5296	return ""
5297}
5298
5299// OrigErr always returns nil, satisfies awserr.Error interface.
5300func (s *ConcurrentModificationException) OrigErr() error {
5301	return nil
5302}
5303
5304func (s *ConcurrentModificationException) Error() string {
5305	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5306}
5307
5308// Status code returns the HTTP status code for the request's response error.
5309func (s *ConcurrentModificationException) StatusCode() int {
5310	return s.RespMetadata.StatusCode
5311}
5312
5313// RequestID returns the service's response RequestID for request.
5314func (s *ConcurrentModificationException) RequestID() string {
5315	return s.RespMetadata.RequestID
5316}
5317
5318// An object that represents the content of the email, and optionally a character
5319// set specification.
5320type Content struct {
5321	_ struct{} `type:"structure"`
5322
5323	// The character set for the content. Because of the constraints of the SMTP
5324	// protocol, Amazon SES uses 7-bit ASCII by default. If the text includes characters
5325	// outside of the ASCII range, you have to specify a character set. For example,
5326	// you could specify UTF-8, ISO-8859-1, or Shift_JIS.
5327	Charset *string `type:"string"`
5328
5329	// The content of the message itself.
5330	//
5331	// Data is a required field
5332	Data *string `type:"string" required:"true"`
5333}
5334
5335// String returns the string representation
5336func (s Content) String() string {
5337	return awsutil.Prettify(s)
5338}
5339
5340// GoString returns the string representation
5341func (s Content) GoString() string {
5342	return s.String()
5343}
5344
5345// Validate inspects the fields of the type to determine if they are valid.
5346func (s *Content) Validate() error {
5347	invalidParams := request.ErrInvalidParams{Context: "Content"}
5348	if s.Data == nil {
5349		invalidParams.Add(request.NewErrParamRequired("Data"))
5350	}
5351
5352	if invalidParams.Len() > 0 {
5353		return invalidParams
5354	}
5355	return nil
5356}
5357
5358// SetCharset sets the Charset field's value.
5359func (s *Content) SetCharset(v string) *Content {
5360	s.Charset = &v
5361	return s
5362}
5363
5364// SetData sets the Data field's value.
5365func (s *Content) SetData(v string) *Content {
5366	s.Data = &v
5367	return s
5368}
5369
5370// A request to add an event destination to a configuration set.
5371type CreateConfigurationSetEventDestinationInput struct {
5372	_ struct{} `type:"structure"`
5373
5374	// The name of the configuration set that you want to add an event destination
5375	// to.
5376	//
5377	// ConfigurationSetName is a required field
5378	ConfigurationSetName *string `location:"uri" locationName:"ConfigurationSetName" type:"string" required:"true"`
5379
5380	// An object that defines the event destination.
5381	//
5382	// EventDestination is a required field
5383	EventDestination *EventDestinationDefinition `type:"structure" required:"true"`
5384
5385	// A name that identifies the event destination within the configuration set.
5386	//
5387	// EventDestinationName is a required field
5388	EventDestinationName *string `type:"string" required:"true"`
5389}
5390
5391// String returns the string representation
5392func (s CreateConfigurationSetEventDestinationInput) String() string {
5393	return awsutil.Prettify(s)
5394}
5395
5396// GoString returns the string representation
5397func (s CreateConfigurationSetEventDestinationInput) GoString() string {
5398	return s.String()
5399}
5400
5401// Validate inspects the fields of the type to determine if they are valid.
5402func (s *CreateConfigurationSetEventDestinationInput) Validate() error {
5403	invalidParams := request.ErrInvalidParams{Context: "CreateConfigurationSetEventDestinationInput"}
5404	if s.ConfigurationSetName == nil {
5405		invalidParams.Add(request.NewErrParamRequired("ConfigurationSetName"))
5406	}
5407	if s.ConfigurationSetName != nil && len(*s.ConfigurationSetName) < 1 {
5408		invalidParams.Add(request.NewErrParamMinLen("ConfigurationSetName", 1))
5409	}
5410	if s.EventDestination == nil {
5411		invalidParams.Add(request.NewErrParamRequired("EventDestination"))
5412	}
5413	if s.EventDestinationName == nil {
5414		invalidParams.Add(request.NewErrParamRequired("EventDestinationName"))
5415	}
5416	if s.EventDestination != nil {
5417		if err := s.EventDestination.Validate(); err != nil {
5418			invalidParams.AddNested("EventDestination", err.(request.ErrInvalidParams))
5419		}
5420	}
5421
5422	if invalidParams.Len() > 0 {
5423		return invalidParams
5424	}
5425	return nil
5426}
5427
5428// SetConfigurationSetName sets the ConfigurationSetName field's value.
5429func (s *CreateConfigurationSetEventDestinationInput) SetConfigurationSetName(v string) *CreateConfigurationSetEventDestinationInput {
5430	s.ConfigurationSetName = &v
5431	return s
5432}
5433
5434// SetEventDestination sets the EventDestination field's value.
5435func (s *CreateConfigurationSetEventDestinationInput) SetEventDestination(v *EventDestinationDefinition) *CreateConfigurationSetEventDestinationInput {
5436	s.EventDestination = v
5437	return s
5438}
5439
5440// SetEventDestinationName sets the EventDestinationName field's value.
5441func (s *CreateConfigurationSetEventDestinationInput) SetEventDestinationName(v string) *CreateConfigurationSetEventDestinationInput {
5442	s.EventDestinationName = &v
5443	return s
5444}
5445
5446// An HTTP 200 response if the request succeeds, or an error message if the
5447// request fails.
5448type CreateConfigurationSetEventDestinationOutput struct {
5449	_ struct{} `type:"structure"`
5450}
5451
5452// String returns the string representation
5453func (s CreateConfigurationSetEventDestinationOutput) String() string {
5454	return awsutil.Prettify(s)
5455}
5456
5457// GoString returns the string representation
5458func (s CreateConfigurationSetEventDestinationOutput) GoString() string {
5459	return s.String()
5460}
5461
5462// A request to create a configuration set.
5463type CreateConfigurationSetInput struct {
5464	_ struct{} `type:"structure"`
5465
5466	// The name of the configuration set.
5467	//
5468	// ConfigurationSetName is a required field
5469	ConfigurationSetName *string `type:"string" required:"true"`
5470
5471	// An object that defines the dedicated IP pool that is used to send emails
5472	// that you send using the configuration set.
5473	DeliveryOptions *DeliveryOptions `type:"structure"`
5474
5475	// An object that defines whether or not Amazon SES collects reputation metrics
5476	// for the emails that you send that use the configuration set.
5477	ReputationOptions *ReputationOptions `type:"structure"`
5478
5479	// An object that defines whether or not Amazon SES can send email that you
5480	// send using the configuration set.
5481	SendingOptions *SendingOptions `type:"structure"`
5482
5483	// An object that contains information about the suppression list preferences
5484	// for your account.
5485	SuppressionOptions *SuppressionOptions `type:"structure"`
5486
5487	// An array of objects that define the tags (keys and values) that you want
5488	// to associate with the configuration set.
5489	Tags []*Tag `type:"list"`
5490
5491	// An object that defines the open and click tracking options for emails that
5492	// you send using the configuration set.
5493	TrackingOptions *TrackingOptions `type:"structure"`
5494}
5495
5496// String returns the string representation
5497func (s CreateConfigurationSetInput) String() string {
5498	return awsutil.Prettify(s)
5499}
5500
5501// GoString returns the string representation
5502func (s CreateConfigurationSetInput) GoString() string {
5503	return s.String()
5504}
5505
5506// Validate inspects the fields of the type to determine if they are valid.
5507func (s *CreateConfigurationSetInput) Validate() error {
5508	invalidParams := request.ErrInvalidParams{Context: "CreateConfigurationSetInput"}
5509	if s.ConfigurationSetName == nil {
5510		invalidParams.Add(request.NewErrParamRequired("ConfigurationSetName"))
5511	}
5512	if s.Tags != nil {
5513		for i, v := range s.Tags {
5514			if v == nil {
5515				continue
5516			}
5517			if err := v.Validate(); err != nil {
5518				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
5519			}
5520		}
5521	}
5522	if s.TrackingOptions != nil {
5523		if err := s.TrackingOptions.Validate(); err != nil {
5524			invalidParams.AddNested("TrackingOptions", err.(request.ErrInvalidParams))
5525		}
5526	}
5527
5528	if invalidParams.Len() > 0 {
5529		return invalidParams
5530	}
5531	return nil
5532}
5533
5534// SetConfigurationSetName sets the ConfigurationSetName field's value.
5535func (s *CreateConfigurationSetInput) SetConfigurationSetName(v string) *CreateConfigurationSetInput {
5536	s.ConfigurationSetName = &v
5537	return s
5538}
5539
5540// SetDeliveryOptions sets the DeliveryOptions field's value.
5541func (s *CreateConfigurationSetInput) SetDeliveryOptions(v *DeliveryOptions) *CreateConfigurationSetInput {
5542	s.DeliveryOptions = v
5543	return s
5544}
5545
5546// SetReputationOptions sets the ReputationOptions field's value.
5547func (s *CreateConfigurationSetInput) SetReputationOptions(v *ReputationOptions) *CreateConfigurationSetInput {
5548	s.ReputationOptions = v
5549	return s
5550}
5551
5552// SetSendingOptions sets the SendingOptions field's value.
5553func (s *CreateConfigurationSetInput) SetSendingOptions(v *SendingOptions) *CreateConfigurationSetInput {
5554	s.SendingOptions = v
5555	return s
5556}
5557
5558// SetSuppressionOptions sets the SuppressionOptions field's value.
5559func (s *CreateConfigurationSetInput) SetSuppressionOptions(v *SuppressionOptions) *CreateConfigurationSetInput {
5560	s.SuppressionOptions = v
5561	return s
5562}
5563
5564// SetTags sets the Tags field's value.
5565func (s *CreateConfigurationSetInput) SetTags(v []*Tag) *CreateConfigurationSetInput {
5566	s.Tags = v
5567	return s
5568}
5569
5570// SetTrackingOptions sets the TrackingOptions field's value.
5571func (s *CreateConfigurationSetInput) SetTrackingOptions(v *TrackingOptions) *CreateConfigurationSetInput {
5572	s.TrackingOptions = v
5573	return s
5574}
5575
5576// An HTTP 200 response if the request succeeds, or an error message if the
5577// request fails.
5578type CreateConfigurationSetOutput struct {
5579	_ struct{} `type:"structure"`
5580}
5581
5582// String returns the string representation
5583func (s CreateConfigurationSetOutput) String() string {
5584	return awsutil.Prettify(s)
5585}
5586
5587// GoString returns the string representation
5588func (s CreateConfigurationSetOutput) GoString() string {
5589	return s.String()
5590}
5591
5592// A request to create a new dedicated IP pool.
5593type CreateDedicatedIpPoolInput struct {
5594	_ struct{} `type:"structure"`
5595
5596	// The name of the dedicated IP pool.
5597	//
5598	// PoolName is a required field
5599	PoolName *string `type:"string" required:"true"`
5600
5601	// An object that defines the tags (keys and values) that you want to associate
5602	// with the pool.
5603	Tags []*Tag `type:"list"`
5604}
5605
5606// String returns the string representation
5607func (s CreateDedicatedIpPoolInput) String() string {
5608	return awsutil.Prettify(s)
5609}
5610
5611// GoString returns the string representation
5612func (s CreateDedicatedIpPoolInput) GoString() string {
5613	return s.String()
5614}
5615
5616// Validate inspects the fields of the type to determine if they are valid.
5617func (s *CreateDedicatedIpPoolInput) Validate() error {
5618	invalidParams := request.ErrInvalidParams{Context: "CreateDedicatedIpPoolInput"}
5619	if s.PoolName == nil {
5620		invalidParams.Add(request.NewErrParamRequired("PoolName"))
5621	}
5622	if s.Tags != nil {
5623		for i, v := range s.Tags {
5624			if v == nil {
5625				continue
5626			}
5627			if err := v.Validate(); err != nil {
5628				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
5629			}
5630		}
5631	}
5632
5633	if invalidParams.Len() > 0 {
5634		return invalidParams
5635	}
5636	return nil
5637}
5638
5639// SetPoolName sets the PoolName field's value.
5640func (s *CreateDedicatedIpPoolInput) SetPoolName(v string) *CreateDedicatedIpPoolInput {
5641	s.PoolName = &v
5642	return s
5643}
5644
5645// SetTags sets the Tags field's value.
5646func (s *CreateDedicatedIpPoolInput) SetTags(v []*Tag) *CreateDedicatedIpPoolInput {
5647	s.Tags = v
5648	return s
5649}
5650
5651// An HTTP 200 response if the request succeeds, or an error message if the
5652// request fails.
5653type CreateDedicatedIpPoolOutput struct {
5654	_ struct{} `type:"structure"`
5655}
5656
5657// String returns the string representation
5658func (s CreateDedicatedIpPoolOutput) String() string {
5659	return awsutil.Prettify(s)
5660}
5661
5662// GoString returns the string representation
5663func (s CreateDedicatedIpPoolOutput) GoString() string {
5664	return s.String()
5665}
5666
5667// A request to perform a predictive inbox placement test. Predictive inbox
5668// placement tests can help you predict how your messages will be handled by
5669// various email providers around the world. When you perform a predictive inbox
5670// placement test, you provide a sample message that contains the content that
5671// you plan to send to your customers. We send that message to special email
5672// addresses spread across several major email providers around the world. The
5673// test takes about 24 hours to complete. When the test is complete, you can
5674// use the GetDeliverabilityTestReport operation to view the results of the
5675// test.
5676type CreateDeliverabilityTestReportInput struct {
5677	_ struct{} `type:"structure"`
5678
5679	// The HTML body of the message that you sent when you performed the predictive
5680	// inbox placement test.
5681	//
5682	// Content is a required field
5683	Content *EmailContent `type:"structure" required:"true"`
5684
5685	// The email address that the predictive inbox placement test email was sent
5686	// from.
5687	//
5688	// FromEmailAddress is a required field
5689	FromEmailAddress *string `type:"string" required:"true"`
5690
5691	// A unique name that helps you to identify the predictive inbox placement test
5692	// when you retrieve the results.
5693	ReportName *string `type:"string"`
5694
5695	// An array of objects that define the tags (keys and values) that you want
5696	// to associate with the predictive inbox placement test.
5697	Tags []*Tag `type:"list"`
5698}
5699
5700// String returns the string representation
5701func (s CreateDeliverabilityTestReportInput) String() string {
5702	return awsutil.Prettify(s)
5703}
5704
5705// GoString returns the string representation
5706func (s CreateDeliverabilityTestReportInput) GoString() string {
5707	return s.String()
5708}
5709
5710// Validate inspects the fields of the type to determine if they are valid.
5711func (s *CreateDeliverabilityTestReportInput) Validate() error {
5712	invalidParams := request.ErrInvalidParams{Context: "CreateDeliverabilityTestReportInput"}
5713	if s.Content == nil {
5714		invalidParams.Add(request.NewErrParamRequired("Content"))
5715	}
5716	if s.FromEmailAddress == nil {
5717		invalidParams.Add(request.NewErrParamRequired("FromEmailAddress"))
5718	}
5719	if s.Content != nil {
5720		if err := s.Content.Validate(); err != nil {
5721			invalidParams.AddNested("Content", err.(request.ErrInvalidParams))
5722		}
5723	}
5724	if s.Tags != nil {
5725		for i, v := range s.Tags {
5726			if v == nil {
5727				continue
5728			}
5729			if err := v.Validate(); err != nil {
5730				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
5731			}
5732		}
5733	}
5734
5735	if invalidParams.Len() > 0 {
5736		return invalidParams
5737	}
5738	return nil
5739}
5740
5741// SetContent sets the Content field's value.
5742func (s *CreateDeliverabilityTestReportInput) SetContent(v *EmailContent) *CreateDeliverabilityTestReportInput {
5743	s.Content = v
5744	return s
5745}
5746
5747// SetFromEmailAddress sets the FromEmailAddress field's value.
5748func (s *CreateDeliverabilityTestReportInput) SetFromEmailAddress(v string) *CreateDeliverabilityTestReportInput {
5749	s.FromEmailAddress = &v
5750	return s
5751}
5752
5753// SetReportName sets the ReportName field's value.
5754func (s *CreateDeliverabilityTestReportInput) SetReportName(v string) *CreateDeliverabilityTestReportInput {
5755	s.ReportName = &v
5756	return s
5757}
5758
5759// SetTags sets the Tags field's value.
5760func (s *CreateDeliverabilityTestReportInput) SetTags(v []*Tag) *CreateDeliverabilityTestReportInput {
5761	s.Tags = v
5762	return s
5763}
5764
5765// Information about the predictive inbox placement test that you created.
5766type CreateDeliverabilityTestReportOutput struct {
5767	_ struct{} `type:"structure"`
5768
5769	// The status of the predictive inbox placement test. If the status is IN_PROGRESS,
5770	// then the predictive inbox placement test is currently running. Predictive
5771	// inbox placement tests are usually complete within 24 hours of creating the
5772	// test. If the status is COMPLETE, then the test is finished, and you can use
5773	// the GetDeliverabilityTestReport to view the results of the test.
5774	//
5775	// DeliverabilityTestStatus is a required field
5776	DeliverabilityTestStatus *string `type:"string" required:"true" enum:"DeliverabilityTestStatus"`
5777
5778	// A unique string that identifies the predictive inbox placement test.
5779	//
5780	// ReportId is a required field
5781	ReportId *string `type:"string" required:"true"`
5782}
5783
5784// String returns the string representation
5785func (s CreateDeliverabilityTestReportOutput) String() string {
5786	return awsutil.Prettify(s)
5787}
5788
5789// GoString returns the string representation
5790func (s CreateDeliverabilityTestReportOutput) GoString() string {
5791	return s.String()
5792}
5793
5794// SetDeliverabilityTestStatus sets the DeliverabilityTestStatus field's value.
5795func (s *CreateDeliverabilityTestReportOutput) SetDeliverabilityTestStatus(v string) *CreateDeliverabilityTestReportOutput {
5796	s.DeliverabilityTestStatus = &v
5797	return s
5798}
5799
5800// SetReportId sets the ReportId field's value.
5801func (s *CreateDeliverabilityTestReportOutput) SetReportId(v string) *CreateDeliverabilityTestReportOutput {
5802	s.ReportId = &v
5803	return s
5804}
5805
5806// A request to begin the verification process for an email identity (an email
5807// address or domain).
5808type CreateEmailIdentityInput struct {
5809	_ struct{} `type:"structure"`
5810
5811	// If your request includes this object, Amazon SES configures the identity
5812	// to use Bring Your Own DKIM (BYODKIM) for DKIM authentication purposes, as
5813	// opposed to the default method, Easy DKIM (https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html).
5814	//
5815	// You can only specify this object if the email identity is a domain, as opposed
5816	// to an address.
5817	DkimSigningAttributes *DkimSigningAttributes `type:"structure"`
5818
5819	// The email address or domain that you want to verify.
5820	//
5821	// EmailIdentity is a required field
5822	EmailIdentity *string `type:"string" required:"true"`
5823
5824	// An array of objects that define the tags (keys and values) that you want
5825	// to associate with the email identity.
5826	Tags []*Tag `type:"list"`
5827}
5828
5829// String returns the string representation
5830func (s CreateEmailIdentityInput) String() string {
5831	return awsutil.Prettify(s)
5832}
5833
5834// GoString returns the string representation
5835func (s CreateEmailIdentityInput) GoString() string {
5836	return s.String()
5837}
5838
5839// Validate inspects the fields of the type to determine if they are valid.
5840func (s *CreateEmailIdentityInput) Validate() error {
5841	invalidParams := request.ErrInvalidParams{Context: "CreateEmailIdentityInput"}
5842	if s.EmailIdentity == nil {
5843		invalidParams.Add(request.NewErrParamRequired("EmailIdentity"))
5844	}
5845	if s.DkimSigningAttributes != nil {
5846		if err := s.DkimSigningAttributes.Validate(); err != nil {
5847			invalidParams.AddNested("DkimSigningAttributes", err.(request.ErrInvalidParams))
5848		}
5849	}
5850	if s.Tags != nil {
5851		for i, v := range s.Tags {
5852			if v == nil {
5853				continue
5854			}
5855			if err := v.Validate(); err != nil {
5856				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
5857			}
5858		}
5859	}
5860
5861	if invalidParams.Len() > 0 {
5862		return invalidParams
5863	}
5864	return nil
5865}
5866
5867// SetDkimSigningAttributes sets the DkimSigningAttributes field's value.
5868func (s *CreateEmailIdentityInput) SetDkimSigningAttributes(v *DkimSigningAttributes) *CreateEmailIdentityInput {
5869	s.DkimSigningAttributes = v
5870	return s
5871}
5872
5873// SetEmailIdentity sets the EmailIdentity field's value.
5874func (s *CreateEmailIdentityInput) SetEmailIdentity(v string) *CreateEmailIdentityInput {
5875	s.EmailIdentity = &v
5876	return s
5877}
5878
5879// SetTags sets the Tags field's value.
5880func (s *CreateEmailIdentityInput) SetTags(v []*Tag) *CreateEmailIdentityInput {
5881	s.Tags = v
5882	return s
5883}
5884
5885// If the email identity is a domain, this object contains information about
5886// the DKIM verification status for the domain.
5887//
5888// If the email identity is an email address, this object is empty.
5889type CreateEmailIdentityOutput struct {
5890	_ struct{} `type:"structure"`
5891
5892	// An object that contains information about the DKIM attributes for the identity.
5893	DkimAttributes *DkimAttributes `type:"structure"`
5894
5895	// The email identity type.
5896	IdentityType *string `type:"string" enum:"IdentityType"`
5897
5898	// Specifies whether or not the identity is verified. You can only send email
5899	// from verified email addresses or domains. For more information about verifying
5900	// identities, see the Amazon Pinpoint User Guide (https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-email-manage-verify.html).
5901	VerifiedForSendingStatus *bool `type:"boolean"`
5902}
5903
5904// String returns the string representation
5905func (s CreateEmailIdentityOutput) String() string {
5906	return awsutil.Prettify(s)
5907}
5908
5909// GoString returns the string representation
5910func (s CreateEmailIdentityOutput) GoString() string {
5911	return s.String()
5912}
5913
5914// SetDkimAttributes sets the DkimAttributes field's value.
5915func (s *CreateEmailIdentityOutput) SetDkimAttributes(v *DkimAttributes) *CreateEmailIdentityOutput {
5916	s.DkimAttributes = v
5917	return s
5918}
5919
5920// SetIdentityType sets the IdentityType field's value.
5921func (s *CreateEmailIdentityOutput) SetIdentityType(v string) *CreateEmailIdentityOutput {
5922	s.IdentityType = &v
5923	return s
5924}
5925
5926// SetVerifiedForSendingStatus sets the VerifiedForSendingStatus field's value.
5927func (s *CreateEmailIdentityOutput) SetVerifiedForSendingStatus(v bool) *CreateEmailIdentityOutput {
5928	s.VerifiedForSendingStatus = &v
5929	return s
5930}
5931
5932// An object that contains information about the volume of email sent on each
5933// day of the analysis period.
5934type DailyVolume struct {
5935	_ struct{} `type:"structure"`
5936
5937	// An object that contains inbox placement metrics for a specified day in the
5938	// analysis period, broken out by the recipient's email provider.
5939	DomainIspPlacements []*DomainIspPlacement `type:"list"`
5940
5941	// The date that the DailyVolume metrics apply to, in Unix time.
5942	StartDate *time.Time `type:"timestamp"`
5943
5944	// An object that contains inbox placement metrics for a specific day in the
5945	// analysis period.
5946	VolumeStatistics *VolumeStatistics `type:"structure"`
5947}
5948
5949// String returns the string representation
5950func (s DailyVolume) String() string {
5951	return awsutil.Prettify(s)
5952}
5953
5954// GoString returns the string representation
5955func (s DailyVolume) GoString() string {
5956	return s.String()
5957}
5958
5959// SetDomainIspPlacements sets the DomainIspPlacements field's value.
5960func (s *DailyVolume) SetDomainIspPlacements(v []*DomainIspPlacement) *DailyVolume {
5961	s.DomainIspPlacements = v
5962	return s
5963}
5964
5965// SetStartDate sets the StartDate field's value.
5966func (s *DailyVolume) SetStartDate(v time.Time) *DailyVolume {
5967	s.StartDate = &v
5968	return s
5969}
5970
5971// SetVolumeStatistics sets the VolumeStatistics field's value.
5972func (s *DailyVolume) SetVolumeStatistics(v *VolumeStatistics) *DailyVolume {
5973	s.VolumeStatistics = v
5974	return s
5975}
5976
5977// Contains information about a dedicated IP address that is associated with
5978// your Amazon SES account.
5979//
5980// To learn more about requesting dedicated IP addresses, see Requesting and
5981// Relinquishing Dedicated IP Addresses (https://docs.aws.amazon.com/ses/latest/DeveloperGuide/dedicated-ip-case.html)
5982// in the Amazon SES Developer Guide.
5983type DedicatedIp struct {
5984	_ struct{} `type:"structure"`
5985
5986	// An IPv4 address.
5987	//
5988	// Ip is a required field
5989	Ip *string `type:"string" required:"true"`
5990
5991	// The name of the dedicated IP pool that the IP address is associated with.
5992	PoolName *string `type:"string"`
5993
5994	// Indicates how complete the dedicated IP warm-up process is. When this value
5995	// equals 1, the address has completed the warm-up process and is ready for
5996	// use.
5997	//
5998	// WarmupPercentage is a required field
5999	WarmupPercentage *int64 `type:"integer" required:"true"`
6000
6001	// The warm-up status of a dedicated IP address. The status can have one of
6002	// the following values:
6003	//
6004	//    * IN_PROGRESS – The IP address isn't ready to use because the dedicated
6005	//    IP warm-up process is ongoing.
6006	//
6007	//    * DONE – The dedicated IP warm-up process is complete, and the IP address
6008	//    is ready to use.
6009	//
6010	// WarmupStatus is a required field
6011	WarmupStatus *string `type:"string" required:"true" enum:"WarmupStatus"`
6012}
6013
6014// String returns the string representation
6015func (s DedicatedIp) String() string {
6016	return awsutil.Prettify(s)
6017}
6018
6019// GoString returns the string representation
6020func (s DedicatedIp) GoString() string {
6021	return s.String()
6022}
6023
6024// SetIp sets the Ip field's value.
6025func (s *DedicatedIp) SetIp(v string) *DedicatedIp {
6026	s.Ip = &v
6027	return s
6028}
6029
6030// SetPoolName sets the PoolName field's value.
6031func (s *DedicatedIp) SetPoolName(v string) *DedicatedIp {
6032	s.PoolName = &v
6033	return s
6034}
6035
6036// SetWarmupPercentage sets the WarmupPercentage field's value.
6037func (s *DedicatedIp) SetWarmupPercentage(v int64) *DedicatedIp {
6038	s.WarmupPercentage = &v
6039	return s
6040}
6041
6042// SetWarmupStatus sets the WarmupStatus field's value.
6043func (s *DedicatedIp) SetWarmupStatus(v string) *DedicatedIp {
6044	s.WarmupStatus = &v
6045	return s
6046}
6047
6048// A request to delete an event destination from a configuration set.
6049type DeleteConfigurationSetEventDestinationInput struct {
6050	_ struct{} `type:"structure"`
6051
6052	// The name of the configuration set that contains the event destination that
6053	// you want to delete.
6054	//
6055	// ConfigurationSetName is a required field
6056	ConfigurationSetName *string `location:"uri" locationName:"ConfigurationSetName" type:"string" required:"true"`
6057
6058	// The name of the event destination that you want to delete.
6059	//
6060	// EventDestinationName is a required field
6061	EventDestinationName *string `location:"uri" locationName:"EventDestinationName" type:"string" required:"true"`
6062}
6063
6064// String returns the string representation
6065func (s DeleteConfigurationSetEventDestinationInput) String() string {
6066	return awsutil.Prettify(s)
6067}
6068
6069// GoString returns the string representation
6070func (s DeleteConfigurationSetEventDestinationInput) GoString() string {
6071	return s.String()
6072}
6073
6074// Validate inspects the fields of the type to determine if they are valid.
6075func (s *DeleteConfigurationSetEventDestinationInput) Validate() error {
6076	invalidParams := request.ErrInvalidParams{Context: "DeleteConfigurationSetEventDestinationInput"}
6077	if s.ConfigurationSetName == nil {
6078		invalidParams.Add(request.NewErrParamRequired("ConfigurationSetName"))
6079	}
6080	if s.ConfigurationSetName != nil && len(*s.ConfigurationSetName) < 1 {
6081		invalidParams.Add(request.NewErrParamMinLen("ConfigurationSetName", 1))
6082	}
6083	if s.EventDestinationName == nil {
6084		invalidParams.Add(request.NewErrParamRequired("EventDestinationName"))
6085	}
6086	if s.EventDestinationName != nil && len(*s.EventDestinationName) < 1 {
6087		invalidParams.Add(request.NewErrParamMinLen("EventDestinationName", 1))
6088	}
6089
6090	if invalidParams.Len() > 0 {
6091		return invalidParams
6092	}
6093	return nil
6094}
6095
6096// SetConfigurationSetName sets the ConfigurationSetName field's value.
6097func (s *DeleteConfigurationSetEventDestinationInput) SetConfigurationSetName(v string) *DeleteConfigurationSetEventDestinationInput {
6098	s.ConfigurationSetName = &v
6099	return s
6100}
6101
6102// SetEventDestinationName sets the EventDestinationName field's value.
6103func (s *DeleteConfigurationSetEventDestinationInput) SetEventDestinationName(v string) *DeleteConfigurationSetEventDestinationInput {
6104	s.EventDestinationName = &v
6105	return s
6106}
6107
6108// An HTTP 200 response if the request succeeds, or an error message if the
6109// request fails.
6110type DeleteConfigurationSetEventDestinationOutput struct {
6111	_ struct{} `type:"structure"`
6112}
6113
6114// String returns the string representation
6115func (s DeleteConfigurationSetEventDestinationOutput) String() string {
6116	return awsutil.Prettify(s)
6117}
6118
6119// GoString returns the string representation
6120func (s DeleteConfigurationSetEventDestinationOutput) GoString() string {
6121	return s.String()
6122}
6123
6124// A request to delete a configuration set.
6125type DeleteConfigurationSetInput struct {
6126	_ struct{} `type:"structure"`
6127
6128	// The name of the configuration set that you want to delete.
6129	//
6130	// ConfigurationSetName is a required field
6131	ConfigurationSetName *string `location:"uri" locationName:"ConfigurationSetName" type:"string" required:"true"`
6132}
6133
6134// String returns the string representation
6135func (s DeleteConfigurationSetInput) String() string {
6136	return awsutil.Prettify(s)
6137}
6138
6139// GoString returns the string representation
6140func (s DeleteConfigurationSetInput) GoString() string {
6141	return s.String()
6142}
6143
6144// Validate inspects the fields of the type to determine if they are valid.
6145func (s *DeleteConfigurationSetInput) Validate() error {
6146	invalidParams := request.ErrInvalidParams{Context: "DeleteConfigurationSetInput"}
6147	if s.ConfigurationSetName == nil {
6148		invalidParams.Add(request.NewErrParamRequired("ConfigurationSetName"))
6149	}
6150	if s.ConfigurationSetName != nil && len(*s.ConfigurationSetName) < 1 {
6151		invalidParams.Add(request.NewErrParamMinLen("ConfigurationSetName", 1))
6152	}
6153
6154	if invalidParams.Len() > 0 {
6155		return invalidParams
6156	}
6157	return nil
6158}
6159
6160// SetConfigurationSetName sets the ConfigurationSetName field's value.
6161func (s *DeleteConfigurationSetInput) SetConfigurationSetName(v string) *DeleteConfigurationSetInput {
6162	s.ConfigurationSetName = &v
6163	return s
6164}
6165
6166// An HTTP 200 response if the request succeeds, or an error message if the
6167// request fails.
6168type DeleteConfigurationSetOutput struct {
6169	_ struct{} `type:"structure"`
6170}
6171
6172// String returns the string representation
6173func (s DeleteConfigurationSetOutput) String() string {
6174	return awsutil.Prettify(s)
6175}
6176
6177// GoString returns the string representation
6178func (s DeleteConfigurationSetOutput) GoString() string {
6179	return s.String()
6180}
6181
6182// A request to delete a dedicated IP pool.
6183type DeleteDedicatedIpPoolInput struct {
6184	_ struct{} `type:"structure"`
6185
6186	// The name of the dedicated IP pool that you want to delete.
6187	//
6188	// PoolName is a required field
6189	PoolName *string `location:"uri" locationName:"PoolName" type:"string" required:"true"`
6190}
6191
6192// String returns the string representation
6193func (s DeleteDedicatedIpPoolInput) String() string {
6194	return awsutil.Prettify(s)
6195}
6196
6197// GoString returns the string representation
6198func (s DeleteDedicatedIpPoolInput) GoString() string {
6199	return s.String()
6200}
6201
6202// Validate inspects the fields of the type to determine if they are valid.
6203func (s *DeleteDedicatedIpPoolInput) Validate() error {
6204	invalidParams := request.ErrInvalidParams{Context: "DeleteDedicatedIpPoolInput"}
6205	if s.PoolName == nil {
6206		invalidParams.Add(request.NewErrParamRequired("PoolName"))
6207	}
6208	if s.PoolName != nil && len(*s.PoolName) < 1 {
6209		invalidParams.Add(request.NewErrParamMinLen("PoolName", 1))
6210	}
6211
6212	if invalidParams.Len() > 0 {
6213		return invalidParams
6214	}
6215	return nil
6216}
6217
6218// SetPoolName sets the PoolName field's value.
6219func (s *DeleteDedicatedIpPoolInput) SetPoolName(v string) *DeleteDedicatedIpPoolInput {
6220	s.PoolName = &v
6221	return s
6222}
6223
6224// An HTTP 200 response if the request succeeds, or an error message if the
6225// request fails.
6226type DeleteDedicatedIpPoolOutput struct {
6227	_ struct{} `type:"structure"`
6228}
6229
6230// String returns the string representation
6231func (s DeleteDedicatedIpPoolOutput) String() string {
6232	return awsutil.Prettify(s)
6233}
6234
6235// GoString returns the string representation
6236func (s DeleteDedicatedIpPoolOutput) GoString() string {
6237	return s.String()
6238}
6239
6240// A request to delete an existing email identity. When you delete an identity,
6241// you lose the ability to send email from that identity. You can restore your
6242// ability to send email by completing the verification process for the identity
6243// again.
6244type DeleteEmailIdentityInput struct {
6245	_ struct{} `type:"structure"`
6246
6247	// The identity (that is, the email address or domain) that you want to delete.
6248	//
6249	// EmailIdentity is a required field
6250	EmailIdentity *string `location:"uri" locationName:"EmailIdentity" type:"string" required:"true"`
6251}
6252
6253// String returns the string representation
6254func (s DeleteEmailIdentityInput) String() string {
6255	return awsutil.Prettify(s)
6256}
6257
6258// GoString returns the string representation
6259func (s DeleteEmailIdentityInput) GoString() string {
6260	return s.String()
6261}
6262
6263// Validate inspects the fields of the type to determine if they are valid.
6264func (s *DeleteEmailIdentityInput) Validate() error {
6265	invalidParams := request.ErrInvalidParams{Context: "DeleteEmailIdentityInput"}
6266	if s.EmailIdentity == nil {
6267		invalidParams.Add(request.NewErrParamRequired("EmailIdentity"))
6268	}
6269	if s.EmailIdentity != nil && len(*s.EmailIdentity) < 1 {
6270		invalidParams.Add(request.NewErrParamMinLen("EmailIdentity", 1))
6271	}
6272
6273	if invalidParams.Len() > 0 {
6274		return invalidParams
6275	}
6276	return nil
6277}
6278
6279// SetEmailIdentity sets the EmailIdentity field's value.
6280func (s *DeleteEmailIdentityInput) SetEmailIdentity(v string) *DeleteEmailIdentityInput {
6281	s.EmailIdentity = &v
6282	return s
6283}
6284
6285// An HTTP 200 response if the request succeeds, or an error message if the
6286// request fails.
6287type DeleteEmailIdentityOutput struct {
6288	_ struct{} `type:"structure"`
6289}
6290
6291// String returns the string representation
6292func (s DeleteEmailIdentityOutput) String() string {
6293	return awsutil.Prettify(s)
6294}
6295
6296// GoString returns the string representation
6297func (s DeleteEmailIdentityOutput) GoString() string {
6298	return s.String()
6299}
6300
6301// A request to remove an email address from the suppression list for your account.
6302type DeleteSuppressedDestinationInput struct {
6303	_ struct{} `type:"structure"`
6304
6305	// The suppressed email destination to remove from the account suppression list.
6306	//
6307	// EmailAddress is a required field
6308	EmailAddress *string `location:"uri" locationName:"EmailAddress" type:"string" required:"true"`
6309}
6310
6311// String returns the string representation
6312func (s DeleteSuppressedDestinationInput) String() string {
6313	return awsutil.Prettify(s)
6314}
6315
6316// GoString returns the string representation
6317func (s DeleteSuppressedDestinationInput) GoString() string {
6318	return s.String()
6319}
6320
6321// Validate inspects the fields of the type to determine if they are valid.
6322func (s *DeleteSuppressedDestinationInput) Validate() error {
6323	invalidParams := request.ErrInvalidParams{Context: "DeleteSuppressedDestinationInput"}
6324	if s.EmailAddress == nil {
6325		invalidParams.Add(request.NewErrParamRequired("EmailAddress"))
6326	}
6327	if s.EmailAddress != nil && len(*s.EmailAddress) < 1 {
6328		invalidParams.Add(request.NewErrParamMinLen("EmailAddress", 1))
6329	}
6330
6331	if invalidParams.Len() > 0 {
6332		return invalidParams
6333	}
6334	return nil
6335}
6336
6337// SetEmailAddress sets the EmailAddress field's value.
6338func (s *DeleteSuppressedDestinationInput) SetEmailAddress(v string) *DeleteSuppressedDestinationInput {
6339	s.EmailAddress = &v
6340	return s
6341}
6342
6343// An HTTP 200 response if the request succeeds, or an error message if the
6344// request fails.
6345type DeleteSuppressedDestinationOutput struct {
6346	_ struct{} `type:"structure"`
6347}
6348
6349// String returns the string representation
6350func (s DeleteSuppressedDestinationOutput) String() string {
6351	return awsutil.Prettify(s)
6352}
6353
6354// GoString returns the string representation
6355func (s DeleteSuppressedDestinationOutput) GoString() string {
6356	return s.String()
6357}
6358
6359// An object that contains metadata related to a predictive inbox placement
6360// test.
6361type DeliverabilityTestReport struct {
6362	_ struct{} `type:"structure"`
6363
6364	// The date and time when the predictive inbox placement test was created, in
6365	// Unix time format.
6366	CreateDate *time.Time `type:"timestamp"`
6367
6368	// The status of the predictive inbox placement test. If the status is IN_PROGRESS,
6369	// then the predictive inbox placement test is currently running. Predictive
6370	// inbox placement tests are usually complete within 24 hours of creating the
6371	// test. If the status is COMPLETE, then the test is finished, and you can use
6372	// the GetDeliverabilityTestReport to view the results of the test.
6373	DeliverabilityTestStatus *string `type:"string" enum:"DeliverabilityTestStatus"`
6374
6375	// The sender address that you specified for the predictive inbox placement
6376	// test.
6377	FromEmailAddress *string `type:"string"`
6378
6379	// A unique string that identifies the predictive inbox placement test.
6380	ReportId *string `type:"string"`
6381
6382	// A name that helps you identify a predictive inbox placement test report.
6383	ReportName *string `type:"string"`
6384
6385	// The subject line for an email that you submitted in a predictive inbox placement
6386	// test.
6387	Subject *string `type:"string"`
6388}
6389
6390// String returns the string representation
6391func (s DeliverabilityTestReport) String() string {
6392	return awsutil.Prettify(s)
6393}
6394
6395// GoString returns the string representation
6396func (s DeliverabilityTestReport) GoString() string {
6397	return s.String()
6398}
6399
6400// SetCreateDate sets the CreateDate field's value.
6401func (s *DeliverabilityTestReport) SetCreateDate(v time.Time) *DeliverabilityTestReport {
6402	s.CreateDate = &v
6403	return s
6404}
6405
6406// SetDeliverabilityTestStatus sets the DeliverabilityTestStatus field's value.
6407func (s *DeliverabilityTestReport) SetDeliverabilityTestStatus(v string) *DeliverabilityTestReport {
6408	s.DeliverabilityTestStatus = &v
6409	return s
6410}
6411
6412// SetFromEmailAddress sets the FromEmailAddress field's value.
6413func (s *DeliverabilityTestReport) SetFromEmailAddress(v string) *DeliverabilityTestReport {
6414	s.FromEmailAddress = &v
6415	return s
6416}
6417
6418// SetReportId sets the ReportId field's value.
6419func (s *DeliverabilityTestReport) SetReportId(v string) *DeliverabilityTestReport {
6420	s.ReportId = &v
6421	return s
6422}
6423
6424// SetReportName sets the ReportName field's value.
6425func (s *DeliverabilityTestReport) SetReportName(v string) *DeliverabilityTestReport {
6426	s.ReportName = &v
6427	return s
6428}
6429
6430// SetSubject sets the Subject field's value.
6431func (s *DeliverabilityTestReport) SetSubject(v string) *DeliverabilityTestReport {
6432	s.Subject = &v
6433	return s
6434}
6435
6436// Used to associate a configuration set with a dedicated IP pool.
6437type DeliveryOptions struct {
6438	_ struct{} `type:"structure"`
6439
6440	// The name of the dedicated IP pool that you want to associate with the configuration
6441	// set.
6442	SendingPoolName *string `type:"string"`
6443
6444	// Specifies whether messages that use the configuration set are required to
6445	// use Transport Layer Security (TLS). If the value is Require, messages are
6446	// only delivered if a TLS connection can be established. If the value is Optional,
6447	// messages can be delivered in plain text if a TLS connection can't be established.
6448	TlsPolicy *string `type:"string" enum:"TlsPolicy"`
6449}
6450
6451// String returns the string representation
6452func (s DeliveryOptions) String() string {
6453	return awsutil.Prettify(s)
6454}
6455
6456// GoString returns the string representation
6457func (s DeliveryOptions) GoString() string {
6458	return s.String()
6459}
6460
6461// SetSendingPoolName sets the SendingPoolName field's value.
6462func (s *DeliveryOptions) SetSendingPoolName(v string) *DeliveryOptions {
6463	s.SendingPoolName = &v
6464	return s
6465}
6466
6467// SetTlsPolicy sets the TlsPolicy field's value.
6468func (s *DeliveryOptions) SetTlsPolicy(v string) *DeliveryOptions {
6469	s.TlsPolicy = &v
6470	return s
6471}
6472
6473// An object that describes the recipients for an email.
6474type Destination struct {
6475	_ struct{} `type:"structure"`
6476
6477	// An array that contains the email addresses of the "BCC" (blind carbon copy)
6478	// recipients for the email.
6479	BccAddresses []*string `type:"list"`
6480
6481	// An array that contains the email addresses of the "CC" (carbon copy) recipients
6482	// for the email.
6483	CcAddresses []*string `type:"list"`
6484
6485	// An array that contains the email addresses of the "To" recipients for the
6486	// email.
6487	ToAddresses []*string `type:"list"`
6488}
6489
6490// String returns the string representation
6491func (s Destination) String() string {
6492	return awsutil.Prettify(s)
6493}
6494
6495// GoString returns the string representation
6496func (s Destination) GoString() string {
6497	return s.String()
6498}
6499
6500// SetBccAddresses sets the BccAddresses field's value.
6501func (s *Destination) SetBccAddresses(v []*string) *Destination {
6502	s.BccAddresses = v
6503	return s
6504}
6505
6506// SetCcAddresses sets the CcAddresses field's value.
6507func (s *Destination) SetCcAddresses(v []*string) *Destination {
6508	s.CcAddresses = v
6509	return s
6510}
6511
6512// SetToAddresses sets the ToAddresses field's value.
6513func (s *Destination) SetToAddresses(v []*string) *Destination {
6514	s.ToAddresses = v
6515	return s
6516}
6517
6518// An object that contains information about the DKIM authentication status
6519// for an email identity.
6520//
6521// Amazon SES determines the authentication status by searching for specific
6522// records in the DNS configuration for the domain. If you used Easy DKIM (https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html)
6523// to set up DKIM authentication, Amazon SES tries to find three unique CNAME
6524// records in the DNS configuration for your domain. If you provided a public
6525// key to perform DKIM authentication, Amazon SES tries to find a TXT record
6526// that uses the selector that you specified. The value of the TXT record must
6527// be a public key that's paired with the private key that you specified in
6528// the process of creating the identity
6529type DkimAttributes struct {
6530	_ struct{} `type:"structure"`
6531
6532	// A string that indicates how DKIM was configured for the identity. There are
6533	// two possible values:
6534	//
6535	//    * AWS_SES – Indicates that DKIM was configured for the identity by using
6536	//    Easy DKIM (https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html).
6537	//
6538	//    * EXTERNAL – Indicates that DKIM was configured for the identity by
6539	//    using Bring Your Own DKIM (BYODKIM).
6540	SigningAttributesOrigin *string `type:"string" enum:"DkimSigningAttributesOrigin"`
6541
6542	// If the value is true, then the messages that you send from the identity are
6543	// signed using DKIM. If the value is false, then the messages that you send
6544	// from the identity aren't DKIM-signed.
6545	SigningEnabled *bool `type:"boolean"`
6546
6547	// Describes whether or not Amazon SES has successfully located the DKIM records
6548	// in the DNS records for the domain. The status can be one of the following:
6549	//
6550	//    * PENDING – The verification process was initiated, but Amazon SES hasn't
6551	//    yet detected the DKIM records in the DNS configuration for the domain.
6552	//
6553	//    * SUCCESS – The verification process completed successfully.
6554	//
6555	//    * FAILED – The verification process failed. This typically occurs when
6556	//    Amazon SES fails to find the DKIM records in the DNS configuration of
6557	//    the domain.
6558	//
6559	//    * TEMPORARY_FAILURE – A temporary issue is preventing Amazon SES from
6560	//    determining the DKIM authentication status of the domain.
6561	//
6562	//    * NOT_STARTED – The DKIM verification process hasn't been initiated
6563	//    for the domain.
6564	Status *string `type:"string" enum:"DkimStatus"`
6565
6566	// If you used Easy DKIM (https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html)
6567	// to configure DKIM authentication for the domain, then this object contains
6568	// a set of unique strings that you use to create a set of CNAME records that
6569	// you add to the DNS configuration for your domain. When Amazon SES detects
6570	// these records in the DNS configuration for your domain, the DKIM authentication
6571	// process is complete.
6572	//
6573	// If you configured DKIM authentication for the domain by providing your own
6574	// public-private key pair, then this object contains the selector for the public
6575	// key.
6576	//
6577	// Regardless of the DKIM authentication method you use, Amazon SES searches
6578	// for the appropriate records in the DNS configuration of the domain for up
6579	// to 72 hours.
6580	Tokens []*string `type:"list"`
6581}
6582
6583// String returns the string representation
6584func (s DkimAttributes) String() string {
6585	return awsutil.Prettify(s)
6586}
6587
6588// GoString returns the string representation
6589func (s DkimAttributes) GoString() string {
6590	return s.String()
6591}
6592
6593// SetSigningAttributesOrigin sets the SigningAttributesOrigin field's value.
6594func (s *DkimAttributes) SetSigningAttributesOrigin(v string) *DkimAttributes {
6595	s.SigningAttributesOrigin = &v
6596	return s
6597}
6598
6599// SetSigningEnabled sets the SigningEnabled field's value.
6600func (s *DkimAttributes) SetSigningEnabled(v bool) *DkimAttributes {
6601	s.SigningEnabled = &v
6602	return s
6603}
6604
6605// SetStatus sets the Status field's value.
6606func (s *DkimAttributes) SetStatus(v string) *DkimAttributes {
6607	s.Status = &v
6608	return s
6609}
6610
6611// SetTokens sets the Tokens field's value.
6612func (s *DkimAttributes) SetTokens(v []*string) *DkimAttributes {
6613	s.Tokens = v
6614	return s
6615}
6616
6617// An object that contains information about the tokens used for setting up
6618// Bring Your Own DKIM (BYODKIM).
6619type DkimSigningAttributes struct {
6620	_ struct{} `type:"structure"`
6621
6622	// A private key that's used to generate a DKIM signature.
6623	//
6624	// The private key must use 1024-bit RSA encryption, and must be encoded using
6625	// base64 encoding.
6626	//
6627	// DomainSigningPrivateKey is a required field
6628	DomainSigningPrivateKey *string `min:"1" type:"string" required:"true" sensitive:"true"`
6629
6630	// A string that's used to identify a public key in the DNS configuration for
6631	// a domain.
6632	//
6633	// DomainSigningSelector is a required field
6634	DomainSigningSelector *string `min:"1" type:"string" required:"true"`
6635}
6636
6637// String returns the string representation
6638func (s DkimSigningAttributes) String() string {
6639	return awsutil.Prettify(s)
6640}
6641
6642// GoString returns the string representation
6643func (s DkimSigningAttributes) GoString() string {
6644	return s.String()
6645}
6646
6647// Validate inspects the fields of the type to determine if they are valid.
6648func (s *DkimSigningAttributes) Validate() error {
6649	invalidParams := request.ErrInvalidParams{Context: "DkimSigningAttributes"}
6650	if s.DomainSigningPrivateKey == nil {
6651		invalidParams.Add(request.NewErrParamRequired("DomainSigningPrivateKey"))
6652	}
6653	if s.DomainSigningPrivateKey != nil && len(*s.DomainSigningPrivateKey) < 1 {
6654		invalidParams.Add(request.NewErrParamMinLen("DomainSigningPrivateKey", 1))
6655	}
6656	if s.DomainSigningSelector == nil {
6657		invalidParams.Add(request.NewErrParamRequired("DomainSigningSelector"))
6658	}
6659	if s.DomainSigningSelector != nil && len(*s.DomainSigningSelector) < 1 {
6660		invalidParams.Add(request.NewErrParamMinLen("DomainSigningSelector", 1))
6661	}
6662
6663	if invalidParams.Len() > 0 {
6664		return invalidParams
6665	}
6666	return nil
6667}
6668
6669// SetDomainSigningPrivateKey sets the DomainSigningPrivateKey field's value.
6670func (s *DkimSigningAttributes) SetDomainSigningPrivateKey(v string) *DkimSigningAttributes {
6671	s.DomainSigningPrivateKey = &v
6672	return s
6673}
6674
6675// SetDomainSigningSelector sets the DomainSigningSelector field's value.
6676func (s *DkimSigningAttributes) SetDomainSigningSelector(v string) *DkimSigningAttributes {
6677	s.DomainSigningSelector = &v
6678	return s
6679}
6680
6681// An object that contains the deliverability data for a specific campaign.
6682// This data is available for a campaign only if the campaign sent email by
6683// using a domain that the Deliverability dashboard is enabled for (PutDeliverabilityDashboardOption
6684// operation).
6685type DomainDeliverabilityCampaign struct {
6686	_ struct{} `type:"structure"`
6687
6688	// The unique identifier for the campaign. The Deliverability dashboard automatically
6689	// generates and assigns this identifier to a campaign.
6690	CampaignId *string `type:"string"`
6691
6692	// The percentage of email messages that were deleted by recipients, without
6693	// being opened first. Due to technical limitations, this value only includes
6694	// recipients who opened the message by using an email client that supports
6695	// images.
6696	DeleteRate *float64 `type:"double"`
6697
6698	// The major email providers who handled the email message.
6699	Esps []*string `type:"list"`
6700
6701	// The first time, in Unix time format, when the email message was delivered
6702	// to any recipient's inbox. This value can help you determine how long it took
6703	// for a campaign to deliver an email message.
6704	FirstSeenDateTime *time.Time `type:"timestamp"`
6705
6706	// The verified email address that the email message was sent from.
6707	FromAddress *string `type:"string"`
6708
6709	// The URL of an image that contains a snapshot of the email message that was
6710	// sent.
6711	ImageUrl *string `type:"string"`
6712
6713	// The number of email messages that were delivered to recipients’ inboxes.
6714	InboxCount *int64 `type:"long"`
6715
6716	// The last time, in Unix time format, when the email message was delivered
6717	// to any recipient's inbox. This value can help you determine how long it took
6718	// for a campaign to deliver an email message.
6719	LastSeenDateTime *time.Time `type:"timestamp"`
6720
6721	// The projected number of recipients that the email message was sent to.
6722	ProjectedVolume *int64 `type:"long"`
6723
6724	// The percentage of email messages that were opened and then deleted by recipients.
6725	// Due to technical limitations, this value only includes recipients who opened
6726	// the message by using an email client that supports images.
6727	ReadDeleteRate *float64 `type:"double"`
6728
6729	// The percentage of email messages that were opened by recipients. Due to technical
6730	// limitations, this value only includes recipients who opened the message by
6731	// using an email client that supports images.
6732	ReadRate *float64 `type:"double"`
6733
6734	// The IP addresses that were used to send the email message.
6735	SendingIps []*string `type:"list"`
6736
6737	// The number of email messages that were delivered to recipients' spam or junk
6738	// mail folders.
6739	SpamCount *int64 `type:"long"`
6740
6741	// The subject line, or title, of the email message.
6742	Subject *string `type:"string"`
6743}
6744
6745// String returns the string representation
6746func (s DomainDeliverabilityCampaign) String() string {
6747	return awsutil.Prettify(s)
6748}
6749
6750// GoString returns the string representation
6751func (s DomainDeliverabilityCampaign) GoString() string {
6752	return s.String()
6753}
6754
6755// SetCampaignId sets the CampaignId field's value.
6756func (s *DomainDeliverabilityCampaign) SetCampaignId(v string) *DomainDeliverabilityCampaign {
6757	s.CampaignId = &v
6758	return s
6759}
6760
6761// SetDeleteRate sets the DeleteRate field's value.
6762func (s *DomainDeliverabilityCampaign) SetDeleteRate(v float64) *DomainDeliverabilityCampaign {
6763	s.DeleteRate = &v
6764	return s
6765}
6766
6767// SetEsps sets the Esps field's value.
6768func (s *DomainDeliverabilityCampaign) SetEsps(v []*string) *DomainDeliverabilityCampaign {
6769	s.Esps = v
6770	return s
6771}
6772
6773// SetFirstSeenDateTime sets the FirstSeenDateTime field's value.
6774func (s *DomainDeliverabilityCampaign) SetFirstSeenDateTime(v time.Time) *DomainDeliverabilityCampaign {
6775	s.FirstSeenDateTime = &v
6776	return s
6777}
6778
6779// SetFromAddress sets the FromAddress field's value.
6780func (s *DomainDeliverabilityCampaign) SetFromAddress(v string) *DomainDeliverabilityCampaign {
6781	s.FromAddress = &v
6782	return s
6783}
6784
6785// SetImageUrl sets the ImageUrl field's value.
6786func (s *DomainDeliverabilityCampaign) SetImageUrl(v string) *DomainDeliverabilityCampaign {
6787	s.ImageUrl = &v
6788	return s
6789}
6790
6791// SetInboxCount sets the InboxCount field's value.
6792func (s *DomainDeliverabilityCampaign) SetInboxCount(v int64) *DomainDeliverabilityCampaign {
6793	s.InboxCount = &v
6794	return s
6795}
6796
6797// SetLastSeenDateTime sets the LastSeenDateTime field's value.
6798func (s *DomainDeliverabilityCampaign) SetLastSeenDateTime(v time.Time) *DomainDeliverabilityCampaign {
6799	s.LastSeenDateTime = &v
6800	return s
6801}
6802
6803// SetProjectedVolume sets the ProjectedVolume field's value.
6804func (s *DomainDeliverabilityCampaign) SetProjectedVolume(v int64) *DomainDeliverabilityCampaign {
6805	s.ProjectedVolume = &v
6806	return s
6807}
6808
6809// SetReadDeleteRate sets the ReadDeleteRate field's value.
6810func (s *DomainDeliverabilityCampaign) SetReadDeleteRate(v float64) *DomainDeliverabilityCampaign {
6811	s.ReadDeleteRate = &v
6812	return s
6813}
6814
6815// SetReadRate sets the ReadRate field's value.
6816func (s *DomainDeliverabilityCampaign) SetReadRate(v float64) *DomainDeliverabilityCampaign {
6817	s.ReadRate = &v
6818	return s
6819}
6820
6821// SetSendingIps sets the SendingIps field's value.
6822func (s *DomainDeliverabilityCampaign) SetSendingIps(v []*string) *DomainDeliverabilityCampaign {
6823	s.SendingIps = v
6824	return s
6825}
6826
6827// SetSpamCount sets the SpamCount field's value.
6828func (s *DomainDeliverabilityCampaign) SetSpamCount(v int64) *DomainDeliverabilityCampaign {
6829	s.SpamCount = &v
6830	return s
6831}
6832
6833// SetSubject sets the Subject field's value.
6834func (s *DomainDeliverabilityCampaign) SetSubject(v string) *DomainDeliverabilityCampaign {
6835	s.Subject = &v
6836	return s
6837}
6838
6839// An object that contains information about the Deliverability dashboard subscription
6840// for a verified domain that you use to send email and currently has an active
6841// Deliverability dashboard subscription. If a Deliverability dashboard subscription
6842// is active for a domain, you gain access to reputation, inbox placement, and
6843// other metrics for the domain.
6844type DomainDeliverabilityTrackingOption struct {
6845	_ struct{} `type:"structure"`
6846
6847	// A verified domain that’s associated with your AWS account and currently
6848	// has an active Deliverability dashboard subscription.
6849	Domain *string `type:"string"`
6850
6851	// An object that contains information about the inbox placement data settings
6852	// for the domain.
6853	InboxPlacementTrackingOption *InboxPlacementTrackingOption `type:"structure"`
6854
6855	// The date, in Unix time format, when you enabled the Deliverability dashboard
6856	// for the domain.
6857	SubscriptionStartDate *time.Time `type:"timestamp"`
6858}
6859
6860// String returns the string representation
6861func (s DomainDeliverabilityTrackingOption) String() string {
6862	return awsutil.Prettify(s)
6863}
6864
6865// GoString returns the string representation
6866func (s DomainDeliverabilityTrackingOption) GoString() string {
6867	return s.String()
6868}
6869
6870// SetDomain sets the Domain field's value.
6871func (s *DomainDeliverabilityTrackingOption) SetDomain(v string) *DomainDeliverabilityTrackingOption {
6872	s.Domain = &v
6873	return s
6874}
6875
6876// SetInboxPlacementTrackingOption sets the InboxPlacementTrackingOption field's value.
6877func (s *DomainDeliverabilityTrackingOption) SetInboxPlacementTrackingOption(v *InboxPlacementTrackingOption) *DomainDeliverabilityTrackingOption {
6878	s.InboxPlacementTrackingOption = v
6879	return s
6880}
6881
6882// SetSubscriptionStartDate sets the SubscriptionStartDate field's value.
6883func (s *DomainDeliverabilityTrackingOption) SetSubscriptionStartDate(v time.Time) *DomainDeliverabilityTrackingOption {
6884	s.SubscriptionStartDate = &v
6885	return s
6886}
6887
6888// An object that contains inbox placement data for email sent from one of your
6889// email domains to a specific email provider.
6890type DomainIspPlacement struct {
6891	_ struct{} `type:"structure"`
6892
6893	// The percentage of messages that were sent from the selected domain to the
6894	// specified email provider that arrived in recipients' inboxes.
6895	InboxPercentage *float64 `type:"double"`
6896
6897	// The total number of messages that were sent from the selected domain to the
6898	// specified email provider that arrived in recipients' inboxes.
6899	InboxRawCount *int64 `type:"long"`
6900
6901	// The name of the email provider that the inbox placement data applies to.
6902	IspName *string `type:"string"`
6903
6904	// The percentage of messages that were sent from the selected domain to the
6905	// specified email provider that arrived in recipients' spam or junk mail folders.
6906	SpamPercentage *float64 `type:"double"`
6907
6908	// The total number of messages that were sent from the selected domain to the
6909	// specified email provider that arrived in recipients' spam or junk mail folders.
6910	SpamRawCount *int64 `type:"long"`
6911}
6912
6913// String returns the string representation
6914func (s DomainIspPlacement) String() string {
6915	return awsutil.Prettify(s)
6916}
6917
6918// GoString returns the string representation
6919func (s DomainIspPlacement) GoString() string {
6920	return s.String()
6921}
6922
6923// SetInboxPercentage sets the InboxPercentage field's value.
6924func (s *DomainIspPlacement) SetInboxPercentage(v float64) *DomainIspPlacement {
6925	s.InboxPercentage = &v
6926	return s
6927}
6928
6929// SetInboxRawCount sets the InboxRawCount field's value.
6930func (s *DomainIspPlacement) SetInboxRawCount(v int64) *DomainIspPlacement {
6931	s.InboxRawCount = &v
6932	return s
6933}
6934
6935// SetIspName sets the IspName field's value.
6936func (s *DomainIspPlacement) SetIspName(v string) *DomainIspPlacement {
6937	s.IspName = &v
6938	return s
6939}
6940
6941// SetSpamPercentage sets the SpamPercentage field's value.
6942func (s *DomainIspPlacement) SetSpamPercentage(v float64) *DomainIspPlacement {
6943	s.SpamPercentage = &v
6944	return s
6945}
6946
6947// SetSpamRawCount sets the SpamRawCount field's value.
6948func (s *DomainIspPlacement) SetSpamRawCount(v int64) *DomainIspPlacement {
6949	s.SpamRawCount = &v
6950	return s
6951}
6952
6953// An object that defines the entire content of the email, including the message
6954// headers and the body content. You can create a simple email message, in which
6955// you specify the subject and the text and HTML versions of the message body.
6956// You can also create raw messages, in which you specify a complete MIME-formatted
6957// message. Raw messages can include attachments and custom headers.
6958type EmailContent struct {
6959	_ struct{} `type:"structure"`
6960
6961	// The raw email message. The message has to meet the following criteria:
6962	//
6963	//    * The message has to contain a header and a body, separated by one blank
6964	//    line.
6965	//
6966	//    * All of the required header fields must be present in the message.
6967	//
6968	//    * Each part of a multipart MIME message must be formatted properly.
6969	//
6970	//    * If you include attachments, they must be in a file format that the Amazon
6971	//    SES API v2 supports.
6972	//
6973	//    * The entire message must be Base64 encoded.
6974	//
6975	//    * If any of the MIME parts in your message contain content that is outside
6976	//    of the 7-bit ASCII character range, you should encode that content to
6977	//    ensure that recipients' email clients render the message properly.
6978	//
6979	//    * The length of any single line of text in the message can't exceed 1,000
6980	//    characters. This restriction is defined in RFC 5321 (https://tools.ietf.org/html/rfc5321).
6981	Raw *RawMessage `type:"structure"`
6982
6983	// The simple email message. The message consists of a subject and a message
6984	// body.
6985	Simple *Message `type:"structure"`
6986
6987	// The template to use for the email message.
6988	Template *Template `type:"structure"`
6989}
6990
6991// String returns the string representation
6992func (s EmailContent) String() string {
6993	return awsutil.Prettify(s)
6994}
6995
6996// GoString returns the string representation
6997func (s EmailContent) GoString() string {
6998	return s.String()
6999}
7000
7001// Validate inspects the fields of the type to determine if they are valid.
7002func (s *EmailContent) Validate() error {
7003	invalidParams := request.ErrInvalidParams{Context: "EmailContent"}
7004	if s.Raw != nil {
7005		if err := s.Raw.Validate(); err != nil {
7006			invalidParams.AddNested("Raw", err.(request.ErrInvalidParams))
7007		}
7008	}
7009	if s.Simple != nil {
7010		if err := s.Simple.Validate(); err != nil {
7011			invalidParams.AddNested("Simple", err.(request.ErrInvalidParams))
7012		}
7013	}
7014
7015	if invalidParams.Len() > 0 {
7016		return invalidParams
7017	}
7018	return nil
7019}
7020
7021// SetRaw sets the Raw field's value.
7022func (s *EmailContent) SetRaw(v *RawMessage) *EmailContent {
7023	s.Raw = v
7024	return s
7025}
7026
7027// SetSimple sets the Simple field's value.
7028func (s *EmailContent) SetSimple(v *Message) *EmailContent {
7029	s.Simple = v
7030	return s
7031}
7032
7033// SetTemplate sets the Template field's value.
7034func (s *EmailContent) SetTemplate(v *Template) *EmailContent {
7035	s.Template = v
7036	return s
7037}
7038
7039// In the Amazon SES API v2, events include message sends, deliveries, opens,
7040// clicks, bounces, complaints and delivery delays. Event destinations are places
7041// that you can send information about these events to. For example, you can
7042// send event data to Amazon SNS to receive notifications when you receive bounces
7043// or complaints, or you can use Amazon Kinesis Data Firehose to stream data
7044// to Amazon S3 for long-term storage.
7045type EventDestination struct {
7046	_ struct{} `type:"structure"`
7047
7048	// An object that defines an Amazon CloudWatch destination for email events.
7049	// You can use Amazon CloudWatch to monitor and gain insights on your email
7050	// sending metrics.
7051	CloudWatchDestination *CloudWatchDestination `type:"structure"`
7052
7053	// If true, the event destination is enabled. When the event destination is
7054	// enabled, the specified event types are sent to the destinations in this EventDestinationDefinition.
7055	//
7056	// If false, the event destination is disabled. When the event destination is
7057	// disabled, events aren't sent to the specified destinations.
7058	Enabled *bool `type:"boolean"`
7059
7060	// An object that defines an Amazon Kinesis Data Firehose destination for email
7061	// events. You can use Amazon Kinesis Data Firehose to stream data to other
7062	// services, such as Amazon S3 and Amazon Redshift.
7063	KinesisFirehoseDestination *KinesisFirehoseDestination `type:"structure"`
7064
7065	// The types of events that Amazon SES sends to the specified event destinations.
7066	//
7067	// MatchingEventTypes is a required field
7068	MatchingEventTypes []*string `type:"list" required:"true"`
7069
7070	// A name that identifies the event destination.
7071	//
7072	// Name is a required field
7073	Name *string `type:"string" required:"true"`
7074
7075	// An object that defines an Amazon Pinpoint project destination for email events.
7076	// You can send email event data to a Amazon Pinpoint project to view metrics
7077	// using the Transactional Messaging dashboards that are built in to Amazon
7078	// Pinpoint. For more information, see Transactional Messaging Charts (https://docs.aws.amazon.com/pinpoint/latest/userguide/analytics-transactional-messages.html)
7079	// in the Amazon Pinpoint User Guide.
7080	PinpointDestination *PinpointDestination `type:"structure"`
7081
7082	// An object that defines an Amazon SNS destination for email events. You can
7083	// use Amazon SNS to send notification when certain email events occur.
7084	SnsDestination *SnsDestination `type:"structure"`
7085}
7086
7087// String returns the string representation
7088func (s EventDestination) String() string {
7089	return awsutil.Prettify(s)
7090}
7091
7092// GoString returns the string representation
7093func (s EventDestination) GoString() string {
7094	return s.String()
7095}
7096
7097// SetCloudWatchDestination sets the CloudWatchDestination field's value.
7098func (s *EventDestination) SetCloudWatchDestination(v *CloudWatchDestination) *EventDestination {
7099	s.CloudWatchDestination = v
7100	return s
7101}
7102
7103// SetEnabled sets the Enabled field's value.
7104func (s *EventDestination) SetEnabled(v bool) *EventDestination {
7105	s.Enabled = &v
7106	return s
7107}
7108
7109// SetKinesisFirehoseDestination sets the KinesisFirehoseDestination field's value.
7110func (s *EventDestination) SetKinesisFirehoseDestination(v *KinesisFirehoseDestination) *EventDestination {
7111	s.KinesisFirehoseDestination = v
7112	return s
7113}
7114
7115// SetMatchingEventTypes sets the MatchingEventTypes field's value.
7116func (s *EventDestination) SetMatchingEventTypes(v []*string) *EventDestination {
7117	s.MatchingEventTypes = v
7118	return s
7119}
7120
7121// SetName sets the Name field's value.
7122func (s *EventDestination) SetName(v string) *EventDestination {
7123	s.Name = &v
7124	return s
7125}
7126
7127// SetPinpointDestination sets the PinpointDestination field's value.
7128func (s *EventDestination) SetPinpointDestination(v *PinpointDestination) *EventDestination {
7129	s.PinpointDestination = v
7130	return s
7131}
7132
7133// SetSnsDestination sets the SnsDestination field's value.
7134func (s *EventDestination) SetSnsDestination(v *SnsDestination) *EventDestination {
7135	s.SnsDestination = v
7136	return s
7137}
7138
7139// An object that defines the event destination. Specifically, it defines which
7140// services receive events from emails sent using the configuration set that
7141// the event destination is associated with. Also defines the types of events
7142// that are sent to the event destination.
7143type EventDestinationDefinition struct {
7144	_ struct{} `type:"structure"`
7145
7146	// An object that defines an Amazon CloudWatch destination for email events.
7147	// You can use Amazon CloudWatch to monitor and gain insights on your email
7148	// sending metrics.
7149	CloudWatchDestination *CloudWatchDestination `type:"structure"`
7150
7151	// If true, the event destination is enabled. When the event destination is
7152	// enabled, the specified event types are sent to the destinations in this EventDestinationDefinition.
7153	//
7154	// If false, the event destination is disabled. When the event destination is
7155	// disabled, events aren't sent to the specified destinations.
7156	Enabled *bool `type:"boolean"`
7157
7158	// An object that defines an Amazon Kinesis Data Firehose destination for email
7159	// events. You can use Amazon Kinesis Data Firehose to stream data to other
7160	// services, such as Amazon S3 and Amazon Redshift.
7161	KinesisFirehoseDestination *KinesisFirehoseDestination `type:"structure"`
7162
7163	// An array that specifies which events the Amazon SES API v2 should send to
7164	// the destinations in this EventDestinationDefinition.
7165	MatchingEventTypes []*string `type:"list"`
7166
7167	// An object that defines an Amazon Pinpoint project destination for email events.
7168	// You can send email event data to a Amazon Pinpoint project to view metrics
7169	// using the Transactional Messaging dashboards that are built in to Amazon
7170	// Pinpoint. For more information, see Transactional Messaging Charts (https://docs.aws.amazon.com/pinpoint/latest/userguide/analytics-transactional-messages.html)
7171	// in the Amazon Pinpoint User Guide.
7172	PinpointDestination *PinpointDestination `type:"structure"`
7173
7174	// An object that defines an Amazon SNS destination for email events. You can
7175	// use Amazon SNS to send notification when certain email events occur.
7176	SnsDestination *SnsDestination `type:"structure"`
7177}
7178
7179// String returns the string representation
7180func (s EventDestinationDefinition) String() string {
7181	return awsutil.Prettify(s)
7182}
7183
7184// GoString returns the string representation
7185func (s EventDestinationDefinition) GoString() string {
7186	return s.String()
7187}
7188
7189// Validate inspects the fields of the type to determine if they are valid.
7190func (s *EventDestinationDefinition) Validate() error {
7191	invalidParams := request.ErrInvalidParams{Context: "EventDestinationDefinition"}
7192	if s.CloudWatchDestination != nil {
7193		if err := s.CloudWatchDestination.Validate(); err != nil {
7194			invalidParams.AddNested("CloudWatchDestination", err.(request.ErrInvalidParams))
7195		}
7196	}
7197	if s.KinesisFirehoseDestination != nil {
7198		if err := s.KinesisFirehoseDestination.Validate(); err != nil {
7199			invalidParams.AddNested("KinesisFirehoseDestination", err.(request.ErrInvalidParams))
7200		}
7201	}
7202	if s.SnsDestination != nil {
7203		if err := s.SnsDestination.Validate(); err != nil {
7204			invalidParams.AddNested("SnsDestination", err.(request.ErrInvalidParams))
7205		}
7206	}
7207
7208	if invalidParams.Len() > 0 {
7209		return invalidParams
7210	}
7211	return nil
7212}
7213
7214// SetCloudWatchDestination sets the CloudWatchDestination field's value.
7215func (s *EventDestinationDefinition) SetCloudWatchDestination(v *CloudWatchDestination) *EventDestinationDefinition {
7216	s.CloudWatchDestination = v
7217	return s
7218}
7219
7220// SetEnabled sets the Enabled field's value.
7221func (s *EventDestinationDefinition) SetEnabled(v bool) *EventDestinationDefinition {
7222	s.Enabled = &v
7223	return s
7224}
7225
7226// SetKinesisFirehoseDestination sets the KinesisFirehoseDestination field's value.
7227func (s *EventDestinationDefinition) SetKinesisFirehoseDestination(v *KinesisFirehoseDestination) *EventDestinationDefinition {
7228	s.KinesisFirehoseDestination = v
7229	return s
7230}
7231
7232// SetMatchingEventTypes sets the MatchingEventTypes field's value.
7233func (s *EventDestinationDefinition) SetMatchingEventTypes(v []*string) *EventDestinationDefinition {
7234	s.MatchingEventTypes = v
7235	return s
7236}
7237
7238// SetPinpointDestination sets the PinpointDestination field's value.
7239func (s *EventDestinationDefinition) SetPinpointDestination(v *PinpointDestination) *EventDestinationDefinition {
7240	s.PinpointDestination = v
7241	return s
7242}
7243
7244// SetSnsDestination sets the SnsDestination field's value.
7245func (s *EventDestinationDefinition) SetSnsDestination(v *SnsDestination) *EventDestinationDefinition {
7246	s.SnsDestination = v
7247	return s
7248}
7249
7250// A request to obtain information about the email-sending capabilities of your
7251// Amazon SES account.
7252type GetAccountInput struct {
7253	_ struct{} `type:"structure"`
7254}
7255
7256// String returns the string representation
7257func (s GetAccountInput) String() string {
7258	return awsutil.Prettify(s)
7259}
7260
7261// GoString returns the string representation
7262func (s GetAccountInput) GoString() string {
7263	return s.String()
7264}
7265
7266// A list of details about the email-sending capabilities of your Amazon SES
7267// account in the current AWS Region.
7268type GetAccountOutput struct {
7269	_ struct{} `type:"structure"`
7270
7271	// Indicates whether or not the automatic warm-up feature is enabled for dedicated
7272	// IP addresses that are associated with your account.
7273	DedicatedIpAutoWarmupEnabled *bool `type:"boolean"`
7274
7275	// The reputation status of your Amazon SES account. The status can be one of
7276	// the following:
7277	//
7278	//    * HEALTHY – There are no reputation-related issues that currently impact
7279	//    your account.
7280	//
7281	//    * PROBATION – We've identified potential issues with your Amazon SES
7282	//    account. We're placing your account under review while you work on correcting
7283	//    these issues.
7284	//
7285	//    * SHUTDOWN – Your account's ability to send email is currently paused
7286	//    because of an issue with the email sent from your account. When you correct
7287	//    the issue, you can contact us and request that your account's ability
7288	//    to send email is resumed.
7289	EnforcementStatus *string `type:"string"`
7290
7291	// Indicates whether or not your account has production access in the current
7292	// AWS Region.
7293	//
7294	// If the value is false, then your account is in the sandbox. When your account
7295	// is in the sandbox, you can only send email to verified identities. Additionally,
7296	// the maximum number of emails you can send in a 24-hour period (your sending
7297	// quota) is 200, and the maximum number of emails you can send per second (your
7298	// maximum sending rate) is 1.
7299	//
7300	// If the value is true, then your account has production access. When your
7301	// account has production access, you can send email to any address. The sending
7302	// quota and maximum sending rate for your account vary based on your specific
7303	// use case.
7304	ProductionAccessEnabled *bool `type:"boolean"`
7305
7306	// An object that contains information about the per-day and per-second sending
7307	// limits for your Amazon SES account in the current AWS Region.
7308	SendQuota *SendQuota `type:"structure"`
7309
7310	// Indicates whether or not email sending is enabled for your Amazon SES account
7311	// in the current AWS Region.
7312	SendingEnabled *bool `type:"boolean"`
7313
7314	// An object that contains information about the email address suppression preferences
7315	// for your account in the current AWS Region.
7316	SuppressionAttributes *SuppressionAttributes `type:"structure"`
7317}
7318
7319// String returns the string representation
7320func (s GetAccountOutput) String() string {
7321	return awsutil.Prettify(s)
7322}
7323
7324// GoString returns the string representation
7325func (s GetAccountOutput) GoString() string {
7326	return s.String()
7327}
7328
7329// SetDedicatedIpAutoWarmupEnabled sets the DedicatedIpAutoWarmupEnabled field's value.
7330func (s *GetAccountOutput) SetDedicatedIpAutoWarmupEnabled(v bool) *GetAccountOutput {
7331	s.DedicatedIpAutoWarmupEnabled = &v
7332	return s
7333}
7334
7335// SetEnforcementStatus sets the EnforcementStatus field's value.
7336func (s *GetAccountOutput) SetEnforcementStatus(v string) *GetAccountOutput {
7337	s.EnforcementStatus = &v
7338	return s
7339}
7340
7341// SetProductionAccessEnabled sets the ProductionAccessEnabled field's value.
7342func (s *GetAccountOutput) SetProductionAccessEnabled(v bool) *GetAccountOutput {
7343	s.ProductionAccessEnabled = &v
7344	return s
7345}
7346
7347// SetSendQuota sets the SendQuota field's value.
7348func (s *GetAccountOutput) SetSendQuota(v *SendQuota) *GetAccountOutput {
7349	s.SendQuota = v
7350	return s
7351}
7352
7353// SetSendingEnabled sets the SendingEnabled field's value.
7354func (s *GetAccountOutput) SetSendingEnabled(v bool) *GetAccountOutput {
7355	s.SendingEnabled = &v
7356	return s
7357}
7358
7359// SetSuppressionAttributes sets the SuppressionAttributes field's value.
7360func (s *GetAccountOutput) SetSuppressionAttributes(v *SuppressionAttributes) *GetAccountOutput {
7361	s.SuppressionAttributes = v
7362	return s
7363}
7364
7365// A request to retrieve a list of the blacklists that your dedicated IP addresses
7366// appear on.
7367type GetBlacklistReportsInput struct {
7368	_ struct{} `type:"structure"`
7369
7370	// A list of IP addresses that you want to retrieve blacklist information about.
7371	// You can only specify the dedicated IP addresses that you use to send email
7372	// using Amazon SES or Amazon Pinpoint.
7373	//
7374	// BlacklistItemNames is a required field
7375	BlacklistItemNames []*string `location:"querystring" locationName:"BlacklistItemNames" type:"list" required:"true"`
7376}
7377
7378// String returns the string representation
7379func (s GetBlacklistReportsInput) String() string {
7380	return awsutil.Prettify(s)
7381}
7382
7383// GoString returns the string representation
7384func (s GetBlacklistReportsInput) GoString() string {
7385	return s.String()
7386}
7387
7388// Validate inspects the fields of the type to determine if they are valid.
7389func (s *GetBlacklistReportsInput) Validate() error {
7390	invalidParams := request.ErrInvalidParams{Context: "GetBlacklistReportsInput"}
7391	if s.BlacklistItemNames == nil {
7392		invalidParams.Add(request.NewErrParamRequired("BlacklistItemNames"))
7393	}
7394
7395	if invalidParams.Len() > 0 {
7396		return invalidParams
7397	}
7398	return nil
7399}
7400
7401// SetBlacklistItemNames sets the BlacklistItemNames field's value.
7402func (s *GetBlacklistReportsInput) SetBlacklistItemNames(v []*string) *GetBlacklistReportsInput {
7403	s.BlacklistItemNames = v
7404	return s
7405}
7406
7407// An object that contains information about blacklist events.
7408type GetBlacklistReportsOutput struct {
7409	_ struct{} `type:"structure"`
7410
7411	// An object that contains information about a blacklist that one of your dedicated
7412	// IP addresses appears on.
7413	//
7414	// BlacklistReport is a required field
7415	BlacklistReport map[string][]*BlacklistEntry `type:"map" required:"true"`
7416}
7417
7418// String returns the string representation
7419func (s GetBlacklistReportsOutput) String() string {
7420	return awsutil.Prettify(s)
7421}
7422
7423// GoString returns the string representation
7424func (s GetBlacklistReportsOutput) GoString() string {
7425	return s.String()
7426}
7427
7428// SetBlacklistReport sets the BlacklistReport field's value.
7429func (s *GetBlacklistReportsOutput) SetBlacklistReport(v map[string][]*BlacklistEntry) *GetBlacklistReportsOutput {
7430	s.BlacklistReport = v
7431	return s
7432}
7433
7434// A request to obtain information about the event destinations for a configuration
7435// set.
7436type GetConfigurationSetEventDestinationsInput struct {
7437	_ struct{} `type:"structure"`
7438
7439	// The name of the configuration set that contains the event destination.
7440	//
7441	// ConfigurationSetName is a required field
7442	ConfigurationSetName *string `location:"uri" locationName:"ConfigurationSetName" type:"string" required:"true"`
7443}
7444
7445// String returns the string representation
7446func (s GetConfigurationSetEventDestinationsInput) String() string {
7447	return awsutil.Prettify(s)
7448}
7449
7450// GoString returns the string representation
7451func (s GetConfigurationSetEventDestinationsInput) GoString() string {
7452	return s.String()
7453}
7454
7455// Validate inspects the fields of the type to determine if they are valid.
7456func (s *GetConfigurationSetEventDestinationsInput) Validate() error {
7457	invalidParams := request.ErrInvalidParams{Context: "GetConfigurationSetEventDestinationsInput"}
7458	if s.ConfigurationSetName == nil {
7459		invalidParams.Add(request.NewErrParamRequired("ConfigurationSetName"))
7460	}
7461	if s.ConfigurationSetName != nil && len(*s.ConfigurationSetName) < 1 {
7462		invalidParams.Add(request.NewErrParamMinLen("ConfigurationSetName", 1))
7463	}
7464
7465	if invalidParams.Len() > 0 {
7466		return invalidParams
7467	}
7468	return nil
7469}
7470
7471// SetConfigurationSetName sets the ConfigurationSetName field's value.
7472func (s *GetConfigurationSetEventDestinationsInput) SetConfigurationSetName(v string) *GetConfigurationSetEventDestinationsInput {
7473	s.ConfigurationSetName = &v
7474	return s
7475}
7476
7477// Information about an event destination for a configuration set.
7478type GetConfigurationSetEventDestinationsOutput struct {
7479	_ struct{} `type:"structure"`
7480
7481	// An array that includes all of the events destinations that have been configured
7482	// for the configuration set.
7483	EventDestinations []*EventDestination `type:"list"`
7484}
7485
7486// String returns the string representation
7487func (s GetConfigurationSetEventDestinationsOutput) String() string {
7488	return awsutil.Prettify(s)
7489}
7490
7491// GoString returns the string representation
7492func (s GetConfigurationSetEventDestinationsOutput) GoString() string {
7493	return s.String()
7494}
7495
7496// SetEventDestinations sets the EventDestinations field's value.
7497func (s *GetConfigurationSetEventDestinationsOutput) SetEventDestinations(v []*EventDestination) *GetConfigurationSetEventDestinationsOutput {
7498	s.EventDestinations = v
7499	return s
7500}
7501
7502// A request to obtain information about a configuration set.
7503type GetConfigurationSetInput struct {
7504	_ struct{} `type:"structure"`
7505
7506	// The name of the configuration set that you want to obtain more information
7507	// about.
7508	//
7509	// ConfigurationSetName is a required field
7510	ConfigurationSetName *string `location:"uri" locationName:"ConfigurationSetName" type:"string" required:"true"`
7511}
7512
7513// String returns the string representation
7514func (s GetConfigurationSetInput) String() string {
7515	return awsutil.Prettify(s)
7516}
7517
7518// GoString returns the string representation
7519func (s GetConfigurationSetInput) GoString() string {
7520	return s.String()
7521}
7522
7523// Validate inspects the fields of the type to determine if they are valid.
7524func (s *GetConfigurationSetInput) Validate() error {
7525	invalidParams := request.ErrInvalidParams{Context: "GetConfigurationSetInput"}
7526	if s.ConfigurationSetName == nil {
7527		invalidParams.Add(request.NewErrParamRequired("ConfigurationSetName"))
7528	}
7529	if s.ConfigurationSetName != nil && len(*s.ConfigurationSetName) < 1 {
7530		invalidParams.Add(request.NewErrParamMinLen("ConfigurationSetName", 1))
7531	}
7532
7533	if invalidParams.Len() > 0 {
7534		return invalidParams
7535	}
7536	return nil
7537}
7538
7539// SetConfigurationSetName sets the ConfigurationSetName field's value.
7540func (s *GetConfigurationSetInput) SetConfigurationSetName(v string) *GetConfigurationSetInput {
7541	s.ConfigurationSetName = &v
7542	return s
7543}
7544
7545// Information about a configuration set.
7546type GetConfigurationSetOutput struct {
7547	_ struct{} `type:"structure"`
7548
7549	// The name of the configuration set.
7550	ConfigurationSetName *string `type:"string"`
7551
7552	// An object that defines the dedicated IP pool that is used to send emails
7553	// that you send using the configuration set.
7554	DeliveryOptions *DeliveryOptions `type:"structure"`
7555
7556	// An object that defines whether or not Amazon SES collects reputation metrics
7557	// for the emails that you send that use the configuration set.
7558	ReputationOptions *ReputationOptions `type:"structure"`
7559
7560	// An object that defines whether or not Amazon SES can send email that you
7561	// send using the configuration set.
7562	SendingOptions *SendingOptions `type:"structure"`
7563
7564	// An object that contains information about the suppression list preferences
7565	// for your account.
7566	SuppressionOptions *SuppressionOptions `type:"structure"`
7567
7568	// An array of objects that define the tags (keys and values) that are associated
7569	// with the configuration set.
7570	Tags []*Tag `type:"list"`
7571
7572	// An object that defines the open and click tracking options for emails that
7573	// you send using the configuration set.
7574	TrackingOptions *TrackingOptions `type:"structure"`
7575}
7576
7577// String returns the string representation
7578func (s GetConfigurationSetOutput) String() string {
7579	return awsutil.Prettify(s)
7580}
7581
7582// GoString returns the string representation
7583func (s GetConfigurationSetOutput) GoString() string {
7584	return s.String()
7585}
7586
7587// SetConfigurationSetName sets the ConfigurationSetName field's value.
7588func (s *GetConfigurationSetOutput) SetConfigurationSetName(v string) *GetConfigurationSetOutput {
7589	s.ConfigurationSetName = &v
7590	return s
7591}
7592
7593// SetDeliveryOptions sets the DeliveryOptions field's value.
7594func (s *GetConfigurationSetOutput) SetDeliveryOptions(v *DeliveryOptions) *GetConfigurationSetOutput {
7595	s.DeliveryOptions = v
7596	return s
7597}
7598
7599// SetReputationOptions sets the ReputationOptions field's value.
7600func (s *GetConfigurationSetOutput) SetReputationOptions(v *ReputationOptions) *GetConfigurationSetOutput {
7601	s.ReputationOptions = v
7602	return s
7603}
7604
7605// SetSendingOptions sets the SendingOptions field's value.
7606func (s *GetConfigurationSetOutput) SetSendingOptions(v *SendingOptions) *GetConfigurationSetOutput {
7607	s.SendingOptions = v
7608	return s
7609}
7610
7611// SetSuppressionOptions sets the SuppressionOptions field's value.
7612func (s *GetConfigurationSetOutput) SetSuppressionOptions(v *SuppressionOptions) *GetConfigurationSetOutput {
7613	s.SuppressionOptions = v
7614	return s
7615}
7616
7617// SetTags sets the Tags field's value.
7618func (s *GetConfigurationSetOutput) SetTags(v []*Tag) *GetConfigurationSetOutput {
7619	s.Tags = v
7620	return s
7621}
7622
7623// SetTrackingOptions sets the TrackingOptions field's value.
7624func (s *GetConfigurationSetOutput) SetTrackingOptions(v *TrackingOptions) *GetConfigurationSetOutput {
7625	s.TrackingOptions = v
7626	return s
7627}
7628
7629// A request to obtain more information about a dedicated IP address.
7630type GetDedicatedIpInput struct {
7631	_ struct{} `type:"structure"`
7632
7633	// The IP address that you want to obtain more information about. The value
7634	// you specify has to be a dedicated IP address that's assocaited with your
7635	// AWS account.
7636	//
7637	// Ip is a required field
7638	Ip *string `location:"uri" locationName:"IP" type:"string" required:"true"`
7639}
7640
7641// String returns the string representation
7642func (s GetDedicatedIpInput) String() string {
7643	return awsutil.Prettify(s)
7644}
7645
7646// GoString returns the string representation
7647func (s GetDedicatedIpInput) GoString() string {
7648	return s.String()
7649}
7650
7651// Validate inspects the fields of the type to determine if they are valid.
7652func (s *GetDedicatedIpInput) Validate() error {
7653	invalidParams := request.ErrInvalidParams{Context: "GetDedicatedIpInput"}
7654	if s.Ip == nil {
7655		invalidParams.Add(request.NewErrParamRequired("Ip"))
7656	}
7657	if s.Ip != nil && len(*s.Ip) < 1 {
7658		invalidParams.Add(request.NewErrParamMinLen("Ip", 1))
7659	}
7660
7661	if invalidParams.Len() > 0 {
7662		return invalidParams
7663	}
7664	return nil
7665}
7666
7667// SetIp sets the Ip field's value.
7668func (s *GetDedicatedIpInput) SetIp(v string) *GetDedicatedIpInput {
7669	s.Ip = &v
7670	return s
7671}
7672
7673// Information about a dedicated IP address.
7674type GetDedicatedIpOutput struct {
7675	_ struct{} `type:"structure"`
7676
7677	// An object that contains information about a dedicated IP address.
7678	DedicatedIp *DedicatedIp `type:"structure"`
7679}
7680
7681// String returns the string representation
7682func (s GetDedicatedIpOutput) String() string {
7683	return awsutil.Prettify(s)
7684}
7685
7686// GoString returns the string representation
7687func (s GetDedicatedIpOutput) GoString() string {
7688	return s.String()
7689}
7690
7691// SetDedicatedIp sets the DedicatedIp field's value.
7692func (s *GetDedicatedIpOutput) SetDedicatedIp(v *DedicatedIp) *GetDedicatedIpOutput {
7693	s.DedicatedIp = v
7694	return s
7695}
7696
7697// A request to obtain more information about dedicated IP pools.
7698type GetDedicatedIpsInput struct {
7699	_ struct{} `type:"structure"`
7700
7701	// A token returned from a previous call to GetDedicatedIps to indicate the
7702	// position of the dedicated IP pool in the list of IP pools.
7703	NextToken *string `location:"querystring" locationName:"NextToken" type:"string"`
7704
7705	// The number of results to show in a single call to GetDedicatedIpsRequest.
7706	// If the number of results is larger than the number you specified in this
7707	// parameter, then the response includes a NextToken element, which you can
7708	// use to obtain additional results.
7709	PageSize *int64 `location:"querystring" locationName:"PageSize" type:"integer"`
7710
7711	// The name of the IP pool that the dedicated IP address is associated with.
7712	PoolName *string `location:"querystring" locationName:"PoolName" type:"string"`
7713}
7714
7715// String returns the string representation
7716func (s GetDedicatedIpsInput) String() string {
7717	return awsutil.Prettify(s)
7718}
7719
7720// GoString returns the string representation
7721func (s GetDedicatedIpsInput) GoString() string {
7722	return s.String()
7723}
7724
7725// SetNextToken sets the NextToken field's value.
7726func (s *GetDedicatedIpsInput) SetNextToken(v string) *GetDedicatedIpsInput {
7727	s.NextToken = &v
7728	return s
7729}
7730
7731// SetPageSize sets the PageSize field's value.
7732func (s *GetDedicatedIpsInput) SetPageSize(v int64) *GetDedicatedIpsInput {
7733	s.PageSize = &v
7734	return s
7735}
7736
7737// SetPoolName sets the PoolName field's value.
7738func (s *GetDedicatedIpsInput) SetPoolName(v string) *GetDedicatedIpsInput {
7739	s.PoolName = &v
7740	return s
7741}
7742
7743// Information about the dedicated IP addresses that are associated with your
7744// AWS account.
7745type GetDedicatedIpsOutput struct {
7746	_ struct{} `type:"structure"`
7747
7748	// A list of dedicated IP addresses that are associated with your AWS account.
7749	DedicatedIps []*DedicatedIp `type:"list"`
7750
7751	// A token that indicates that there are additional dedicated IP addresses to
7752	// list. To view additional addresses, issue another request to GetDedicatedIps,
7753	// passing this token in the NextToken parameter.
7754	NextToken *string `type:"string"`
7755}
7756
7757// String returns the string representation
7758func (s GetDedicatedIpsOutput) String() string {
7759	return awsutil.Prettify(s)
7760}
7761
7762// GoString returns the string representation
7763func (s GetDedicatedIpsOutput) GoString() string {
7764	return s.String()
7765}
7766
7767// SetDedicatedIps sets the DedicatedIps field's value.
7768func (s *GetDedicatedIpsOutput) SetDedicatedIps(v []*DedicatedIp) *GetDedicatedIpsOutput {
7769	s.DedicatedIps = v
7770	return s
7771}
7772
7773// SetNextToken sets the NextToken field's value.
7774func (s *GetDedicatedIpsOutput) SetNextToken(v string) *GetDedicatedIpsOutput {
7775	s.NextToken = &v
7776	return s
7777}
7778
7779// Retrieve information about the status of the Deliverability dashboard for
7780// your AWS account. When the Deliverability dashboard is enabled, you gain
7781// access to reputation, deliverability, and other metrics for your domains.
7782// You also gain the ability to perform predictive inbox placement tests.
7783//
7784// When you use the Deliverability dashboard, you pay a monthly subscription
7785// charge, in addition to any other fees that you accrue by using Amazon SES
7786// and other AWS services. For more information about the features and cost
7787// of a Deliverability dashboard subscription, see Amazon Pinpoint Pricing (http://aws.amazon.com/pinpoint/pricing/).
7788type GetDeliverabilityDashboardOptionsInput struct {
7789	_ struct{} `type:"structure"`
7790}
7791
7792// String returns the string representation
7793func (s GetDeliverabilityDashboardOptionsInput) String() string {
7794	return awsutil.Prettify(s)
7795}
7796
7797// GoString returns the string representation
7798func (s GetDeliverabilityDashboardOptionsInput) GoString() string {
7799	return s.String()
7800}
7801
7802// An object that shows the status of the Deliverability dashboard.
7803type GetDeliverabilityDashboardOptionsOutput struct {
7804	_ struct{} `type:"structure"`
7805
7806	// The current status of your Deliverability dashboard subscription. If this
7807	// value is PENDING_EXPIRATION, your subscription is scheduled to expire at
7808	// the end of the current calendar month.
7809	AccountStatus *string `type:"string" enum:"DeliverabilityDashboardAccountStatus"`
7810
7811	// An array of objects, one for each verified domain that you use to send email
7812	// and currently has an active Deliverability dashboard subscription that isn’t
7813	// scheduled to expire at the end of the current calendar month.
7814	ActiveSubscribedDomains []*DomainDeliverabilityTrackingOption `type:"list"`
7815
7816	// Specifies whether the Deliverability dashboard is enabled. If this value
7817	// is true, the dashboard is enabled.
7818	//
7819	// DashboardEnabled is a required field
7820	DashboardEnabled *bool `type:"boolean" required:"true"`
7821
7822	// An array of objects, one for each verified domain that you use to send email
7823	// and currently has an active Deliverability dashboard subscription that's
7824	// scheduled to expire at the end of the current calendar month.
7825	PendingExpirationSubscribedDomains []*DomainDeliverabilityTrackingOption `type:"list"`
7826
7827	// The date, in Unix time format, when your current subscription to the Deliverability
7828	// dashboard is scheduled to expire, if your subscription is scheduled to expire
7829	// at the end of the current calendar month. This value is null if you have
7830	// an active subscription that isn’t due to expire at the end of the month.
7831	SubscriptionExpiryDate *time.Time `type:"timestamp"`
7832}
7833
7834// String returns the string representation
7835func (s GetDeliverabilityDashboardOptionsOutput) String() string {
7836	return awsutil.Prettify(s)
7837}
7838
7839// GoString returns the string representation
7840func (s GetDeliverabilityDashboardOptionsOutput) GoString() string {
7841	return s.String()
7842}
7843
7844// SetAccountStatus sets the AccountStatus field's value.
7845func (s *GetDeliverabilityDashboardOptionsOutput) SetAccountStatus(v string) *GetDeliverabilityDashboardOptionsOutput {
7846	s.AccountStatus = &v
7847	return s
7848}
7849
7850// SetActiveSubscribedDomains sets the ActiveSubscribedDomains field's value.
7851func (s *GetDeliverabilityDashboardOptionsOutput) SetActiveSubscribedDomains(v []*DomainDeliverabilityTrackingOption) *GetDeliverabilityDashboardOptionsOutput {
7852	s.ActiveSubscribedDomains = v
7853	return s
7854}
7855
7856// SetDashboardEnabled sets the DashboardEnabled field's value.
7857func (s *GetDeliverabilityDashboardOptionsOutput) SetDashboardEnabled(v bool) *GetDeliverabilityDashboardOptionsOutput {
7858	s.DashboardEnabled = &v
7859	return s
7860}
7861
7862// SetPendingExpirationSubscribedDomains sets the PendingExpirationSubscribedDomains field's value.
7863func (s *GetDeliverabilityDashboardOptionsOutput) SetPendingExpirationSubscribedDomains(v []*DomainDeliverabilityTrackingOption) *GetDeliverabilityDashboardOptionsOutput {
7864	s.PendingExpirationSubscribedDomains = v
7865	return s
7866}
7867
7868// SetSubscriptionExpiryDate sets the SubscriptionExpiryDate field's value.
7869func (s *GetDeliverabilityDashboardOptionsOutput) SetSubscriptionExpiryDate(v time.Time) *GetDeliverabilityDashboardOptionsOutput {
7870	s.SubscriptionExpiryDate = &v
7871	return s
7872}
7873
7874// A request to retrieve the results of a predictive inbox placement test.
7875type GetDeliverabilityTestReportInput struct {
7876	_ struct{} `type:"structure"`
7877
7878	// A unique string that identifies the predictive inbox placement test.
7879	//
7880	// ReportId is a required field
7881	ReportId *string `location:"uri" locationName:"ReportId" type:"string" required:"true"`
7882}
7883
7884// String returns the string representation
7885func (s GetDeliverabilityTestReportInput) String() string {
7886	return awsutil.Prettify(s)
7887}
7888
7889// GoString returns the string representation
7890func (s GetDeliverabilityTestReportInput) GoString() string {
7891	return s.String()
7892}
7893
7894// Validate inspects the fields of the type to determine if they are valid.
7895func (s *GetDeliverabilityTestReportInput) Validate() error {
7896	invalidParams := request.ErrInvalidParams{Context: "GetDeliverabilityTestReportInput"}
7897	if s.ReportId == nil {
7898		invalidParams.Add(request.NewErrParamRequired("ReportId"))
7899	}
7900	if s.ReportId != nil && len(*s.ReportId) < 1 {
7901		invalidParams.Add(request.NewErrParamMinLen("ReportId", 1))
7902	}
7903
7904	if invalidParams.Len() > 0 {
7905		return invalidParams
7906	}
7907	return nil
7908}
7909
7910// SetReportId sets the ReportId field's value.
7911func (s *GetDeliverabilityTestReportInput) SetReportId(v string) *GetDeliverabilityTestReportInput {
7912	s.ReportId = &v
7913	return s
7914}
7915
7916// The results of the predictive inbox placement test.
7917type GetDeliverabilityTestReportOutput struct {
7918	_ struct{} `type:"structure"`
7919
7920	// An object that contains the results of the predictive inbox placement test.
7921	//
7922	// DeliverabilityTestReport is a required field
7923	DeliverabilityTestReport *DeliverabilityTestReport `type:"structure" required:"true"`
7924
7925	// An object that describes how the test email was handled by several email
7926	// providers, including Gmail, Hotmail, Yahoo, AOL, and others.
7927	//
7928	// IspPlacements is a required field
7929	IspPlacements []*IspPlacement `type:"list" required:"true"`
7930
7931	// An object that contains the message that you sent when you performed this
7932	// predictive inbox placement test.
7933	Message *string `type:"string"`
7934
7935	// An object that specifies how many test messages that were sent during the
7936	// predictive inbox placement test were delivered to recipients' inboxes, how
7937	// many were sent to recipients' spam folders, and how many weren't delivered.
7938	//
7939	// OverallPlacement is a required field
7940	OverallPlacement *PlacementStatistics `type:"structure" required:"true"`
7941
7942	// An array of objects that define the tags (keys and values) that are associated
7943	// with the predictive inbox placement test.
7944	Tags []*Tag `type:"list"`
7945}
7946
7947// String returns the string representation
7948func (s GetDeliverabilityTestReportOutput) String() string {
7949	return awsutil.Prettify(s)
7950}
7951
7952// GoString returns the string representation
7953func (s GetDeliverabilityTestReportOutput) GoString() string {
7954	return s.String()
7955}
7956
7957// SetDeliverabilityTestReport sets the DeliverabilityTestReport field's value.
7958func (s *GetDeliverabilityTestReportOutput) SetDeliverabilityTestReport(v *DeliverabilityTestReport) *GetDeliverabilityTestReportOutput {
7959	s.DeliverabilityTestReport = v
7960	return s
7961}
7962
7963// SetIspPlacements sets the IspPlacements field's value.
7964func (s *GetDeliverabilityTestReportOutput) SetIspPlacements(v []*IspPlacement) *GetDeliverabilityTestReportOutput {
7965	s.IspPlacements = v
7966	return s
7967}
7968
7969// SetMessage sets the Message field's value.
7970func (s *GetDeliverabilityTestReportOutput) SetMessage(v string) *GetDeliverabilityTestReportOutput {
7971	s.Message = &v
7972	return s
7973}
7974
7975// SetOverallPlacement sets the OverallPlacement field's value.
7976func (s *GetDeliverabilityTestReportOutput) SetOverallPlacement(v *PlacementStatistics) *GetDeliverabilityTestReportOutput {
7977	s.OverallPlacement = v
7978	return s
7979}
7980
7981// SetTags sets the Tags field's value.
7982func (s *GetDeliverabilityTestReportOutput) SetTags(v []*Tag) *GetDeliverabilityTestReportOutput {
7983	s.Tags = v
7984	return s
7985}
7986
7987// Retrieve all the deliverability data for a specific campaign. This data is
7988// available for a campaign only if the campaign sent email by using a domain
7989// that the Deliverability dashboard is enabled for (PutDeliverabilityDashboardOption
7990// operation).
7991type GetDomainDeliverabilityCampaignInput struct {
7992	_ struct{} `type:"structure"`
7993
7994	// The unique identifier for the campaign. The Deliverability dashboard automatically
7995	// generates and assigns this identifier to a campaign.
7996	//
7997	// CampaignId is a required field
7998	CampaignId *string `location:"uri" locationName:"CampaignId" type:"string" required:"true"`
7999}
8000
8001// String returns the string representation
8002func (s GetDomainDeliverabilityCampaignInput) String() string {
8003	return awsutil.Prettify(s)
8004}
8005
8006// GoString returns the string representation
8007func (s GetDomainDeliverabilityCampaignInput) GoString() string {
8008	return s.String()
8009}
8010
8011// Validate inspects the fields of the type to determine if they are valid.
8012func (s *GetDomainDeliverabilityCampaignInput) Validate() error {
8013	invalidParams := request.ErrInvalidParams{Context: "GetDomainDeliverabilityCampaignInput"}
8014	if s.CampaignId == nil {
8015		invalidParams.Add(request.NewErrParamRequired("CampaignId"))
8016	}
8017	if s.CampaignId != nil && len(*s.CampaignId) < 1 {
8018		invalidParams.Add(request.NewErrParamMinLen("CampaignId", 1))
8019	}
8020
8021	if invalidParams.Len() > 0 {
8022		return invalidParams
8023	}
8024	return nil
8025}
8026
8027// SetCampaignId sets the CampaignId field's value.
8028func (s *GetDomainDeliverabilityCampaignInput) SetCampaignId(v string) *GetDomainDeliverabilityCampaignInput {
8029	s.CampaignId = &v
8030	return s
8031}
8032
8033// An object that contains all the deliverability data for a specific campaign.
8034// This data is available for a campaign only if the campaign sent email by
8035// using a domain that the Deliverability dashboard is enabled for.
8036type GetDomainDeliverabilityCampaignOutput struct {
8037	_ struct{} `type:"structure"`
8038
8039	// An object that contains the deliverability data for the campaign.
8040	//
8041	// DomainDeliverabilityCampaign is a required field
8042	DomainDeliverabilityCampaign *DomainDeliverabilityCampaign `type:"structure" required:"true"`
8043}
8044
8045// String returns the string representation
8046func (s GetDomainDeliverabilityCampaignOutput) String() string {
8047	return awsutil.Prettify(s)
8048}
8049
8050// GoString returns the string representation
8051func (s GetDomainDeliverabilityCampaignOutput) GoString() string {
8052	return s.String()
8053}
8054
8055// SetDomainDeliverabilityCampaign sets the DomainDeliverabilityCampaign field's value.
8056func (s *GetDomainDeliverabilityCampaignOutput) SetDomainDeliverabilityCampaign(v *DomainDeliverabilityCampaign) *GetDomainDeliverabilityCampaignOutput {
8057	s.DomainDeliverabilityCampaign = v
8058	return s
8059}
8060
8061// A request to obtain deliverability metrics for a domain.
8062type GetDomainStatisticsReportInput struct {
8063	_ struct{} `type:"structure"`
8064
8065	// The domain that you want to obtain deliverability metrics for.
8066	//
8067	// Domain is a required field
8068	Domain *string `location:"uri" locationName:"Domain" type:"string" required:"true"`
8069
8070	// The last day (in Unix time) that you want to obtain domain deliverability
8071	// metrics for. The EndDate that you specify has to be less than or equal to
8072	// 30 days after the StartDate.
8073	//
8074	// EndDate is a required field
8075	EndDate *time.Time `location:"querystring" locationName:"EndDate" type:"timestamp" required:"true"`
8076
8077	// The first day (in Unix time) that you want to obtain domain deliverability
8078	// metrics for.
8079	//
8080	// StartDate is a required field
8081	StartDate *time.Time `location:"querystring" locationName:"StartDate" type:"timestamp" required:"true"`
8082}
8083
8084// String returns the string representation
8085func (s GetDomainStatisticsReportInput) String() string {
8086	return awsutil.Prettify(s)
8087}
8088
8089// GoString returns the string representation
8090func (s GetDomainStatisticsReportInput) GoString() string {
8091	return s.String()
8092}
8093
8094// Validate inspects the fields of the type to determine if they are valid.
8095func (s *GetDomainStatisticsReportInput) Validate() error {
8096	invalidParams := request.ErrInvalidParams{Context: "GetDomainStatisticsReportInput"}
8097	if s.Domain == nil {
8098		invalidParams.Add(request.NewErrParamRequired("Domain"))
8099	}
8100	if s.Domain != nil && len(*s.Domain) < 1 {
8101		invalidParams.Add(request.NewErrParamMinLen("Domain", 1))
8102	}
8103	if s.EndDate == nil {
8104		invalidParams.Add(request.NewErrParamRequired("EndDate"))
8105	}
8106	if s.StartDate == nil {
8107		invalidParams.Add(request.NewErrParamRequired("StartDate"))
8108	}
8109
8110	if invalidParams.Len() > 0 {
8111		return invalidParams
8112	}
8113	return nil
8114}
8115
8116// SetDomain sets the Domain field's value.
8117func (s *GetDomainStatisticsReportInput) SetDomain(v string) *GetDomainStatisticsReportInput {
8118	s.Domain = &v
8119	return s
8120}
8121
8122// SetEndDate sets the EndDate field's value.
8123func (s *GetDomainStatisticsReportInput) SetEndDate(v time.Time) *GetDomainStatisticsReportInput {
8124	s.EndDate = &v
8125	return s
8126}
8127
8128// SetStartDate sets the StartDate field's value.
8129func (s *GetDomainStatisticsReportInput) SetStartDate(v time.Time) *GetDomainStatisticsReportInput {
8130	s.StartDate = &v
8131	return s
8132}
8133
8134// An object that includes statistics that are related to the domain that you
8135// specified.
8136type GetDomainStatisticsReportOutput struct {
8137	_ struct{} `type:"structure"`
8138
8139	// An object that contains deliverability metrics for the domain that you specified.
8140	// This object contains data for each day, starting on the StartDate and ending
8141	// on the EndDate.
8142	//
8143	// DailyVolumes is a required field
8144	DailyVolumes []*DailyVolume `type:"list" required:"true"`
8145
8146	// An object that contains deliverability metrics for the domain that you specified.
8147	// The data in this object is a summary of all of the data that was collected
8148	// from the StartDate to the EndDate.
8149	//
8150	// OverallVolume is a required field
8151	OverallVolume *OverallVolume `type:"structure" required:"true"`
8152}
8153
8154// String returns the string representation
8155func (s GetDomainStatisticsReportOutput) String() string {
8156	return awsutil.Prettify(s)
8157}
8158
8159// GoString returns the string representation
8160func (s GetDomainStatisticsReportOutput) GoString() string {
8161	return s.String()
8162}
8163
8164// SetDailyVolumes sets the DailyVolumes field's value.
8165func (s *GetDomainStatisticsReportOutput) SetDailyVolumes(v []*DailyVolume) *GetDomainStatisticsReportOutput {
8166	s.DailyVolumes = v
8167	return s
8168}
8169
8170// SetOverallVolume sets the OverallVolume field's value.
8171func (s *GetDomainStatisticsReportOutput) SetOverallVolume(v *OverallVolume) *GetDomainStatisticsReportOutput {
8172	s.OverallVolume = v
8173	return s
8174}
8175
8176// A request to return details about an email identity.
8177type GetEmailIdentityInput struct {
8178	_ struct{} `type:"structure"`
8179
8180	// The email identity that you want to retrieve details for.
8181	//
8182	// EmailIdentity is a required field
8183	EmailIdentity *string `location:"uri" locationName:"EmailIdentity" type:"string" required:"true"`
8184}
8185
8186// String returns the string representation
8187func (s GetEmailIdentityInput) String() string {
8188	return awsutil.Prettify(s)
8189}
8190
8191// GoString returns the string representation
8192func (s GetEmailIdentityInput) GoString() string {
8193	return s.String()
8194}
8195
8196// Validate inspects the fields of the type to determine if they are valid.
8197func (s *GetEmailIdentityInput) Validate() error {
8198	invalidParams := request.ErrInvalidParams{Context: "GetEmailIdentityInput"}
8199	if s.EmailIdentity == nil {
8200		invalidParams.Add(request.NewErrParamRequired("EmailIdentity"))
8201	}
8202	if s.EmailIdentity != nil && len(*s.EmailIdentity) < 1 {
8203		invalidParams.Add(request.NewErrParamMinLen("EmailIdentity", 1))
8204	}
8205
8206	if invalidParams.Len() > 0 {
8207		return invalidParams
8208	}
8209	return nil
8210}
8211
8212// SetEmailIdentity sets the EmailIdentity field's value.
8213func (s *GetEmailIdentityInput) SetEmailIdentity(v string) *GetEmailIdentityInput {
8214	s.EmailIdentity = &v
8215	return s
8216}
8217
8218// Details about an email identity.
8219type GetEmailIdentityOutput struct {
8220	_ struct{} `type:"structure"`
8221
8222	// An object that contains information about the DKIM attributes for the identity.
8223	DkimAttributes *DkimAttributes `type:"structure"`
8224
8225	// The feedback forwarding configuration for the identity.
8226	//
8227	// If the value is true, you receive email notifications when bounce or complaint
8228	// events occur. These notifications are sent to the address that you specified
8229	// in the Return-Path header of the original email.
8230	//
8231	// You're required to have a method of tracking bounces and complaints. If you
8232	// haven't set up another mechanism for receiving bounce or complaint notifications
8233	// (for example, by setting up an event destination), you receive an email notification
8234	// when these events occur (even if this setting is disabled).
8235	FeedbackForwardingStatus *bool `type:"boolean"`
8236
8237	// The email identity type.
8238	IdentityType *string `type:"string" enum:"IdentityType"`
8239
8240	// An object that contains information about the Mail-From attributes for the
8241	// email identity.
8242	MailFromAttributes *MailFromAttributes `type:"structure"`
8243
8244	// An array of objects that define the tags (keys and values) that are associated
8245	// with the email identity.
8246	Tags []*Tag `type:"list"`
8247
8248	// Specifies whether or not the identity is verified. You can only send email
8249	// from verified email addresses or domains. For more information about verifying
8250	// identities, see the Amazon Pinpoint User Guide (https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-email-manage-verify.html).
8251	VerifiedForSendingStatus *bool `type:"boolean"`
8252}
8253
8254// String returns the string representation
8255func (s GetEmailIdentityOutput) String() string {
8256	return awsutil.Prettify(s)
8257}
8258
8259// GoString returns the string representation
8260func (s GetEmailIdentityOutput) GoString() string {
8261	return s.String()
8262}
8263
8264// SetDkimAttributes sets the DkimAttributes field's value.
8265func (s *GetEmailIdentityOutput) SetDkimAttributes(v *DkimAttributes) *GetEmailIdentityOutput {
8266	s.DkimAttributes = v
8267	return s
8268}
8269
8270// SetFeedbackForwardingStatus sets the FeedbackForwardingStatus field's value.
8271func (s *GetEmailIdentityOutput) SetFeedbackForwardingStatus(v bool) *GetEmailIdentityOutput {
8272	s.FeedbackForwardingStatus = &v
8273	return s
8274}
8275
8276// SetIdentityType sets the IdentityType field's value.
8277func (s *GetEmailIdentityOutput) SetIdentityType(v string) *GetEmailIdentityOutput {
8278	s.IdentityType = &v
8279	return s
8280}
8281
8282// SetMailFromAttributes sets the MailFromAttributes field's value.
8283func (s *GetEmailIdentityOutput) SetMailFromAttributes(v *MailFromAttributes) *GetEmailIdentityOutput {
8284	s.MailFromAttributes = v
8285	return s
8286}
8287
8288// SetTags sets the Tags field's value.
8289func (s *GetEmailIdentityOutput) SetTags(v []*Tag) *GetEmailIdentityOutput {
8290	s.Tags = v
8291	return s
8292}
8293
8294// SetVerifiedForSendingStatus sets the VerifiedForSendingStatus field's value.
8295func (s *GetEmailIdentityOutput) SetVerifiedForSendingStatus(v bool) *GetEmailIdentityOutput {
8296	s.VerifiedForSendingStatus = &v
8297	return s
8298}
8299
8300// A request to retrieve information about an email address that's on the suppression
8301// list for your account.
8302type GetSuppressedDestinationInput struct {
8303	_ struct{} `type:"structure"`
8304
8305	// The email address that's on the account suppression list.
8306	//
8307	// EmailAddress is a required field
8308	EmailAddress *string `location:"uri" locationName:"EmailAddress" type:"string" required:"true"`
8309}
8310
8311// String returns the string representation
8312func (s GetSuppressedDestinationInput) String() string {
8313	return awsutil.Prettify(s)
8314}
8315
8316// GoString returns the string representation
8317func (s GetSuppressedDestinationInput) GoString() string {
8318	return s.String()
8319}
8320
8321// Validate inspects the fields of the type to determine if they are valid.
8322func (s *GetSuppressedDestinationInput) Validate() error {
8323	invalidParams := request.ErrInvalidParams{Context: "GetSuppressedDestinationInput"}
8324	if s.EmailAddress == nil {
8325		invalidParams.Add(request.NewErrParamRequired("EmailAddress"))
8326	}
8327	if s.EmailAddress != nil && len(*s.EmailAddress) < 1 {
8328		invalidParams.Add(request.NewErrParamMinLen("EmailAddress", 1))
8329	}
8330
8331	if invalidParams.Len() > 0 {
8332		return invalidParams
8333	}
8334	return nil
8335}
8336
8337// SetEmailAddress sets the EmailAddress field's value.
8338func (s *GetSuppressedDestinationInput) SetEmailAddress(v string) *GetSuppressedDestinationInput {
8339	s.EmailAddress = &v
8340	return s
8341}
8342
8343// Information about the suppressed email address.
8344type GetSuppressedDestinationOutput struct {
8345	_ struct{} `type:"structure"`
8346
8347	// An object containing information about the suppressed email address.
8348	//
8349	// SuppressedDestination is a required field
8350	SuppressedDestination *SuppressedDestination `type:"structure" required:"true"`
8351}
8352
8353// String returns the string representation
8354func (s GetSuppressedDestinationOutput) String() string {
8355	return awsutil.Prettify(s)
8356}
8357
8358// GoString returns the string representation
8359func (s GetSuppressedDestinationOutput) GoString() string {
8360	return s.String()
8361}
8362
8363// SetSuppressedDestination sets the SuppressedDestination field's value.
8364func (s *GetSuppressedDestinationOutput) SetSuppressedDestination(v *SuppressedDestination) *GetSuppressedDestinationOutput {
8365	s.SuppressedDestination = v
8366	return s
8367}
8368
8369// Information about an email identity.
8370type IdentityInfo struct {
8371	_ struct{} `type:"structure"`
8372
8373	// The address or domain of the identity.
8374	IdentityName *string `type:"string"`
8375
8376	// The email identity type. The identity type can be one of the following:
8377	//
8378	//    * EMAIL_ADDRESS – The identity is an email address.
8379	//
8380	//    * DOMAIN – The identity is a domain.
8381	//
8382	//    * MANAGED_DOMAIN – The identity is a domain that is managed by AWS.
8383	IdentityType *string `type:"string" enum:"IdentityType"`
8384
8385	// Indicates whether or not you can send email from the identity.
8386	//
8387	// An identity is an email address or domain that you send email from. Before
8388	// you can send email from an identity, you have to demostrate that you own
8389	// the identity, and that you authorize Amazon SES to send email from that identity.
8390	SendingEnabled *bool `type:"boolean"`
8391}
8392
8393// String returns the string representation
8394func (s IdentityInfo) String() string {
8395	return awsutil.Prettify(s)
8396}
8397
8398// GoString returns the string representation
8399func (s IdentityInfo) GoString() string {
8400	return s.String()
8401}
8402
8403// SetIdentityName sets the IdentityName field's value.
8404func (s *IdentityInfo) SetIdentityName(v string) *IdentityInfo {
8405	s.IdentityName = &v
8406	return s
8407}
8408
8409// SetIdentityType sets the IdentityType field's value.
8410func (s *IdentityInfo) SetIdentityType(v string) *IdentityInfo {
8411	s.IdentityType = &v
8412	return s
8413}
8414
8415// SetSendingEnabled sets the SendingEnabled field's value.
8416func (s *IdentityInfo) SetSendingEnabled(v bool) *IdentityInfo {
8417	s.SendingEnabled = &v
8418	return s
8419}
8420
8421// An object that contains information about the inbox placement data settings
8422// for a verified domain that’s associated with your AWS account. This data
8423// is available only if you enabled the Deliverability dashboard for the domain.
8424type InboxPlacementTrackingOption struct {
8425	_ struct{} `type:"structure"`
8426
8427	// Specifies whether inbox placement data is being tracked for the domain.
8428	Global *bool `type:"boolean"`
8429
8430	// An array of strings, one for each major email provider that the inbox placement
8431	// data applies to.
8432	TrackedIsps []*string `type:"list"`
8433}
8434
8435// String returns the string representation
8436func (s InboxPlacementTrackingOption) String() string {
8437	return awsutil.Prettify(s)
8438}
8439
8440// GoString returns the string representation
8441func (s InboxPlacementTrackingOption) GoString() string {
8442	return s.String()
8443}
8444
8445// SetGlobal sets the Global field's value.
8446func (s *InboxPlacementTrackingOption) SetGlobal(v bool) *InboxPlacementTrackingOption {
8447	s.Global = &v
8448	return s
8449}
8450
8451// SetTrackedIsps sets the TrackedIsps field's value.
8452func (s *InboxPlacementTrackingOption) SetTrackedIsps(v []*string) *InboxPlacementTrackingOption {
8453	s.TrackedIsps = v
8454	return s
8455}
8456
8457// The specified request includes an invalid or expired token.
8458type InvalidNextTokenException struct {
8459	_            struct{}                  `type:"structure"`
8460	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8461
8462	Message_ *string `locationName:"message" type:"string"`
8463}
8464
8465// String returns the string representation
8466func (s InvalidNextTokenException) String() string {
8467	return awsutil.Prettify(s)
8468}
8469
8470// GoString returns the string representation
8471func (s InvalidNextTokenException) GoString() string {
8472	return s.String()
8473}
8474
8475func newErrorInvalidNextTokenException(v protocol.ResponseMetadata) error {
8476	return &InvalidNextTokenException{
8477		RespMetadata: v,
8478	}
8479}
8480
8481// Code returns the exception type name.
8482func (s *InvalidNextTokenException) Code() string {
8483	return "InvalidNextTokenException"
8484}
8485
8486// Message returns the exception's message.
8487func (s *InvalidNextTokenException) Message() string {
8488	if s.Message_ != nil {
8489		return *s.Message_
8490	}
8491	return ""
8492}
8493
8494// OrigErr always returns nil, satisfies awserr.Error interface.
8495func (s *InvalidNextTokenException) OrigErr() error {
8496	return nil
8497}
8498
8499func (s *InvalidNextTokenException) Error() string {
8500	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8501}
8502
8503// Status code returns the HTTP status code for the request's response error.
8504func (s *InvalidNextTokenException) StatusCode() int {
8505	return s.RespMetadata.StatusCode
8506}
8507
8508// RequestID returns the service's response RequestID for request.
8509func (s *InvalidNextTokenException) RequestID() string {
8510	return s.RespMetadata.RequestID
8511}
8512
8513// An object that describes how email sent during the predictive inbox placement
8514// test was handled by a certain email provider.
8515type IspPlacement struct {
8516	_ struct{} `type:"structure"`
8517
8518	// The name of the email provider that the inbox placement data applies to.
8519	IspName *string `type:"string"`
8520
8521	// An object that contains inbox placement metrics for a specific email provider.
8522	PlacementStatistics *PlacementStatistics `type:"structure"`
8523}
8524
8525// String returns the string representation
8526func (s IspPlacement) String() string {
8527	return awsutil.Prettify(s)
8528}
8529
8530// GoString returns the string representation
8531func (s IspPlacement) GoString() string {
8532	return s.String()
8533}
8534
8535// SetIspName sets the IspName field's value.
8536func (s *IspPlacement) SetIspName(v string) *IspPlacement {
8537	s.IspName = &v
8538	return s
8539}
8540
8541// SetPlacementStatistics sets the PlacementStatistics field's value.
8542func (s *IspPlacement) SetPlacementStatistics(v *PlacementStatistics) *IspPlacement {
8543	s.PlacementStatistics = v
8544	return s
8545}
8546
8547// An object that defines an Amazon Kinesis Data Firehose destination for email
8548// events. You can use Amazon Kinesis Data Firehose to stream data to other
8549// services, such as Amazon S3 and Amazon Redshift.
8550type KinesisFirehoseDestination struct {
8551	_ struct{} `type:"structure"`
8552
8553	// The Amazon Resource Name (ARN) of the Amazon Kinesis Data Firehose stream
8554	// that the Amazon SES API v2 sends email events to.
8555	//
8556	// DeliveryStreamArn is a required field
8557	DeliveryStreamArn *string `type:"string" required:"true"`
8558
8559	// The Amazon Resource Name (ARN) of the IAM role that the Amazon SES API v2
8560	// uses to send email events to the Amazon Kinesis Data Firehose stream.
8561	//
8562	// IamRoleArn is a required field
8563	IamRoleArn *string `type:"string" required:"true"`
8564}
8565
8566// String returns the string representation
8567func (s KinesisFirehoseDestination) String() string {
8568	return awsutil.Prettify(s)
8569}
8570
8571// GoString returns the string representation
8572func (s KinesisFirehoseDestination) GoString() string {
8573	return s.String()
8574}
8575
8576// Validate inspects the fields of the type to determine if they are valid.
8577func (s *KinesisFirehoseDestination) Validate() error {
8578	invalidParams := request.ErrInvalidParams{Context: "KinesisFirehoseDestination"}
8579	if s.DeliveryStreamArn == nil {
8580		invalidParams.Add(request.NewErrParamRequired("DeliveryStreamArn"))
8581	}
8582	if s.IamRoleArn == nil {
8583		invalidParams.Add(request.NewErrParamRequired("IamRoleArn"))
8584	}
8585
8586	if invalidParams.Len() > 0 {
8587		return invalidParams
8588	}
8589	return nil
8590}
8591
8592// SetDeliveryStreamArn sets the DeliveryStreamArn field's value.
8593func (s *KinesisFirehoseDestination) SetDeliveryStreamArn(v string) *KinesisFirehoseDestination {
8594	s.DeliveryStreamArn = &v
8595	return s
8596}
8597
8598// SetIamRoleArn sets the IamRoleArn field's value.
8599func (s *KinesisFirehoseDestination) SetIamRoleArn(v string) *KinesisFirehoseDestination {
8600	s.IamRoleArn = &v
8601	return s
8602}
8603
8604// There are too many instances of the specified resource type.
8605type LimitExceededException struct {
8606	_            struct{}                  `type:"structure"`
8607	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8608
8609	Message_ *string `locationName:"message" type:"string"`
8610}
8611
8612// String returns the string representation
8613func (s LimitExceededException) String() string {
8614	return awsutil.Prettify(s)
8615}
8616
8617// GoString returns the string representation
8618func (s LimitExceededException) GoString() string {
8619	return s.String()
8620}
8621
8622func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
8623	return &LimitExceededException{
8624		RespMetadata: v,
8625	}
8626}
8627
8628// Code returns the exception type name.
8629func (s *LimitExceededException) Code() string {
8630	return "LimitExceededException"
8631}
8632
8633// Message returns the exception's message.
8634func (s *LimitExceededException) Message() string {
8635	if s.Message_ != nil {
8636		return *s.Message_
8637	}
8638	return ""
8639}
8640
8641// OrigErr always returns nil, satisfies awserr.Error interface.
8642func (s *LimitExceededException) OrigErr() error {
8643	return nil
8644}
8645
8646func (s *LimitExceededException) Error() string {
8647	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8648}
8649
8650// Status code returns the HTTP status code for the request's response error.
8651func (s *LimitExceededException) StatusCode() int {
8652	return s.RespMetadata.StatusCode
8653}
8654
8655// RequestID returns the service's response RequestID for request.
8656func (s *LimitExceededException) RequestID() string {
8657	return s.RespMetadata.RequestID
8658}
8659
8660// A request to obtain a list of configuration sets for your Amazon SES account
8661// in the current AWS Region.
8662type ListConfigurationSetsInput struct {
8663	_ struct{} `type:"structure"`
8664
8665	// A token returned from a previous call to ListConfigurationSets to indicate
8666	// the position in the list of configuration sets.
8667	NextToken *string `location:"querystring" locationName:"NextToken" type:"string"`
8668
8669	// The number of results to show in a single call to ListConfigurationSets.
8670	// If the number of results is larger than the number you specified in this
8671	// parameter, then the response includes a NextToken element, which you can
8672	// use to obtain additional results.
8673	PageSize *int64 `location:"querystring" locationName:"PageSize" type:"integer"`
8674}
8675
8676// String returns the string representation
8677func (s ListConfigurationSetsInput) String() string {
8678	return awsutil.Prettify(s)
8679}
8680
8681// GoString returns the string representation
8682func (s ListConfigurationSetsInput) GoString() string {
8683	return s.String()
8684}
8685
8686// SetNextToken sets the NextToken field's value.
8687func (s *ListConfigurationSetsInput) SetNextToken(v string) *ListConfigurationSetsInput {
8688	s.NextToken = &v
8689	return s
8690}
8691
8692// SetPageSize sets the PageSize field's value.
8693func (s *ListConfigurationSetsInput) SetPageSize(v int64) *ListConfigurationSetsInput {
8694	s.PageSize = &v
8695	return s
8696}
8697
8698// A list of configuration sets in your Amazon SES account in the current AWS
8699// Region.
8700type ListConfigurationSetsOutput struct {
8701	_ struct{} `type:"structure"`
8702
8703	// An array that contains all of the configuration sets in your Amazon SES account
8704	// in the current AWS Region.
8705	ConfigurationSets []*string `type:"list"`
8706
8707	// A token that indicates that there are additional configuration sets to list.
8708	// To view additional configuration sets, issue another request to ListConfigurationSets,
8709	// and pass this token in the NextToken parameter.
8710	NextToken *string `type:"string"`
8711}
8712
8713// String returns the string representation
8714func (s ListConfigurationSetsOutput) String() string {
8715	return awsutil.Prettify(s)
8716}
8717
8718// GoString returns the string representation
8719func (s ListConfigurationSetsOutput) GoString() string {
8720	return s.String()
8721}
8722
8723// SetConfigurationSets sets the ConfigurationSets field's value.
8724func (s *ListConfigurationSetsOutput) SetConfigurationSets(v []*string) *ListConfigurationSetsOutput {
8725	s.ConfigurationSets = v
8726	return s
8727}
8728
8729// SetNextToken sets the NextToken field's value.
8730func (s *ListConfigurationSetsOutput) SetNextToken(v string) *ListConfigurationSetsOutput {
8731	s.NextToken = &v
8732	return s
8733}
8734
8735// A request to obtain a list of dedicated IP pools.
8736type ListDedicatedIpPoolsInput struct {
8737	_ struct{} `type:"structure"`
8738
8739	// A token returned from a previous call to ListDedicatedIpPools to indicate
8740	// the position in the list of dedicated IP pools.
8741	NextToken *string `location:"querystring" locationName:"NextToken" type:"string"`
8742
8743	// The number of results to show in a single call to ListDedicatedIpPools. If
8744	// the number of results is larger than the number you specified in this parameter,
8745	// then the response includes a NextToken element, which you can use to obtain
8746	// additional results.
8747	PageSize *int64 `location:"querystring" locationName:"PageSize" type:"integer"`
8748}
8749
8750// String returns the string representation
8751func (s ListDedicatedIpPoolsInput) String() string {
8752	return awsutil.Prettify(s)
8753}
8754
8755// GoString returns the string representation
8756func (s ListDedicatedIpPoolsInput) GoString() string {
8757	return s.String()
8758}
8759
8760// SetNextToken sets the NextToken field's value.
8761func (s *ListDedicatedIpPoolsInput) SetNextToken(v string) *ListDedicatedIpPoolsInput {
8762	s.NextToken = &v
8763	return s
8764}
8765
8766// SetPageSize sets the PageSize field's value.
8767func (s *ListDedicatedIpPoolsInput) SetPageSize(v int64) *ListDedicatedIpPoolsInput {
8768	s.PageSize = &v
8769	return s
8770}
8771
8772// A list of dedicated IP pools.
8773type ListDedicatedIpPoolsOutput struct {
8774	_ struct{} `type:"structure"`
8775
8776	// A list of all of the dedicated IP pools that are associated with your AWS
8777	// account in the current Region.
8778	DedicatedIpPools []*string `type:"list"`
8779
8780	// A token that indicates that there are additional IP pools to list. To view
8781	// additional IP pools, issue another request to ListDedicatedIpPools, passing
8782	// this token in the NextToken parameter.
8783	NextToken *string `type:"string"`
8784}
8785
8786// String returns the string representation
8787func (s ListDedicatedIpPoolsOutput) String() string {
8788	return awsutil.Prettify(s)
8789}
8790
8791// GoString returns the string representation
8792func (s ListDedicatedIpPoolsOutput) GoString() string {
8793	return s.String()
8794}
8795
8796// SetDedicatedIpPools sets the DedicatedIpPools field's value.
8797func (s *ListDedicatedIpPoolsOutput) SetDedicatedIpPools(v []*string) *ListDedicatedIpPoolsOutput {
8798	s.DedicatedIpPools = v
8799	return s
8800}
8801
8802// SetNextToken sets the NextToken field's value.
8803func (s *ListDedicatedIpPoolsOutput) SetNextToken(v string) *ListDedicatedIpPoolsOutput {
8804	s.NextToken = &v
8805	return s
8806}
8807
8808// A request to list all of the predictive inbox placement tests that you've
8809// performed.
8810type ListDeliverabilityTestReportsInput struct {
8811	_ struct{} `type:"structure"`
8812
8813	// A token returned from a previous call to ListDeliverabilityTestReports to
8814	// indicate the position in the list of predictive inbox placement tests.
8815	NextToken *string `location:"querystring" locationName:"NextToken" type:"string"`
8816
8817	// The number of results to show in a single call to ListDeliverabilityTestReports.
8818	// If the number of results is larger than the number you specified in this
8819	// parameter, then the response includes a NextToken element, which you can
8820	// use to obtain additional results.
8821	//
8822	// The value you specify has to be at least 0, and can be no more than 1000.
8823	PageSize *int64 `location:"querystring" locationName:"PageSize" type:"integer"`
8824}
8825
8826// String returns the string representation
8827func (s ListDeliverabilityTestReportsInput) String() string {
8828	return awsutil.Prettify(s)
8829}
8830
8831// GoString returns the string representation
8832func (s ListDeliverabilityTestReportsInput) GoString() string {
8833	return s.String()
8834}
8835
8836// SetNextToken sets the NextToken field's value.
8837func (s *ListDeliverabilityTestReportsInput) SetNextToken(v string) *ListDeliverabilityTestReportsInput {
8838	s.NextToken = &v
8839	return s
8840}
8841
8842// SetPageSize sets the PageSize field's value.
8843func (s *ListDeliverabilityTestReportsInput) SetPageSize(v int64) *ListDeliverabilityTestReportsInput {
8844	s.PageSize = &v
8845	return s
8846}
8847
8848// A list of the predictive inbox placement test reports that are available
8849// for your account, regardless of whether or not those tests are complete.
8850type ListDeliverabilityTestReportsOutput struct {
8851	_ struct{} `type:"structure"`
8852
8853	// An object that contains a lists of predictive inbox placement tests that
8854	// you've performed.
8855	//
8856	// DeliverabilityTestReports is a required field
8857	DeliverabilityTestReports []*DeliverabilityTestReport `type:"list" required:"true"`
8858
8859	// A token that indicates that there are additional predictive inbox placement
8860	// tests to list. To view additional predictive inbox placement tests, issue
8861	// another request to ListDeliverabilityTestReports, and pass this token in
8862	// the NextToken parameter.
8863	NextToken *string `type:"string"`
8864}
8865
8866// String returns the string representation
8867func (s ListDeliverabilityTestReportsOutput) String() string {
8868	return awsutil.Prettify(s)
8869}
8870
8871// GoString returns the string representation
8872func (s ListDeliverabilityTestReportsOutput) GoString() string {
8873	return s.String()
8874}
8875
8876// SetDeliverabilityTestReports sets the DeliverabilityTestReports field's value.
8877func (s *ListDeliverabilityTestReportsOutput) SetDeliverabilityTestReports(v []*DeliverabilityTestReport) *ListDeliverabilityTestReportsOutput {
8878	s.DeliverabilityTestReports = v
8879	return s
8880}
8881
8882// SetNextToken sets the NextToken field's value.
8883func (s *ListDeliverabilityTestReportsOutput) SetNextToken(v string) *ListDeliverabilityTestReportsOutput {
8884	s.NextToken = &v
8885	return s
8886}
8887
8888// Retrieve deliverability data for all the campaigns that used a specific domain
8889// to send email during a specified time range. This data is available for a
8890// domain only if you enabled the Deliverability dashboard.
8891type ListDomainDeliverabilityCampaignsInput struct {
8892	_ struct{} `type:"structure"`
8893
8894	// The last day, in Unix time format, that you want to obtain deliverability
8895	// data for. This value has to be less than or equal to 30 days after the value
8896	// of the StartDate parameter.
8897	//
8898	// EndDate is a required field
8899	EndDate *time.Time `location:"querystring" locationName:"EndDate" type:"timestamp" required:"true"`
8900
8901	// A token that’s returned from a previous call to the ListDomainDeliverabilityCampaigns
8902	// operation. This token indicates the position of a campaign in the list of
8903	// campaigns.
8904	NextToken *string `location:"querystring" locationName:"NextToken" type:"string"`
8905
8906	// The maximum number of results to include in response to a single call to
8907	// the ListDomainDeliverabilityCampaigns operation. If the number of results
8908	// is larger than the number that you specify in this parameter, the response
8909	// includes a NextToken element, which you can use to obtain additional results.
8910	PageSize *int64 `location:"querystring" locationName:"PageSize" type:"integer"`
8911
8912	// The first day, in Unix time format, that you want to obtain deliverability
8913	// data for.
8914	//
8915	// StartDate is a required field
8916	StartDate *time.Time `location:"querystring" locationName:"StartDate" type:"timestamp" required:"true"`
8917
8918	// The domain to obtain deliverability data for.
8919	//
8920	// SubscribedDomain is a required field
8921	SubscribedDomain *string `location:"uri" locationName:"SubscribedDomain" type:"string" required:"true"`
8922}
8923
8924// String returns the string representation
8925func (s ListDomainDeliverabilityCampaignsInput) String() string {
8926	return awsutil.Prettify(s)
8927}
8928
8929// GoString returns the string representation
8930func (s ListDomainDeliverabilityCampaignsInput) GoString() string {
8931	return s.String()
8932}
8933
8934// Validate inspects the fields of the type to determine if they are valid.
8935func (s *ListDomainDeliverabilityCampaignsInput) Validate() error {
8936	invalidParams := request.ErrInvalidParams{Context: "ListDomainDeliverabilityCampaignsInput"}
8937	if s.EndDate == nil {
8938		invalidParams.Add(request.NewErrParamRequired("EndDate"))
8939	}
8940	if s.StartDate == nil {
8941		invalidParams.Add(request.NewErrParamRequired("StartDate"))
8942	}
8943	if s.SubscribedDomain == nil {
8944		invalidParams.Add(request.NewErrParamRequired("SubscribedDomain"))
8945	}
8946	if s.SubscribedDomain != nil && len(*s.SubscribedDomain) < 1 {
8947		invalidParams.Add(request.NewErrParamMinLen("SubscribedDomain", 1))
8948	}
8949
8950	if invalidParams.Len() > 0 {
8951		return invalidParams
8952	}
8953	return nil
8954}
8955
8956// SetEndDate sets the EndDate field's value.
8957func (s *ListDomainDeliverabilityCampaignsInput) SetEndDate(v time.Time) *ListDomainDeliverabilityCampaignsInput {
8958	s.EndDate = &v
8959	return s
8960}
8961
8962// SetNextToken sets the NextToken field's value.
8963func (s *ListDomainDeliverabilityCampaignsInput) SetNextToken(v string) *ListDomainDeliverabilityCampaignsInput {
8964	s.NextToken = &v
8965	return s
8966}
8967
8968// SetPageSize sets the PageSize field's value.
8969func (s *ListDomainDeliverabilityCampaignsInput) SetPageSize(v int64) *ListDomainDeliverabilityCampaignsInput {
8970	s.PageSize = &v
8971	return s
8972}
8973
8974// SetStartDate sets the StartDate field's value.
8975func (s *ListDomainDeliverabilityCampaignsInput) SetStartDate(v time.Time) *ListDomainDeliverabilityCampaignsInput {
8976	s.StartDate = &v
8977	return s
8978}
8979
8980// SetSubscribedDomain sets the SubscribedDomain field's value.
8981func (s *ListDomainDeliverabilityCampaignsInput) SetSubscribedDomain(v string) *ListDomainDeliverabilityCampaignsInput {
8982	s.SubscribedDomain = &v
8983	return s
8984}
8985
8986// An array of objects that provide deliverability data for all the campaigns
8987// that used a specific domain to send email during a specified time range.
8988// This data is available for a domain only if you enabled the Deliverability
8989// dashboard for the domain.
8990type ListDomainDeliverabilityCampaignsOutput struct {
8991	_ struct{} `type:"structure"`
8992
8993	// An array of responses, one for each campaign that used the domain to send
8994	// email during the specified time range.
8995	//
8996	// DomainDeliverabilityCampaigns is a required field
8997	DomainDeliverabilityCampaigns []*DomainDeliverabilityCampaign `type:"list" required:"true"`
8998
8999	// A token that’s returned from a previous call to the ListDomainDeliverabilityCampaigns
9000	// operation. This token indicates the position of the campaign in the list
9001	// of campaigns.
9002	NextToken *string `type:"string"`
9003}
9004
9005// String returns the string representation
9006func (s ListDomainDeliverabilityCampaignsOutput) String() string {
9007	return awsutil.Prettify(s)
9008}
9009
9010// GoString returns the string representation
9011func (s ListDomainDeliverabilityCampaignsOutput) GoString() string {
9012	return s.String()
9013}
9014
9015// SetDomainDeliverabilityCampaigns sets the DomainDeliverabilityCampaigns field's value.
9016func (s *ListDomainDeliverabilityCampaignsOutput) SetDomainDeliverabilityCampaigns(v []*DomainDeliverabilityCampaign) *ListDomainDeliverabilityCampaignsOutput {
9017	s.DomainDeliverabilityCampaigns = v
9018	return s
9019}
9020
9021// SetNextToken sets the NextToken field's value.
9022func (s *ListDomainDeliverabilityCampaignsOutput) SetNextToken(v string) *ListDomainDeliverabilityCampaignsOutput {
9023	s.NextToken = &v
9024	return s
9025}
9026
9027// A request to list all of the email identities associated with your AWS account.
9028// This list includes identities that you've already verified, identities that
9029// are unverified, and identities that were verified in the past, but are no
9030// longer verified.
9031type ListEmailIdentitiesInput struct {
9032	_ struct{} `type:"structure"`
9033
9034	// A token returned from a previous call to ListEmailIdentities to indicate
9035	// the position in the list of identities.
9036	NextToken *string `location:"querystring" locationName:"NextToken" type:"string"`
9037
9038	// The number of results to show in a single call to ListEmailIdentities. If
9039	// the number of results is larger than the number you specified in this parameter,
9040	// then the response includes a NextToken element, which you can use to obtain
9041	// additional results.
9042	//
9043	// The value you specify has to be at least 0, and can be no more than 1000.
9044	PageSize *int64 `location:"querystring" locationName:"PageSize" type:"integer"`
9045}
9046
9047// String returns the string representation
9048func (s ListEmailIdentitiesInput) String() string {
9049	return awsutil.Prettify(s)
9050}
9051
9052// GoString returns the string representation
9053func (s ListEmailIdentitiesInput) GoString() string {
9054	return s.String()
9055}
9056
9057// SetNextToken sets the NextToken field's value.
9058func (s *ListEmailIdentitiesInput) SetNextToken(v string) *ListEmailIdentitiesInput {
9059	s.NextToken = &v
9060	return s
9061}
9062
9063// SetPageSize sets the PageSize field's value.
9064func (s *ListEmailIdentitiesInput) SetPageSize(v int64) *ListEmailIdentitiesInput {
9065	s.PageSize = &v
9066	return s
9067}
9068
9069// A list of all of the identities that you've attempted to verify, regardless
9070// of whether or not those identities were successfully verified.
9071type ListEmailIdentitiesOutput struct {
9072	_ struct{} `type:"structure"`
9073
9074	// An array that includes all of the email identities associated with your AWS
9075	// account.
9076	EmailIdentities []*IdentityInfo `type:"list"`
9077
9078	// A token that indicates that there are additional configuration sets to list.
9079	// To view additional configuration sets, issue another request to ListEmailIdentities,
9080	// and pass this token in the NextToken parameter.
9081	NextToken *string `type:"string"`
9082}
9083
9084// String returns the string representation
9085func (s ListEmailIdentitiesOutput) String() string {
9086	return awsutil.Prettify(s)
9087}
9088
9089// GoString returns the string representation
9090func (s ListEmailIdentitiesOutput) GoString() string {
9091	return s.String()
9092}
9093
9094// SetEmailIdentities sets the EmailIdentities field's value.
9095func (s *ListEmailIdentitiesOutput) SetEmailIdentities(v []*IdentityInfo) *ListEmailIdentitiesOutput {
9096	s.EmailIdentities = v
9097	return s
9098}
9099
9100// SetNextToken sets the NextToken field's value.
9101func (s *ListEmailIdentitiesOutput) SetNextToken(v string) *ListEmailIdentitiesOutput {
9102	s.NextToken = &v
9103	return s
9104}
9105
9106// A request to obtain a list of email destinations that are on the suppression
9107// list for your account.
9108type ListSuppressedDestinationsInput struct {
9109	_ struct{} `type:"structure"`
9110
9111	// Used to filter the list of suppressed email destinations so that it only
9112	// includes addresses that were added to the list before a specific date. The
9113	// date that you specify should be in Unix time format.
9114	EndDate *time.Time `location:"querystring" locationName:"EndDate" type:"timestamp"`
9115
9116	// A token returned from a previous call to ListSuppressedDestinations to indicate
9117	// the position in the list of suppressed email addresses.
9118	NextToken *string `location:"querystring" locationName:"NextToken" type:"string"`
9119
9120	// The number of results to show in a single call to ListSuppressedDestinations.
9121	// If the number of results is larger than the number you specified in this
9122	// parameter, then the response includes a NextToken element, which you can
9123	// use to obtain additional results.
9124	PageSize *int64 `location:"querystring" locationName:"PageSize" type:"integer"`
9125
9126	// The factors that caused the email address to be added to .
9127	Reasons []*string `location:"querystring" locationName:"Reason" type:"list"`
9128
9129	// Used to filter the list of suppressed email destinations so that it only
9130	// includes addresses that were added to the list after a specific date. The
9131	// date that you specify should be in Unix time format.
9132	StartDate *time.Time `location:"querystring" locationName:"StartDate" type:"timestamp"`
9133}
9134
9135// String returns the string representation
9136func (s ListSuppressedDestinationsInput) String() string {
9137	return awsutil.Prettify(s)
9138}
9139
9140// GoString returns the string representation
9141func (s ListSuppressedDestinationsInput) GoString() string {
9142	return s.String()
9143}
9144
9145// SetEndDate sets the EndDate field's value.
9146func (s *ListSuppressedDestinationsInput) SetEndDate(v time.Time) *ListSuppressedDestinationsInput {
9147	s.EndDate = &v
9148	return s
9149}
9150
9151// SetNextToken sets the NextToken field's value.
9152func (s *ListSuppressedDestinationsInput) SetNextToken(v string) *ListSuppressedDestinationsInput {
9153	s.NextToken = &v
9154	return s
9155}
9156
9157// SetPageSize sets the PageSize field's value.
9158func (s *ListSuppressedDestinationsInput) SetPageSize(v int64) *ListSuppressedDestinationsInput {
9159	s.PageSize = &v
9160	return s
9161}
9162
9163// SetReasons sets the Reasons field's value.
9164func (s *ListSuppressedDestinationsInput) SetReasons(v []*string) *ListSuppressedDestinationsInput {
9165	s.Reasons = v
9166	return s
9167}
9168
9169// SetStartDate sets the StartDate field's value.
9170func (s *ListSuppressedDestinationsInput) SetStartDate(v time.Time) *ListSuppressedDestinationsInput {
9171	s.StartDate = &v
9172	return s
9173}
9174
9175// A list of suppressed email addresses.
9176type ListSuppressedDestinationsOutput struct {
9177	_ struct{} `type:"structure"`
9178
9179	// A token that indicates that there are additional email addresses on the suppression
9180	// list for your account. To view additional suppressed addresses, issue another
9181	// request to ListSuppressedDestinations, and pass this token in the NextToken
9182	// parameter.
9183	NextToken *string `type:"string"`
9184
9185	// A list of summaries, each containing a summary for a suppressed email destination.
9186	SuppressedDestinationSummaries []*SuppressedDestinationSummary `type:"list"`
9187}
9188
9189// String returns the string representation
9190func (s ListSuppressedDestinationsOutput) String() string {
9191	return awsutil.Prettify(s)
9192}
9193
9194// GoString returns the string representation
9195func (s ListSuppressedDestinationsOutput) GoString() string {
9196	return s.String()
9197}
9198
9199// SetNextToken sets the NextToken field's value.
9200func (s *ListSuppressedDestinationsOutput) SetNextToken(v string) *ListSuppressedDestinationsOutput {
9201	s.NextToken = &v
9202	return s
9203}
9204
9205// SetSuppressedDestinationSummaries sets the SuppressedDestinationSummaries field's value.
9206func (s *ListSuppressedDestinationsOutput) SetSuppressedDestinationSummaries(v []*SuppressedDestinationSummary) *ListSuppressedDestinationsOutput {
9207	s.SuppressedDestinationSummaries = v
9208	return s
9209}
9210
9211type ListTagsForResourceInput struct {
9212	_ struct{} `type:"structure"`
9213
9214	// The Amazon Resource Name (ARN) of the resource that you want to retrieve
9215	// tag information for.
9216	//
9217	// ResourceArn is a required field
9218	ResourceArn *string `location:"querystring" locationName:"ResourceArn" type:"string" required:"true"`
9219}
9220
9221// String returns the string representation
9222func (s ListTagsForResourceInput) String() string {
9223	return awsutil.Prettify(s)
9224}
9225
9226// GoString returns the string representation
9227func (s ListTagsForResourceInput) GoString() string {
9228	return s.String()
9229}
9230
9231// Validate inspects the fields of the type to determine if they are valid.
9232func (s *ListTagsForResourceInput) Validate() error {
9233	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
9234	if s.ResourceArn == nil {
9235		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
9236	}
9237
9238	if invalidParams.Len() > 0 {
9239		return invalidParams
9240	}
9241	return nil
9242}
9243
9244// SetResourceArn sets the ResourceArn field's value.
9245func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
9246	s.ResourceArn = &v
9247	return s
9248}
9249
9250type ListTagsForResourceOutput struct {
9251	_ struct{} `type:"structure"`
9252
9253	// An array that lists all the tags that are associated with the resource. Each
9254	// tag consists of a required tag key (Key) and an associated tag value (Value)
9255	//
9256	// Tags is a required field
9257	Tags []*Tag `type:"list" required:"true"`
9258}
9259
9260// String returns the string representation
9261func (s ListTagsForResourceOutput) String() string {
9262	return awsutil.Prettify(s)
9263}
9264
9265// GoString returns the string representation
9266func (s ListTagsForResourceOutput) GoString() string {
9267	return s.String()
9268}
9269
9270// SetTags sets the Tags field's value.
9271func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
9272	s.Tags = v
9273	return s
9274}
9275
9276// A list of attributes that are associated with a MAIL FROM domain.
9277type MailFromAttributes struct {
9278	_ struct{} `type:"structure"`
9279
9280	// The action that you want to take if the required MX record can't be found
9281	// when you send an email. When you set this value to UseDefaultValue, the mail
9282	// is sent using amazonses.com as the MAIL FROM domain. When you set this value
9283	// to RejectMessage, the Amazon SES API v2 returns a MailFromDomainNotVerified
9284	// error, and doesn't attempt to deliver the email.
9285	//
9286	// These behaviors are taken when the custom MAIL FROM domain configuration
9287	// is in the Pending, Failed, and TemporaryFailure states.
9288	//
9289	// BehaviorOnMxFailure is a required field
9290	BehaviorOnMxFailure *string `type:"string" required:"true" enum:"BehaviorOnMxFailure"`
9291
9292	// The name of a domain that an email identity uses as a custom MAIL FROM domain.
9293	//
9294	// MailFromDomain is a required field
9295	MailFromDomain *string `type:"string" required:"true"`
9296
9297	// The status of the MAIL FROM domain. This status can have the following values:
9298	//
9299	//    * PENDING – Amazon SES hasn't started searching for the MX record yet.
9300	//
9301	//    * SUCCESS – Amazon SES detected the required MX record for the MAIL
9302	//    FROM domain.
9303	//
9304	//    * FAILED – Amazon SES can't find the required MX record, or the record
9305	//    no longer exists.
9306	//
9307	//    * TEMPORARY_FAILURE – A temporary issue occurred, which prevented Amazon
9308	//    SES from determining the status of the MAIL FROM domain.
9309	//
9310	// MailFromDomainStatus is a required field
9311	MailFromDomainStatus *string `type:"string" required:"true" enum:"MailFromDomainStatus"`
9312}
9313
9314// String returns the string representation
9315func (s MailFromAttributes) String() string {
9316	return awsutil.Prettify(s)
9317}
9318
9319// GoString returns the string representation
9320func (s MailFromAttributes) GoString() string {
9321	return s.String()
9322}
9323
9324// SetBehaviorOnMxFailure sets the BehaviorOnMxFailure field's value.
9325func (s *MailFromAttributes) SetBehaviorOnMxFailure(v string) *MailFromAttributes {
9326	s.BehaviorOnMxFailure = &v
9327	return s
9328}
9329
9330// SetMailFromDomain sets the MailFromDomain field's value.
9331func (s *MailFromAttributes) SetMailFromDomain(v string) *MailFromAttributes {
9332	s.MailFromDomain = &v
9333	return s
9334}
9335
9336// SetMailFromDomainStatus sets the MailFromDomainStatus field's value.
9337func (s *MailFromAttributes) SetMailFromDomainStatus(v string) *MailFromAttributes {
9338	s.MailFromDomainStatus = &v
9339	return s
9340}
9341
9342// The message can't be sent because the sending domain isn't verified.
9343type MailFromDomainNotVerifiedException struct {
9344	_            struct{}                  `type:"structure"`
9345	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9346
9347	Message_ *string `locationName:"message" type:"string"`
9348}
9349
9350// String returns the string representation
9351func (s MailFromDomainNotVerifiedException) String() string {
9352	return awsutil.Prettify(s)
9353}
9354
9355// GoString returns the string representation
9356func (s MailFromDomainNotVerifiedException) GoString() string {
9357	return s.String()
9358}
9359
9360func newErrorMailFromDomainNotVerifiedException(v protocol.ResponseMetadata) error {
9361	return &MailFromDomainNotVerifiedException{
9362		RespMetadata: v,
9363	}
9364}
9365
9366// Code returns the exception type name.
9367func (s *MailFromDomainNotVerifiedException) Code() string {
9368	return "MailFromDomainNotVerifiedException"
9369}
9370
9371// Message returns the exception's message.
9372func (s *MailFromDomainNotVerifiedException) Message() string {
9373	if s.Message_ != nil {
9374		return *s.Message_
9375	}
9376	return ""
9377}
9378
9379// OrigErr always returns nil, satisfies awserr.Error interface.
9380func (s *MailFromDomainNotVerifiedException) OrigErr() error {
9381	return nil
9382}
9383
9384func (s *MailFromDomainNotVerifiedException) Error() string {
9385	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
9386}
9387
9388// Status code returns the HTTP status code for the request's response error.
9389func (s *MailFromDomainNotVerifiedException) StatusCode() int {
9390	return s.RespMetadata.StatusCode
9391}
9392
9393// RequestID returns the service's response RequestID for request.
9394func (s *MailFromDomainNotVerifiedException) RequestID() string {
9395	return s.RespMetadata.RequestID
9396}
9397
9398// Represents the email message that you're sending. The Message object consists
9399// of a subject line and a message body.
9400type Message struct {
9401	_ struct{} `type:"structure"`
9402
9403	// The body of the message. You can specify an HTML version of the message,
9404	// a text-only version of the message, or both.
9405	//
9406	// Body is a required field
9407	Body *Body `type:"structure" required:"true"`
9408
9409	// The subject line of the email. The subject line can only contain 7-bit ASCII
9410	// characters. However, you can specify non-ASCII characters in the subject
9411	// line by using encoded-word syntax, as described in RFC 2047 (https://tools.ietf.org/html/rfc2047).
9412	//
9413	// Subject is a required field
9414	Subject *Content `type:"structure" required:"true"`
9415}
9416
9417// String returns the string representation
9418func (s Message) String() string {
9419	return awsutil.Prettify(s)
9420}
9421
9422// GoString returns the string representation
9423func (s Message) GoString() string {
9424	return s.String()
9425}
9426
9427// Validate inspects the fields of the type to determine if they are valid.
9428func (s *Message) Validate() error {
9429	invalidParams := request.ErrInvalidParams{Context: "Message"}
9430	if s.Body == nil {
9431		invalidParams.Add(request.NewErrParamRequired("Body"))
9432	}
9433	if s.Subject == nil {
9434		invalidParams.Add(request.NewErrParamRequired("Subject"))
9435	}
9436	if s.Body != nil {
9437		if err := s.Body.Validate(); err != nil {
9438			invalidParams.AddNested("Body", err.(request.ErrInvalidParams))
9439		}
9440	}
9441	if s.Subject != nil {
9442		if err := s.Subject.Validate(); err != nil {
9443			invalidParams.AddNested("Subject", err.(request.ErrInvalidParams))
9444		}
9445	}
9446
9447	if invalidParams.Len() > 0 {
9448		return invalidParams
9449	}
9450	return nil
9451}
9452
9453// SetBody sets the Body field's value.
9454func (s *Message) SetBody(v *Body) *Message {
9455	s.Body = v
9456	return s
9457}
9458
9459// SetSubject sets the Subject field's value.
9460func (s *Message) SetSubject(v *Content) *Message {
9461	s.Subject = v
9462	return s
9463}
9464
9465// The message can't be sent because it contains invalid content.
9466type MessageRejected struct {
9467	_            struct{}                  `type:"structure"`
9468	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9469
9470	Message_ *string `locationName:"message" type:"string"`
9471}
9472
9473// String returns the string representation
9474func (s MessageRejected) String() string {
9475	return awsutil.Prettify(s)
9476}
9477
9478// GoString returns the string representation
9479func (s MessageRejected) GoString() string {
9480	return s.String()
9481}
9482
9483func newErrorMessageRejected(v protocol.ResponseMetadata) error {
9484	return &MessageRejected{
9485		RespMetadata: v,
9486	}
9487}
9488
9489// Code returns the exception type name.
9490func (s *MessageRejected) Code() string {
9491	return "MessageRejected"
9492}
9493
9494// Message returns the exception's message.
9495func (s *MessageRejected) Message() string {
9496	if s.Message_ != nil {
9497		return *s.Message_
9498	}
9499	return ""
9500}
9501
9502// OrigErr always returns nil, satisfies awserr.Error interface.
9503func (s *MessageRejected) OrigErr() error {
9504	return nil
9505}
9506
9507func (s *MessageRejected) Error() string {
9508	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
9509}
9510
9511// Status code returns the HTTP status code for the request's response error.
9512func (s *MessageRejected) StatusCode() int {
9513	return s.RespMetadata.StatusCode
9514}
9515
9516// RequestID returns the service's response RequestID for request.
9517func (s *MessageRejected) RequestID() string {
9518	return s.RespMetadata.RequestID
9519}
9520
9521// Contains the name and value of a tag that you apply to an email. You can
9522// use message tags when you publish email sending events.
9523type MessageTag struct {
9524	_ struct{} `type:"structure"`
9525
9526	// The name of the message tag. The message tag name has to meet the following
9527	// criteria:
9528	//
9529	//    * It can only contain ASCII letters (a–z, A–Z), numbers (0–9), underscores
9530	//    (_), or dashes (-).
9531	//
9532	//    * It can contain no more than 256 characters.
9533	//
9534	// Name is a required field
9535	Name *string `type:"string" required:"true"`
9536
9537	// The value of the message tag. The message tag value has to meet the following
9538	// criteria:
9539	//
9540	//    * It can only contain ASCII letters (a–z, A–Z), numbers (0–9), underscores
9541	//    (_), or dashes (-).
9542	//
9543	//    * It can contain no more than 256 characters.
9544	//
9545	// Value is a required field
9546	Value *string `type:"string" required:"true"`
9547}
9548
9549// String returns the string representation
9550func (s MessageTag) String() string {
9551	return awsutil.Prettify(s)
9552}
9553
9554// GoString returns the string representation
9555func (s MessageTag) GoString() string {
9556	return s.String()
9557}
9558
9559// Validate inspects the fields of the type to determine if they are valid.
9560func (s *MessageTag) Validate() error {
9561	invalidParams := request.ErrInvalidParams{Context: "MessageTag"}
9562	if s.Name == nil {
9563		invalidParams.Add(request.NewErrParamRequired("Name"))
9564	}
9565	if s.Value == nil {
9566		invalidParams.Add(request.NewErrParamRequired("Value"))
9567	}
9568
9569	if invalidParams.Len() > 0 {
9570		return invalidParams
9571	}
9572	return nil
9573}
9574
9575// SetName sets the Name field's value.
9576func (s *MessageTag) SetName(v string) *MessageTag {
9577	s.Name = &v
9578	return s
9579}
9580
9581// SetValue sets the Value field's value.
9582func (s *MessageTag) SetValue(v string) *MessageTag {
9583	s.Value = &v
9584	return s
9585}
9586
9587// The resource you attempted to access doesn't exist.
9588type NotFoundException struct {
9589	_            struct{}                  `type:"structure"`
9590	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9591
9592	Message_ *string `locationName:"message" type:"string"`
9593}
9594
9595// String returns the string representation
9596func (s NotFoundException) String() string {
9597	return awsutil.Prettify(s)
9598}
9599
9600// GoString returns the string representation
9601func (s NotFoundException) GoString() string {
9602	return s.String()
9603}
9604
9605func newErrorNotFoundException(v protocol.ResponseMetadata) error {
9606	return &NotFoundException{
9607		RespMetadata: v,
9608	}
9609}
9610
9611// Code returns the exception type name.
9612func (s *NotFoundException) Code() string {
9613	return "NotFoundException"
9614}
9615
9616// Message returns the exception's message.
9617func (s *NotFoundException) Message() string {
9618	if s.Message_ != nil {
9619		return *s.Message_
9620	}
9621	return ""
9622}
9623
9624// OrigErr always returns nil, satisfies awserr.Error interface.
9625func (s *NotFoundException) OrigErr() error {
9626	return nil
9627}
9628
9629func (s *NotFoundException) Error() string {
9630	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
9631}
9632
9633// Status code returns the HTTP status code for the request's response error.
9634func (s *NotFoundException) StatusCode() int {
9635	return s.RespMetadata.StatusCode
9636}
9637
9638// RequestID returns the service's response RequestID for request.
9639func (s *NotFoundException) RequestID() string {
9640	return s.RespMetadata.RequestID
9641}
9642
9643// An object that contains information about email that was sent from the selected
9644// domain.
9645type OverallVolume struct {
9646	_ struct{} `type:"structure"`
9647
9648	// An object that contains inbox and junk mail placement metrics for individual
9649	// email providers.
9650	DomainIspPlacements []*DomainIspPlacement `type:"list"`
9651
9652	// The percentage of emails that were sent from the domain that were read by
9653	// their recipients.
9654	ReadRatePercent *float64 `type:"double"`
9655
9656	// An object that contains information about the numbers of messages that arrived
9657	// in recipients' inboxes and junk mail folders.
9658	VolumeStatistics *VolumeStatistics `type:"structure"`
9659}
9660
9661// String returns the string representation
9662func (s OverallVolume) String() string {
9663	return awsutil.Prettify(s)
9664}
9665
9666// GoString returns the string representation
9667func (s OverallVolume) GoString() string {
9668	return s.String()
9669}
9670
9671// SetDomainIspPlacements sets the DomainIspPlacements field's value.
9672func (s *OverallVolume) SetDomainIspPlacements(v []*DomainIspPlacement) *OverallVolume {
9673	s.DomainIspPlacements = v
9674	return s
9675}
9676
9677// SetReadRatePercent sets the ReadRatePercent field's value.
9678func (s *OverallVolume) SetReadRatePercent(v float64) *OverallVolume {
9679	s.ReadRatePercent = &v
9680	return s
9681}
9682
9683// SetVolumeStatistics sets the VolumeStatistics field's value.
9684func (s *OverallVolume) SetVolumeStatistics(v *VolumeStatistics) *OverallVolume {
9685	s.VolumeStatistics = v
9686	return s
9687}
9688
9689// An object that defines an Amazon Pinpoint project destination for email events.
9690// You can send email event data to a Amazon Pinpoint project to view metrics
9691// using the Transactional Messaging dashboards that are built in to Amazon
9692// Pinpoint. For more information, see Transactional Messaging Charts (https://docs.aws.amazon.com/pinpoint/latest/userguide/analytics-transactional-messages.html)
9693// in the Amazon Pinpoint User Guide.
9694type PinpointDestination struct {
9695	_ struct{} `type:"structure"`
9696
9697	// The Amazon Resource Name (ARN) of the Amazon Pinpoint project that you want
9698	// to send email events to.
9699	ApplicationArn *string `type:"string"`
9700}
9701
9702// String returns the string representation
9703func (s PinpointDestination) String() string {
9704	return awsutil.Prettify(s)
9705}
9706
9707// GoString returns the string representation
9708func (s PinpointDestination) GoString() string {
9709	return s.String()
9710}
9711
9712// SetApplicationArn sets the ApplicationArn field's value.
9713func (s *PinpointDestination) SetApplicationArn(v string) *PinpointDestination {
9714	s.ApplicationArn = &v
9715	return s
9716}
9717
9718// An object that contains inbox placement data for an email provider.
9719type PlacementStatistics struct {
9720	_ struct{} `type:"structure"`
9721
9722	// The percentage of emails that were authenticated by using DomainKeys Identified
9723	// Mail (DKIM) during the predictive inbox placement test.
9724	DkimPercentage *float64 `type:"double"`
9725
9726	// The percentage of emails that arrived in recipients' inboxes during the predictive
9727	// inbox placement test.
9728	InboxPercentage *float64 `type:"double"`
9729
9730	// The percentage of emails that didn't arrive in recipients' inboxes at all
9731	// during the predictive inbox placement test.
9732	MissingPercentage *float64 `type:"double"`
9733
9734	// The percentage of emails that arrived in recipients' spam or junk mail folders
9735	// during the predictive inbox placement test.
9736	SpamPercentage *float64 `type:"double"`
9737
9738	// The percentage of emails that were authenticated by using Sender Policy Framework
9739	// (SPF) during the predictive inbox placement test.
9740	SpfPercentage *float64 `type:"double"`
9741}
9742
9743// String returns the string representation
9744func (s PlacementStatistics) String() string {
9745	return awsutil.Prettify(s)
9746}
9747
9748// GoString returns the string representation
9749func (s PlacementStatistics) GoString() string {
9750	return s.String()
9751}
9752
9753// SetDkimPercentage sets the DkimPercentage field's value.
9754func (s *PlacementStatistics) SetDkimPercentage(v float64) *PlacementStatistics {
9755	s.DkimPercentage = &v
9756	return s
9757}
9758
9759// SetInboxPercentage sets the InboxPercentage field's value.
9760func (s *PlacementStatistics) SetInboxPercentage(v float64) *PlacementStatistics {
9761	s.InboxPercentage = &v
9762	return s
9763}
9764
9765// SetMissingPercentage sets the MissingPercentage field's value.
9766func (s *PlacementStatistics) SetMissingPercentage(v float64) *PlacementStatistics {
9767	s.MissingPercentage = &v
9768	return s
9769}
9770
9771// SetSpamPercentage sets the SpamPercentage field's value.
9772func (s *PlacementStatistics) SetSpamPercentage(v float64) *PlacementStatistics {
9773	s.SpamPercentage = &v
9774	return s
9775}
9776
9777// SetSpfPercentage sets the SpfPercentage field's value.
9778func (s *PlacementStatistics) SetSpfPercentage(v float64) *PlacementStatistics {
9779	s.SpfPercentage = &v
9780	return s
9781}
9782
9783// A request to enable or disable the automatic IP address warm-up feature.
9784type PutAccountDedicatedIpWarmupAttributesInput struct {
9785	_ struct{} `type:"structure"`
9786
9787	// Enables or disables the automatic warm-up feature for dedicated IP addresses
9788	// that are associated with your Amazon SES account in the current AWS Region.
9789	// Set to true to enable the automatic warm-up feature, or set to false to disable
9790	// it.
9791	AutoWarmupEnabled *bool `type:"boolean"`
9792}
9793
9794// String returns the string representation
9795func (s PutAccountDedicatedIpWarmupAttributesInput) String() string {
9796	return awsutil.Prettify(s)
9797}
9798
9799// GoString returns the string representation
9800func (s PutAccountDedicatedIpWarmupAttributesInput) GoString() string {
9801	return s.String()
9802}
9803
9804// SetAutoWarmupEnabled sets the AutoWarmupEnabled field's value.
9805func (s *PutAccountDedicatedIpWarmupAttributesInput) SetAutoWarmupEnabled(v bool) *PutAccountDedicatedIpWarmupAttributesInput {
9806	s.AutoWarmupEnabled = &v
9807	return s
9808}
9809
9810// An HTTP 200 response if the request succeeds, or an error message if the
9811// request fails.
9812type PutAccountDedicatedIpWarmupAttributesOutput struct {
9813	_ struct{} `type:"structure"`
9814}
9815
9816// String returns the string representation
9817func (s PutAccountDedicatedIpWarmupAttributesOutput) String() string {
9818	return awsutil.Prettify(s)
9819}
9820
9821// GoString returns the string representation
9822func (s PutAccountDedicatedIpWarmupAttributesOutput) GoString() string {
9823	return s.String()
9824}
9825
9826// A request to change the ability of your account to send email.
9827type PutAccountSendingAttributesInput struct {
9828	_ struct{} `type:"structure"`
9829
9830	// Enables or disables your account's ability to send email. Set to true to
9831	// enable email sending, or set to false to disable email sending.
9832	//
9833	// If AWS paused your account's ability to send email, you can't use this operation
9834	// to resume your account's ability to send email.
9835	SendingEnabled *bool `type:"boolean"`
9836}
9837
9838// String returns the string representation
9839func (s PutAccountSendingAttributesInput) String() string {
9840	return awsutil.Prettify(s)
9841}
9842
9843// GoString returns the string representation
9844func (s PutAccountSendingAttributesInput) GoString() string {
9845	return s.String()
9846}
9847
9848// SetSendingEnabled sets the SendingEnabled field's value.
9849func (s *PutAccountSendingAttributesInput) SetSendingEnabled(v bool) *PutAccountSendingAttributesInput {
9850	s.SendingEnabled = &v
9851	return s
9852}
9853
9854// An HTTP 200 response if the request succeeds, or an error message if the
9855// request fails.
9856type PutAccountSendingAttributesOutput struct {
9857	_ struct{} `type:"structure"`
9858}
9859
9860// String returns the string representation
9861func (s PutAccountSendingAttributesOutput) String() string {
9862	return awsutil.Prettify(s)
9863}
9864
9865// GoString returns the string representation
9866func (s PutAccountSendingAttributesOutput) GoString() string {
9867	return s.String()
9868}
9869
9870// A request to change your account's suppression preferences.
9871type PutAccountSuppressionAttributesInput struct {
9872	_ struct{} `type:"structure"`
9873
9874	// A list that contains the reasons that email addresses will be automatically
9875	// added to the suppression list for your account. This list can contain any
9876	// or all of the following:
9877	//
9878	//    * COMPLAINT – Amazon SES adds an email address to the suppression list
9879	//    for your account when a message sent to that address results in a complaint.
9880	//
9881	//    * BOUNCE – Amazon SES adds an email address to the suppression list
9882	//    for your account when a message sent to that address results in a hard
9883	//    bounce.
9884	SuppressedReasons []*string `type:"list"`
9885}
9886
9887// String returns the string representation
9888func (s PutAccountSuppressionAttributesInput) String() string {
9889	return awsutil.Prettify(s)
9890}
9891
9892// GoString returns the string representation
9893func (s PutAccountSuppressionAttributesInput) GoString() string {
9894	return s.String()
9895}
9896
9897// SetSuppressedReasons sets the SuppressedReasons field's value.
9898func (s *PutAccountSuppressionAttributesInput) SetSuppressedReasons(v []*string) *PutAccountSuppressionAttributesInput {
9899	s.SuppressedReasons = v
9900	return s
9901}
9902
9903// An HTTP 200 response if the request succeeds, or an error message if the
9904// request fails.
9905type PutAccountSuppressionAttributesOutput struct {
9906	_ struct{} `type:"structure"`
9907}
9908
9909// String returns the string representation
9910func (s PutAccountSuppressionAttributesOutput) String() string {
9911	return awsutil.Prettify(s)
9912}
9913
9914// GoString returns the string representation
9915func (s PutAccountSuppressionAttributesOutput) GoString() string {
9916	return s.String()
9917}
9918
9919// A request to associate a configuration set with a dedicated IP pool.
9920type PutConfigurationSetDeliveryOptionsInput struct {
9921	_ struct{} `type:"structure"`
9922
9923	// The name of the configuration set that you want to associate with a dedicated
9924	// IP pool.
9925	//
9926	// ConfigurationSetName is a required field
9927	ConfigurationSetName *string `location:"uri" locationName:"ConfigurationSetName" type:"string" required:"true"`
9928
9929	// The name of the dedicated IP pool that you want to associate with the configuration
9930	// set.
9931	SendingPoolName *string `type:"string"`
9932
9933	// Specifies whether messages that use the configuration set are required to
9934	// use Transport Layer Security (TLS). If the value is Require, messages are
9935	// only delivered if a TLS connection can be established. If the value is Optional,
9936	// messages can be delivered in plain text if a TLS connection can't be established.
9937	TlsPolicy *string `type:"string" enum:"TlsPolicy"`
9938}
9939
9940// String returns the string representation
9941func (s PutConfigurationSetDeliveryOptionsInput) String() string {
9942	return awsutil.Prettify(s)
9943}
9944
9945// GoString returns the string representation
9946func (s PutConfigurationSetDeliveryOptionsInput) GoString() string {
9947	return s.String()
9948}
9949
9950// Validate inspects the fields of the type to determine if they are valid.
9951func (s *PutConfigurationSetDeliveryOptionsInput) Validate() error {
9952	invalidParams := request.ErrInvalidParams{Context: "PutConfigurationSetDeliveryOptionsInput"}
9953	if s.ConfigurationSetName == nil {
9954		invalidParams.Add(request.NewErrParamRequired("ConfigurationSetName"))
9955	}
9956	if s.ConfigurationSetName != nil && len(*s.ConfigurationSetName) < 1 {
9957		invalidParams.Add(request.NewErrParamMinLen("ConfigurationSetName", 1))
9958	}
9959
9960	if invalidParams.Len() > 0 {
9961		return invalidParams
9962	}
9963	return nil
9964}
9965
9966// SetConfigurationSetName sets the ConfigurationSetName field's value.
9967func (s *PutConfigurationSetDeliveryOptionsInput) SetConfigurationSetName(v string) *PutConfigurationSetDeliveryOptionsInput {
9968	s.ConfigurationSetName = &v
9969	return s
9970}
9971
9972// SetSendingPoolName sets the SendingPoolName field's value.
9973func (s *PutConfigurationSetDeliveryOptionsInput) SetSendingPoolName(v string) *PutConfigurationSetDeliveryOptionsInput {
9974	s.SendingPoolName = &v
9975	return s
9976}
9977
9978// SetTlsPolicy sets the TlsPolicy field's value.
9979func (s *PutConfigurationSetDeliveryOptionsInput) SetTlsPolicy(v string) *PutConfigurationSetDeliveryOptionsInput {
9980	s.TlsPolicy = &v
9981	return s
9982}
9983
9984// An HTTP 200 response if the request succeeds, or an error message if the
9985// request fails.
9986type PutConfigurationSetDeliveryOptionsOutput struct {
9987	_ struct{} `type:"structure"`
9988}
9989
9990// String returns the string representation
9991func (s PutConfigurationSetDeliveryOptionsOutput) String() string {
9992	return awsutil.Prettify(s)
9993}
9994
9995// GoString returns the string representation
9996func (s PutConfigurationSetDeliveryOptionsOutput) GoString() string {
9997	return s.String()
9998}
9999
10000// A request to enable or disable tracking of reputation metrics for a configuration
10001// set.
10002type PutConfigurationSetReputationOptionsInput struct {
10003	_ struct{} `type:"structure"`
10004
10005	// The name of the configuration set that you want to enable or disable reputation
10006	// metric tracking for.
10007	//
10008	// ConfigurationSetName is a required field
10009	ConfigurationSetName *string `location:"uri" locationName:"ConfigurationSetName" type:"string" required:"true"`
10010
10011	// If true, tracking of reputation metrics is enabled for the configuration
10012	// set. If false, tracking of reputation metrics is disabled for the configuration
10013	// set.
10014	ReputationMetricsEnabled *bool `type:"boolean"`
10015}
10016
10017// String returns the string representation
10018func (s PutConfigurationSetReputationOptionsInput) String() string {
10019	return awsutil.Prettify(s)
10020}
10021
10022// GoString returns the string representation
10023func (s PutConfigurationSetReputationOptionsInput) GoString() string {
10024	return s.String()
10025}
10026
10027// Validate inspects the fields of the type to determine if they are valid.
10028func (s *PutConfigurationSetReputationOptionsInput) Validate() error {
10029	invalidParams := request.ErrInvalidParams{Context: "PutConfigurationSetReputationOptionsInput"}
10030	if s.ConfigurationSetName == nil {
10031		invalidParams.Add(request.NewErrParamRequired("ConfigurationSetName"))
10032	}
10033	if s.ConfigurationSetName != nil && len(*s.ConfigurationSetName) < 1 {
10034		invalidParams.Add(request.NewErrParamMinLen("ConfigurationSetName", 1))
10035	}
10036
10037	if invalidParams.Len() > 0 {
10038		return invalidParams
10039	}
10040	return nil
10041}
10042
10043// SetConfigurationSetName sets the ConfigurationSetName field's value.
10044func (s *PutConfigurationSetReputationOptionsInput) SetConfigurationSetName(v string) *PutConfigurationSetReputationOptionsInput {
10045	s.ConfigurationSetName = &v
10046	return s
10047}
10048
10049// SetReputationMetricsEnabled sets the ReputationMetricsEnabled field's value.
10050func (s *PutConfigurationSetReputationOptionsInput) SetReputationMetricsEnabled(v bool) *PutConfigurationSetReputationOptionsInput {
10051	s.ReputationMetricsEnabled = &v
10052	return s
10053}
10054
10055// An HTTP 200 response if the request succeeds, or an error message if the
10056// request fails.
10057type PutConfigurationSetReputationOptionsOutput struct {
10058	_ struct{} `type:"structure"`
10059}
10060
10061// String returns the string representation
10062func (s PutConfigurationSetReputationOptionsOutput) String() string {
10063	return awsutil.Prettify(s)
10064}
10065
10066// GoString returns the string representation
10067func (s PutConfigurationSetReputationOptionsOutput) GoString() string {
10068	return s.String()
10069}
10070
10071// A request to enable or disable the ability of Amazon SES to send emails that
10072// use a specific configuration set.
10073type PutConfigurationSetSendingOptionsInput struct {
10074	_ struct{} `type:"structure"`
10075
10076	// The name of the configuration set that you want to enable or disable email
10077	// sending for.
10078	//
10079	// ConfigurationSetName is a required field
10080	ConfigurationSetName *string `location:"uri" locationName:"ConfigurationSetName" type:"string" required:"true"`
10081
10082	// If true, email sending is enabled for the configuration set. If false, email
10083	// sending is disabled for the configuration set.
10084	SendingEnabled *bool `type:"boolean"`
10085}
10086
10087// String returns the string representation
10088func (s PutConfigurationSetSendingOptionsInput) String() string {
10089	return awsutil.Prettify(s)
10090}
10091
10092// GoString returns the string representation
10093func (s PutConfigurationSetSendingOptionsInput) GoString() string {
10094	return s.String()
10095}
10096
10097// Validate inspects the fields of the type to determine if they are valid.
10098func (s *PutConfigurationSetSendingOptionsInput) Validate() error {
10099	invalidParams := request.ErrInvalidParams{Context: "PutConfigurationSetSendingOptionsInput"}
10100	if s.ConfigurationSetName == nil {
10101		invalidParams.Add(request.NewErrParamRequired("ConfigurationSetName"))
10102	}
10103	if s.ConfigurationSetName != nil && len(*s.ConfigurationSetName) < 1 {
10104		invalidParams.Add(request.NewErrParamMinLen("ConfigurationSetName", 1))
10105	}
10106
10107	if invalidParams.Len() > 0 {
10108		return invalidParams
10109	}
10110	return nil
10111}
10112
10113// SetConfigurationSetName sets the ConfigurationSetName field's value.
10114func (s *PutConfigurationSetSendingOptionsInput) SetConfigurationSetName(v string) *PutConfigurationSetSendingOptionsInput {
10115	s.ConfigurationSetName = &v
10116	return s
10117}
10118
10119// SetSendingEnabled sets the SendingEnabled field's value.
10120func (s *PutConfigurationSetSendingOptionsInput) SetSendingEnabled(v bool) *PutConfigurationSetSendingOptionsInput {
10121	s.SendingEnabled = &v
10122	return s
10123}
10124
10125// An HTTP 200 response if the request succeeds, or an error message if the
10126// request fails.
10127type PutConfigurationSetSendingOptionsOutput struct {
10128	_ struct{} `type:"structure"`
10129}
10130
10131// String returns the string representation
10132func (s PutConfigurationSetSendingOptionsOutput) String() string {
10133	return awsutil.Prettify(s)
10134}
10135
10136// GoString returns the string representation
10137func (s PutConfigurationSetSendingOptionsOutput) GoString() string {
10138	return s.String()
10139}
10140
10141// A request to change the account suppression list preferences for a specific
10142// configuration set.
10143type PutConfigurationSetSuppressionOptionsInput struct {
10144	_ struct{} `type:"structure"`
10145
10146	// The name of the configuration set that you want to change the suppression
10147	// list preferences for.
10148	//
10149	// ConfigurationSetName is a required field
10150	ConfigurationSetName *string `location:"uri" locationName:"ConfigurationSetName" type:"string" required:"true"`
10151
10152	// A list that contains the reasons that email addresses are automatically added
10153	// to the suppression list for your account. This list can contain any or all
10154	// of the following:
10155	//
10156	//    * COMPLAINT – Amazon SES adds an email address to the suppression list
10157	//    for your account when a message sent to that address results in a complaint.
10158	//
10159	//    * BOUNCE – Amazon SES adds an email address to the suppression list
10160	//    for your account when a message sent to that address results in a hard
10161	//    bounce.
10162	SuppressedReasons []*string `type:"list"`
10163}
10164
10165// String returns the string representation
10166func (s PutConfigurationSetSuppressionOptionsInput) String() string {
10167	return awsutil.Prettify(s)
10168}
10169
10170// GoString returns the string representation
10171func (s PutConfigurationSetSuppressionOptionsInput) GoString() string {
10172	return s.String()
10173}
10174
10175// Validate inspects the fields of the type to determine if they are valid.
10176func (s *PutConfigurationSetSuppressionOptionsInput) Validate() error {
10177	invalidParams := request.ErrInvalidParams{Context: "PutConfigurationSetSuppressionOptionsInput"}
10178	if s.ConfigurationSetName == nil {
10179		invalidParams.Add(request.NewErrParamRequired("ConfigurationSetName"))
10180	}
10181	if s.ConfigurationSetName != nil && len(*s.ConfigurationSetName) < 1 {
10182		invalidParams.Add(request.NewErrParamMinLen("ConfigurationSetName", 1))
10183	}
10184
10185	if invalidParams.Len() > 0 {
10186		return invalidParams
10187	}
10188	return nil
10189}
10190
10191// SetConfigurationSetName sets the ConfigurationSetName field's value.
10192func (s *PutConfigurationSetSuppressionOptionsInput) SetConfigurationSetName(v string) *PutConfigurationSetSuppressionOptionsInput {
10193	s.ConfigurationSetName = &v
10194	return s
10195}
10196
10197// SetSuppressedReasons sets the SuppressedReasons field's value.
10198func (s *PutConfigurationSetSuppressionOptionsInput) SetSuppressedReasons(v []*string) *PutConfigurationSetSuppressionOptionsInput {
10199	s.SuppressedReasons = v
10200	return s
10201}
10202
10203// An HTTP 200 response if the request succeeds, or an error message if the
10204// request fails.
10205type PutConfigurationSetSuppressionOptionsOutput struct {
10206	_ struct{} `type:"structure"`
10207}
10208
10209// String returns the string representation
10210func (s PutConfigurationSetSuppressionOptionsOutput) String() string {
10211	return awsutil.Prettify(s)
10212}
10213
10214// GoString returns the string representation
10215func (s PutConfigurationSetSuppressionOptionsOutput) GoString() string {
10216	return s.String()
10217}
10218
10219// A request to add a custom domain for tracking open and click events to a
10220// configuration set.
10221type PutConfigurationSetTrackingOptionsInput struct {
10222	_ struct{} `type:"structure"`
10223
10224	// The name of the configuration set that you want to add a custom tracking
10225	// domain to.
10226	//
10227	// ConfigurationSetName is a required field
10228	ConfigurationSetName *string `location:"uri" locationName:"ConfigurationSetName" type:"string" required:"true"`
10229
10230	// The domain that you want to use to track open and click events.
10231	CustomRedirectDomain *string `type:"string"`
10232}
10233
10234// String returns the string representation
10235func (s PutConfigurationSetTrackingOptionsInput) String() string {
10236	return awsutil.Prettify(s)
10237}
10238
10239// GoString returns the string representation
10240func (s PutConfigurationSetTrackingOptionsInput) GoString() string {
10241	return s.String()
10242}
10243
10244// Validate inspects the fields of the type to determine if they are valid.
10245func (s *PutConfigurationSetTrackingOptionsInput) Validate() error {
10246	invalidParams := request.ErrInvalidParams{Context: "PutConfigurationSetTrackingOptionsInput"}
10247	if s.ConfigurationSetName == nil {
10248		invalidParams.Add(request.NewErrParamRequired("ConfigurationSetName"))
10249	}
10250	if s.ConfigurationSetName != nil && len(*s.ConfigurationSetName) < 1 {
10251		invalidParams.Add(request.NewErrParamMinLen("ConfigurationSetName", 1))
10252	}
10253
10254	if invalidParams.Len() > 0 {
10255		return invalidParams
10256	}
10257	return nil
10258}
10259
10260// SetConfigurationSetName sets the ConfigurationSetName field's value.
10261func (s *PutConfigurationSetTrackingOptionsInput) SetConfigurationSetName(v string) *PutConfigurationSetTrackingOptionsInput {
10262	s.ConfigurationSetName = &v
10263	return s
10264}
10265
10266// SetCustomRedirectDomain sets the CustomRedirectDomain field's value.
10267func (s *PutConfigurationSetTrackingOptionsInput) SetCustomRedirectDomain(v string) *PutConfigurationSetTrackingOptionsInput {
10268	s.CustomRedirectDomain = &v
10269	return s
10270}
10271
10272// An HTTP 200 response if the request succeeds, or an error message if the
10273// request fails.
10274type PutConfigurationSetTrackingOptionsOutput struct {
10275	_ struct{} `type:"structure"`
10276}
10277
10278// String returns the string representation
10279func (s PutConfigurationSetTrackingOptionsOutput) String() string {
10280	return awsutil.Prettify(s)
10281}
10282
10283// GoString returns the string representation
10284func (s PutConfigurationSetTrackingOptionsOutput) GoString() string {
10285	return s.String()
10286}
10287
10288// A request to move a dedicated IP address to a dedicated IP pool.
10289type PutDedicatedIpInPoolInput struct {
10290	_ struct{} `type:"structure"`
10291
10292	// The name of the IP pool that you want to add the dedicated IP address to.
10293	// You have to specify an IP pool that already exists.
10294	//
10295	// DestinationPoolName is a required field
10296	DestinationPoolName *string `type:"string" required:"true"`
10297
10298	// The IP address that you want to move to the dedicated IP pool. The value
10299	// you specify has to be a dedicated IP address that's associated with your
10300	// AWS account.
10301	//
10302	// Ip is a required field
10303	Ip *string `location:"uri" locationName:"IP" type:"string" required:"true"`
10304}
10305
10306// String returns the string representation
10307func (s PutDedicatedIpInPoolInput) String() string {
10308	return awsutil.Prettify(s)
10309}
10310
10311// GoString returns the string representation
10312func (s PutDedicatedIpInPoolInput) GoString() string {
10313	return s.String()
10314}
10315
10316// Validate inspects the fields of the type to determine if they are valid.
10317func (s *PutDedicatedIpInPoolInput) Validate() error {
10318	invalidParams := request.ErrInvalidParams{Context: "PutDedicatedIpInPoolInput"}
10319	if s.DestinationPoolName == nil {
10320		invalidParams.Add(request.NewErrParamRequired("DestinationPoolName"))
10321	}
10322	if s.Ip == nil {
10323		invalidParams.Add(request.NewErrParamRequired("Ip"))
10324	}
10325	if s.Ip != nil && len(*s.Ip) < 1 {
10326		invalidParams.Add(request.NewErrParamMinLen("Ip", 1))
10327	}
10328
10329	if invalidParams.Len() > 0 {
10330		return invalidParams
10331	}
10332	return nil
10333}
10334
10335// SetDestinationPoolName sets the DestinationPoolName field's value.
10336func (s *PutDedicatedIpInPoolInput) SetDestinationPoolName(v string) *PutDedicatedIpInPoolInput {
10337	s.DestinationPoolName = &v
10338	return s
10339}
10340
10341// SetIp sets the Ip field's value.
10342func (s *PutDedicatedIpInPoolInput) SetIp(v string) *PutDedicatedIpInPoolInput {
10343	s.Ip = &v
10344	return s
10345}
10346
10347// An HTTP 200 response if the request succeeds, or an error message if the
10348// request fails.
10349type PutDedicatedIpInPoolOutput struct {
10350	_ struct{} `type:"structure"`
10351}
10352
10353// String returns the string representation
10354func (s PutDedicatedIpInPoolOutput) String() string {
10355	return awsutil.Prettify(s)
10356}
10357
10358// GoString returns the string representation
10359func (s PutDedicatedIpInPoolOutput) GoString() string {
10360	return s.String()
10361}
10362
10363// A request to change the warm-up attributes for a dedicated IP address. This
10364// operation is useful when you want to resume the warm-up process for an existing
10365// IP address.
10366type PutDedicatedIpWarmupAttributesInput struct {
10367	_ struct{} `type:"structure"`
10368
10369	// The dedicated IP address that you want to update the warm-up attributes for.
10370	//
10371	// Ip is a required field
10372	Ip *string `location:"uri" locationName:"IP" type:"string" required:"true"`
10373
10374	// The warm-up percentage that you want to associate with the dedicated IP address.
10375	//
10376	// WarmupPercentage is a required field
10377	WarmupPercentage *int64 `type:"integer" required:"true"`
10378}
10379
10380// String returns the string representation
10381func (s PutDedicatedIpWarmupAttributesInput) String() string {
10382	return awsutil.Prettify(s)
10383}
10384
10385// GoString returns the string representation
10386func (s PutDedicatedIpWarmupAttributesInput) GoString() string {
10387	return s.String()
10388}
10389
10390// Validate inspects the fields of the type to determine if they are valid.
10391func (s *PutDedicatedIpWarmupAttributesInput) Validate() error {
10392	invalidParams := request.ErrInvalidParams{Context: "PutDedicatedIpWarmupAttributesInput"}
10393	if s.Ip == nil {
10394		invalidParams.Add(request.NewErrParamRequired("Ip"))
10395	}
10396	if s.Ip != nil && len(*s.Ip) < 1 {
10397		invalidParams.Add(request.NewErrParamMinLen("Ip", 1))
10398	}
10399	if s.WarmupPercentage == nil {
10400		invalidParams.Add(request.NewErrParamRequired("WarmupPercentage"))
10401	}
10402
10403	if invalidParams.Len() > 0 {
10404		return invalidParams
10405	}
10406	return nil
10407}
10408
10409// SetIp sets the Ip field's value.
10410func (s *PutDedicatedIpWarmupAttributesInput) SetIp(v string) *PutDedicatedIpWarmupAttributesInput {
10411	s.Ip = &v
10412	return s
10413}
10414
10415// SetWarmupPercentage sets the WarmupPercentage field's value.
10416func (s *PutDedicatedIpWarmupAttributesInput) SetWarmupPercentage(v int64) *PutDedicatedIpWarmupAttributesInput {
10417	s.WarmupPercentage = &v
10418	return s
10419}
10420
10421// An HTTP 200 response if the request succeeds, or an error message if the
10422// request fails.
10423type PutDedicatedIpWarmupAttributesOutput struct {
10424	_ struct{} `type:"structure"`
10425}
10426
10427// String returns the string representation
10428func (s PutDedicatedIpWarmupAttributesOutput) String() string {
10429	return awsutil.Prettify(s)
10430}
10431
10432// GoString returns the string representation
10433func (s PutDedicatedIpWarmupAttributesOutput) GoString() string {
10434	return s.String()
10435}
10436
10437// Enable or disable the Deliverability dashboard. When you enable the Deliverability
10438// dashboard, you gain access to reputation, deliverability, and other metrics
10439// for the domains that you use to send email using Amazon SES API v2. You also
10440// gain the ability to perform predictive inbox placement tests.
10441//
10442// When you use the Deliverability dashboard, you pay a monthly subscription
10443// charge, in addition to any other fees that you accrue by using Amazon SES
10444// and other AWS services. For more information about the features and cost
10445// of a Deliverability dashboard subscription, see Amazon Pinpoint Pricing (http://aws.amazon.com/pinpoint/pricing/).
10446type PutDeliverabilityDashboardOptionInput struct {
10447	_ struct{} `type:"structure"`
10448
10449	// Specifies whether to enable the Deliverability dashboard. To enable the dashboard,
10450	// set this value to true.
10451	//
10452	// DashboardEnabled is a required field
10453	DashboardEnabled *bool `type:"boolean" required:"true"`
10454
10455	// An array of objects, one for each verified domain that you use to send email
10456	// and enabled the Deliverability dashboard for.
10457	SubscribedDomains []*DomainDeliverabilityTrackingOption `type:"list"`
10458}
10459
10460// String returns the string representation
10461func (s PutDeliverabilityDashboardOptionInput) String() string {
10462	return awsutil.Prettify(s)
10463}
10464
10465// GoString returns the string representation
10466func (s PutDeliverabilityDashboardOptionInput) GoString() string {
10467	return s.String()
10468}
10469
10470// Validate inspects the fields of the type to determine if they are valid.
10471func (s *PutDeliverabilityDashboardOptionInput) Validate() error {
10472	invalidParams := request.ErrInvalidParams{Context: "PutDeliverabilityDashboardOptionInput"}
10473	if s.DashboardEnabled == nil {
10474		invalidParams.Add(request.NewErrParamRequired("DashboardEnabled"))
10475	}
10476
10477	if invalidParams.Len() > 0 {
10478		return invalidParams
10479	}
10480	return nil
10481}
10482
10483// SetDashboardEnabled sets the DashboardEnabled field's value.
10484func (s *PutDeliverabilityDashboardOptionInput) SetDashboardEnabled(v bool) *PutDeliverabilityDashboardOptionInput {
10485	s.DashboardEnabled = &v
10486	return s
10487}
10488
10489// SetSubscribedDomains sets the SubscribedDomains field's value.
10490func (s *PutDeliverabilityDashboardOptionInput) SetSubscribedDomains(v []*DomainDeliverabilityTrackingOption) *PutDeliverabilityDashboardOptionInput {
10491	s.SubscribedDomains = v
10492	return s
10493}
10494
10495// A response that indicates whether the Deliverability dashboard is enabled.
10496type PutDeliverabilityDashboardOptionOutput struct {
10497	_ struct{} `type:"structure"`
10498}
10499
10500// String returns the string representation
10501func (s PutDeliverabilityDashboardOptionOutput) String() string {
10502	return awsutil.Prettify(s)
10503}
10504
10505// GoString returns the string representation
10506func (s PutDeliverabilityDashboardOptionOutput) GoString() string {
10507	return s.String()
10508}
10509
10510// A request to enable or disable DKIM signing of email that you send from an
10511// email identity.
10512type PutEmailIdentityDkimAttributesInput struct {
10513	_ struct{} `type:"structure"`
10514
10515	// The email identity that you want to change the DKIM settings for.
10516	//
10517	// EmailIdentity is a required field
10518	EmailIdentity *string `location:"uri" locationName:"EmailIdentity" type:"string" required:"true"`
10519
10520	// Sets the DKIM signing configuration for the identity.
10521	//
10522	// When you set this value true, then the messages that are sent from the identity
10523	// are signed using DKIM. If you set this value to false, your messages are
10524	// sent without DKIM signing.
10525	SigningEnabled *bool `type:"boolean"`
10526}
10527
10528// String returns the string representation
10529func (s PutEmailIdentityDkimAttributesInput) String() string {
10530	return awsutil.Prettify(s)
10531}
10532
10533// GoString returns the string representation
10534func (s PutEmailIdentityDkimAttributesInput) GoString() string {
10535	return s.String()
10536}
10537
10538// Validate inspects the fields of the type to determine if they are valid.
10539func (s *PutEmailIdentityDkimAttributesInput) Validate() error {
10540	invalidParams := request.ErrInvalidParams{Context: "PutEmailIdentityDkimAttributesInput"}
10541	if s.EmailIdentity == nil {
10542		invalidParams.Add(request.NewErrParamRequired("EmailIdentity"))
10543	}
10544	if s.EmailIdentity != nil && len(*s.EmailIdentity) < 1 {
10545		invalidParams.Add(request.NewErrParamMinLen("EmailIdentity", 1))
10546	}
10547
10548	if invalidParams.Len() > 0 {
10549		return invalidParams
10550	}
10551	return nil
10552}
10553
10554// SetEmailIdentity sets the EmailIdentity field's value.
10555func (s *PutEmailIdentityDkimAttributesInput) SetEmailIdentity(v string) *PutEmailIdentityDkimAttributesInput {
10556	s.EmailIdentity = &v
10557	return s
10558}
10559
10560// SetSigningEnabled sets the SigningEnabled field's value.
10561func (s *PutEmailIdentityDkimAttributesInput) SetSigningEnabled(v bool) *PutEmailIdentityDkimAttributesInput {
10562	s.SigningEnabled = &v
10563	return s
10564}
10565
10566// An HTTP 200 response if the request succeeds, or an error message if the
10567// request fails.
10568type PutEmailIdentityDkimAttributesOutput struct {
10569	_ struct{} `type:"structure"`
10570}
10571
10572// String returns the string representation
10573func (s PutEmailIdentityDkimAttributesOutput) String() string {
10574	return awsutil.Prettify(s)
10575}
10576
10577// GoString returns the string representation
10578func (s PutEmailIdentityDkimAttributesOutput) GoString() string {
10579	return s.String()
10580}
10581
10582// A request to change the DKIM attributes for an email identity.
10583type PutEmailIdentityDkimSigningAttributesInput struct {
10584	_ struct{} `type:"structure"`
10585
10586	// The email identity that you want to configure DKIM for.
10587	//
10588	// EmailIdentity is a required field
10589	EmailIdentity *string `location:"uri" locationName:"EmailIdentity" type:"string" required:"true"`
10590
10591	// An object that contains information about the private key and selector that
10592	// you want to use to configure DKIM for the identity. This object is only required
10593	// if you want to configure Bring Your Own DKIM (BYODKIM) for the identity.
10594	SigningAttributes *DkimSigningAttributes `type:"structure"`
10595
10596	// The method that you want to use to configure DKIM for the identity. There
10597	// are two possible values:
10598	//
10599	//    * AWS_SES – Configure DKIM for the identity by using Easy DKIM (https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html).
10600	//
10601	//    * EXTERNAL – Configure DKIM for the identity by using Bring Your Own
10602	//    DKIM (BYODKIM).
10603	//
10604	// SigningAttributesOrigin is a required field
10605	SigningAttributesOrigin *string `type:"string" required:"true" enum:"DkimSigningAttributesOrigin"`
10606}
10607
10608// String returns the string representation
10609func (s PutEmailIdentityDkimSigningAttributesInput) String() string {
10610	return awsutil.Prettify(s)
10611}
10612
10613// GoString returns the string representation
10614func (s PutEmailIdentityDkimSigningAttributesInput) GoString() string {
10615	return s.String()
10616}
10617
10618// Validate inspects the fields of the type to determine if they are valid.
10619func (s *PutEmailIdentityDkimSigningAttributesInput) Validate() error {
10620	invalidParams := request.ErrInvalidParams{Context: "PutEmailIdentityDkimSigningAttributesInput"}
10621	if s.EmailIdentity == nil {
10622		invalidParams.Add(request.NewErrParamRequired("EmailIdentity"))
10623	}
10624	if s.EmailIdentity != nil && len(*s.EmailIdentity) < 1 {
10625		invalidParams.Add(request.NewErrParamMinLen("EmailIdentity", 1))
10626	}
10627	if s.SigningAttributesOrigin == nil {
10628		invalidParams.Add(request.NewErrParamRequired("SigningAttributesOrigin"))
10629	}
10630	if s.SigningAttributes != nil {
10631		if err := s.SigningAttributes.Validate(); err != nil {
10632			invalidParams.AddNested("SigningAttributes", err.(request.ErrInvalidParams))
10633		}
10634	}
10635
10636	if invalidParams.Len() > 0 {
10637		return invalidParams
10638	}
10639	return nil
10640}
10641
10642// SetEmailIdentity sets the EmailIdentity field's value.
10643func (s *PutEmailIdentityDkimSigningAttributesInput) SetEmailIdentity(v string) *PutEmailIdentityDkimSigningAttributesInput {
10644	s.EmailIdentity = &v
10645	return s
10646}
10647
10648// SetSigningAttributes sets the SigningAttributes field's value.
10649func (s *PutEmailIdentityDkimSigningAttributesInput) SetSigningAttributes(v *DkimSigningAttributes) *PutEmailIdentityDkimSigningAttributesInput {
10650	s.SigningAttributes = v
10651	return s
10652}
10653
10654// SetSigningAttributesOrigin sets the SigningAttributesOrigin field's value.
10655func (s *PutEmailIdentityDkimSigningAttributesInput) SetSigningAttributesOrigin(v string) *PutEmailIdentityDkimSigningAttributesInput {
10656	s.SigningAttributesOrigin = &v
10657	return s
10658}
10659
10660// If the action is successful, the service sends back an HTTP 200 response.
10661//
10662// The following data is returned in JSON format by the service.
10663type PutEmailIdentityDkimSigningAttributesOutput struct {
10664	_ struct{} `type:"structure"`
10665
10666	// The DKIM authentication status of the identity. Amazon SES determines the
10667	// authentication status by searching for specific records in the DNS configuration
10668	// for your domain. If you used Easy DKIM (https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html)
10669	// to set up DKIM authentication, Amazon SES tries to find three unique CNAME
10670	// records in the DNS configuration for your domain.
10671	//
10672	// If you provided a public key to perform DKIM authentication, Amazon SES tries
10673	// to find a TXT record that uses the selector that you specified. The value
10674	// of the TXT record must be a public key that's paired with the private key
10675	// that you specified in the process of creating the identity.
10676	//
10677	// The status can be one of the following:
10678	//
10679	//    * PENDING – The verification process was initiated, but Amazon SES hasn't
10680	//    yet detected the DKIM records in the DNS configuration for the domain.
10681	//
10682	//    * SUCCESS – The verification process completed successfully.
10683	//
10684	//    * FAILED – The verification process failed. This typically occurs when
10685	//    Amazon SES fails to find the DKIM records in the DNS configuration of
10686	//    the domain.
10687	//
10688	//    * TEMPORARY_FAILURE – A temporary issue is preventing Amazon SES from
10689	//    determining the DKIM authentication status of the domain.
10690	//
10691	//    * NOT_STARTED – The DKIM verification process hasn't been initiated
10692	//    for the domain.
10693	DkimStatus *string `type:"string" enum:"DkimStatus"`
10694
10695	// If you used Easy DKIM (https://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html)
10696	// to configure DKIM authentication for the domain, then this object contains
10697	// a set of unique strings that you use to create a set of CNAME records that
10698	// you add to the DNS configuration for your domain. When Amazon SES detects
10699	// these records in the DNS configuration for your domain, the DKIM authentication
10700	// process is complete.
10701	//
10702	// If you configured DKIM authentication for the domain by providing your own
10703	// public-private key pair, then this object contains the selector that's associated
10704	// with your public key.
10705	//
10706	// Regardless of the DKIM authentication method you use, Amazon SES searches
10707	// for the appropriate records in the DNS configuration of the domain for up
10708	// to 72 hours.
10709	DkimTokens []*string `type:"list"`
10710}
10711
10712// String returns the string representation
10713func (s PutEmailIdentityDkimSigningAttributesOutput) String() string {
10714	return awsutil.Prettify(s)
10715}
10716
10717// GoString returns the string representation
10718func (s PutEmailIdentityDkimSigningAttributesOutput) GoString() string {
10719	return s.String()
10720}
10721
10722// SetDkimStatus sets the DkimStatus field's value.
10723func (s *PutEmailIdentityDkimSigningAttributesOutput) SetDkimStatus(v string) *PutEmailIdentityDkimSigningAttributesOutput {
10724	s.DkimStatus = &v
10725	return s
10726}
10727
10728// SetDkimTokens sets the DkimTokens field's value.
10729func (s *PutEmailIdentityDkimSigningAttributesOutput) SetDkimTokens(v []*string) *PutEmailIdentityDkimSigningAttributesOutput {
10730	s.DkimTokens = v
10731	return s
10732}
10733
10734// A request to set the attributes that control how bounce and complaint events
10735// are processed.
10736type PutEmailIdentityFeedbackAttributesInput struct {
10737	_ struct{} `type:"structure"`
10738
10739	// Sets the feedback forwarding configuration for the identity.
10740	//
10741	// If the value is true, you receive email notifications when bounce or complaint
10742	// events occur. These notifications are sent to the address that you specified
10743	// in the Return-Path header of the original email.
10744	//
10745	// You're required to have a method of tracking bounces and complaints. If you
10746	// haven't set up another mechanism for receiving bounce or complaint notifications
10747	// (for example, by setting up an event destination), you receive an email notification
10748	// when these events occur (even if this setting is disabled).
10749	EmailForwardingEnabled *bool `type:"boolean"`
10750
10751	// The email identity that you want to configure bounce and complaint feedback
10752	// forwarding for.
10753	//
10754	// EmailIdentity is a required field
10755	EmailIdentity *string `location:"uri" locationName:"EmailIdentity" type:"string" required:"true"`
10756}
10757
10758// String returns the string representation
10759func (s PutEmailIdentityFeedbackAttributesInput) String() string {
10760	return awsutil.Prettify(s)
10761}
10762
10763// GoString returns the string representation
10764func (s PutEmailIdentityFeedbackAttributesInput) GoString() string {
10765	return s.String()
10766}
10767
10768// Validate inspects the fields of the type to determine if they are valid.
10769func (s *PutEmailIdentityFeedbackAttributesInput) Validate() error {
10770	invalidParams := request.ErrInvalidParams{Context: "PutEmailIdentityFeedbackAttributesInput"}
10771	if s.EmailIdentity == nil {
10772		invalidParams.Add(request.NewErrParamRequired("EmailIdentity"))
10773	}
10774	if s.EmailIdentity != nil && len(*s.EmailIdentity) < 1 {
10775		invalidParams.Add(request.NewErrParamMinLen("EmailIdentity", 1))
10776	}
10777
10778	if invalidParams.Len() > 0 {
10779		return invalidParams
10780	}
10781	return nil
10782}
10783
10784// SetEmailForwardingEnabled sets the EmailForwardingEnabled field's value.
10785func (s *PutEmailIdentityFeedbackAttributesInput) SetEmailForwardingEnabled(v bool) *PutEmailIdentityFeedbackAttributesInput {
10786	s.EmailForwardingEnabled = &v
10787	return s
10788}
10789
10790// SetEmailIdentity sets the EmailIdentity field's value.
10791func (s *PutEmailIdentityFeedbackAttributesInput) SetEmailIdentity(v string) *PutEmailIdentityFeedbackAttributesInput {
10792	s.EmailIdentity = &v
10793	return s
10794}
10795
10796// An HTTP 200 response if the request succeeds, or an error message if the
10797// request fails.
10798type PutEmailIdentityFeedbackAttributesOutput struct {
10799	_ struct{} `type:"structure"`
10800}
10801
10802// String returns the string representation
10803func (s PutEmailIdentityFeedbackAttributesOutput) String() string {
10804	return awsutil.Prettify(s)
10805}
10806
10807// GoString returns the string representation
10808func (s PutEmailIdentityFeedbackAttributesOutput) GoString() string {
10809	return s.String()
10810}
10811
10812// A request to configure the custom MAIL FROM domain for a verified identity.
10813type PutEmailIdentityMailFromAttributesInput struct {
10814	_ struct{} `type:"structure"`
10815
10816	// The action that you want to take if the required MX record isn't found when
10817	// you send an email. When you set this value to UseDefaultValue, the mail is
10818	// sent using amazonses.com as the MAIL FROM domain. When you set this value
10819	// to RejectMessage, the Amazon SES API v2 returns a MailFromDomainNotVerified
10820	// error, and doesn't attempt to deliver the email.
10821	//
10822	// These behaviors are taken when the custom MAIL FROM domain configuration
10823	// is in the Pending, Failed, and TemporaryFailure states.
10824	BehaviorOnMxFailure *string `type:"string" enum:"BehaviorOnMxFailure"`
10825
10826	// The verified email identity that you want to set up the custom MAIL FROM
10827	// domain for.
10828	//
10829	// EmailIdentity is a required field
10830	EmailIdentity *string `location:"uri" locationName:"EmailIdentity" type:"string" required:"true"`
10831
10832	// The custom MAIL FROM domain that you want the verified identity to use. The
10833	// MAIL FROM domain must meet the following criteria:
10834	//
10835	//    * It has to be a subdomain of the verified identity.
10836	//
10837	//    * It can't be used to receive email.
10838	//
10839	//    * It can't be used in a "From" address if the MAIL FROM domain is a destination
10840	//    for feedback forwarding emails.
10841	MailFromDomain *string `type:"string"`
10842}
10843
10844// String returns the string representation
10845func (s PutEmailIdentityMailFromAttributesInput) String() string {
10846	return awsutil.Prettify(s)
10847}
10848
10849// GoString returns the string representation
10850func (s PutEmailIdentityMailFromAttributesInput) GoString() string {
10851	return s.String()
10852}
10853
10854// Validate inspects the fields of the type to determine if they are valid.
10855func (s *PutEmailIdentityMailFromAttributesInput) Validate() error {
10856	invalidParams := request.ErrInvalidParams{Context: "PutEmailIdentityMailFromAttributesInput"}
10857	if s.EmailIdentity == nil {
10858		invalidParams.Add(request.NewErrParamRequired("EmailIdentity"))
10859	}
10860	if s.EmailIdentity != nil && len(*s.EmailIdentity) < 1 {
10861		invalidParams.Add(request.NewErrParamMinLen("EmailIdentity", 1))
10862	}
10863
10864	if invalidParams.Len() > 0 {
10865		return invalidParams
10866	}
10867	return nil
10868}
10869
10870// SetBehaviorOnMxFailure sets the BehaviorOnMxFailure field's value.
10871func (s *PutEmailIdentityMailFromAttributesInput) SetBehaviorOnMxFailure(v string) *PutEmailIdentityMailFromAttributesInput {
10872	s.BehaviorOnMxFailure = &v
10873	return s
10874}
10875
10876// SetEmailIdentity sets the EmailIdentity field's value.
10877func (s *PutEmailIdentityMailFromAttributesInput) SetEmailIdentity(v string) *PutEmailIdentityMailFromAttributesInput {
10878	s.EmailIdentity = &v
10879	return s
10880}
10881
10882// SetMailFromDomain sets the MailFromDomain field's value.
10883func (s *PutEmailIdentityMailFromAttributesInput) SetMailFromDomain(v string) *PutEmailIdentityMailFromAttributesInput {
10884	s.MailFromDomain = &v
10885	return s
10886}
10887
10888// An HTTP 200 response if the request succeeds, or an error message if the
10889// request fails.
10890type PutEmailIdentityMailFromAttributesOutput struct {
10891	_ struct{} `type:"structure"`
10892}
10893
10894// String returns the string representation
10895func (s PutEmailIdentityMailFromAttributesOutput) String() string {
10896	return awsutil.Prettify(s)
10897}
10898
10899// GoString returns the string representation
10900func (s PutEmailIdentityMailFromAttributesOutput) GoString() string {
10901	return s.String()
10902}
10903
10904// A request to add an email destination to the suppression list for your account.
10905type PutSuppressedDestinationInput struct {
10906	_ struct{} `type:"structure"`
10907
10908	// The email address that should be added to the suppression list for your account.
10909	//
10910	// EmailAddress is a required field
10911	EmailAddress *string `type:"string" required:"true"`
10912
10913	// The factors that should cause the email address to be added to the suppression
10914	// list for your account.
10915	//
10916	// Reason is a required field
10917	Reason *string `type:"string" required:"true" enum:"SuppressionListReason"`
10918}
10919
10920// String returns the string representation
10921func (s PutSuppressedDestinationInput) String() string {
10922	return awsutil.Prettify(s)
10923}
10924
10925// GoString returns the string representation
10926func (s PutSuppressedDestinationInput) GoString() string {
10927	return s.String()
10928}
10929
10930// Validate inspects the fields of the type to determine if they are valid.
10931func (s *PutSuppressedDestinationInput) Validate() error {
10932	invalidParams := request.ErrInvalidParams{Context: "PutSuppressedDestinationInput"}
10933	if s.EmailAddress == nil {
10934		invalidParams.Add(request.NewErrParamRequired("EmailAddress"))
10935	}
10936	if s.Reason == nil {
10937		invalidParams.Add(request.NewErrParamRequired("Reason"))
10938	}
10939
10940	if invalidParams.Len() > 0 {
10941		return invalidParams
10942	}
10943	return nil
10944}
10945
10946// SetEmailAddress sets the EmailAddress field's value.
10947func (s *PutSuppressedDestinationInput) SetEmailAddress(v string) *PutSuppressedDestinationInput {
10948	s.EmailAddress = &v
10949	return s
10950}
10951
10952// SetReason sets the Reason field's value.
10953func (s *PutSuppressedDestinationInput) SetReason(v string) *PutSuppressedDestinationInput {
10954	s.Reason = &v
10955	return s
10956}
10957
10958// An HTTP 200 response if the request succeeds, or an error message if the
10959// request fails.
10960type PutSuppressedDestinationOutput struct {
10961	_ struct{} `type:"structure"`
10962}
10963
10964// String returns the string representation
10965func (s PutSuppressedDestinationOutput) String() string {
10966	return awsutil.Prettify(s)
10967}
10968
10969// GoString returns the string representation
10970func (s PutSuppressedDestinationOutput) GoString() string {
10971	return s.String()
10972}
10973
10974// Represents the raw content of an email message.
10975type RawMessage struct {
10976	_ struct{} `type:"structure"`
10977
10978	// The raw email message. The message has to meet the following criteria:
10979	//
10980	//    * The message has to contain a header and a body, separated by one blank
10981	//    line.
10982	//
10983	//    * All of the required header fields must be present in the message.
10984	//
10985	//    * Each part of a multipart MIME message must be formatted properly.
10986	//
10987	//    * Attachments must be in a file format that the Amazon SES supports.
10988	//
10989	//    * The entire message must be Base64 encoded.
10990	//
10991	//    * If any of the MIME parts in your message contain content that is outside
10992	//    of the 7-bit ASCII character range, you should encode that content to
10993	//    ensure that recipients' email clients render the message properly.
10994	//
10995	//    * The length of any single line of text in the message can't exceed 1,000
10996	//    characters. This restriction is defined in RFC 5321 (https://tools.ietf.org/html/rfc5321).
10997	//
10998	// Data is automatically base64 encoded/decoded by the SDK.
10999	//
11000	// Data is a required field
11001	Data []byte `type:"blob" required:"true"`
11002}
11003
11004// String returns the string representation
11005func (s RawMessage) String() string {
11006	return awsutil.Prettify(s)
11007}
11008
11009// GoString returns the string representation
11010func (s RawMessage) GoString() string {
11011	return s.String()
11012}
11013
11014// Validate inspects the fields of the type to determine if they are valid.
11015func (s *RawMessage) Validate() error {
11016	invalidParams := request.ErrInvalidParams{Context: "RawMessage"}
11017	if s.Data == nil {
11018		invalidParams.Add(request.NewErrParamRequired("Data"))
11019	}
11020
11021	if invalidParams.Len() > 0 {
11022		return invalidParams
11023	}
11024	return nil
11025}
11026
11027// SetData sets the Data field's value.
11028func (s *RawMessage) SetData(v []byte) *RawMessage {
11029	s.Data = v
11030	return s
11031}
11032
11033// Enable or disable collection of reputation metrics for emails that you send
11034// using this configuration set in the current AWS Region.
11035type ReputationOptions struct {
11036	_ struct{} `type:"structure"`
11037
11038	// The date and time (in Unix time) when the reputation metrics were last given
11039	// a fresh start. When your account is given a fresh start, your reputation
11040	// metrics are calculated starting from the date of the fresh start.
11041	LastFreshStart *time.Time `type:"timestamp"`
11042
11043	// If true, tracking of reputation metrics is enabled for the configuration
11044	// set. If false, tracking of reputation metrics is disabled for the configuration
11045	// set.
11046	ReputationMetricsEnabled *bool `type:"boolean"`
11047}
11048
11049// String returns the string representation
11050func (s ReputationOptions) String() string {
11051	return awsutil.Prettify(s)
11052}
11053
11054// GoString returns the string representation
11055func (s ReputationOptions) GoString() string {
11056	return s.String()
11057}
11058
11059// SetLastFreshStart sets the LastFreshStart field's value.
11060func (s *ReputationOptions) SetLastFreshStart(v time.Time) *ReputationOptions {
11061	s.LastFreshStart = &v
11062	return s
11063}
11064
11065// SetReputationMetricsEnabled sets the ReputationMetricsEnabled field's value.
11066func (s *ReputationOptions) SetReputationMetricsEnabled(v bool) *ReputationOptions {
11067	s.ReputationMetricsEnabled = &v
11068	return s
11069}
11070
11071// A request to send an email message.
11072type SendEmailInput struct {
11073	_ struct{} `type:"structure"`
11074
11075	// The name of the configuration set that you want to use when sending the email.
11076	ConfigurationSetName *string `type:"string"`
11077
11078	// An object that contains the body of the message. You can send either a Simple
11079	// message or a Raw message.
11080	//
11081	// Content is a required field
11082	Content *EmailContent `type:"structure" required:"true"`
11083
11084	// An object that contains the recipients of the email message.
11085	//
11086	// Destination is a required field
11087	Destination *Destination `type:"structure" required:"true"`
11088
11089	// A list of tags, in the form of name/value pairs, to apply to an email that
11090	// you send using the SendEmail operation. Tags correspond to characteristics
11091	// of the email that you define, so that you can publish email sending events.
11092	EmailTags []*MessageTag `type:"list"`
11093
11094	// The address that you want bounce and complaint notifications to be sent to.
11095	FeedbackForwardingEmailAddress *string `type:"string"`
11096
11097	// The email address that you want to use as the "From" address for the email.
11098	// The address that you specify has to be verified.
11099	FromEmailAddress *string `type:"string"`
11100
11101	// The "Reply-to" email addresses for the message. When the recipient replies
11102	// to the message, each Reply-to address receives the reply.
11103	ReplyToAddresses []*string `type:"list"`
11104}
11105
11106// String returns the string representation
11107func (s SendEmailInput) String() string {
11108	return awsutil.Prettify(s)
11109}
11110
11111// GoString returns the string representation
11112func (s SendEmailInput) GoString() string {
11113	return s.String()
11114}
11115
11116// Validate inspects the fields of the type to determine if they are valid.
11117func (s *SendEmailInput) Validate() error {
11118	invalidParams := request.ErrInvalidParams{Context: "SendEmailInput"}
11119	if s.Content == nil {
11120		invalidParams.Add(request.NewErrParamRequired("Content"))
11121	}
11122	if s.Destination == nil {
11123		invalidParams.Add(request.NewErrParamRequired("Destination"))
11124	}
11125	if s.Content != nil {
11126		if err := s.Content.Validate(); err != nil {
11127			invalidParams.AddNested("Content", err.(request.ErrInvalidParams))
11128		}
11129	}
11130	if s.EmailTags != nil {
11131		for i, v := range s.EmailTags {
11132			if v == nil {
11133				continue
11134			}
11135			if err := v.Validate(); err != nil {
11136				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "EmailTags", i), err.(request.ErrInvalidParams))
11137			}
11138		}
11139	}
11140
11141	if invalidParams.Len() > 0 {
11142		return invalidParams
11143	}
11144	return nil
11145}
11146
11147// SetConfigurationSetName sets the ConfigurationSetName field's value.
11148func (s *SendEmailInput) SetConfigurationSetName(v string) *SendEmailInput {
11149	s.ConfigurationSetName = &v
11150	return s
11151}
11152
11153// SetContent sets the Content field's value.
11154func (s *SendEmailInput) SetContent(v *EmailContent) *SendEmailInput {
11155	s.Content = v
11156	return s
11157}
11158
11159// SetDestination sets the Destination field's value.
11160func (s *SendEmailInput) SetDestination(v *Destination) *SendEmailInput {
11161	s.Destination = v
11162	return s
11163}
11164
11165// SetEmailTags sets the EmailTags field's value.
11166func (s *SendEmailInput) SetEmailTags(v []*MessageTag) *SendEmailInput {
11167	s.EmailTags = v
11168	return s
11169}
11170
11171// SetFeedbackForwardingEmailAddress sets the FeedbackForwardingEmailAddress field's value.
11172func (s *SendEmailInput) SetFeedbackForwardingEmailAddress(v string) *SendEmailInput {
11173	s.FeedbackForwardingEmailAddress = &v
11174	return s
11175}
11176
11177// SetFromEmailAddress sets the FromEmailAddress field's value.
11178func (s *SendEmailInput) SetFromEmailAddress(v string) *SendEmailInput {
11179	s.FromEmailAddress = &v
11180	return s
11181}
11182
11183// SetReplyToAddresses sets the ReplyToAddresses field's value.
11184func (s *SendEmailInput) SetReplyToAddresses(v []*string) *SendEmailInput {
11185	s.ReplyToAddresses = v
11186	return s
11187}
11188
11189// A unique message ID that you receive when an email is accepted for sending.
11190type SendEmailOutput struct {
11191	_ struct{} `type:"structure"`
11192
11193	// A unique identifier for the message that is generated when the message is
11194	// accepted.
11195	//
11196	// It's possible for Amazon SES to accept a message without sending it. This
11197	// can happen when the message that you're trying to send has an attachment
11198	// contains a virus, or when you send a templated email that contains invalid
11199	// personalization content, for example.
11200	MessageId *string `type:"string"`
11201}
11202
11203// String returns the string representation
11204func (s SendEmailOutput) String() string {
11205	return awsutil.Prettify(s)
11206}
11207
11208// GoString returns the string representation
11209func (s SendEmailOutput) GoString() string {
11210	return s.String()
11211}
11212
11213// SetMessageId sets the MessageId field's value.
11214func (s *SendEmailOutput) SetMessageId(v string) *SendEmailOutput {
11215	s.MessageId = &v
11216	return s
11217}
11218
11219// An object that contains information about the per-day and per-second sending
11220// limits for your Amazon SES account in the current AWS Region.
11221type SendQuota struct {
11222	_ struct{} `type:"structure"`
11223
11224	// The maximum number of emails that you can send in the current AWS Region
11225	// over a 24-hour period. This value is also called your sending quota.
11226	Max24HourSend *float64 `type:"double"`
11227
11228	// The maximum number of emails that you can send per second in the current
11229	// AWS Region. This value is also called your maximum sending rate or your maximum
11230	// TPS (transactions per second) rate.
11231	MaxSendRate *float64 `type:"double"`
11232
11233	// The number of emails sent from your Amazon SES account in the current AWS
11234	// Region over the past 24 hours.
11235	SentLast24Hours *float64 `type:"double"`
11236}
11237
11238// String returns the string representation
11239func (s SendQuota) String() string {
11240	return awsutil.Prettify(s)
11241}
11242
11243// GoString returns the string representation
11244func (s SendQuota) GoString() string {
11245	return s.String()
11246}
11247
11248// SetMax24HourSend sets the Max24HourSend field's value.
11249func (s *SendQuota) SetMax24HourSend(v float64) *SendQuota {
11250	s.Max24HourSend = &v
11251	return s
11252}
11253
11254// SetMaxSendRate sets the MaxSendRate field's value.
11255func (s *SendQuota) SetMaxSendRate(v float64) *SendQuota {
11256	s.MaxSendRate = &v
11257	return s
11258}
11259
11260// SetSentLast24Hours sets the SentLast24Hours field's value.
11261func (s *SendQuota) SetSentLast24Hours(v float64) *SendQuota {
11262	s.SentLast24Hours = &v
11263	return s
11264}
11265
11266// Used to enable or disable email sending for messages that use this configuration
11267// set in the current AWS Region.
11268type SendingOptions struct {
11269	_ struct{} `type:"structure"`
11270
11271	// If true, email sending is enabled for the configuration set. If false, email
11272	// sending is disabled for the configuration set.
11273	SendingEnabled *bool `type:"boolean"`
11274}
11275
11276// String returns the string representation
11277func (s SendingOptions) String() string {
11278	return awsutil.Prettify(s)
11279}
11280
11281// GoString returns the string representation
11282func (s SendingOptions) GoString() string {
11283	return s.String()
11284}
11285
11286// SetSendingEnabled sets the SendingEnabled field's value.
11287func (s *SendingOptions) SetSendingEnabled(v bool) *SendingOptions {
11288	s.SendingEnabled = &v
11289	return s
11290}
11291
11292// The message can't be sent because the account's ability to send email is
11293// currently paused.
11294type SendingPausedException struct {
11295	_            struct{}                  `type:"structure"`
11296	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11297
11298	Message_ *string `locationName:"message" type:"string"`
11299}
11300
11301// String returns the string representation
11302func (s SendingPausedException) String() string {
11303	return awsutil.Prettify(s)
11304}
11305
11306// GoString returns the string representation
11307func (s SendingPausedException) GoString() string {
11308	return s.String()
11309}
11310
11311func newErrorSendingPausedException(v protocol.ResponseMetadata) error {
11312	return &SendingPausedException{
11313		RespMetadata: v,
11314	}
11315}
11316
11317// Code returns the exception type name.
11318func (s *SendingPausedException) Code() string {
11319	return "SendingPausedException"
11320}
11321
11322// Message returns the exception's message.
11323func (s *SendingPausedException) Message() string {
11324	if s.Message_ != nil {
11325		return *s.Message_
11326	}
11327	return ""
11328}
11329
11330// OrigErr always returns nil, satisfies awserr.Error interface.
11331func (s *SendingPausedException) OrigErr() error {
11332	return nil
11333}
11334
11335func (s *SendingPausedException) Error() string {
11336	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
11337}
11338
11339// Status code returns the HTTP status code for the request's response error.
11340func (s *SendingPausedException) StatusCode() int {
11341	return s.RespMetadata.StatusCode
11342}
11343
11344// RequestID returns the service's response RequestID for request.
11345func (s *SendingPausedException) RequestID() string {
11346	return s.RespMetadata.RequestID
11347}
11348
11349// An object that defines an Amazon SNS destination for email events. You can
11350// use Amazon SNS to send notification when certain email events occur.
11351type SnsDestination struct {
11352	_ struct{} `type:"structure"`
11353
11354	// The Amazon Resource Name (ARN) of the Amazon SNS topic that you want to publish
11355	// email events to. For more information about Amazon SNS topics, see the Amazon
11356	// SNS Developer Guide (https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html).
11357	//
11358	// TopicArn is a required field
11359	TopicArn *string `type:"string" required:"true"`
11360}
11361
11362// String returns the string representation
11363func (s SnsDestination) String() string {
11364	return awsutil.Prettify(s)
11365}
11366
11367// GoString returns the string representation
11368func (s SnsDestination) GoString() string {
11369	return s.String()
11370}
11371
11372// Validate inspects the fields of the type to determine if they are valid.
11373func (s *SnsDestination) Validate() error {
11374	invalidParams := request.ErrInvalidParams{Context: "SnsDestination"}
11375	if s.TopicArn == nil {
11376		invalidParams.Add(request.NewErrParamRequired("TopicArn"))
11377	}
11378
11379	if invalidParams.Len() > 0 {
11380		return invalidParams
11381	}
11382	return nil
11383}
11384
11385// SetTopicArn sets the TopicArn field's value.
11386func (s *SnsDestination) SetTopicArn(v string) *SnsDestination {
11387	s.TopicArn = &v
11388	return s
11389}
11390
11391// An object that contains information about an email address that is on the
11392// suppression list for your account.
11393type SuppressedDestination struct {
11394	_ struct{} `type:"structure"`
11395
11396	// An optional value that can contain additional information about the reasons
11397	// that the address was added to the suppression list for your account.
11398	Attributes *SuppressedDestinationAttributes `type:"structure"`
11399
11400	// The email address that is on the suppression list for your account.
11401	//
11402	// EmailAddress is a required field
11403	EmailAddress *string `type:"string" required:"true"`
11404
11405	// The date and time when the suppressed destination was last updated, shown
11406	// in Unix time format.
11407	//
11408	// LastUpdateTime is a required field
11409	LastUpdateTime *time.Time `type:"timestamp" required:"true"`
11410
11411	// The reason that the address was added to the suppression list for your account.
11412	//
11413	// Reason is a required field
11414	Reason *string `type:"string" required:"true" enum:"SuppressionListReason"`
11415}
11416
11417// String returns the string representation
11418func (s SuppressedDestination) String() string {
11419	return awsutil.Prettify(s)
11420}
11421
11422// GoString returns the string representation
11423func (s SuppressedDestination) GoString() string {
11424	return s.String()
11425}
11426
11427// SetAttributes sets the Attributes field's value.
11428func (s *SuppressedDestination) SetAttributes(v *SuppressedDestinationAttributes) *SuppressedDestination {
11429	s.Attributes = v
11430	return s
11431}
11432
11433// SetEmailAddress sets the EmailAddress field's value.
11434func (s *SuppressedDestination) SetEmailAddress(v string) *SuppressedDestination {
11435	s.EmailAddress = &v
11436	return s
11437}
11438
11439// SetLastUpdateTime sets the LastUpdateTime field's value.
11440func (s *SuppressedDestination) SetLastUpdateTime(v time.Time) *SuppressedDestination {
11441	s.LastUpdateTime = &v
11442	return s
11443}
11444
11445// SetReason sets the Reason field's value.
11446func (s *SuppressedDestination) SetReason(v string) *SuppressedDestination {
11447	s.Reason = &v
11448	return s
11449}
11450
11451// An object that contains additional attributes that are related an email address
11452// that is on the suppression list for your account.
11453type SuppressedDestinationAttributes struct {
11454	_ struct{} `type:"structure"`
11455
11456	// A unique identifier that's generated when an email address is added to the
11457	// suppression list for your account.
11458	FeedbackId *string `type:"string"`
11459
11460	// The unique identifier of the email message that caused the email address
11461	// to be added to the suppression list for your account.
11462	MessageId *string `type:"string"`
11463}
11464
11465// String returns the string representation
11466func (s SuppressedDestinationAttributes) String() string {
11467	return awsutil.Prettify(s)
11468}
11469
11470// GoString returns the string representation
11471func (s SuppressedDestinationAttributes) GoString() string {
11472	return s.String()
11473}
11474
11475// SetFeedbackId sets the FeedbackId field's value.
11476func (s *SuppressedDestinationAttributes) SetFeedbackId(v string) *SuppressedDestinationAttributes {
11477	s.FeedbackId = &v
11478	return s
11479}
11480
11481// SetMessageId sets the MessageId field's value.
11482func (s *SuppressedDestinationAttributes) SetMessageId(v string) *SuppressedDestinationAttributes {
11483	s.MessageId = &v
11484	return s
11485}
11486
11487// A summary that describes the suppressed email address.
11488type SuppressedDestinationSummary struct {
11489	_ struct{} `type:"structure"`
11490
11491	// The email address that's on the suppression list for your account.
11492	//
11493	// EmailAddress is a required field
11494	EmailAddress *string `type:"string" required:"true"`
11495
11496	// The date and time when the suppressed destination was last updated, shown
11497	// in Unix time format.
11498	//
11499	// LastUpdateTime is a required field
11500	LastUpdateTime *time.Time `type:"timestamp" required:"true"`
11501
11502	// The reason that the address was added to the suppression list for your account.
11503	//
11504	// Reason is a required field
11505	Reason *string `type:"string" required:"true" enum:"SuppressionListReason"`
11506}
11507
11508// String returns the string representation
11509func (s SuppressedDestinationSummary) String() string {
11510	return awsutil.Prettify(s)
11511}
11512
11513// GoString returns the string representation
11514func (s SuppressedDestinationSummary) GoString() string {
11515	return s.String()
11516}
11517
11518// SetEmailAddress sets the EmailAddress field's value.
11519func (s *SuppressedDestinationSummary) SetEmailAddress(v string) *SuppressedDestinationSummary {
11520	s.EmailAddress = &v
11521	return s
11522}
11523
11524// SetLastUpdateTime sets the LastUpdateTime field's value.
11525func (s *SuppressedDestinationSummary) SetLastUpdateTime(v time.Time) *SuppressedDestinationSummary {
11526	s.LastUpdateTime = &v
11527	return s
11528}
11529
11530// SetReason sets the Reason field's value.
11531func (s *SuppressedDestinationSummary) SetReason(v string) *SuppressedDestinationSummary {
11532	s.Reason = &v
11533	return s
11534}
11535
11536// An object that contains information about the email address suppression preferences
11537// for your account in the current AWS Region.
11538type SuppressionAttributes struct {
11539	_ struct{} `type:"structure"`
11540
11541	// A list that contains the reasons that email addresses will be automatically
11542	// added to the suppression list for your account. This list can contain any
11543	// or all of the following:
11544	//
11545	//    * COMPLAINT – Amazon SES adds an email address to the suppression list
11546	//    for your account when a message sent to that address results in a complaint.
11547	//
11548	//    * BOUNCE – Amazon SES adds an email address to the suppression list
11549	//    for your account when a message sent to that address results in a hard
11550	//    bounce.
11551	SuppressedReasons []*string `type:"list"`
11552}
11553
11554// String returns the string representation
11555func (s SuppressionAttributes) String() string {
11556	return awsutil.Prettify(s)
11557}
11558
11559// GoString returns the string representation
11560func (s SuppressionAttributes) GoString() string {
11561	return s.String()
11562}
11563
11564// SetSuppressedReasons sets the SuppressedReasons field's value.
11565func (s *SuppressionAttributes) SetSuppressedReasons(v []*string) *SuppressionAttributes {
11566	s.SuppressedReasons = v
11567	return s
11568}
11569
11570// An object that contains information about the suppression list preferences
11571// for your account.
11572type SuppressionOptions struct {
11573	_ struct{} `type:"structure"`
11574
11575	// A list that contains the reasons that email addresses are automatically added
11576	// to the suppression list for your account. This list can contain any or all
11577	// of the following:
11578	//
11579	//    * COMPLAINT – Amazon SES adds an email address to the suppression list
11580	//    for your account when a message sent to that address results in a complaint.
11581	//
11582	//    * BOUNCE – Amazon SES adds an email address to the suppression list
11583	//    for your account when a message sent to that address results in a hard
11584	//    bounce.
11585	SuppressedReasons []*string `type:"list"`
11586}
11587
11588// String returns the string representation
11589func (s SuppressionOptions) String() string {
11590	return awsutil.Prettify(s)
11591}
11592
11593// GoString returns the string representation
11594func (s SuppressionOptions) GoString() string {
11595	return s.String()
11596}
11597
11598// SetSuppressedReasons sets the SuppressedReasons field's value.
11599func (s *SuppressionOptions) SetSuppressedReasons(v []*string) *SuppressionOptions {
11600	s.SuppressedReasons = v
11601	return s
11602}
11603
11604// An object that defines the tags that are associated with a resource. A tag
11605// is a label that you optionally define and associate with a resource. Tags
11606// can help you categorize and manage resources in different ways, such as by
11607// purpose, owner, environment, or other criteria. A resource can have as many
11608// as 50 tags.
11609//
11610// Each tag consists of a required tag key and an associated tag value, both
11611// of which you define. A tag key is a general label that acts as a category
11612// for a more specific tag value. A tag value acts as a descriptor within a
11613// tag key. A tag key can contain as many as 128 characters. A tag value can
11614// contain as many as 256 characters. The characters can be Unicode letters,
11615// digits, white space, or one of the following symbols: _ . : / = + -. The
11616// following additional restrictions apply to tags:
11617//
11618//    * Tag keys and values are case sensitive.
11619//
11620//    * For each associated resource, each tag key must be unique and it can
11621//    have only one value.
11622//
11623//    * The aws: prefix is reserved for use by AWS; you can’t use it in any
11624//    tag keys or values that you define. In addition, you can't edit or remove
11625//    tag keys or values that use this prefix. Tags that use this prefix don’t
11626//    count against the limit of 50 tags per resource.
11627//
11628//    * You can associate tags with public or shared resources, but the tags
11629//    are available only for your AWS account, not any other accounts that share
11630//    the resource. In addition, the tags are available only for resources that
11631//    are located in the specified AWS Region for your AWS account.
11632type Tag struct {
11633	_ struct{} `type:"structure"`
11634
11635	// One part of a key-value pair that defines a tag. The maximum length of a
11636	// tag key is 128 characters. The minimum length is 1 character.
11637	//
11638	// Key is a required field
11639	Key *string `type:"string" required:"true"`
11640
11641	// The optional part of a key-value pair that defines a tag. The maximum length
11642	// of a tag value is 256 characters. The minimum length is 0 characters. If
11643	// you don't want a resource to have a specific tag value, don't specify a value
11644	// for this parameter. If you don't specify a value, Amazon SES sets the value
11645	// to an empty string.
11646	//
11647	// Value is a required field
11648	Value *string `type:"string" required:"true"`
11649}
11650
11651// String returns the string representation
11652func (s Tag) String() string {
11653	return awsutil.Prettify(s)
11654}
11655
11656// GoString returns the string representation
11657func (s Tag) GoString() string {
11658	return s.String()
11659}
11660
11661// Validate inspects the fields of the type to determine if they are valid.
11662func (s *Tag) Validate() error {
11663	invalidParams := request.ErrInvalidParams{Context: "Tag"}
11664	if s.Key == nil {
11665		invalidParams.Add(request.NewErrParamRequired("Key"))
11666	}
11667	if s.Value == nil {
11668		invalidParams.Add(request.NewErrParamRequired("Value"))
11669	}
11670
11671	if invalidParams.Len() > 0 {
11672		return invalidParams
11673	}
11674	return nil
11675}
11676
11677// SetKey sets the Key field's value.
11678func (s *Tag) SetKey(v string) *Tag {
11679	s.Key = &v
11680	return s
11681}
11682
11683// SetValue sets the Value field's value.
11684func (s *Tag) SetValue(v string) *Tag {
11685	s.Value = &v
11686	return s
11687}
11688
11689type TagResourceInput struct {
11690	_ struct{} `type:"structure"`
11691
11692	// The Amazon Resource Name (ARN) of the resource that you want to add one or
11693	// more tags to.
11694	//
11695	// ResourceArn is a required field
11696	ResourceArn *string `type:"string" required:"true"`
11697
11698	// A list of the tags that you want to add to the resource. A tag consists of
11699	// a required tag key (Key) and an associated tag value (Value). The maximum
11700	// length of a tag key is 128 characters. The maximum length of a tag value
11701	// is 256 characters.
11702	//
11703	// Tags is a required field
11704	Tags []*Tag `type:"list" required:"true"`
11705}
11706
11707// String returns the string representation
11708func (s TagResourceInput) String() string {
11709	return awsutil.Prettify(s)
11710}
11711
11712// GoString returns the string representation
11713func (s TagResourceInput) GoString() string {
11714	return s.String()
11715}
11716
11717// Validate inspects the fields of the type to determine if they are valid.
11718func (s *TagResourceInput) Validate() error {
11719	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
11720	if s.ResourceArn == nil {
11721		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
11722	}
11723	if s.Tags == nil {
11724		invalidParams.Add(request.NewErrParamRequired("Tags"))
11725	}
11726	if s.Tags != nil {
11727		for i, v := range s.Tags {
11728			if v == nil {
11729				continue
11730			}
11731			if err := v.Validate(); err != nil {
11732				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
11733			}
11734		}
11735	}
11736
11737	if invalidParams.Len() > 0 {
11738		return invalidParams
11739	}
11740	return nil
11741}
11742
11743// SetResourceArn sets the ResourceArn field's value.
11744func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
11745	s.ResourceArn = &v
11746	return s
11747}
11748
11749// SetTags sets the Tags field's value.
11750func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
11751	s.Tags = v
11752	return s
11753}
11754
11755type TagResourceOutput struct {
11756	_ struct{} `type:"structure"`
11757}
11758
11759// String returns the string representation
11760func (s TagResourceOutput) String() string {
11761	return awsutil.Prettify(s)
11762}
11763
11764// GoString returns the string representation
11765func (s TagResourceOutput) GoString() string {
11766	return s.String()
11767}
11768
11769// An object that defines the email template to use for an email message, and
11770// the values to use for any message variables in that template. An email template
11771// is a type of message template that contains content that you want to define,
11772// save, and reuse in email messages that you send.
11773type Template struct {
11774	_ struct{} `type:"structure"`
11775
11776	// The Amazon Resource Name (ARN) of the template.
11777	TemplateArn *string `type:"string"`
11778
11779	// An object that defines the values to use for message variables in the template.
11780	// This object is a set of key-value pairs. Each key defines a message variable
11781	// in the template. The corresponding value defines the value to use for that
11782	// variable.
11783	TemplateData *string `type:"string"`
11784}
11785
11786// String returns the string representation
11787func (s Template) String() string {
11788	return awsutil.Prettify(s)
11789}
11790
11791// GoString returns the string representation
11792func (s Template) GoString() string {
11793	return s.String()
11794}
11795
11796// SetTemplateArn sets the TemplateArn field's value.
11797func (s *Template) SetTemplateArn(v string) *Template {
11798	s.TemplateArn = &v
11799	return s
11800}
11801
11802// SetTemplateData sets the TemplateData field's value.
11803func (s *Template) SetTemplateData(v string) *Template {
11804	s.TemplateData = &v
11805	return s
11806}
11807
11808// Too many requests have been made to the operation.
11809type TooManyRequestsException struct {
11810	_            struct{}                  `type:"structure"`
11811	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11812
11813	Message_ *string `locationName:"message" type:"string"`
11814}
11815
11816// String returns the string representation
11817func (s TooManyRequestsException) String() string {
11818	return awsutil.Prettify(s)
11819}
11820
11821// GoString returns the string representation
11822func (s TooManyRequestsException) GoString() string {
11823	return s.String()
11824}
11825
11826func newErrorTooManyRequestsException(v protocol.ResponseMetadata) error {
11827	return &TooManyRequestsException{
11828		RespMetadata: v,
11829	}
11830}
11831
11832// Code returns the exception type name.
11833func (s *TooManyRequestsException) Code() string {
11834	return "TooManyRequestsException"
11835}
11836
11837// Message returns the exception's message.
11838func (s *TooManyRequestsException) Message() string {
11839	if s.Message_ != nil {
11840		return *s.Message_
11841	}
11842	return ""
11843}
11844
11845// OrigErr always returns nil, satisfies awserr.Error interface.
11846func (s *TooManyRequestsException) OrigErr() error {
11847	return nil
11848}
11849
11850func (s *TooManyRequestsException) Error() string {
11851	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
11852}
11853
11854// Status code returns the HTTP status code for the request's response error.
11855func (s *TooManyRequestsException) StatusCode() int {
11856	return s.RespMetadata.StatusCode
11857}
11858
11859// RequestID returns the service's response RequestID for request.
11860func (s *TooManyRequestsException) RequestID() string {
11861	return s.RespMetadata.RequestID
11862}
11863
11864// An object that defines the tracking options for a configuration set. When
11865// you use the Amazon SES API v2 to send an email, it contains an invisible
11866// image that's used to track when recipients open your email. If your email
11867// contains links, those links are changed slightly in order to track when recipients
11868// click them.
11869//
11870// These images and links include references to a domain operated by AWS. You
11871// can optionally configure the Amazon SES to use a domain that you operate
11872// for these images and links.
11873type TrackingOptions struct {
11874	_ struct{} `type:"structure"`
11875
11876	// The domain that you want to use for tracking open and click events.
11877	//
11878	// CustomRedirectDomain is a required field
11879	CustomRedirectDomain *string `type:"string" required:"true"`
11880}
11881
11882// String returns the string representation
11883func (s TrackingOptions) String() string {
11884	return awsutil.Prettify(s)
11885}
11886
11887// GoString returns the string representation
11888func (s TrackingOptions) GoString() string {
11889	return s.String()
11890}
11891
11892// Validate inspects the fields of the type to determine if they are valid.
11893func (s *TrackingOptions) Validate() error {
11894	invalidParams := request.ErrInvalidParams{Context: "TrackingOptions"}
11895	if s.CustomRedirectDomain == nil {
11896		invalidParams.Add(request.NewErrParamRequired("CustomRedirectDomain"))
11897	}
11898
11899	if invalidParams.Len() > 0 {
11900		return invalidParams
11901	}
11902	return nil
11903}
11904
11905// SetCustomRedirectDomain sets the CustomRedirectDomain field's value.
11906func (s *TrackingOptions) SetCustomRedirectDomain(v string) *TrackingOptions {
11907	s.CustomRedirectDomain = &v
11908	return s
11909}
11910
11911type UntagResourceInput struct {
11912	_ struct{} `type:"structure"`
11913
11914	// The Amazon Resource Name (ARN) of the resource that you want to remove one
11915	// or more tags from.
11916	//
11917	// ResourceArn is a required field
11918	ResourceArn *string `location:"querystring" locationName:"ResourceArn" type:"string" required:"true"`
11919
11920	// The tags (tag keys) that you want to remove from the resource. When you specify
11921	// a tag key, the action removes both that key and its associated tag value.
11922	//
11923	// To remove more than one tag from the resource, append the TagKeys parameter
11924	// and argument for each additional tag to remove, separated by an ampersand.
11925	// For example: /v2/email/tags?ResourceArn=ResourceArn&TagKeys=Key1&TagKeys=Key2
11926	//
11927	// TagKeys is a required field
11928	TagKeys []*string `location:"querystring" locationName:"TagKeys" type:"list" required:"true"`
11929}
11930
11931// String returns the string representation
11932func (s UntagResourceInput) String() string {
11933	return awsutil.Prettify(s)
11934}
11935
11936// GoString returns the string representation
11937func (s UntagResourceInput) GoString() string {
11938	return s.String()
11939}
11940
11941// Validate inspects the fields of the type to determine if they are valid.
11942func (s *UntagResourceInput) Validate() error {
11943	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
11944	if s.ResourceArn == nil {
11945		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
11946	}
11947	if s.TagKeys == nil {
11948		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
11949	}
11950
11951	if invalidParams.Len() > 0 {
11952		return invalidParams
11953	}
11954	return nil
11955}
11956
11957// SetResourceArn sets the ResourceArn field's value.
11958func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
11959	s.ResourceArn = &v
11960	return s
11961}
11962
11963// SetTagKeys sets the TagKeys field's value.
11964func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
11965	s.TagKeys = v
11966	return s
11967}
11968
11969type UntagResourceOutput struct {
11970	_ struct{} `type:"structure"`
11971}
11972
11973// String returns the string representation
11974func (s UntagResourceOutput) String() string {
11975	return awsutil.Prettify(s)
11976}
11977
11978// GoString returns the string representation
11979func (s UntagResourceOutput) GoString() string {
11980	return s.String()
11981}
11982
11983// A request to change the settings for an event destination for a configuration
11984// set.
11985type UpdateConfigurationSetEventDestinationInput struct {
11986	_ struct{} `type:"structure"`
11987
11988	// The name of the configuration set that contains the event destination that
11989	// you want to modify.
11990	//
11991	// ConfigurationSetName is a required field
11992	ConfigurationSetName *string `location:"uri" locationName:"ConfigurationSetName" type:"string" required:"true"`
11993
11994	// An object that defines the event destination.
11995	//
11996	// EventDestination is a required field
11997	EventDestination *EventDestinationDefinition `type:"structure" required:"true"`
11998
11999	// The name of the event destination that you want to modify.
12000	//
12001	// EventDestinationName is a required field
12002	EventDestinationName *string `location:"uri" locationName:"EventDestinationName" type:"string" required:"true"`
12003}
12004
12005// String returns the string representation
12006func (s UpdateConfigurationSetEventDestinationInput) String() string {
12007	return awsutil.Prettify(s)
12008}
12009
12010// GoString returns the string representation
12011func (s UpdateConfigurationSetEventDestinationInput) GoString() string {
12012	return s.String()
12013}
12014
12015// Validate inspects the fields of the type to determine if they are valid.
12016func (s *UpdateConfigurationSetEventDestinationInput) Validate() error {
12017	invalidParams := request.ErrInvalidParams{Context: "UpdateConfigurationSetEventDestinationInput"}
12018	if s.ConfigurationSetName == nil {
12019		invalidParams.Add(request.NewErrParamRequired("ConfigurationSetName"))
12020	}
12021	if s.ConfigurationSetName != nil && len(*s.ConfigurationSetName) < 1 {
12022		invalidParams.Add(request.NewErrParamMinLen("ConfigurationSetName", 1))
12023	}
12024	if s.EventDestination == nil {
12025		invalidParams.Add(request.NewErrParamRequired("EventDestination"))
12026	}
12027	if s.EventDestinationName == nil {
12028		invalidParams.Add(request.NewErrParamRequired("EventDestinationName"))
12029	}
12030	if s.EventDestinationName != nil && len(*s.EventDestinationName) < 1 {
12031		invalidParams.Add(request.NewErrParamMinLen("EventDestinationName", 1))
12032	}
12033	if s.EventDestination != nil {
12034		if err := s.EventDestination.Validate(); err != nil {
12035			invalidParams.AddNested("EventDestination", err.(request.ErrInvalidParams))
12036		}
12037	}
12038
12039	if invalidParams.Len() > 0 {
12040		return invalidParams
12041	}
12042	return nil
12043}
12044
12045// SetConfigurationSetName sets the ConfigurationSetName field's value.
12046func (s *UpdateConfigurationSetEventDestinationInput) SetConfigurationSetName(v string) *UpdateConfigurationSetEventDestinationInput {
12047	s.ConfigurationSetName = &v
12048	return s
12049}
12050
12051// SetEventDestination sets the EventDestination field's value.
12052func (s *UpdateConfigurationSetEventDestinationInput) SetEventDestination(v *EventDestinationDefinition) *UpdateConfigurationSetEventDestinationInput {
12053	s.EventDestination = v
12054	return s
12055}
12056
12057// SetEventDestinationName sets the EventDestinationName field's value.
12058func (s *UpdateConfigurationSetEventDestinationInput) SetEventDestinationName(v string) *UpdateConfigurationSetEventDestinationInput {
12059	s.EventDestinationName = &v
12060	return s
12061}
12062
12063// An HTTP 200 response if the request succeeds, or an error message if the
12064// request fails.
12065type UpdateConfigurationSetEventDestinationOutput struct {
12066	_ struct{} `type:"structure"`
12067}
12068
12069// String returns the string representation
12070func (s UpdateConfigurationSetEventDestinationOutput) String() string {
12071	return awsutil.Prettify(s)
12072}
12073
12074// GoString returns the string representation
12075func (s UpdateConfigurationSetEventDestinationOutput) GoString() string {
12076	return s.String()
12077}
12078
12079// An object that contains information about the amount of email that was delivered
12080// to recipients.
12081type VolumeStatistics struct {
12082	_ struct{} `type:"structure"`
12083
12084	// The total number of emails that arrived in recipients' inboxes.
12085	InboxRawCount *int64 `type:"long"`
12086
12087	// An estimate of the percentage of emails sent from the current domain that
12088	// will arrive in recipients' inboxes.
12089	ProjectedInbox *int64 `type:"long"`
12090
12091	// An estimate of the percentage of emails sent from the current domain that
12092	// will arrive in recipients' spam or junk mail folders.
12093	ProjectedSpam *int64 `type:"long"`
12094
12095	// The total number of emails that arrived in recipients' spam or junk mail
12096	// folders.
12097	SpamRawCount *int64 `type:"long"`
12098}
12099
12100// String returns the string representation
12101func (s VolumeStatistics) String() string {
12102	return awsutil.Prettify(s)
12103}
12104
12105// GoString returns the string representation
12106func (s VolumeStatistics) GoString() string {
12107	return s.String()
12108}
12109
12110// SetInboxRawCount sets the InboxRawCount field's value.
12111func (s *VolumeStatistics) SetInboxRawCount(v int64) *VolumeStatistics {
12112	s.InboxRawCount = &v
12113	return s
12114}
12115
12116// SetProjectedInbox sets the ProjectedInbox field's value.
12117func (s *VolumeStatistics) SetProjectedInbox(v int64) *VolumeStatistics {
12118	s.ProjectedInbox = &v
12119	return s
12120}
12121
12122// SetProjectedSpam sets the ProjectedSpam field's value.
12123func (s *VolumeStatistics) SetProjectedSpam(v int64) *VolumeStatistics {
12124	s.ProjectedSpam = &v
12125	return s
12126}
12127
12128// SetSpamRawCount sets the SpamRawCount field's value.
12129func (s *VolumeStatistics) SetSpamRawCount(v int64) *VolumeStatistics {
12130	s.SpamRawCount = &v
12131	return s
12132}
12133
12134// The action that you want to take if the required MX record can't be found
12135// when you send an email. When you set this value to UseDefaultValue, the mail
12136// is sent using amazonses.com as the MAIL FROM domain. When you set this value
12137// to RejectMessage, the Amazon SES API v2 returns a MailFromDomainNotVerified
12138// error, and doesn't attempt to deliver the email.
12139//
12140// These behaviors are taken when the custom MAIL FROM domain configuration
12141// is in the Pending, Failed, and TemporaryFailure states.
12142const (
12143	// BehaviorOnMxFailureUseDefaultValue is a BehaviorOnMxFailure enum value
12144	BehaviorOnMxFailureUseDefaultValue = "USE_DEFAULT_VALUE"
12145
12146	// BehaviorOnMxFailureRejectMessage is a BehaviorOnMxFailure enum value
12147	BehaviorOnMxFailureRejectMessage = "REJECT_MESSAGE"
12148)
12149
12150// The current status of your Deliverability dashboard subscription. If this
12151// value is PENDING_EXPIRATION, your subscription is scheduled to expire at
12152// the end of the current calendar month.
12153const (
12154	// DeliverabilityDashboardAccountStatusActive is a DeliverabilityDashboardAccountStatus enum value
12155	DeliverabilityDashboardAccountStatusActive = "ACTIVE"
12156
12157	// DeliverabilityDashboardAccountStatusPendingExpiration is a DeliverabilityDashboardAccountStatus enum value
12158	DeliverabilityDashboardAccountStatusPendingExpiration = "PENDING_EXPIRATION"
12159
12160	// DeliverabilityDashboardAccountStatusDisabled is a DeliverabilityDashboardAccountStatus enum value
12161	DeliverabilityDashboardAccountStatusDisabled = "DISABLED"
12162)
12163
12164// The status of a predictive inbox placement test. If the status is IN_PROGRESS,
12165// then the predictive inbox placement test is currently running. Predictive
12166// inbox placement tests are usually complete within 24 hours of creating the
12167// test. If the status is COMPLETE, then the test is finished, and you can use
12168// the GetDeliverabilityTestReport operation to view the results of the test.
12169const (
12170	// DeliverabilityTestStatusInProgress is a DeliverabilityTestStatus enum value
12171	DeliverabilityTestStatusInProgress = "IN_PROGRESS"
12172
12173	// DeliverabilityTestStatusCompleted is a DeliverabilityTestStatus enum value
12174	DeliverabilityTestStatusCompleted = "COMPLETED"
12175)
12176
12177// The location where the Amazon SES API v2 finds the value of a dimension to
12178// publish to Amazon CloudWatch. If you want to use the message tags that you
12179// specify using an X-SES-MESSAGE-TAGS header or a parameter to the SendEmail
12180// or SendRawEmail API, choose messageTag. If you want to use your own email
12181// headers, choose emailHeader. If you want to use link tags, choose linkTags.
12182const (
12183	// DimensionValueSourceMessageTag is a DimensionValueSource enum value
12184	DimensionValueSourceMessageTag = "MESSAGE_TAG"
12185
12186	// DimensionValueSourceEmailHeader is a DimensionValueSource enum value
12187	DimensionValueSourceEmailHeader = "EMAIL_HEADER"
12188
12189	// DimensionValueSourceLinkTag is a DimensionValueSource enum value
12190	DimensionValueSourceLinkTag = "LINK_TAG"
12191)
12192
12193const (
12194	// DkimSigningAttributesOriginAwsSes is a DkimSigningAttributesOrigin enum value
12195	DkimSigningAttributesOriginAwsSes = "AWS_SES"
12196
12197	// DkimSigningAttributesOriginExternal is a DkimSigningAttributesOrigin enum value
12198	DkimSigningAttributesOriginExternal = "EXTERNAL"
12199)
12200
12201// The DKIM authentication status of the identity. The status can be one of
12202// the following:
12203//
12204//    * PENDING – The verification process was initiated, but Amazon SES hasn't
12205//    yet detected the DKIM records in the DNS configuration for the domain.
12206//
12207//    * SUCCESS – The verification process completed successfully.
12208//
12209//    * FAILED – The verification process failed. This typically occurs when
12210//    Amazon SES fails to find the DKIM records in the DNS configuration of
12211//    the domain.
12212//
12213//    * TEMPORARY_FAILURE – A temporary issue is preventing Amazon SES from
12214//    determining the DKIM authentication status of the domain.
12215//
12216//    * NOT_STARTED – The DKIM verification process hasn't been initiated
12217//    for the domain.
12218const (
12219	// DkimStatusPending is a DkimStatus enum value
12220	DkimStatusPending = "PENDING"
12221
12222	// DkimStatusSuccess is a DkimStatus enum value
12223	DkimStatusSuccess = "SUCCESS"
12224
12225	// DkimStatusFailed is a DkimStatus enum value
12226	DkimStatusFailed = "FAILED"
12227
12228	// DkimStatusTemporaryFailure is a DkimStatus enum value
12229	DkimStatusTemporaryFailure = "TEMPORARY_FAILURE"
12230
12231	// DkimStatusNotStarted is a DkimStatus enum value
12232	DkimStatusNotStarted = "NOT_STARTED"
12233)
12234
12235// An email sending event type. For example, email sends, opens, and bounces
12236// are all email events.
12237const (
12238	// EventTypeSend is a EventType enum value
12239	EventTypeSend = "SEND"
12240
12241	// EventTypeReject is a EventType enum value
12242	EventTypeReject = "REJECT"
12243
12244	// EventTypeBounce is a EventType enum value
12245	EventTypeBounce = "BOUNCE"
12246
12247	// EventTypeComplaint is a EventType enum value
12248	EventTypeComplaint = "COMPLAINT"
12249
12250	// EventTypeDelivery is a EventType enum value
12251	EventTypeDelivery = "DELIVERY"
12252
12253	// EventTypeOpen is a EventType enum value
12254	EventTypeOpen = "OPEN"
12255
12256	// EventTypeClick is a EventType enum value
12257	EventTypeClick = "CLICK"
12258
12259	// EventTypeRenderingFailure is a EventType enum value
12260	EventTypeRenderingFailure = "RENDERING_FAILURE"
12261
12262	// EventTypeDeliveryDelay is a EventType enum value
12263	EventTypeDeliveryDelay = "DELIVERY_DELAY"
12264)
12265
12266// The email identity type. The identity type can be one of the following:
12267//
12268//    * EMAIL_ADDRESS – The identity is an email address.
12269//
12270//    * DOMAIN – The identity is a domain.
12271const (
12272	// IdentityTypeEmailAddress is a IdentityType enum value
12273	IdentityTypeEmailAddress = "EMAIL_ADDRESS"
12274
12275	// IdentityTypeDomain is a IdentityType enum value
12276	IdentityTypeDomain = "DOMAIN"
12277
12278	// IdentityTypeManagedDomain is a IdentityType enum value
12279	IdentityTypeManagedDomain = "MANAGED_DOMAIN"
12280)
12281
12282// The status of the MAIL FROM domain. This status can have the following values:
12283//
12284//    * PENDING – Amazon SES hasn't started searching for the MX record yet.
12285//
12286//    * SUCCESS – Amazon SES detected the required MX record for the MAIL
12287//    FROM domain.
12288//
12289//    * FAILED – Amazon SES can't find the required MX record, or the record
12290//    no longer exists.
12291//
12292//    * TEMPORARY_FAILURE – A temporary issue occurred, which prevented Amazon
12293//    SES from determining the status of the MAIL FROM domain.
12294const (
12295	// MailFromDomainStatusPending is a MailFromDomainStatus enum value
12296	MailFromDomainStatusPending = "PENDING"
12297
12298	// MailFromDomainStatusSuccess is a MailFromDomainStatus enum value
12299	MailFromDomainStatusSuccess = "SUCCESS"
12300
12301	// MailFromDomainStatusFailed is a MailFromDomainStatus enum value
12302	MailFromDomainStatusFailed = "FAILED"
12303
12304	// MailFromDomainStatusTemporaryFailure is a MailFromDomainStatus enum value
12305	MailFromDomainStatusTemporaryFailure = "TEMPORARY_FAILURE"
12306)
12307
12308// The reason that the address was added to the suppression list for your account.
12309// The value can be one of the following:
12310//
12311//    * COMPLAINT – Amazon SES added an email address to the suppression list
12312//    for your account because a message sent to that address results in a complaint.
12313//
12314//    * BOUNCE – Amazon SES added an email address to the suppression list
12315//    for your account because a message sent to that address results in a hard
12316//    bounce.
12317const (
12318	// SuppressionListReasonBounce is a SuppressionListReason enum value
12319	SuppressionListReasonBounce = "BOUNCE"
12320
12321	// SuppressionListReasonComplaint is a SuppressionListReason enum value
12322	SuppressionListReasonComplaint = "COMPLAINT"
12323)
12324
12325// Specifies whether messages that use the configuration set are required to
12326// use Transport Layer Security (TLS). If the value is Require, messages are
12327// only delivered if a TLS connection can be established. If the value is Optional,
12328// messages can be delivered in plain text if a TLS connection can't be established.
12329const (
12330	// TlsPolicyRequire is a TlsPolicy enum value
12331	TlsPolicyRequire = "REQUIRE"
12332
12333	// TlsPolicyOptional is a TlsPolicy enum value
12334	TlsPolicyOptional = "OPTIONAL"
12335)
12336
12337// The warmup status of a dedicated IP.
12338const (
12339	// WarmupStatusInProgress is a WarmupStatus enum value
12340	WarmupStatusInProgress = "IN_PROGRESS"
12341
12342	// WarmupStatusDone is a WarmupStatus enum value
12343	WarmupStatusDone = "DONE"
12344)
12345